[{"data":1,"prerenderedAt":1927},["ShallowReactive",2],{"navigation_docs":3,"-handlers-structure-and-options":272,"-handlers-structure-and-options-surround":1922},[4,40,70,99,122,151,184,243],{"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},"MCP 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],{"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,"children":155,"page":39},"Apps","\u002Fapps","6.apps",[156,160,165,170,174,179],{"title":46,"path":157,"stem":158,"icon":159},"\u002Fapps\u002Foverview","6.apps\u002F0.overview","i-lucide-app-window",{"title":161,"path":162,"stem":163,"icon":164},"Authoring & defineMcpApp","\u002Fapps\u002Fauthoring","6.apps\u002F1.authoring","i-lucide-code-2",{"title":166,"path":167,"stem":168,"icon":169},"useMcpApp() bridge","\u002Fapps\u002Fuse-mcp-app","6.apps\u002F2.use-mcp-app","i-lucide-message-circle",{"title":171,"path":172,"stem":173,"icon":64},"CSP & build pipeline","\u002Fapps\u002Fcsp-and-wiring","6.apps\u002F3.csp-and-wiring",{"title":175,"path":176,"stem":177,"icon":178},"Testing & publishing","\u002Fapps\u002Ftesting-publishing","6.apps\u002F4.testing-publishing","i-lucide-rocket",{"title":180,"path":181,"stem":182,"icon":183},"Patterns & limits","\u002Fapps\u002Fpatterns-reference","6.apps\u002F5.patterns-reference","i-lucide-book-marked",{"title":185,"path":186,"stem":187,"children":188,"page":39},"Advanced Topics","\u002Fadvanced","7.advanced",[189,194,199,204,208,213,218,223,228,233,238],{"title":190,"path":191,"stem":192,"icon":193},"Custom Paths","\u002Fadvanced\u002Fcustom-paths","7.advanced\u002F1.custom-paths","i-lucide-folder",{"title":195,"path":196,"stem":197,"icon":198},"Logging","\u002Fadvanced\u002Flogging","7.advanced\u002F10.logging","i-lucide-scroll-text",{"title":200,"path":201,"stem":202,"icon":203},"MCP Apps Internals","\u002Fadvanced\u002Fmcp-apps-internals","7.advanced\u002F11.mcp-apps-internals","i-lucide-cog",{"title":205,"path":206,"stem":207,"icon":64},"Middleware","\u002Fadvanced\u002Fmiddleware","7.advanced\u002F2.middleware",{"title":209,"path":210,"stem":211,"icon":212},"TypeScript","\u002Fadvanced\u002Ftypescript","7.advanced\u002F3.typescript","i-lucide-type",{"title":214,"path":215,"stem":216,"icon":217},"Hooks","\u002Fadvanced\u002Fhooks","7.advanced\u002F4.hooks","i-lucide-webhook",{"title":219,"path":220,"stem":221,"icon":222},"MCP Evals","\u002Fadvanced\u002Fevals","7.advanced\u002F5.evals","i-lucide-flask-conical",{"title":224,"path":225,"stem":226,"icon":227},"Sessions","\u002Fadvanced\u002Fsessions","7.advanced\u002F6.sessions","i-lucide-database",{"title":229,"path":230,"stem":231,"icon":232},"Dynamic Definitions","\u002Fadvanced\u002Fdynamic-definitions","7.advanced\u002F7.dynamic-definitions","i-lucide-toggle-right",{"title":234,"path":235,"stem":236,"icon":237},"Code Mode","\u002Fadvanced\u002Fcode-mode","7.advanced\u002F8.code-mode","i-lucide-code",{"title":239,"path":240,"stem":241,"icon":242},"Elicitation","\u002Fadvanced\u002Felicitation","7.advanced\u002F9.elicitation","i-lucide-message-square-quote",{"title":244,"path":245,"stem":246,"children":247,"page":39},"Examples","\u002Fexamples","8.examples",[248,253,258,263,268],{"title":249,"path":250,"stem":251,"icon":252},"Authentication","\u002Fexamples\u002Fauthentication","8.examples\u002F1.authentication","i-lucide-shield-check",{"title":254,"path":255,"stem":256,"icon":257},"API Integration","\u002Fexamples\u002Fapi-integration","8.examples\u002F2.api-integration","i-lucide-globe",{"title":259,"path":260,"stem":261,"icon":262},"Common Patterns","\u002Fexamples\u002Fcommon-patterns","8.examples\u002F3.common-patterns","i-lucide-lightbulb",{"title":264,"path":265,"stem":266,"icon":267},"File Operations","\u002Fexamples\u002Ffile-operations","8.examples\u002F4.file-operations","i-lucide-file",{"title":269,"path":270,"stem":271,"icon":107},"Prompt Examples","\u002Fexamples\u002Fprompt-examples","8.examples\u002F5.prompt-examples",{"id":273,"title":137,"body":274,"description":1913,"extension":1914,"links":1915,"meta":1916,"navigation":1917,"path":138,"seo":1918,"stem":139,"__hash__":1921},"docs\u002F5.handlers\u002F2.structure-and-options.md",{"type":275,"value":276,"toc":1890},"minimark",[277,282,286,626,630,638,648,711,718,721,795,801,806,829,906,912,917,991,997,1000,1110,1119,1125,1135,1230,1240,1246,1252,1255,1607,1616,1622,1625,1751,1757,1760,1886],[278,279,281],"h2",{"id":280},"handler-structure","Handler Structure",[283,284,285],"p",{},"A handler definition consists of:",[287,288,289,392],"code-group",{},[290,291,297],"pre",{"className":292,"code":293,"filename":294,"language":295,"meta":296,"style":296},"language-typescript shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import { defineMcpHandler } from '@nuxtjs\u002Fmcp-toolkit\u002Fserver'\n\nexport default defineMcpHandler({\n  name: 'handler-name',  \u002F\u002F Unique identifier\n})\n","Required Fields","typescript","",[298,299,300,333,340,358,383],"code",{"__ignoreMap":296},[301,302,305,309,313,317,320,323,326,330],"span",{"class":303,"line":304},"line",1,[301,306,308],{"class":307},"s7zQu","import",[301,310,312],{"class":311},"sMK4o"," {",[301,314,316],{"class":315},"sTEyZ"," defineMcpHandler",[301,318,319],{"class":311}," }",[301,321,322],{"class":307}," from",[301,324,325],{"class":311}," '",[301,327,329],{"class":328},"sfazB","@nuxtjs\u002Fmcp-toolkit\u002Fserver",[301,331,332],{"class":311},"'\n",[301,334,336],{"class":303,"line":335},2,[301,337,339],{"emptyLinePlaceholder":338},true,"\n",[301,341,343,346,349,352,355],{"class":303,"line":342},3,[301,344,345],{"class":307},"export",[301,347,348],{"class":307}," default",[301,350,316],{"class":351},"s2Zo4",[301,353,354],{"class":315},"(",[301,356,357],{"class":311},"{\n",[301,359,361,365,368,370,373,376,379],{"class":303,"line":360},4,[301,362,364],{"class":363},"swJcz","  name",[301,366,367],{"class":311},":",[301,369,325],{"class":311},[301,371,372],{"class":328},"handler-name",[301,374,375],{"class":311},"'",[301,377,378],{"class":311},",",[301,380,382],{"class":381},"sHwdD","  \u002F\u002F Unique identifier\n",[301,384,386,389],{"class":303,"line":385},5,[301,387,388],{"class":311},"}",[301,390,391],{"class":315},")\n",[290,393,396],{"className":292,"code":394,"filename":395,"language":295,"meta":296,"style":296},"import { defineMcpHandler } from '@nuxtjs\u002Fmcp-toolkit\u002Fserver'\n\nexport default defineMcpHandler({\n  name: 'handler-name',\n  version: '1.0.0',              \u002F\u002F Handler version\n  route: '\u002Fmcp\u002Fcustom',          \u002F\u002F Custom route\n  browserRedirect: '\u002F',          \u002F\u002F Browser redirect URL\n  middleware: async (event) => { ... }, \u002F\u002F Request interception\n  tools: [ ... ],                 \u002F\u002F Array of tools\n  resources: [ ... ],            \u002F\u002F Array of resources\n  prompts: [ ... ],               \u002F\u002F Array of prompts\n  experimental_codeMode: true,    \u002F\u002F Enable code mode (experimental)\n})\n","Optional Fields",[298,397,398,416,420,432,447,466,486,506,542,564,583,602,619],{"__ignoreMap":296},[301,399,400,402,404,406,408,410,412,414],{"class":303,"line":304},[301,401,308],{"class":307},[301,403,312],{"class":311},[301,405,316],{"class":315},[301,407,319],{"class":311},[301,409,322],{"class":307},[301,411,325],{"class":311},[301,413,329],{"class":328},[301,415,332],{"class":311},[301,417,418],{"class":303,"line":335},[301,419,339],{"emptyLinePlaceholder":338},[301,421,422,424,426,428,430],{"class":303,"line":342},[301,423,345],{"class":307},[301,425,348],{"class":307},[301,427,316],{"class":351},[301,429,354],{"class":315},[301,431,357],{"class":311},[301,433,434,436,438,440,442,444],{"class":303,"line":360},[301,435,364],{"class":363},[301,437,367],{"class":311},[301,439,325],{"class":311},[301,441,372],{"class":328},[301,443,375],{"class":311},[301,445,446],{"class":311},",\n",[301,448,449,452,454,456,459,461,463],{"class":303,"line":385},[301,450,451],{"class":363},"  version",[301,453,367],{"class":311},[301,455,325],{"class":311},[301,457,458],{"class":328},"1.0.0",[301,460,375],{"class":311},[301,462,378],{"class":311},[301,464,465],{"class":381},"              \u002F\u002F Handler version\n",[301,467,469,472,474,476,479,481,483],{"class":303,"line":468},6,[301,470,471],{"class":363},"  route",[301,473,367],{"class":311},[301,475,325],{"class":311},[301,477,478],{"class":328},"\u002Fmcp\u002Fcustom",[301,480,375],{"class":311},[301,482,378],{"class":311},[301,484,485],{"class":381},"          \u002F\u002F Custom route\n",[301,487,489,492,494,496,499,501,503],{"class":303,"line":488},7,[301,490,491],{"class":363},"  browserRedirect",[301,493,367],{"class":311},[301,495,325],{"class":311},[301,497,498],{"class":328},"\u002F",[301,500,375],{"class":311},[301,502,378],{"class":311},[301,504,505],{"class":381},"          \u002F\u002F Browser redirect URL\n",[301,507,509,512,514,518,521,525,528,531,533,536,539],{"class":303,"line":508},8,[301,510,511],{"class":351},"  middleware",[301,513,367],{"class":311},[301,515,517],{"class":516},"spNyl"," async",[301,519,520],{"class":311}," (",[301,522,524],{"class":523},"sHdIc","event",[301,526,527],{"class":311},")",[301,529,530],{"class":516}," =>",[301,532,312],{"class":311},[301,534,535],{"class":311}," ...",[301,537,538],{"class":311}," },",[301,540,541],{"class":381}," \u002F\u002F Request interception\n",[301,543,545,548,550,553,556,559,561],{"class":303,"line":544},9,[301,546,547],{"class":363},"  tools",[301,549,367],{"class":311},[301,551,552],{"class":315}," [ ",[301,554,555],{"class":311},"...",[301,557,558],{"class":315}," ]",[301,560,378],{"class":311},[301,562,563],{"class":381},"                 \u002F\u002F Array of tools\n",[301,565,567,570,572,574,576,578,580],{"class":303,"line":566},10,[301,568,569],{"class":363},"  resources",[301,571,367],{"class":311},[301,573,552],{"class":315},[301,575,555],{"class":311},[301,577,558],{"class":315},[301,579,378],{"class":311},[301,581,582],{"class":381},"            \u002F\u002F Array of resources\n",[301,584,586,589,591,593,595,597,599],{"class":303,"line":585},11,[301,587,588],{"class":363},"  prompts",[301,590,367],{"class":311},[301,592,552],{"class":315},[301,594,555],{"class":311},[301,596,558],{"class":315},[301,598,378],{"class":311},[301,600,601],{"class":381},"               \u002F\u002F Array of prompts\n",[301,603,605,608,610,614,616],{"class":303,"line":604},12,[301,606,607],{"class":363},"  experimental_codeMode",[301,609,367],{"class":311},[301,611,613],{"class":612},"sfNiH"," true",[301,615,378],{"class":311},[301,617,618],{"class":381},"    \u002F\u002F Enable code mode (experimental)\n",[301,620,622,624],{"class":303,"line":621},13,[301,623,388],{"class":311},[301,625,391],{"class":315},[278,627,629],{"id":628},"handler-options","Handler Options",[631,632,634,637],"h3",{"id":633},"name-required",[298,635,636],{},"name"," (required)",[283,639,640,641,643,644,647],{},"Unique identifier for the handler. The ",[298,642,636],{}," determines where the handler will be mounted. By default, the handler will be accessible at ",[298,645,646],{},"\u002Fmcp\u002F:name",".",[290,649,651],{"className":292,"code":650,"language":295,"meta":296,"style":296},"import { defineMcpHandler } from '@nuxtjs\u002Fmcp-toolkit\u002Fserver'\n\nexport default defineMcpHandler({\n  name: 'migration', \u002F\u002F Handler mounted at \u002Fmcp\u002Fmigration\n})\n",[298,652,653,671,675,687,705],{"__ignoreMap":296},[301,654,655,657,659,661,663,665,667,669],{"class":303,"line":304},[301,656,308],{"class":307},[301,658,312],{"class":311},[301,660,316],{"class":315},[301,662,319],{"class":311},[301,664,322],{"class":307},[301,666,325],{"class":311},[301,668,329],{"class":328},[301,670,332],{"class":311},[301,672,673],{"class":303,"line":335},[301,674,339],{"emptyLinePlaceholder":338},[301,676,677,679,681,683,685],{"class":303,"line":342},[301,678,345],{"class":307},[301,680,348],{"class":307},[301,682,316],{"class":351},[301,684,354],{"class":315},[301,686,357],{"class":311},[301,688,689,691,693,695,698,700,702],{"class":303,"line":360},[301,690,364],{"class":363},[301,692,367],{"class":311},[301,694,325],{"class":311},[301,696,697],{"class":328},"migration",[301,699,375],{"class":311},[301,701,378],{"class":311},[301,703,704],{"class":381}," \u002F\u002F Handler mounted at \u002Fmcp\u002Fmigration\n",[301,706,707,709],{"class":303,"line":385},[301,708,388],{"class":311},[301,710,391],{"class":315},[631,712,714,717],{"id":713},"version-optional",[298,715,716],{},"version"," (optional)",[283,719,720],{},"Version of the handler. Defaults to the module's configured version.",[290,722,724],{"className":292,"code":723,"language":295,"meta":296,"style":296},"import { defineMcpHandler } from '@nuxtjs\u002Fmcp-toolkit\u002Fserver'\n\nexport default defineMcpHandler({\n  name: 'migration',\n  version: '2.0.0',\n})\n",[298,725,726,744,748,760,774,789],{"__ignoreMap":296},[301,727,728,730,732,734,736,738,740,742],{"class":303,"line":304},[301,729,308],{"class":307},[301,731,312],{"class":311},[301,733,316],{"class":315},[301,735,319],{"class":311},[301,737,322],{"class":307},[301,739,325],{"class":311},[301,741,329],{"class":328},[301,743,332],{"class":311},[301,745,746],{"class":303,"line":335},[301,747,339],{"emptyLinePlaceholder":338},[301,749,750,752,754,756,758],{"class":303,"line":342},[301,751,345],{"class":307},[301,753,348],{"class":307},[301,755,316],{"class":351},[301,757,354],{"class":315},[301,759,357],{"class":311},[301,761,762,764,766,768,770,772],{"class":303,"line":360},[301,763,364],{"class":363},[301,765,367],{"class":311},[301,767,325],{"class":311},[301,769,697],{"class":328},[301,771,375],{"class":311},[301,773,446],{"class":311},[301,775,776,778,780,782,785,787],{"class":303,"line":385},[301,777,451],{"class":363},[301,779,367],{"class":311},[301,781,325],{"class":311},[301,783,784],{"class":328},"2.0.0",[301,786,375],{"class":311},[301,788,446],{"class":311},[301,790,791,793],{"class":303,"line":468},[301,792,388],{"class":311},[301,794,391],{"class":315},[631,796,798,717],{"id":797},"route-optional",[298,799,800],{},"route",[283,802,803,804,647],{},"Custom route for the handler. Defaults to ",[298,805,646],{},[807,808,811,812,816,817,820,821,824,825,828],"callout",{"color":809,"icon":810},"info","i-lucide-info","This option is only used for ",[813,814,815],"strong",{},"custom handlers",". For the default handler override (",[298,818,819],{},"index.ts","), use ",[298,822,823],{},"mcp.route"," in ",[298,826,827],{},"nuxt.config.ts"," instead.",[290,830,832],{"className":292,"code":831,"language":295,"meta":296,"style":296},"import { defineMcpHandler } from '@nuxtjs\u002Fmcp-toolkit\u002Fserver'\n\nexport default defineMcpHandler({\n  name: 'migration',\n  route: '\u002Fapi\u002Fmcp\u002Fmigration', \u002F\u002F Custom route\n})\n",[298,833,834,852,856,868,882,900],{"__ignoreMap":296},[301,835,836,838,840,842,844,846,848,850],{"class":303,"line":304},[301,837,308],{"class":307},[301,839,312],{"class":311},[301,841,316],{"class":315},[301,843,319],{"class":311},[301,845,322],{"class":307},[301,847,325],{"class":311},[301,849,329],{"class":328},[301,851,332],{"class":311},[301,853,854],{"class":303,"line":335},[301,855,339],{"emptyLinePlaceholder":338},[301,857,858,860,862,864,866],{"class":303,"line":342},[301,859,345],{"class":307},[301,861,348],{"class":307},[301,863,316],{"class":351},[301,865,354],{"class":315},[301,867,357],{"class":311},[301,869,870,872,874,876,878,880],{"class":303,"line":360},[301,871,364],{"class":363},[301,873,367],{"class":311},[301,875,325],{"class":311},[301,877,697],{"class":328},[301,879,375],{"class":311},[301,881,446],{"class":311},[301,883,884,886,888,890,893,895,897],{"class":303,"line":385},[301,885,471],{"class":363},[301,887,367],{"class":311},[301,889,325],{"class":311},[301,891,892],{"class":328},"\u002Fapi\u002Fmcp\u002Fmigration",[301,894,375],{"class":311},[301,896,378],{"class":311},[301,898,899],{"class":381}," \u002F\u002F Custom route\n",[301,901,902,904],{"class":303,"line":468},[301,903,388],{"class":311},[301,905,391],{"class":315},[631,907,909,717],{"id":908},"browserredirect-optional",[298,910,911],{},"browserRedirect",[283,913,914,915,647],{},"URL to redirect browsers when they access the handler endpoint. Defaults to the module's configured ",[298,916,911],{},[290,918,920],{"className":292,"code":919,"language":295,"meta":296,"style":296},"import { defineMcpHandler } from '@nuxtjs\u002Fmcp-toolkit\u002Fserver'\n\nexport default defineMcpHandler({\n  name: 'migration',\n  browserRedirect: '\u002Fdocs\u002Fmigration',\n})\n",[298,921,922,940,944,956,970,985],{"__ignoreMap":296},[301,923,924,926,928,930,932,934,936,938],{"class":303,"line":304},[301,925,308],{"class":307},[301,927,312],{"class":311},[301,929,316],{"class":315},[301,931,319],{"class":311},[301,933,322],{"class":307},[301,935,325],{"class":311},[301,937,329],{"class":328},[301,939,332],{"class":311},[301,941,942],{"class":303,"line":335},[301,943,339],{"emptyLinePlaceholder":338},[301,945,946,948,950,952,954],{"class":303,"line":342},[301,947,345],{"class":307},[301,949,348],{"class":307},[301,951,316],{"class":351},[301,953,354],{"class":315},[301,955,357],{"class":311},[301,957,958,960,962,964,966,968],{"class":303,"line":360},[301,959,364],{"class":363},[301,961,367],{"class":311},[301,963,325],{"class":311},[301,965,697],{"class":328},[301,967,375],{"class":311},[301,969,446],{"class":311},[301,971,972,974,976,978,981,983],{"class":303,"line":385},[301,973,491],{"class":363},[301,975,367],{"class":311},[301,977,325],{"class":311},[301,979,980],{"class":328},"\u002Fdocs\u002Fmigration",[301,982,375],{"class":311},[301,984,446],{"class":311},[301,986,987,989],{"class":303,"line":468},[301,988,388],{"class":311},[301,990,391],{"class":315},[631,992,994,717],{"id":993},"middleware-optional",[298,995,996],{},"middleware",[283,998,999],{},"Function to intercept requests before\u002Fafter they are processed. Useful for authentication, logging, and setting context.",[290,1001,1004],{"className":292,"code":1002,"filename":1003,"language":295,"meta":296,"style":296},"import { defineMcpHandler } from '@nuxtjs\u002Fmcp-toolkit\u002Fserver'\n\nexport default defineMcpHandler({\n  name: 'custom',\n  middleware: async (event) => {\n    event.context.userId = 'user-123'\n  },\n})\n","server\u002Fmcp\u002Fcustom.ts",[298,1005,1006,1024,1028,1040,1055,1074,1099,1104],{"__ignoreMap":296},[301,1007,1008,1010,1012,1014,1016,1018,1020,1022],{"class":303,"line":304},[301,1009,308],{"class":307},[301,1011,312],{"class":311},[301,1013,316],{"class":315},[301,1015,319],{"class":311},[301,1017,322],{"class":307},[301,1019,325],{"class":311},[301,1021,329],{"class":328},[301,1023,332],{"class":311},[301,1025,1026],{"class":303,"line":335},[301,1027,339],{"emptyLinePlaceholder":338},[301,1029,1030,1032,1034,1036,1038],{"class":303,"line":342},[301,1031,345],{"class":307},[301,1033,348],{"class":307},[301,1035,316],{"class":351},[301,1037,354],{"class":315},[301,1039,357],{"class":311},[301,1041,1042,1044,1046,1048,1051,1053],{"class":303,"line":360},[301,1043,364],{"class":363},[301,1045,367],{"class":311},[301,1047,325],{"class":311},[301,1049,1050],{"class":328},"custom",[301,1052,375],{"class":311},[301,1054,446],{"class":311},[301,1056,1057,1059,1061,1063,1065,1067,1069,1071],{"class":303,"line":385},[301,1058,511],{"class":351},[301,1060,367],{"class":311},[301,1062,517],{"class":516},[301,1064,520],{"class":311},[301,1066,524],{"class":523},[301,1068,527],{"class":311},[301,1070,530],{"class":516},[301,1072,1073],{"class":311}," {\n",[301,1075,1076,1079,1081,1084,1086,1089,1092,1094,1097],{"class":303,"line":468},[301,1077,1078],{"class":315},"    event",[301,1080,647],{"class":311},[301,1082,1083],{"class":315},"context",[301,1085,647],{"class":311},[301,1087,1088],{"class":315},"userId",[301,1090,1091],{"class":311}," =",[301,1093,325],{"class":311},[301,1095,1096],{"class":328},"user-123",[301,1098,332],{"class":311},[301,1100,1101],{"class":303,"line":488},[301,1102,1103],{"class":311},"  },\n",[301,1105,1106,1108],{"class":303,"line":508},[301,1107,388],{"class":311},[301,1109,391],{"class":315},[807,1111,1113,1114,1118],{"color":1112,"icon":13},"primary","See the ",[1115,1116,1117],"a",{"href":206},"Middleware guide"," for detailed documentation and examples.",[631,1120,1122,717],{"id":1121},"experimental_codemode-optional",[298,1123,1124],{},"experimental_codeMode",[283,1126,1127,1128,1130,1131,1134],{},"Enable ",[1115,1129,234],{"href":235}," to let LLMs orchestrate multiple tool calls in a single JavaScript execution. Pass ",[298,1132,1133],{},"true"," for defaults or an options object:",[290,1136,1138],{"className":292,"code":1137,"language":295,"meta":296,"style":296},"import { defineMcpHandler } from '@nuxtjs\u002Fmcp-toolkit\u002Fserver'\n\nexport default defineMcpHandler({\n  name: 'custom',\n  experimental_codeMode: {\n    progressive: true,\n    memoryLimit: 128,\n  },\n})\n",[298,1139,1140,1158,1162,1174,1188,1196,1207,1220,1224],{"__ignoreMap":296},[301,1141,1142,1144,1146,1148,1150,1152,1154,1156],{"class":303,"line":304},[301,1143,308],{"class":307},[301,1145,312],{"class":311},[301,1147,316],{"class":315},[301,1149,319],{"class":311},[301,1151,322],{"class":307},[301,1153,325],{"class":311},[301,1155,329],{"class":328},[301,1157,332],{"class":311},[301,1159,1160],{"class":303,"line":335},[301,1161,339],{"emptyLinePlaceholder":338},[301,1163,1164,1166,1168,1170,1172],{"class":303,"line":342},[301,1165,345],{"class":307},[301,1167,348],{"class":307},[301,1169,316],{"class":351},[301,1171,354],{"class":315},[301,1173,357],{"class":311},[301,1175,1176,1178,1180,1182,1184,1186],{"class":303,"line":360},[301,1177,364],{"class":363},[301,1179,367],{"class":311},[301,1181,325],{"class":311},[301,1183,1050],{"class":328},[301,1185,375],{"class":311},[301,1187,446],{"class":311},[301,1189,1190,1192,1194],{"class":303,"line":385},[301,1191,607],{"class":363},[301,1193,367],{"class":311},[301,1195,1073],{"class":311},[301,1197,1198,1201,1203,1205],{"class":303,"line":468},[301,1199,1200],{"class":363},"    progressive",[301,1202,367],{"class":311},[301,1204,613],{"class":612},[301,1206,446],{"class":311},[301,1208,1209,1212,1214,1218],{"class":303,"line":488},[301,1210,1211],{"class":363},"    memoryLimit",[301,1213,367],{"class":311},[301,1215,1217],{"class":1216},"sbssI"," 128",[301,1219,446],{"class":311},[301,1221,1222],{"class":303,"line":508},[301,1223,1103],{"class":311},[301,1225,1226,1228],{"class":303,"line":544},[301,1227,388],{"class":311},[301,1229,391],{"class":315},[283,1231,1232,1233,1236,1237,647],{},"Code Mode requires ",[298,1234,1235],{},"secure-exec"," and Node.js ",[298,1238,1239],{},">=18.16.0",[807,1241,1113,1242,1245],{"color":1112,"icon":13},[1115,1243,1244],{"href":235},"Code Mode guide"," for full documentation, security details, and configuration options.",[631,1247,1249,717],{"id":1248},"tools-optional",[298,1250,1251],{},"tools",[283,1253,1254],{},"Array of tool definitions specific to this handler, or a function that returns tools dynamically based on request context:",[287,1256,1257,1387],{},[290,1258,1261],{"className":292,"code":1259,"filename":1260,"language":295,"meta":296,"style":296},"import { defineMcpTool, defineMcpHandler } from '@nuxtjs\u002Fmcp-toolkit\u002Fserver'\n\nconst tool1 = defineMcpTool({ ... })\nconst tool2 = defineMcpTool({ ... })\n\nexport default defineMcpHandler({\n  name: 'custom',\n  tools: [tool1, tool2],\n})\n","Static array",[298,1262,1263,1286,1290,1314,1335,1339,1351,1365,1381],{"__ignoreMap":296},[301,1264,1265,1267,1269,1272,1274,1276,1278,1280,1282,1284],{"class":303,"line":304},[301,1266,308],{"class":307},[301,1268,312],{"class":311},[301,1270,1271],{"class":315}," defineMcpTool",[301,1273,378],{"class":311},[301,1275,316],{"class":315},[301,1277,319],{"class":311},[301,1279,322],{"class":307},[301,1281,325],{"class":311},[301,1283,329],{"class":328},[301,1285,332],{"class":311},[301,1287,1288],{"class":303,"line":335},[301,1289,339],{"emptyLinePlaceholder":338},[301,1291,1292,1295,1298,1301,1303,1305,1308,1310,1312],{"class":303,"line":342},[301,1293,1294],{"class":516},"const",[301,1296,1297],{"class":315}," tool1 ",[301,1299,1300],{"class":311},"=",[301,1302,1271],{"class":351},[301,1304,354],{"class":315},[301,1306,1307],{"class":311},"{",[301,1309,535],{"class":311},[301,1311,319],{"class":311},[301,1313,391],{"class":315},[301,1315,1316,1318,1321,1323,1325,1327,1329,1331,1333],{"class":303,"line":360},[301,1317,1294],{"class":516},[301,1319,1320],{"class":315}," tool2 ",[301,1322,1300],{"class":311},[301,1324,1271],{"class":351},[301,1326,354],{"class":315},[301,1328,1307],{"class":311},[301,1330,535],{"class":311},[301,1332,319],{"class":311},[301,1334,391],{"class":315},[301,1336,1337],{"class":303,"line":385},[301,1338,339],{"emptyLinePlaceholder":338},[301,1340,1341,1343,1345,1347,1349],{"class":303,"line":468},[301,1342,345],{"class":307},[301,1344,348],{"class":307},[301,1346,316],{"class":351},[301,1348,354],{"class":315},[301,1350,357],{"class":311},[301,1352,1353,1355,1357,1359,1361,1363],{"class":303,"line":488},[301,1354,364],{"class":363},[301,1356,367],{"class":311},[301,1358,325],{"class":311},[301,1360,1050],{"class":328},[301,1362,375],{"class":311},[301,1364,446],{"class":311},[301,1366,1367,1369,1371,1374,1376,1379],{"class":303,"line":508},[301,1368,547],{"class":363},[301,1370,367],{"class":311},[301,1372,1373],{"class":315}," [tool1",[301,1375,378],{"class":311},[301,1377,1378],{"class":315}," tool2]",[301,1380,446],{"class":311},[301,1382,1383,1385],{"class":303,"line":544},[301,1384,388],{"class":311},[301,1386,391],{"class":315},[290,1388,1391],{"className":292,"code":1389,"filename":1390,"language":295,"meta":296,"style":296},"import { defineMcpHandler } from '@nuxtjs\u002Fmcp-toolkit\u002Fserver'\n\nexport default defineMcpHandler({\n  name: 'custom',\n  middleware: async (event) => {\n    event.context.user = await getUser(event)\n  },\n  tools: async (event) => {\n    const base = [publicTool]\n    if (event.context.user?.role === 'admin') {\n      base.push(adminTool)\n    }\n    return base\n  },\n})\n","Dynamic function",[298,1392,1393,1411,1415,1427,1441,1459,1486,1490,1508,1527,1565,1582,1587,1595,1600],{"__ignoreMap":296},[301,1394,1395,1397,1399,1401,1403,1405,1407,1409],{"class":303,"line":304},[301,1396,308],{"class":307},[301,1398,312],{"class":311},[301,1400,316],{"class":315},[301,1402,319],{"class":311},[301,1404,322],{"class":307},[301,1406,325],{"class":311},[301,1408,329],{"class":328},[301,1410,332],{"class":311},[301,1412,1413],{"class":303,"line":335},[301,1414,339],{"emptyLinePlaceholder":338},[301,1416,1417,1419,1421,1423,1425],{"class":303,"line":342},[301,1418,345],{"class":307},[301,1420,348],{"class":307},[301,1422,316],{"class":351},[301,1424,354],{"class":315},[301,1426,357],{"class":311},[301,1428,1429,1431,1433,1435,1437,1439],{"class":303,"line":360},[301,1430,364],{"class":363},[301,1432,367],{"class":311},[301,1434,325],{"class":311},[301,1436,1050],{"class":328},[301,1438,375],{"class":311},[301,1440,446],{"class":311},[301,1442,1443,1445,1447,1449,1451,1453,1455,1457],{"class":303,"line":385},[301,1444,511],{"class":351},[301,1446,367],{"class":311},[301,1448,517],{"class":516},[301,1450,520],{"class":311},[301,1452,524],{"class":523},[301,1454,527],{"class":311},[301,1456,530],{"class":516},[301,1458,1073],{"class":311},[301,1460,1461,1463,1465,1467,1469,1472,1474,1477,1480,1482,1484],{"class":303,"line":468},[301,1462,1078],{"class":315},[301,1464,647],{"class":311},[301,1466,1083],{"class":315},[301,1468,647],{"class":311},[301,1470,1471],{"class":315},"user",[301,1473,1091],{"class":311},[301,1475,1476],{"class":307}," await",[301,1478,1479],{"class":351}," getUser",[301,1481,354],{"class":363},[301,1483,524],{"class":315},[301,1485,391],{"class":363},[301,1487,1488],{"class":303,"line":488},[301,1489,1103],{"class":311},[301,1491,1492,1494,1496,1498,1500,1502,1504,1506],{"class":303,"line":508},[301,1493,547],{"class":351},[301,1495,367],{"class":311},[301,1497,517],{"class":516},[301,1499,520],{"class":311},[301,1501,524],{"class":523},[301,1503,527],{"class":311},[301,1505,530],{"class":516},[301,1507,1073],{"class":311},[301,1509,1510,1513,1516,1518,1521,1524],{"class":303,"line":544},[301,1511,1512],{"class":516},"    const",[301,1514,1515],{"class":315}," base",[301,1517,1091],{"class":311},[301,1519,1520],{"class":363}," [",[301,1522,1523],{"class":315},"publicTool",[301,1525,1526],{"class":363},"]\n",[301,1528,1529,1532,1534,1536,1538,1540,1542,1544,1547,1550,1553,1555,1558,1560,1563],{"class":303,"line":566},[301,1530,1531],{"class":307},"    if",[301,1533,520],{"class":363},[301,1535,524],{"class":315},[301,1537,647],{"class":311},[301,1539,1083],{"class":315},[301,1541,647],{"class":311},[301,1543,1471],{"class":315},[301,1545,1546],{"class":311},"?.",[301,1548,1549],{"class":315},"role",[301,1551,1552],{"class":311}," ===",[301,1554,325],{"class":311},[301,1556,1557],{"class":328},"admin",[301,1559,375],{"class":311},[301,1561,1562],{"class":363},") ",[301,1564,357],{"class":311},[301,1566,1567,1570,1572,1575,1577,1580],{"class":303,"line":585},[301,1568,1569],{"class":315},"      base",[301,1571,647],{"class":311},[301,1573,1574],{"class":351},"push",[301,1576,354],{"class":363},[301,1578,1579],{"class":315},"adminTool",[301,1581,391],{"class":363},[301,1583,1584],{"class":303,"line":604},[301,1585,1586],{"class":311},"    }\n",[301,1588,1589,1592],{"class":303,"line":621},[301,1590,1591],{"class":307},"    return",[301,1593,1594],{"class":315}," base\n",[301,1596,1598],{"class":303,"line":1597},14,[301,1599,1103],{"class":311},[301,1601,1603,1605],{"class":303,"line":1602},15,[301,1604,388],{"class":311},[301,1606,391],{"class":315},[807,1608,1113,1609,1611,1612,1615],{"color":1112,"icon":13},[1115,1610,229],{"href":230}," guide for details on auth-based filtering and the ",[298,1613,1614],{},"enabled"," guard.",[631,1617,1619,717],{"id":1618},"resources-optional",[298,1620,1621],{},"resources",[283,1623,1624],{},"Array of resource definitions specific to this handler.",[290,1626,1628],{"className":292,"code":1627,"language":295,"meta":296,"style":296},"import { defineMcpResource, defineMcpHandler } from '@nuxtjs\u002Fmcp-toolkit\u002Fserver'\n\nconst resource1 = defineMcpResource({ ... })\nconst resource2 = defineMcpResource({ ... })\n\nexport default defineMcpHandler({\n  name: 'custom',\n  resources: [resource1, resource2],\n})\n",[298,1629,1630,1653,1657,1678,1699,1703,1715,1729,1745],{"__ignoreMap":296},[301,1631,1632,1634,1636,1639,1641,1643,1645,1647,1649,1651],{"class":303,"line":304},[301,1633,308],{"class":307},[301,1635,312],{"class":311},[301,1637,1638],{"class":315}," defineMcpResource",[301,1640,378],{"class":311},[301,1642,316],{"class":315},[301,1644,319],{"class":311},[301,1646,322],{"class":307},[301,1648,325],{"class":311},[301,1650,329],{"class":328},[301,1652,332],{"class":311},[301,1654,1655],{"class":303,"line":335},[301,1656,339],{"emptyLinePlaceholder":338},[301,1658,1659,1661,1664,1666,1668,1670,1672,1674,1676],{"class":303,"line":342},[301,1660,1294],{"class":516},[301,1662,1663],{"class":315}," resource1 ",[301,1665,1300],{"class":311},[301,1667,1638],{"class":351},[301,1669,354],{"class":315},[301,1671,1307],{"class":311},[301,1673,535],{"class":311},[301,1675,319],{"class":311},[301,1677,391],{"class":315},[301,1679,1680,1682,1685,1687,1689,1691,1693,1695,1697],{"class":303,"line":360},[301,1681,1294],{"class":516},[301,1683,1684],{"class":315}," resource2 ",[301,1686,1300],{"class":311},[301,1688,1638],{"class":351},[301,1690,354],{"class":315},[301,1692,1307],{"class":311},[301,1694,535],{"class":311},[301,1696,319],{"class":311},[301,1698,391],{"class":315},[301,1700,1701],{"class":303,"line":385},[301,1702,339],{"emptyLinePlaceholder":338},[301,1704,1705,1707,1709,1711,1713],{"class":303,"line":468},[301,1706,345],{"class":307},[301,1708,348],{"class":307},[301,1710,316],{"class":351},[301,1712,354],{"class":315},[301,1714,357],{"class":311},[301,1716,1717,1719,1721,1723,1725,1727],{"class":303,"line":488},[301,1718,364],{"class":363},[301,1720,367],{"class":311},[301,1722,325],{"class":311},[301,1724,1050],{"class":328},[301,1726,375],{"class":311},[301,1728,446],{"class":311},[301,1730,1731,1733,1735,1738,1740,1743],{"class":303,"line":508},[301,1732,569],{"class":363},[301,1734,367],{"class":311},[301,1736,1737],{"class":315}," [resource1",[301,1739,378],{"class":311},[301,1741,1742],{"class":315}," resource2]",[301,1744,446],{"class":311},[301,1746,1747,1749],{"class":303,"line":544},[301,1748,388],{"class":311},[301,1750,391],{"class":315},[631,1752,1754,717],{"id":1753},"prompts-optional",[298,1755,1756],{},"prompts",[283,1758,1759],{},"Array of prompt definitions specific to this handler.",[290,1761,1763],{"className":292,"code":1762,"language":295,"meta":296,"style":296},"import { defineMcpPrompt, defineMcpHandler } from '@nuxtjs\u002Fmcp-toolkit\u002Fserver'\n\nconst prompt1 = defineMcpPrompt({ ... })\nconst prompt2 = defineMcpPrompt({ ... })\n\nexport default defineMcpHandler({\n  name: 'custom',\n  prompts: [prompt1, prompt2],\n})\n",[298,1764,1765,1788,1792,1813,1834,1838,1850,1864,1880],{"__ignoreMap":296},[301,1766,1767,1769,1771,1774,1776,1778,1780,1782,1784,1786],{"class":303,"line":304},[301,1768,308],{"class":307},[301,1770,312],{"class":311},[301,1772,1773],{"class":315}," defineMcpPrompt",[301,1775,378],{"class":311},[301,1777,316],{"class":315},[301,1779,319],{"class":311},[301,1781,322],{"class":307},[301,1783,325],{"class":311},[301,1785,329],{"class":328},[301,1787,332],{"class":311},[301,1789,1790],{"class":303,"line":335},[301,1791,339],{"emptyLinePlaceholder":338},[301,1793,1794,1796,1799,1801,1803,1805,1807,1809,1811],{"class":303,"line":342},[301,1795,1294],{"class":516},[301,1797,1798],{"class":315}," prompt1 ",[301,1800,1300],{"class":311},[301,1802,1773],{"class":351},[301,1804,354],{"class":315},[301,1806,1307],{"class":311},[301,1808,535],{"class":311},[301,1810,319],{"class":311},[301,1812,391],{"class":315},[301,1814,1815,1817,1820,1822,1824,1826,1828,1830,1832],{"class":303,"line":360},[301,1816,1294],{"class":516},[301,1818,1819],{"class":315}," prompt2 ",[301,1821,1300],{"class":311},[301,1823,1773],{"class":351},[301,1825,354],{"class":315},[301,1827,1307],{"class":311},[301,1829,535],{"class":311},[301,1831,319],{"class":311},[301,1833,391],{"class":315},[301,1835,1836],{"class":303,"line":385},[301,1837,339],{"emptyLinePlaceholder":338},[301,1839,1840,1842,1844,1846,1848],{"class":303,"line":468},[301,1841,345],{"class":307},[301,1843,348],{"class":307},[301,1845,316],{"class":351},[301,1847,354],{"class":315},[301,1849,357],{"class":311},[301,1851,1852,1854,1856,1858,1860,1862],{"class":303,"line":488},[301,1853,364],{"class":363},[301,1855,367],{"class":311},[301,1857,325],{"class":311},[301,1859,1050],{"class":328},[301,1861,375],{"class":311},[301,1863,446],{"class":311},[301,1865,1866,1868,1870,1873,1875,1878],{"class":303,"line":508},[301,1867,588],{"class":363},[301,1869,367],{"class":311},[301,1871,1872],{"class":315}," [prompt1",[301,1874,378],{"class":311},[301,1876,1877],{"class":315}," prompt2]",[301,1879,446],{"class":311},[301,1881,1882,1884],{"class":303,"line":544},[301,1883,388],{"class":311},[301,1885,391],{"class":315},[1887,1888,1889],"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 .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}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 .sfNiH, html code.shiki .sfNiH{--shiki-light:#FF5370;--shiki-default:#FF9CAC;--shiki-dark:#FF9CAC}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}",{"title":296,"searchDepth":335,"depth":335,"links":1891},[1892,1893],{"id":280,"depth":335,"text":281},{"id":628,"depth":335,"text":629,"children":1894},[1895,1897,1899,1901,1903,1905,1907,1909,1911],{"id":633,"depth":342,"text":1896},"name (required)",{"id":713,"depth":342,"text":1898},"version (optional)",{"id":797,"depth":342,"text":1900},"route (optional)",{"id":908,"depth":342,"text":1902},"browserRedirect (optional)",{"id":993,"depth":342,"text":1904},"middleware (optional)",{"id":1121,"depth":342,"text":1906},"experimental_codeMode (optional)",{"id":1248,"depth":342,"text":1908},"tools (optional)",{"id":1618,"depth":342,"text":1910},"resources (optional)",{"id":1753,"depth":342,"text":1912},"prompts (optional)","Required fields and every defineMcpHandler option, including tools, resources, and prompts.","md",null,{},{"icon":140},{"title":1919,"description":1920},"Handler structure & options","defineMcpHandler fields, route, middleware, experimental_codeMode, tools, resources, prompts.","pMtYMGzzKx4AziepgGeNjjTsm0kARbLj7oUbBn-l0wk",[1923,1925],{"title":132,"path":133,"stem":134,"description":1924,"icon":135,"children":-1},"Override the default `\u002Fmcp` handler and add custom defineMcpHandler endpoints.",{"title":142,"path":143,"stem":144,"description":1926,"icon":145,"children":-1},"Full handler examples, multiple handlers, routes, and default vs custom comparison.",1777306545150]