[{"data":1,"prerenderedAt":1045},["ShallowReactive",2],{"navigation_docs":3,"-handlers-default-and-custom":287,"-handlers-default-and-custom-surround":1040},[4,40,70,99,122,156,189,258],{"title":5,"path":6,"stem":7,"children":8,"page":39},"Getting Started","\u002Fgetting-started","1.getting-started",[9,14,19,24,29,34],{"title":10,"path":11,"stem":12,"icon":13},"Introduction","\u002Fgetting-started\u002Fintroduction","1.getting-started\u002F1.introduction","i-lucide-book-open",{"title":15,"path":16,"stem":17,"icon":18},"Installation","\u002Fgetting-started\u002Finstallation","1.getting-started\u002F2.installation","i-lucide-download",{"title":20,"path":21,"stem":22,"icon":23},"Configuration","\u002Fgetting-started\u002Fconfiguration","1.getting-started\u002F3.configuration","i-lucide-settings",{"title":25,"path":26,"stem":27,"icon":28},"Inspector","\u002Fgetting-started\u002Finspector","1.getting-started\u002F4.inspector","i-lucide-circuit-board",{"title":30,"path":31,"stem":32,"icon":33},"Connection","\u002Fgetting-started\u002Fconnection","1.getting-started\u002F5.connection","i-lucide-plug",{"title":35,"path":36,"stem":37,"icon":38},"Agent Skills","\u002Fgetting-started\u002Fagent-skills","1.getting-started\u002F6.agent-skills","i-lucide-sparkles",false,{"title":41,"path":42,"stem":43,"children":44,"page":39},"Tools","\u002Ftools","2.tools",[45,50,55,60,65],{"title":46,"path":47,"stem":48,"icon":49},"Overview","\u002Ftools\u002Foverview","2.tools\u002F0.overview","i-lucide-wrench",{"title":51,"path":52,"stem":53,"icon":54},"Schema, handler & returns","\u002Ftools\u002Fschema-handler","2.tools\u002F1.schema-handler","i-lucide-braces",{"title":56,"path":57,"stem":58,"icon":59},"Annotations & input examples","\u002Ftools\u002Fannotations","2.tools\u002F2.annotations","i-lucide-badge-info",{"title":61,"path":62,"stem":63,"icon":64},"Errors & caching","\u002Ftools\u002Ferrors-caching","2.tools\u002F3.errors-caching","i-lucide-shield",{"title":66,"path":67,"stem":68,"icon":69},"Groups, files & dynamic registration","\u002Ftools\u002Fgroups-organization","2.tools\u002F4.groups-organization","i-lucide-tags",{"title":71,"path":72,"stem":73,"children":74,"page":39},"Resources","\u002Fresources","3.resources",[75,79,84,89,94],{"title":46,"path":76,"stem":77,"icon":78},"\u002Fresources\u002Foverview","3.resources\u002F0.overview","i-lucide-package",{"title":80,"path":81,"stem":82,"icon":83},"Static resources & structure","\u002Fresources\u002Fstatic-and-structure","3.resources\u002F1.static-and-structure","i-lucide-file-stack",{"title":85,"path":86,"stem":87,"icon":88},"Templates & handlers","\u002Fresources\u002Ftemplates-and-handlers","3.resources\u002F2.templates-and-handlers","i-lucide-git-branch",{"title":90,"path":91,"stem":92,"icon":93},"Metadata, content & errors","\u002Fresources\u002Fcontent-metadata-errors","3.resources\u002F3.content-metadata-errors","i-lucide-layers",{"title":95,"path":96,"stem":97,"icon":98},"Groups & organization","\u002Fresources\u002Forganization","3.resources\u002F4.organization","i-lucide-folder-tree",{"title":100,"path":101,"stem":102,"children":103,"page":39},"Prompts","\u002Fprompts","4.prompts",[104,108,113,117],{"title":46,"path":105,"stem":106,"icon":107},"\u002Fprompts\u002Foverview","4.prompts\u002F0.overview","i-lucide-message-square",{"title":109,"path":110,"stem":111,"icon":112},"Authoring & structure","\u002Fprompts\u002Fauthoring","4.prompts\u002F1.authoring","i-lucide-pen-line",{"title":114,"path":115,"stem":116,"icon":93},"Input, handler & messages","\u002Fprompts\u002Finput-handler-messages","4.prompts\u002F2.input-handler-messages",{"title":118,"path":119,"stem":120,"icon":121},"Patterns & advanced","\u002Fprompts\u002Fpatterns-advanced","4.prompts\u002F3.patterns-advanced","i-lucide-line-chart",{"title":123,"path":124,"stem":125,"children":126,"page":39},"Handlers","\u002Fhandlers","5.handlers",[127,131,136,141,146,151],{"title":46,"path":128,"stem":129,"icon":130},"\u002Fhandlers\u002Foverview","5.handlers\u002F0.overview","i-lucide-server",{"title":132,"path":133,"stem":134,"icon":135},"Default & custom handlers","\u002Fhandlers\u002Fdefault-and-custom","5.handlers\u002F1.default-and-custom","i-lucide-toggle-left",{"title":137,"path":138,"stem":139,"icon":140},"Structure & options","\u002Fhandlers\u002Fstructure-and-options","5.handlers\u002F2.structure-and-options","i-lucide-sliders-horizontal",{"title":142,"path":143,"stem":144,"icon":145},"Examples & routing","\u002Fhandlers\u002Fexamples-routing","5.handlers\u002F3.examples-routing","i-lucide-route",{"title":147,"path":148,"stem":149,"icon":150},"Sharing & practices","\u002Fhandlers\u002Fsharing-practices","5.handlers\u002F4.sharing-practices","i-lucide-share-2",{"title":152,"path":153,"stem":154,"icon":155},"Multi-handler organization","\u002Fhandlers\u002Forganization","5.handlers\u002F5.organization","i-lucide-network",{"title":157,"path":158,"stem":159,"children":160,"page":39},"Apps","\u002Fapps","6.apps",[161,165,170,175,179,184],{"title":46,"path":162,"stem":163,"icon":164},"\u002Fapps\u002Foverview","6.apps\u002F0.overview","i-lucide-app-window",{"title":166,"path":167,"stem":168,"icon":169},"Authoring & defineMcpApp","\u002Fapps\u002Fauthoring","6.apps\u002F1.authoring","i-lucide-code-2",{"title":171,"path":172,"stem":173,"icon":174},"useMcpApp() bridge","\u002Fapps\u002Fuse-mcp-app","6.apps\u002F2.use-mcp-app","i-lucide-message-circle",{"title":176,"path":177,"stem":178,"icon":64},"CSP & build pipeline","\u002Fapps\u002Fcsp-and-wiring","6.apps\u002F3.csp-and-wiring",{"title":180,"path":181,"stem":182,"icon":183},"Testing & publishing","\u002Fapps\u002Ftesting-publishing","6.apps\u002F4.testing-publishing","i-lucide-rocket",{"title":185,"path":186,"stem":187,"icon":188},"Patterns & limits","\u002Fapps\u002Fpatterns-reference","6.apps\u002F5.patterns-reference","i-lucide-book-marked",{"title":190,"path":191,"stem":192,"children":193,"page":39},"Advanced Topics","\u002Fadvanced","7.advanced",[194,199,204,209,214,219,223,228,233,238,243,248,253],{"title":195,"path":196,"stem":197,"icon":198},"Custom Paths","\u002Fadvanced\u002Fcustom-paths","7.advanced\u002F1.custom-paths","i-lucide-folder",{"title":200,"path":201,"stem":202,"icon":203},"Logging","\u002Fadvanced\u002Flogging","7.advanced\u002F10.logging","i-lucide-scroll-text",{"title":205,"path":206,"stem":207,"icon":208},"MCP Apps Internals","\u002Fadvanced\u002Fmcp-apps-internals","7.advanced\u002F11.mcp-apps-internals","i-lucide-cog",{"title":210,"path":211,"stem":212,"icon":213},"Listing Definitions","\u002Fadvanced\u002Flisting-definitions","7.advanced\u002F12.listing-definitions","i-lucide-list",{"title":215,"path":216,"stem":217,"icon":218},"llms.txt discovery","\u002Fadvanced\u002Fllms-txt","7.advanced\u002F13.llms-txt","i-lucide-file-text",{"title":220,"path":221,"stem":222,"icon":64},"Middleware","\u002Fadvanced\u002Fmiddleware","7.advanced\u002F2.middleware",{"title":224,"path":225,"stem":226,"icon":227},"TypeScript","\u002Fadvanced\u002Ftypescript","7.advanced\u002F3.typescript","i-lucide-type",{"title":229,"path":230,"stem":231,"icon":232},"Hooks","\u002Fadvanced\u002Fhooks","7.advanced\u002F4.hooks","i-lucide-webhook",{"title":234,"path":235,"stem":236,"icon":237},"MCP Evals","\u002Fadvanced\u002Fevals","7.advanced\u002F5.evals","i-lucide-flask-conical",{"title":239,"path":240,"stem":241,"icon":242},"Sessions","\u002Fadvanced\u002Fsessions","7.advanced\u002F6.sessions","i-lucide-database",{"title":244,"path":245,"stem":246,"icon":247},"Dynamic Definitions","\u002Fadvanced\u002Fdynamic-definitions","7.advanced\u002F7.dynamic-definitions","i-lucide-toggle-right",{"title":249,"path":250,"stem":251,"icon":252},"Code Mode","\u002Fadvanced\u002Fcode-mode","7.advanced\u002F8.code-mode","i-lucide-code",{"title":254,"path":255,"stem":256,"icon":257},"Elicitation","\u002Fadvanced\u002Felicitation","7.advanced\u002F9.elicitation","i-lucide-message-square-quote",{"title":259,"path":260,"stem":261,"children":262,"page":39},"Examples","\u002Fexamples","8.examples",[263,268,273,278,283],{"title":264,"path":265,"stem":266,"icon":267},"Authentication","\u002Fexamples\u002Fauthentication","8.examples\u002F1.authentication","i-lucide-shield-check",{"title":269,"path":270,"stem":271,"icon":272},"API Integration","\u002Fexamples\u002Fapi-integration","8.examples\u002F2.api-integration","i-lucide-globe",{"title":274,"path":275,"stem":276,"icon":277},"Common Patterns","\u002Fexamples\u002Fcommon-patterns","8.examples\u002F3.common-patterns","i-lucide-lightbulb",{"title":279,"path":280,"stem":281,"icon":282},"File Operations","\u002Fexamples\u002Ffile-operations","8.examples\u002F4.file-operations","i-lucide-file",{"title":284,"path":285,"stem":286,"icon":107},"Prompt Examples","\u002Fexamples\u002Fprompt-examples","8.examples\u002F5.prompt-examples",{"id":288,"title":132,"body":289,"description":1031,"extension":1032,"links":1033,"meta":1034,"navigation":1035,"path":133,"seo":1036,"stem":134,"__hash__":1039},"docs\u002F5.handlers\u002F1.default-and-custom.md",{"type":290,"value":291,"toc":1025},"minimark",[292,297,310,315,325,414,417,463,486,491,559,563,646,661,665,671,1021],[293,294,296],"h2",{"id":295},"default-handler","Default Handler",[298,299,300,301,305,306,309],"p",{},"By default, the module creates a single MCP endpoint at ",[302,303,304],"code",{},"\u002Fmcp"," (or your configured route) that includes all tools, resources, and prompts from the ",[302,307,308],{},"server\u002Fmcp\u002F"," directory.",[311,312,314],"h3",{"id":313},"overriding-the-default-handler","Overriding the Default Handler",[298,316,317,318,321,322,324],{},"You can override the default handler's configuration by creating an ",[302,319,320],{},"index.ts"," file in ",[302,323,308],{},":",[326,327,333],"pre",{"className":328,"code":329,"filename":330,"language":331,"meta":332,"style":332},"language-typescript shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","export default defineMcpHandler({\n  version: '2.0.0',\n  browserRedirect: '\u002Fdocs',\n  \u002F\u002F If tools\u002Fresources\u002Fprompts not specified, uses global definitions\n})\n","server\u002Fmcp\u002Findex.ts","typescript","",[302,334,335,359,381,398,405],{"__ignoreMap":332},[336,337,340,344,347,351,355],"span",{"class":338,"line":339},"line",1,[336,341,343],{"class":342},"s7zQu","export",[336,345,346],{"class":342}," default",[336,348,350],{"class":349},"s2Zo4"," defineMcpHandler",[336,352,354],{"class":353},"sTEyZ","(",[336,356,358],{"class":357},"sMK4o","{\n",[336,360,362,366,368,371,375,378],{"class":338,"line":361},2,[336,363,365],{"class":364},"swJcz","  version",[336,367,324],{"class":357},[336,369,370],{"class":357}," '",[336,372,374],{"class":373},"sfazB","2.0.0",[336,376,377],{"class":357},"'",[336,379,380],{"class":357},",\n",[336,382,384,387,389,391,394,396],{"class":338,"line":383},3,[336,385,386],{"class":364},"  browserRedirect",[336,388,324],{"class":357},[336,390,370],{"class":357},[336,392,393],{"class":373},"\u002Fdocs",[336,395,377],{"class":357},[336,397,380],{"class":357},[336,399,401],{"class":338,"line":400},4,[336,402,404],{"class":403},"sHwdD","  \u002F\u002F If tools\u002Fresources\u002Fprompts not specified, uses global definitions\n",[336,406,408,411],{"class":338,"line":407},5,[336,409,410],{"class":357},"}",[336,412,413],{"class":353},")\n",[298,415,416],{},"This allows you to customize:",[418,419,420,427,433,439,452],"ul",{},[421,422,423,426],"li",{},[302,424,425],{},"version"," - Override the server version",[421,428,429,432],{},[302,430,431],{},"browserRedirect"," - Override the browser redirect URL",[421,434,435,438],{},[302,436,437],{},"name"," - Override the server name (optional)",[421,440,441,444,445,444,448,451],{},[302,442,443],{},"tools",", ",[302,446,447],{},"resources",[302,449,450],{},"prompts"," - Use specific definitions instead of global ones",[421,453,454,457,458,462],{},[302,455,456],{},"middleware"," - Add request interception for auth, logging, etc. (",[459,460,461],"a",{"href":221},"learn more",")",[464,465,468,469,472,473,477,478,481,482,485],"callout",{"color":466,"icon":467},"info","i-lucide-info","The ",[302,470,471],{},"route"," property is ",[474,475,476],"strong",{},"ignored"," for the default handler. To change the route, use ",[302,479,480],{},"mcp.route"," in your ",[302,483,484],{},"nuxt.config.ts",".",[487,488,490],"h4",{"id":489},"example-custom-version-and-redirect","Example: Custom Version and Redirect",[326,492,494],{"className":328,"code":493,"filename":330,"language":331,"meta":332,"style":332},"export default defineMcpHandler({\n  name: 'My Documentation MCP',\n  version: '1.2.0',\n  browserRedirect: '\u002Fgetting-started',\n})\n",[302,495,496,508,524,539,553],{"__ignoreMap":332},[336,497,498,500,502,504,506],{"class":338,"line":339},[336,499,343],{"class":342},[336,501,346],{"class":342},[336,503,350],{"class":349},[336,505,354],{"class":353},[336,507,358],{"class":357},[336,509,510,513,515,517,520,522],{"class":338,"line":361},[336,511,512],{"class":364},"  name",[336,514,324],{"class":357},[336,516,370],{"class":357},[336,518,519],{"class":373},"My Documentation MCP",[336,521,377],{"class":357},[336,523,380],{"class":357},[336,525,526,528,530,532,535,537],{"class":338,"line":383},[336,527,365],{"class":364},[336,529,324],{"class":357},[336,531,370],{"class":357},[336,533,534],{"class":373},"1.2.0",[336,536,377],{"class":357},[336,538,380],{"class":357},[336,540,541,543,545,547,549,551],{"class":338,"line":400},[336,542,386],{"class":364},[336,544,324],{"class":357},[336,546,370],{"class":357},[336,548,6],{"class":373},[336,550,377],{"class":357},[336,552,380],{"class":357},[336,554,555,557],{"class":338,"line":407},[336,556,410],{"class":357},[336,558,413],{"class":353},[487,560,562],{"id":561},"example-limiting-exposed-tools","Example: Limiting Exposed Tools",[326,564,566],{"className":328,"code":565,"filename":330,"language":331,"meta":332,"style":332},"import { myTool, anotherTool } from '.\u002Ftools\u002Fmy-tools'\n\nexport default defineMcpHandler({\n  \u002F\u002F Only expose specific tools instead of all tools in server\u002Fmcp\u002Ftools\u002F\n  tools: [myTool, anotherTool],\n})\n",[302,567,568,599,605,617,622,639],{"__ignoreMap":332},[336,569,570,573,576,579,582,585,588,591,593,596],{"class":338,"line":339},[336,571,572],{"class":342},"import",[336,574,575],{"class":357}," {",[336,577,578],{"class":353}," myTool",[336,580,581],{"class":357},",",[336,583,584],{"class":353}," anotherTool",[336,586,587],{"class":357}," }",[336,589,590],{"class":342}," from",[336,592,370],{"class":357},[336,594,595],{"class":373},".\u002Ftools\u002Fmy-tools",[336,597,598],{"class":357},"'\n",[336,600,601],{"class":338,"line":361},[336,602,604],{"emptyLinePlaceholder":603},true,"\n",[336,606,607,609,611,613,615],{"class":338,"line":383},[336,608,343],{"class":342},[336,610,346],{"class":342},[336,612,350],{"class":349},[336,614,354],{"class":353},[336,616,358],{"class":357},[336,618,619],{"class":338,"line":400},[336,620,621],{"class":403},"  \u002F\u002F Only expose specific tools instead of all tools in server\u002Fmcp\u002Ftools\u002F\n",[336,623,624,627,629,632,634,637],{"class":338,"line":407},[336,625,626],{"class":364},"  tools",[336,628,324],{"class":357},[336,630,631],{"class":353}," [myTool",[336,633,581],{"class":357},[336,635,636],{"class":353}," anotherTool]",[336,638,380],{"class":357},[336,640,642,644],{"class":338,"line":641},6,[336,643,410],{"class":357},[336,645,413],{"class":353},[298,647,648,649,652,653,656,657,485],{},"To let ",[474,650,651],{},"clients"," pick a subset per connection (without a custom handler), they send ",[302,654,655],{},"X-MCP-Tools",". See ",[459,658,660],{"href":659},"\u002Fgetting-started\u002Fconnection#limit-available-tools","Limit available tools",[293,662,664],{"id":663},"custom-handlers","Custom Handlers",[298,666,667,668,324],{},"Create custom handlers using ",[302,669,670],{},"defineMcpHandler",[326,672,675],{"className":328,"code":673,"filename":674,"language":331,"meta":332,"style":332},"import { z } from 'zod'\nimport { defineMcpTool, defineMcpHandler } from '@nuxtjs\u002Fmcp-toolkit\u002Fserver'\n\nconst migrationTool = defineMcpTool({\n  name: 'migrate-v3-to-v4',\n  title: 'Migrate v3 to v4',\n  description: 'Migrate code from version 3 to version 4',\n  inputSchema: {\n    code: z.string().describe('The code to migrate'),\n  },\n  handler: async ({ code }) => {\n    return code.replace(\u002Fv3\u002Fg, 'v4')\n  },\n})\n\nexport default defineMcpHandler({\n  name: 'migration',\n  version: '0.1.0',\n  route: '\u002Fmcp\u002Fmigration',\n  tools: [migrationTool],\n  browserRedirect: '\u002F',\n})\n","server\u002Fmcp\u002Fmigration.ts",[302,676,677,697,721,725,743,758,774,791,802,838,844,870,908,913,920,925,938,954,970,987,999,1014],{"__ignoreMap":332},[336,678,679,681,683,686,688,690,692,695],{"class":338,"line":339},[336,680,572],{"class":342},[336,682,575],{"class":357},[336,684,685],{"class":353}," z",[336,687,587],{"class":357},[336,689,590],{"class":342},[336,691,370],{"class":357},[336,693,694],{"class":373},"zod",[336,696,598],{"class":357},[336,698,699,701,703,706,708,710,712,714,716,719],{"class":338,"line":361},[336,700,572],{"class":342},[336,702,575],{"class":357},[336,704,705],{"class":353}," defineMcpTool",[336,707,581],{"class":357},[336,709,350],{"class":353},[336,711,587],{"class":357},[336,713,590],{"class":342},[336,715,370],{"class":357},[336,717,718],{"class":373},"@nuxtjs\u002Fmcp-toolkit\u002Fserver",[336,720,598],{"class":357},[336,722,723],{"class":338,"line":383},[336,724,604],{"emptyLinePlaceholder":603},[336,726,727,731,734,737,739,741],{"class":338,"line":400},[336,728,730],{"class":729},"spNyl","const",[336,732,733],{"class":353}," migrationTool ",[336,735,736],{"class":357},"=",[336,738,705],{"class":349},[336,740,354],{"class":353},[336,742,358],{"class":357},[336,744,745,747,749,751,754,756],{"class":338,"line":407},[336,746,512],{"class":364},[336,748,324],{"class":357},[336,750,370],{"class":357},[336,752,753],{"class":373},"migrate-v3-to-v4",[336,755,377],{"class":357},[336,757,380],{"class":357},[336,759,760,763,765,767,770,772],{"class":338,"line":641},[336,761,762],{"class":364},"  title",[336,764,324],{"class":357},[336,766,370],{"class":357},[336,768,769],{"class":373},"Migrate v3 to v4",[336,771,377],{"class":357},[336,773,380],{"class":357},[336,775,777,780,782,784,787,789],{"class":338,"line":776},7,[336,778,779],{"class":364},"  description",[336,781,324],{"class":357},[336,783,370],{"class":357},[336,785,786],{"class":373},"Migrate code from version 3 to version 4",[336,788,377],{"class":357},[336,790,380],{"class":357},[336,792,794,797,799],{"class":338,"line":793},8,[336,795,796],{"class":364},"  inputSchema",[336,798,324],{"class":357},[336,800,801],{"class":357}," {\n",[336,803,805,808,810,812,814,817,820,822,825,827,829,832,834,836],{"class":338,"line":804},9,[336,806,807],{"class":364},"    code",[336,809,324],{"class":357},[336,811,685],{"class":353},[336,813,485],{"class":357},[336,815,816],{"class":349},"string",[336,818,819],{"class":353},"()",[336,821,485],{"class":357},[336,823,824],{"class":349},"describe",[336,826,354],{"class":353},[336,828,377],{"class":357},[336,830,831],{"class":373},"The code to migrate",[336,833,377],{"class":357},[336,835,462],{"class":353},[336,837,380],{"class":357},[336,839,841],{"class":338,"line":840},10,[336,842,843],{"class":357},"  },\n",[336,845,847,850,852,855,858,862,865,868],{"class":338,"line":846},11,[336,848,849],{"class":349},"  handler",[336,851,324],{"class":357},[336,853,854],{"class":729}," async",[336,856,857],{"class":357}," ({",[336,859,861],{"class":860},"sHdIc"," code",[336,863,864],{"class":357}," })",[336,866,867],{"class":729}," =>",[336,869,801],{"class":357},[336,871,873,876,878,880,883,885,888,891,893,897,899,901,904,906],{"class":338,"line":872},12,[336,874,875],{"class":342},"    return",[336,877,861],{"class":353},[336,879,485],{"class":357},[336,881,882],{"class":349},"replace",[336,884,354],{"class":364},[336,886,887],{"class":357},"\u002F",[336,889,890],{"class":373},"v3",[336,892,887],{"class":357},[336,894,896],{"class":895},"sbssI","g",[336,898,581],{"class":357},[336,900,370],{"class":357},[336,902,903],{"class":373},"v4",[336,905,377],{"class":357},[336,907,413],{"class":364},[336,909,911],{"class":338,"line":910},13,[336,912,843],{"class":357},[336,914,916,918],{"class":338,"line":915},14,[336,917,410],{"class":357},[336,919,413],{"class":353},[336,921,923],{"class":338,"line":922},15,[336,924,604],{"emptyLinePlaceholder":603},[336,926,928,930,932,934,936],{"class":338,"line":927},16,[336,929,343],{"class":342},[336,931,346],{"class":342},[336,933,350],{"class":349},[336,935,354],{"class":353},[336,937,358],{"class":357},[336,939,941,943,945,947,950,952],{"class":338,"line":940},17,[336,942,512],{"class":364},[336,944,324],{"class":357},[336,946,370],{"class":357},[336,948,949],{"class":373},"migration",[336,951,377],{"class":357},[336,953,380],{"class":357},[336,955,957,959,961,963,966,968],{"class":338,"line":956},18,[336,958,365],{"class":364},[336,960,324],{"class":357},[336,962,370],{"class":357},[336,964,965],{"class":373},"0.1.0",[336,967,377],{"class":357},[336,969,380],{"class":357},[336,971,973,976,978,980,983,985],{"class":338,"line":972},19,[336,974,975],{"class":364},"  route",[336,977,324],{"class":357},[336,979,370],{"class":357},[336,981,982],{"class":373},"\u002Fmcp\u002Fmigration",[336,984,377],{"class":357},[336,986,380],{"class":357},[336,988,990,992,994,997],{"class":338,"line":989},20,[336,991,626],{"class":364},[336,993,324],{"class":357},[336,995,996],{"class":353}," [migrationTool]",[336,998,380],{"class":357},[336,1000,1002,1004,1006,1008,1010,1012],{"class":338,"line":1001},21,[336,1003,386],{"class":364},[336,1005,324],{"class":357},[336,1007,370],{"class":357},[336,1009,887],{"class":373},[336,1011,377],{"class":357},[336,1013,380],{"class":357},[336,1015,1017,1019],{"class":338,"line":1016},22,[336,1018,410],{"class":357},[336,1020,413],{"class":353},[1022,1023,1024],"style",{},"html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sHdIc, html code.shiki .sHdIc{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#EEFFFF;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}",{"title":332,"searchDepth":361,"depth":361,"links":1026},[1027,1030],{"id":295,"depth":361,"text":296,"children":1028},[1029],{"id":313,"depth":383,"text":314},{"id":663,"depth":361,"text":664},"Override the default `\u002Fmcp` handler and add custom defineMcpHandler endpoints.","md",null,{},{"icon":135},{"title":1037,"description":1038},"Default & custom MCP handlers","server\u002Fmcp\u002Findex.ts override, defineMcpHandler, and custom routes.","-3I2WNKmQikKyoNyareVwyLYYF-lOst5gcc-H3REpeE",[1041,1043],{"title":46,"path":128,"stem":129,"description":1042,"icon":130,"children":-1},"Create custom MCP endpoints with their own tools, resources, and prompts.",{"title":137,"path":138,"stem":139,"description":1044,"icon":140,"children":-1},"Required fields and every defineMcpHandler option, including tools, resources, and prompts.",1787670842806]