[{"data":1,"prerenderedAt":2347},["ShallowReactive",2],{"navigation_docs":3,"-handlers-structure-and-options":287,"-handlers-structure-and-options-surround":2342},[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":137,"body":289,"description":2333,"extension":2334,"links":2335,"meta":2336,"navigation":2337,"path":138,"seo":2338,"stem":139,"__hash__":2341},"docs\u002F5.handlers\u002F2.structure-and-options.md",{"type":290,"value":291,"toc":2304},"minimark",[292,297,301,700,704,712,722,785,792,795,869,875,889,964,970,981,1055,1061,1087,1216,1238,1244,1249,1268,1345,1351,1356,1430,1436,1439,1549,1557,1563,1573,1668,1678,1684,1690,1693,1996,2015,2021,2033,2159,2165,2174,2300],[293,294,296],"h2",{"id":295},"handler-structure","Handler Structure",[298,299,300],"p",{},"A handler definition consists of:",[302,303,304,407],"code-group",{},[305,306,312],"pre",{"className":307,"code":308,"filename":309,"language":310,"meta":311,"style":311},"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","",[313,314,315,348,355,373,398],"code",{"__ignoreMap":311},[316,317,320,324,328,332,335,338,341,345],"span",{"class":318,"line":319},"line",1,[316,321,323],{"class":322},"s7zQu","import",[316,325,327],{"class":326},"sMK4o"," {",[316,329,331],{"class":330},"sTEyZ"," defineMcpHandler",[316,333,334],{"class":326}," }",[316,336,337],{"class":322}," from",[316,339,340],{"class":326}," '",[316,342,344],{"class":343},"sfazB","@nuxtjs\u002Fmcp-toolkit\u002Fserver",[316,346,347],{"class":326},"'\n",[316,349,351],{"class":318,"line":350},2,[316,352,354],{"emptyLinePlaceholder":353},true,"\n",[316,356,358,361,364,367,370],{"class":318,"line":357},3,[316,359,360],{"class":322},"export",[316,362,363],{"class":322}," default",[316,365,331],{"class":366},"s2Zo4",[316,368,369],{"class":330},"(",[316,371,372],{"class":326},"{\n",[316,374,376,380,383,385,388,391,394],{"class":318,"line":375},4,[316,377,379],{"class":378},"swJcz","  name",[316,381,382],{"class":326},":",[316,384,340],{"class":326},[316,386,387],{"class":343},"handler-name",[316,389,390],{"class":326},"'",[316,392,393],{"class":326},",",[316,395,397],{"class":396},"sHwdD","  \u002F\u002F Unique identifier\n",[316,399,401,404],{"class":318,"line":400},5,[316,402,403],{"class":326},"}",[316,405,406],{"class":330},")\n",[305,408,411],{"className":307,"code":409,"filename":410,"language":310,"meta":311,"style":311},"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  description: 'Admin tools',    \u002F\u002F serverInfo description shown by clients\n  instructions: 'Always …',      \u002F\u002F System-prompt guidance for LLMs\n  icons: [ ... ],                 \u002F\u002F Server icons shown in client UIs\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",[313,412,413,431,435,447,462,481,501,521,543,563,583,619,638,657,676,693],{"__ignoreMap":311},[316,414,415,417,419,421,423,425,427,429],{"class":318,"line":319},[316,416,323],{"class":322},[316,418,327],{"class":326},[316,420,331],{"class":330},[316,422,334],{"class":326},[316,424,337],{"class":322},[316,426,340],{"class":326},[316,428,344],{"class":343},[316,430,347],{"class":326},[316,432,433],{"class":318,"line":350},[316,434,354],{"emptyLinePlaceholder":353},[316,436,437,439,441,443,445],{"class":318,"line":357},[316,438,360],{"class":322},[316,440,363],{"class":322},[316,442,331],{"class":366},[316,444,369],{"class":330},[316,446,372],{"class":326},[316,448,449,451,453,455,457,459],{"class":318,"line":375},[316,450,379],{"class":378},[316,452,382],{"class":326},[316,454,340],{"class":326},[316,456,387],{"class":343},[316,458,390],{"class":326},[316,460,461],{"class":326},",\n",[316,463,464,467,469,471,474,476,478],{"class":318,"line":400},[316,465,466],{"class":378},"  version",[316,468,382],{"class":326},[316,470,340],{"class":326},[316,472,473],{"class":343},"1.0.0",[316,475,390],{"class":326},[316,477,393],{"class":326},[316,479,480],{"class":396},"              \u002F\u002F Handler version\n",[316,482,484,487,489,491,494,496,498],{"class":318,"line":483},6,[316,485,486],{"class":378},"  description",[316,488,382],{"class":326},[316,490,340],{"class":326},[316,492,493],{"class":343},"Admin tools",[316,495,390],{"class":326},[316,497,393],{"class":326},[316,499,500],{"class":396},"    \u002F\u002F serverInfo description shown by clients\n",[316,502,504,507,509,511,514,516,518],{"class":318,"line":503},7,[316,505,506],{"class":378},"  instructions",[316,508,382],{"class":326},[316,510,340],{"class":326},[316,512,513],{"class":343},"Always …",[316,515,390],{"class":326},[316,517,393],{"class":326},[316,519,520],{"class":396},"      \u002F\u002F System-prompt guidance for LLMs\n",[316,522,524,527,529,532,535,538,540],{"class":318,"line":523},8,[316,525,526],{"class":378},"  icons",[316,528,382],{"class":326},[316,530,531],{"class":330}," [ ",[316,533,534],{"class":326},"...",[316,536,537],{"class":330}," ]",[316,539,393],{"class":326},[316,541,542],{"class":396},"                 \u002F\u002F Server icons shown in client UIs\n",[316,544,546,549,551,553,556,558,560],{"class":318,"line":545},9,[316,547,548],{"class":378},"  route",[316,550,382],{"class":326},[316,552,340],{"class":326},[316,554,555],{"class":343},"\u002Fmcp\u002Fcustom",[316,557,390],{"class":326},[316,559,393],{"class":326},[316,561,562],{"class":396},"          \u002F\u002F Custom route\n",[316,564,566,569,571,573,576,578,580],{"class":318,"line":565},10,[316,567,568],{"class":378},"  browserRedirect",[316,570,382],{"class":326},[316,572,340],{"class":326},[316,574,575],{"class":343},"\u002F",[316,577,390],{"class":326},[316,579,393],{"class":326},[316,581,582],{"class":396},"          \u002F\u002F Browser redirect URL\n",[316,584,586,589,591,595,598,602,605,608,610,613,616],{"class":318,"line":585},11,[316,587,588],{"class":366},"  middleware",[316,590,382],{"class":326},[316,592,594],{"class":593},"spNyl"," async",[316,596,597],{"class":326}," (",[316,599,601],{"class":600},"sHdIc","event",[316,603,604],{"class":326},")",[316,606,607],{"class":593}," =>",[316,609,327],{"class":326},[316,611,612],{"class":326}," ...",[316,614,615],{"class":326}," },",[316,617,618],{"class":396}," \u002F\u002F Request interception\n",[316,620,622,625,627,629,631,633,635],{"class":318,"line":621},12,[316,623,624],{"class":378},"  tools",[316,626,382],{"class":326},[316,628,531],{"class":330},[316,630,534],{"class":326},[316,632,537],{"class":330},[316,634,393],{"class":326},[316,636,637],{"class":396},"                 \u002F\u002F Array of tools\n",[316,639,641,644,646,648,650,652,654],{"class":318,"line":640},13,[316,642,643],{"class":378},"  resources",[316,645,382],{"class":326},[316,647,531],{"class":330},[316,649,534],{"class":326},[316,651,537],{"class":330},[316,653,393],{"class":326},[316,655,656],{"class":396},"            \u002F\u002F Array of resources\n",[316,658,660,663,665,667,669,671,673],{"class":318,"line":659},14,[316,661,662],{"class":378},"  prompts",[316,664,382],{"class":326},[316,666,531],{"class":330},[316,668,534],{"class":326},[316,670,537],{"class":330},[316,672,393],{"class":326},[316,674,675],{"class":396},"               \u002F\u002F Array of prompts\n",[316,677,679,682,684,688,690],{"class":318,"line":678},15,[316,680,681],{"class":378},"  experimental_codeMode",[316,683,382],{"class":326},[316,685,687],{"class":686},"sfNiH"," true",[316,689,393],{"class":326},[316,691,692],{"class":396},"    \u002F\u002F Enable code mode (experimental)\n",[316,694,696,698],{"class":318,"line":695},16,[316,697,403],{"class":326},[316,699,406],{"class":330},[293,701,703],{"id":702},"handler-options","Handler Options",[705,706,708,711],"h3",{"id":707},"name-required",[313,709,710],{},"name"," (required)",[298,713,714,715,717,718,721],{},"Unique identifier for the handler. The ",[313,716,710],{}," determines where the handler will be mounted. By default, the handler will be accessible at ",[313,719,720],{},"\u002Fmcp\u002F:name",".",[305,723,725],{"className":307,"code":724,"language":310,"meta":311,"style":311},"import { defineMcpHandler } from '@nuxtjs\u002Fmcp-toolkit\u002Fserver'\n\nexport default defineMcpHandler({\n  name: 'migration', \u002F\u002F Handler mounted at \u002Fmcp\u002Fmigration\n})\n",[313,726,727,745,749,761,779],{"__ignoreMap":311},[316,728,729,731,733,735,737,739,741,743],{"class":318,"line":319},[316,730,323],{"class":322},[316,732,327],{"class":326},[316,734,331],{"class":330},[316,736,334],{"class":326},[316,738,337],{"class":322},[316,740,340],{"class":326},[316,742,344],{"class":343},[316,744,347],{"class":326},[316,746,747],{"class":318,"line":350},[316,748,354],{"emptyLinePlaceholder":353},[316,750,751,753,755,757,759],{"class":318,"line":357},[316,752,360],{"class":322},[316,754,363],{"class":322},[316,756,331],{"class":366},[316,758,369],{"class":330},[316,760,372],{"class":326},[316,762,763,765,767,769,772,774,776],{"class":318,"line":375},[316,764,379],{"class":378},[316,766,382],{"class":326},[316,768,340],{"class":326},[316,770,771],{"class":343},"migration",[316,773,390],{"class":326},[316,775,393],{"class":326},[316,777,778],{"class":396}," \u002F\u002F Handler mounted at \u002Fmcp\u002Fmigration\n",[316,780,781,783],{"class":318,"line":400},[316,782,403],{"class":326},[316,784,406],{"class":330},[705,786,788,791],{"id":787},"version-optional",[313,789,790],{},"version"," (optional)",[298,793,794],{},"Version of the handler. Defaults to the module's configured version.",[305,796,798],{"className":307,"code":797,"language":310,"meta":311,"style":311},"import { defineMcpHandler } from '@nuxtjs\u002Fmcp-toolkit\u002Fserver'\n\nexport default defineMcpHandler({\n  name: 'migration',\n  version: '2.0.0',\n})\n",[313,799,800,818,822,834,848,863],{"__ignoreMap":311},[316,801,802,804,806,808,810,812,814,816],{"class":318,"line":319},[316,803,323],{"class":322},[316,805,327],{"class":326},[316,807,331],{"class":330},[316,809,334],{"class":326},[316,811,337],{"class":322},[316,813,340],{"class":326},[316,815,344],{"class":343},[316,817,347],{"class":326},[316,819,820],{"class":318,"line":350},[316,821,354],{"emptyLinePlaceholder":353},[316,823,824,826,828,830,832],{"class":318,"line":357},[316,825,360],{"class":322},[316,827,363],{"class":322},[316,829,331],{"class":366},[316,831,369],{"class":330},[316,833,372],{"class":326},[316,835,836,838,840,842,844,846],{"class":318,"line":375},[316,837,379],{"class":378},[316,839,382],{"class":326},[316,841,340],{"class":326},[316,843,771],{"class":343},[316,845,390],{"class":326},[316,847,461],{"class":326},[316,849,850,852,854,856,859,861],{"class":318,"line":400},[316,851,466],{"class":378},[316,853,382],{"class":326},[316,855,340],{"class":326},[316,857,858],{"class":343},"2.0.0",[316,860,390],{"class":326},[316,862,461],{"class":326},[316,864,865,867],{"class":318,"line":483},[316,866,403],{"class":326},[316,868,406],{"class":330},[705,870,872,791],{"id":871},"description-optional",[313,873,874],{},"description",[298,876,877,878,881,882,885,886,721],{},"Human-readable description sent as part of ",[313,879,880],{},"serverInfo"," during MCP initialization. Clients use it to identify the handler in UIs (server lists, install prompts, tooltips). Falls back to ",[313,883,884],{},"mcp.description"," from ",[313,887,888],{},"nuxt.config.ts",[305,890,892],{"className":307,"code":891,"language":310,"meta":311,"style":311},"import { defineMcpHandler } from '@nuxtjs\u002Fmcp-toolkit\u002Fserver'\n\nexport default defineMcpHandler({\n  name: 'admin',\n  description: 'Admin tools — destructive operations gated by Bearer auth.',\n})\n",[313,893,894,912,916,928,943,958],{"__ignoreMap":311},[316,895,896,898,900,902,904,906,908,910],{"class":318,"line":319},[316,897,323],{"class":322},[316,899,327],{"class":326},[316,901,331],{"class":330},[316,903,334],{"class":326},[316,905,337],{"class":322},[316,907,340],{"class":326},[316,909,344],{"class":343},[316,911,347],{"class":326},[316,913,914],{"class":318,"line":350},[316,915,354],{"emptyLinePlaceholder":353},[316,917,918,920,922,924,926],{"class":318,"line":357},[316,919,360],{"class":322},[316,921,363],{"class":322},[316,923,331],{"class":366},[316,925,369],{"class":330},[316,927,372],{"class":326},[316,929,930,932,934,936,939,941],{"class":318,"line":375},[316,931,379],{"class":378},[316,933,382],{"class":326},[316,935,340],{"class":326},[316,937,938],{"class":343},"admin",[316,940,390],{"class":326},[316,942,461],{"class":326},[316,944,945,947,949,951,954,956],{"class":318,"line":400},[316,946,486],{"class":378},[316,948,382],{"class":326},[316,950,340],{"class":326},[316,952,953],{"class":343},"Admin tools — destructive operations gated by Bearer auth.",[316,955,390],{"class":326},[316,957,461],{"class":326},[316,959,960,962],{"class":318,"line":483},[316,961,403],{"class":326},[316,963,406],{"class":330},[705,965,967,791],{"id":966},"instructions-optional",[313,968,969],{},"instructions",[298,971,972,973,975,976,885,979,721],{},"Operational guidance for AI agents — typically injected by clients into the model's system prompt. Use this to describe workflows, constraints, or relationships between tools (use ",[313,974,874],{}," to identify the handler). Falls back to ",[313,977,978],{},"mcp.instructions",[313,980,888],{},[305,982,984],{"className":307,"code":983,"language":310,"meta":311,"style":311},"import { defineMcpHandler } from '@nuxtjs\u002Fmcp-toolkit\u002Fserver'\n\nexport default defineMcpHandler({\n  name: 'admin',\n  instructions: 'Always call list-users before delete-user. Confirm with the operator before any destructive action.',\n})\n",[313,985,986,1004,1008,1020,1034,1049],{"__ignoreMap":311},[316,987,988,990,992,994,996,998,1000,1002],{"class":318,"line":319},[316,989,323],{"class":322},[316,991,327],{"class":326},[316,993,331],{"class":330},[316,995,334],{"class":326},[316,997,337],{"class":322},[316,999,340],{"class":326},[316,1001,344],{"class":343},[316,1003,347],{"class":326},[316,1005,1006],{"class":318,"line":350},[316,1007,354],{"emptyLinePlaceholder":353},[316,1009,1010,1012,1014,1016,1018],{"class":318,"line":357},[316,1011,360],{"class":322},[316,1013,363],{"class":322},[316,1015,331],{"class":366},[316,1017,369],{"class":330},[316,1019,372],{"class":326},[316,1021,1022,1024,1026,1028,1030,1032],{"class":318,"line":375},[316,1023,379],{"class":378},[316,1025,382],{"class":326},[316,1027,340],{"class":326},[316,1029,938],{"class":343},[316,1031,390],{"class":326},[316,1033,461],{"class":326},[316,1035,1036,1038,1040,1042,1045,1047],{"class":318,"line":400},[316,1037,506],{"class":378},[316,1039,382],{"class":326},[316,1041,340],{"class":326},[316,1043,1044],{"class":343},"Always call list-users before delete-user. Confirm with the operator before any destructive action.",[316,1046,390],{"class":326},[316,1048,461],{"class":326},[316,1050,1051,1053],{"class":318,"line":483},[316,1052,403],{"class":326},[316,1054,406],{"class":330},[705,1056,1058,791],{"id":1057},"icons-optional",[313,1059,1060],{},"icons",[298,1062,1063,1064,1067,1068,1071,1072,1067,1075,597,1078,1081,1082,885,1085,721],{},"Icons displayed by clients in their UIs. Each entry needs ",[313,1065,1066],{},"src"," and ",[313,1069,1070],{},"mimeType",", with optional ",[313,1073,1074],{},"sizes",[313,1076,1077],{},"theme",[313,1079,1080],{},"'light' | 'dark'","). Falls back to ",[313,1083,1084],{},"mcp.icons",[313,1086,888],{},[305,1088,1090],{"className":307,"code":1089,"language":310,"meta":311,"style":311},"import { defineMcpHandler } from '@nuxtjs\u002Fmcp-toolkit\u002Fserver'\n\nexport default defineMcpHandler({\n  name: 'admin',\n  icons: [\n    { src: 'https:\u002F\u002Fexample.com\u002Fadmin.png', mimeType: 'image\u002Fpng', sizes: ['64x64'] },\n  ],\n})\n",[313,1091,1092,1110,1114,1126,1140,1149,1203,1210],{"__ignoreMap":311},[316,1093,1094,1096,1098,1100,1102,1104,1106,1108],{"class":318,"line":319},[316,1095,323],{"class":322},[316,1097,327],{"class":326},[316,1099,331],{"class":330},[316,1101,334],{"class":326},[316,1103,337],{"class":322},[316,1105,340],{"class":326},[316,1107,344],{"class":343},[316,1109,347],{"class":326},[316,1111,1112],{"class":318,"line":350},[316,1113,354],{"emptyLinePlaceholder":353},[316,1115,1116,1118,1120,1122,1124],{"class":318,"line":357},[316,1117,360],{"class":322},[316,1119,363],{"class":322},[316,1121,331],{"class":366},[316,1123,369],{"class":330},[316,1125,372],{"class":326},[316,1127,1128,1130,1132,1134,1136,1138],{"class":318,"line":375},[316,1129,379],{"class":378},[316,1131,382],{"class":326},[316,1133,340],{"class":326},[316,1135,938],{"class":343},[316,1137,390],{"class":326},[316,1139,461],{"class":326},[316,1141,1142,1144,1146],{"class":318,"line":400},[316,1143,526],{"class":378},[316,1145,382],{"class":326},[316,1147,1148],{"class":330}," [\n",[316,1150,1151,1154,1157,1159,1161,1164,1166,1168,1171,1173,1175,1178,1180,1182,1185,1187,1190,1192,1195,1197,1200],{"class":318,"line":483},[316,1152,1153],{"class":326},"    {",[316,1155,1156],{"class":378}," src",[316,1158,382],{"class":326},[316,1160,340],{"class":326},[316,1162,1163],{"class":343},"https:\u002F\u002Fexample.com\u002Fadmin.png",[316,1165,390],{"class":326},[316,1167,393],{"class":326},[316,1169,1170],{"class":378}," mimeType",[316,1172,382],{"class":326},[316,1174,340],{"class":326},[316,1176,1177],{"class":343},"image\u002Fpng",[316,1179,390],{"class":326},[316,1181,393],{"class":326},[316,1183,1184],{"class":378}," sizes",[316,1186,382],{"class":326},[316,1188,1189],{"class":330}," [",[316,1191,390],{"class":326},[316,1193,1194],{"class":343},"64x64",[316,1196,390],{"class":326},[316,1198,1199],{"class":330},"] ",[316,1201,1202],{"class":326},"},\n",[316,1204,1205,1208],{"class":318,"line":503},[316,1206,1207],{"class":330},"  ]",[316,1209,461],{"class":326},[316,1211,1212,1214],{"class":318,"line":523},[316,1213,403],{"class":326},[316,1215,406],{"class":330},[1217,1218,1221,1223,1224,1226,1227,1229,1230,1237],"callout",{"color":1219,"icon":1220},"info","i-lucide-info",[313,1222,874],{},", ",[313,1225,969],{},", and ",[313,1228,1060],{}," are part of the ",[1231,1232,1236],"a",{"href":1233,"rel":1234},"https:\u002F\u002Fmodelcontextprotocol.io\u002Fspecification\u002F2025-11-25\u002Fbasic\u002Flifecycle#initialization",[1235],"nofollow","MCP lifecycle spec",". Set them at the module level for shared metadata, override per-handler when a specific endpoint needs different identity.",[705,1239,1241,791],{"id":1240},"route-optional",[313,1242,1243],{},"route",[298,1245,1246,1247,721],{},"Custom route for the handler. Defaults to ",[313,1248,720],{},[1217,1250,1251,1252,1256,1257,1260,1261,1264,1265,1267],{"color":1219,"icon":1220},"This option is only used for ",[1253,1254,1255],"strong",{},"custom handlers",". For the default handler override (",[313,1258,1259],{},"index.ts","), use ",[313,1262,1263],{},"mcp.route"," in ",[313,1266,888],{}," instead.",[305,1269,1271],{"className":307,"code":1270,"language":310,"meta":311,"style":311},"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",[313,1272,1273,1291,1295,1307,1321,1339],{"__ignoreMap":311},[316,1274,1275,1277,1279,1281,1283,1285,1287,1289],{"class":318,"line":319},[316,1276,323],{"class":322},[316,1278,327],{"class":326},[316,1280,331],{"class":330},[316,1282,334],{"class":326},[316,1284,337],{"class":322},[316,1286,340],{"class":326},[316,1288,344],{"class":343},[316,1290,347],{"class":326},[316,1292,1293],{"class":318,"line":350},[316,1294,354],{"emptyLinePlaceholder":353},[316,1296,1297,1299,1301,1303,1305],{"class":318,"line":357},[316,1298,360],{"class":322},[316,1300,363],{"class":322},[316,1302,331],{"class":366},[316,1304,369],{"class":330},[316,1306,372],{"class":326},[316,1308,1309,1311,1313,1315,1317,1319],{"class":318,"line":375},[316,1310,379],{"class":378},[316,1312,382],{"class":326},[316,1314,340],{"class":326},[316,1316,771],{"class":343},[316,1318,390],{"class":326},[316,1320,461],{"class":326},[316,1322,1323,1325,1327,1329,1332,1334,1336],{"class":318,"line":400},[316,1324,548],{"class":378},[316,1326,382],{"class":326},[316,1328,340],{"class":326},[316,1330,1331],{"class":343},"\u002Fapi\u002Fmcp\u002Fmigration",[316,1333,390],{"class":326},[316,1335,393],{"class":326},[316,1337,1338],{"class":396}," \u002F\u002F Custom route\n",[316,1340,1341,1343],{"class":318,"line":483},[316,1342,403],{"class":326},[316,1344,406],{"class":330},[705,1346,1348,791],{"id":1347},"browserredirect-optional",[313,1349,1350],{},"browserRedirect",[298,1352,1353,1354,721],{},"URL to redirect browsers when they access the handler endpoint. Defaults to the module's configured ",[313,1355,1350],{},[305,1357,1359],{"className":307,"code":1358,"language":310,"meta":311,"style":311},"import { defineMcpHandler } from '@nuxtjs\u002Fmcp-toolkit\u002Fserver'\n\nexport default defineMcpHandler({\n  name: 'migration',\n  browserRedirect: '\u002Fdocs\u002Fmigration',\n})\n",[313,1360,1361,1379,1383,1395,1409,1424],{"__ignoreMap":311},[316,1362,1363,1365,1367,1369,1371,1373,1375,1377],{"class":318,"line":319},[316,1364,323],{"class":322},[316,1366,327],{"class":326},[316,1368,331],{"class":330},[316,1370,334],{"class":326},[316,1372,337],{"class":322},[316,1374,340],{"class":326},[316,1376,344],{"class":343},[316,1378,347],{"class":326},[316,1380,1381],{"class":318,"line":350},[316,1382,354],{"emptyLinePlaceholder":353},[316,1384,1385,1387,1389,1391,1393],{"class":318,"line":357},[316,1386,360],{"class":322},[316,1388,363],{"class":322},[316,1390,331],{"class":366},[316,1392,369],{"class":330},[316,1394,372],{"class":326},[316,1396,1397,1399,1401,1403,1405,1407],{"class":318,"line":375},[316,1398,379],{"class":378},[316,1400,382],{"class":326},[316,1402,340],{"class":326},[316,1404,771],{"class":343},[316,1406,390],{"class":326},[316,1408,461],{"class":326},[316,1410,1411,1413,1415,1417,1420,1422],{"class":318,"line":400},[316,1412,568],{"class":378},[316,1414,382],{"class":326},[316,1416,340],{"class":326},[316,1418,1419],{"class":343},"\u002Fdocs\u002Fmigration",[316,1421,390],{"class":326},[316,1423,461],{"class":326},[316,1425,1426,1428],{"class":318,"line":483},[316,1427,403],{"class":326},[316,1429,406],{"class":330},[705,1431,1433,791],{"id":1432},"middleware-optional",[313,1434,1435],{},"middleware",[298,1437,1438],{},"Function to intercept requests before\u002Fafter they are processed. Useful for authentication, logging, and setting context.",[305,1440,1443],{"className":307,"code":1441,"filename":1442,"language":310,"meta":311,"style":311},"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",[313,1444,1445,1463,1467,1479,1494,1513,1538,1543],{"__ignoreMap":311},[316,1446,1447,1449,1451,1453,1455,1457,1459,1461],{"class":318,"line":319},[316,1448,323],{"class":322},[316,1450,327],{"class":326},[316,1452,331],{"class":330},[316,1454,334],{"class":326},[316,1456,337],{"class":322},[316,1458,340],{"class":326},[316,1460,344],{"class":343},[316,1462,347],{"class":326},[316,1464,1465],{"class":318,"line":350},[316,1466,354],{"emptyLinePlaceholder":353},[316,1468,1469,1471,1473,1475,1477],{"class":318,"line":357},[316,1470,360],{"class":322},[316,1472,363],{"class":322},[316,1474,331],{"class":366},[316,1476,369],{"class":330},[316,1478,372],{"class":326},[316,1480,1481,1483,1485,1487,1490,1492],{"class":318,"line":375},[316,1482,379],{"class":378},[316,1484,382],{"class":326},[316,1486,340],{"class":326},[316,1488,1489],{"class":343},"custom",[316,1491,390],{"class":326},[316,1493,461],{"class":326},[316,1495,1496,1498,1500,1502,1504,1506,1508,1510],{"class":318,"line":400},[316,1497,588],{"class":366},[316,1499,382],{"class":326},[316,1501,594],{"class":593},[316,1503,597],{"class":326},[316,1505,601],{"class":600},[316,1507,604],{"class":326},[316,1509,607],{"class":593},[316,1511,1512],{"class":326}," {\n",[316,1514,1515,1518,1520,1523,1525,1528,1531,1533,1536],{"class":318,"line":483},[316,1516,1517],{"class":330},"    event",[316,1519,721],{"class":326},[316,1521,1522],{"class":330},"context",[316,1524,721],{"class":326},[316,1526,1527],{"class":330},"userId",[316,1529,1530],{"class":326}," =",[316,1532,340],{"class":326},[316,1534,1535],{"class":343},"user-123",[316,1537,347],{"class":326},[316,1539,1540],{"class":318,"line":503},[316,1541,1542],{"class":326},"  },\n",[316,1544,1545,1547],{"class":318,"line":523},[316,1546,403],{"class":326},[316,1548,406],{"class":330},[1217,1550,1552,1553,1556],{"color":1551,"icon":13},"primary","See the ",[1231,1554,1555],{"href":221},"Middleware guide"," for detailed documentation and examples.",[705,1558,1560,791],{"id":1559},"experimental_codemode-optional",[313,1561,1562],{},"experimental_codeMode",[298,1564,1565,1566,1568,1569,1572],{},"Enable ",[1231,1567,249],{"href":250}," to let LLMs orchestrate multiple tool calls in a single JavaScript execution. Pass ",[313,1570,1571],{},"true"," for defaults or an options object:",[305,1574,1576],{"className":307,"code":1575,"language":310,"meta":311,"style":311},"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",[313,1577,1578,1596,1600,1612,1626,1634,1645,1658,1662],{"__ignoreMap":311},[316,1579,1580,1582,1584,1586,1588,1590,1592,1594],{"class":318,"line":319},[316,1581,323],{"class":322},[316,1583,327],{"class":326},[316,1585,331],{"class":330},[316,1587,334],{"class":326},[316,1589,337],{"class":322},[316,1591,340],{"class":326},[316,1593,344],{"class":343},[316,1595,347],{"class":326},[316,1597,1598],{"class":318,"line":350},[316,1599,354],{"emptyLinePlaceholder":353},[316,1601,1602,1604,1606,1608,1610],{"class":318,"line":357},[316,1603,360],{"class":322},[316,1605,363],{"class":322},[316,1607,331],{"class":366},[316,1609,369],{"class":330},[316,1611,372],{"class":326},[316,1613,1614,1616,1618,1620,1622,1624],{"class":318,"line":375},[316,1615,379],{"class":378},[316,1617,382],{"class":326},[316,1619,340],{"class":326},[316,1621,1489],{"class":343},[316,1623,390],{"class":326},[316,1625,461],{"class":326},[316,1627,1628,1630,1632],{"class":318,"line":400},[316,1629,681],{"class":378},[316,1631,382],{"class":326},[316,1633,1512],{"class":326},[316,1635,1636,1639,1641,1643],{"class":318,"line":483},[316,1637,1638],{"class":378},"    progressive",[316,1640,382],{"class":326},[316,1642,687],{"class":686},[316,1644,461],{"class":326},[316,1646,1647,1650,1652,1656],{"class":318,"line":503},[316,1648,1649],{"class":378},"    memoryLimit",[316,1651,382],{"class":326},[316,1653,1655],{"class":1654},"sbssI"," 128",[316,1657,461],{"class":326},[316,1659,1660],{"class":318,"line":523},[316,1661,1542],{"class":326},[316,1663,1664,1666],{"class":318,"line":545},[316,1665,403],{"class":326},[316,1667,406],{"class":330},[298,1669,1670,1671,1674,1675,721],{},"Code Mode requires ",[313,1672,1673],{},"secure-exec"," and Node.js ",[313,1676,1677],{},">=18.16.0",[1217,1679,1552,1680,1683],{"color":1551,"icon":13},[1231,1681,1682],{"href":250},"Code Mode guide"," for full documentation, security details, and configuration options.",[705,1685,1687,791],{"id":1686},"tools-optional",[313,1688,1689],{},"tools",[298,1691,1692],{},"Accepts three shapes — pick whichever matches your use case:",[302,1694,1695,1767,1897],{},[305,1696,1699],{"className":307,"code":1697,"filename":1698,"language":310,"meta":311,"style":311},"\u002F\u002F server\u002Fmcp\u002Fhandlers\u002Fadmin\u002Findex.ts\nimport { defineMcpHandler } from '@nuxtjs\u002Fmcp-toolkit\u002Fserver'\n\n\u002F\u002F `tools` omitted → every tool under handlers\u002Fadmin\u002Ftools\u002F\n\u002F\u002F is auto-registered (folder convention).\nexport default defineMcpHandler({\n  middleware: requireAdmin,\n})\n","Auto (default)",[313,1700,1701,1706,1724,1728,1733,1738,1750,1761],{"__ignoreMap":311},[316,1702,1703],{"class":318,"line":319},[316,1704,1705],{"class":396},"\u002F\u002F server\u002Fmcp\u002Fhandlers\u002Fadmin\u002Findex.ts\n",[316,1707,1708,1710,1712,1714,1716,1718,1720,1722],{"class":318,"line":350},[316,1709,323],{"class":322},[316,1711,327],{"class":326},[316,1713,331],{"class":330},[316,1715,334],{"class":326},[316,1717,337],{"class":322},[316,1719,340],{"class":326},[316,1721,344],{"class":343},[316,1723,347],{"class":326},[316,1725,1726],{"class":318,"line":357},[316,1727,354],{"emptyLinePlaceholder":353},[316,1729,1730],{"class":318,"line":375},[316,1731,1732],{"class":396},"\u002F\u002F `tools` omitted → every tool under handlers\u002Fadmin\u002Ftools\u002F\n",[316,1734,1735],{"class":318,"line":400},[316,1736,1737],{"class":396},"\u002F\u002F is auto-registered (folder convention).\n",[316,1739,1740,1742,1744,1746,1748],{"class":318,"line":483},[316,1741,360],{"class":322},[316,1743,363],{"class":322},[316,1745,331],{"class":366},[316,1747,369],{"class":330},[316,1749,372],{"class":326},[316,1751,1752,1754,1756,1759],{"class":318,"line":503},[316,1753,588],{"class":378},[316,1755,382],{"class":326},[316,1757,1758],{"class":330}," requireAdmin",[316,1760,461],{"class":326},[316,1762,1763,1765],{"class":318,"line":523},[316,1764,403],{"class":326},[316,1766,406],{"class":330},[305,1768,1771],{"className":307,"code":1769,"filename":1770,"language":310,"meta":311,"style":311},"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",[313,1772,1773,1796,1800,1824,1845,1849,1861,1875,1891],{"__ignoreMap":311},[316,1774,1775,1777,1779,1782,1784,1786,1788,1790,1792,1794],{"class":318,"line":319},[316,1776,323],{"class":322},[316,1778,327],{"class":326},[316,1780,1781],{"class":330}," defineMcpTool",[316,1783,393],{"class":326},[316,1785,331],{"class":330},[316,1787,334],{"class":326},[316,1789,337],{"class":322},[316,1791,340],{"class":326},[316,1793,344],{"class":343},[316,1795,347],{"class":326},[316,1797,1798],{"class":318,"line":350},[316,1799,354],{"emptyLinePlaceholder":353},[316,1801,1802,1805,1808,1811,1813,1815,1818,1820,1822],{"class":318,"line":357},[316,1803,1804],{"class":593},"const",[316,1806,1807],{"class":330}," tool1 ",[316,1809,1810],{"class":326},"=",[316,1812,1781],{"class":366},[316,1814,369],{"class":330},[316,1816,1817],{"class":326},"{",[316,1819,612],{"class":326},[316,1821,334],{"class":326},[316,1823,406],{"class":330},[316,1825,1826,1828,1831,1833,1835,1837,1839,1841,1843],{"class":318,"line":375},[316,1827,1804],{"class":593},[316,1829,1830],{"class":330}," tool2 ",[316,1832,1810],{"class":326},[316,1834,1781],{"class":366},[316,1836,369],{"class":330},[316,1838,1817],{"class":326},[316,1840,612],{"class":326},[316,1842,334],{"class":326},[316,1844,406],{"class":330},[316,1846,1847],{"class":318,"line":400},[316,1848,354],{"emptyLinePlaceholder":353},[316,1850,1851,1853,1855,1857,1859],{"class":318,"line":483},[316,1852,360],{"class":322},[316,1854,363],{"class":322},[316,1856,331],{"class":366},[316,1858,369],{"class":330},[316,1860,372],{"class":326},[316,1862,1863,1865,1867,1869,1871,1873],{"class":318,"line":503},[316,1864,379],{"class":378},[316,1866,382],{"class":326},[316,1868,340],{"class":326},[316,1870,1489],{"class":343},[316,1872,390],{"class":326},[316,1874,461],{"class":326},[316,1876,1877,1879,1881,1884,1886,1889],{"class":318,"line":523},[316,1878,624],{"class":378},[316,1880,382],{"class":326},[316,1882,1883],{"class":330}," [tool1",[316,1885,393],{"class":326},[316,1887,1888],{"class":330}," tool2]",[316,1890,461],{"class":326},[316,1892,1893,1895],{"class":318,"line":545},[316,1894,403],{"class":326},[316,1896,406],{"class":330},[305,1898,1901],{"className":307,"code":1899,"filename":1900,"language":310,"meta":311,"style":311},"import { defineMcpHandler, getMcpTools } from '@nuxtjs\u002Fmcp-toolkit\u002Fserver'\n\nexport default defineMcpHandler({\n  \u002F\u002F Every tool tagged 'searchable', regardless of folder.\n  tools: event => getMcpTools({ event, tags: ['searchable'] }),\n})\n","Dynamic function",[313,1902,1903,1926,1930,1942,1947,1990],{"__ignoreMap":311},[316,1904,1905,1907,1909,1911,1913,1916,1918,1920,1922,1924],{"class":318,"line":319},[316,1906,323],{"class":322},[316,1908,327],{"class":326},[316,1910,331],{"class":330},[316,1912,393],{"class":326},[316,1914,1915],{"class":330}," getMcpTools",[316,1917,334],{"class":326},[316,1919,337],{"class":322},[316,1921,340],{"class":326},[316,1923,344],{"class":343},[316,1925,347],{"class":326},[316,1927,1928],{"class":318,"line":350},[316,1929,354],{"emptyLinePlaceholder":353},[316,1931,1932,1934,1936,1938,1940],{"class":318,"line":357},[316,1933,360],{"class":322},[316,1935,363],{"class":322},[316,1937,331],{"class":366},[316,1939,369],{"class":330},[316,1941,372],{"class":326},[316,1943,1944],{"class":318,"line":375},[316,1945,1946],{"class":396},"  \u002F\u002F Every tool tagged 'searchable', regardless of folder.\n",[316,1948,1949,1951,1953,1956,1958,1960,1962,1964,1966,1968,1971,1973,1975,1977,1980,1982,1984,1986,1988],{"class":318,"line":400},[316,1950,624],{"class":366},[316,1952,382],{"class":326},[316,1954,1955],{"class":600}," event",[316,1957,607],{"class":593},[316,1959,1915],{"class":366},[316,1961,369],{"class":330},[316,1963,1817],{"class":326},[316,1965,1955],{"class":330},[316,1967,393],{"class":326},[316,1969,1970],{"class":378}," tags",[316,1972,382],{"class":326},[316,1974,1189],{"class":330},[316,1976,390],{"class":326},[316,1978,1979],{"class":343},"searchable",[316,1981,390],{"class":326},[316,1983,1199],{"class":330},[316,1985,403],{"class":326},[316,1987,604],{"class":330},[316,1989,461],{"class":326},[316,1991,1992,1994],{"class":318,"line":483},[316,1993,403],{"class":326},[316,1995,406],{"class":330},[1217,1997,1998,1999,2002,2003,2008,2009,2012,2013,721],{"color":1551,"icon":13},"See ",[1231,2000,2001],{"href":153},"multi-handler organization"," for the folder convention, and ",[1231,2004,2005],{"href":211},[313,2006,2007],{},"getMcpTools"," for ad-hoc filtering. Per-tool ",[313,2010,2011],{},"enabled()"," guards apply automatically — see ",[1231,2014,244],{"href":245},[705,2016,2018,791],{"id":2017},"resources-optional",[313,2019,2020],{},"resources",[298,2022,2023,2024,2029,2030,721],{},"Same shapes as ",[1231,2025,2027],{"href":2026},"#tools-optional",[313,2028,1689],{},": omit for folder-convention auto-attribution, pass an array, or pass ",[313,2031,2032],{},"event => getMcpResources({ event, ... })",[305,2034,2036],{"className":307,"code":2035,"language":310,"meta":311,"style":311},"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",[313,2037,2038,2061,2065,2086,2107,2111,2123,2137,2153],{"__ignoreMap":311},[316,2039,2040,2042,2044,2047,2049,2051,2053,2055,2057,2059],{"class":318,"line":319},[316,2041,323],{"class":322},[316,2043,327],{"class":326},[316,2045,2046],{"class":330}," defineMcpResource",[316,2048,393],{"class":326},[316,2050,331],{"class":330},[316,2052,334],{"class":326},[316,2054,337],{"class":322},[316,2056,340],{"class":326},[316,2058,344],{"class":343},[316,2060,347],{"class":326},[316,2062,2063],{"class":318,"line":350},[316,2064,354],{"emptyLinePlaceholder":353},[316,2066,2067,2069,2072,2074,2076,2078,2080,2082,2084],{"class":318,"line":357},[316,2068,1804],{"class":593},[316,2070,2071],{"class":330}," resource1 ",[316,2073,1810],{"class":326},[316,2075,2046],{"class":366},[316,2077,369],{"class":330},[316,2079,1817],{"class":326},[316,2081,612],{"class":326},[316,2083,334],{"class":326},[316,2085,406],{"class":330},[316,2087,2088,2090,2093,2095,2097,2099,2101,2103,2105],{"class":318,"line":375},[316,2089,1804],{"class":593},[316,2091,2092],{"class":330}," resource2 ",[316,2094,1810],{"class":326},[316,2096,2046],{"class":366},[316,2098,369],{"class":330},[316,2100,1817],{"class":326},[316,2102,612],{"class":326},[316,2104,334],{"class":326},[316,2106,406],{"class":330},[316,2108,2109],{"class":318,"line":400},[316,2110,354],{"emptyLinePlaceholder":353},[316,2112,2113,2115,2117,2119,2121],{"class":318,"line":483},[316,2114,360],{"class":322},[316,2116,363],{"class":322},[316,2118,331],{"class":366},[316,2120,369],{"class":330},[316,2122,372],{"class":326},[316,2124,2125,2127,2129,2131,2133,2135],{"class":318,"line":503},[316,2126,379],{"class":378},[316,2128,382],{"class":326},[316,2130,340],{"class":326},[316,2132,1489],{"class":343},[316,2134,390],{"class":326},[316,2136,461],{"class":326},[316,2138,2139,2141,2143,2146,2148,2151],{"class":318,"line":523},[316,2140,643],{"class":378},[316,2142,382],{"class":326},[316,2144,2145],{"class":330}," [resource1",[316,2147,393],{"class":326},[316,2149,2150],{"class":330}," resource2]",[316,2152,461],{"class":326},[316,2154,2155,2157],{"class":318,"line":545},[316,2156,403],{"class":326},[316,2158,406],{"class":330},[705,2160,2162,791],{"id":2161},"prompts-optional",[313,2163,2164],{},"prompts",[298,2166,2023,2167,2029,2171,721],{},[1231,2168,2169],{"href":2026},[313,2170,1689],{},[313,2172,2173],{},"event => getMcpPrompts({ event, ... })",[305,2175,2177],{"className":307,"code":2176,"language":310,"meta":311,"style":311},"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",[313,2178,2179,2202,2206,2227,2248,2252,2264,2278,2294],{"__ignoreMap":311},[316,2180,2181,2183,2185,2188,2190,2192,2194,2196,2198,2200],{"class":318,"line":319},[316,2182,323],{"class":322},[316,2184,327],{"class":326},[316,2186,2187],{"class":330}," defineMcpPrompt",[316,2189,393],{"class":326},[316,2191,331],{"class":330},[316,2193,334],{"class":326},[316,2195,337],{"class":322},[316,2197,340],{"class":326},[316,2199,344],{"class":343},[316,2201,347],{"class":326},[316,2203,2204],{"class":318,"line":350},[316,2205,354],{"emptyLinePlaceholder":353},[316,2207,2208,2210,2213,2215,2217,2219,2221,2223,2225],{"class":318,"line":357},[316,2209,1804],{"class":593},[316,2211,2212],{"class":330}," prompt1 ",[316,2214,1810],{"class":326},[316,2216,2187],{"class":366},[316,2218,369],{"class":330},[316,2220,1817],{"class":326},[316,2222,612],{"class":326},[316,2224,334],{"class":326},[316,2226,406],{"class":330},[316,2228,2229,2231,2234,2236,2238,2240,2242,2244,2246],{"class":318,"line":375},[316,2230,1804],{"class":593},[316,2232,2233],{"class":330}," prompt2 ",[316,2235,1810],{"class":326},[316,2237,2187],{"class":366},[316,2239,369],{"class":330},[316,2241,1817],{"class":326},[316,2243,612],{"class":326},[316,2245,334],{"class":326},[316,2247,406],{"class":330},[316,2249,2250],{"class":318,"line":400},[316,2251,354],{"emptyLinePlaceholder":353},[316,2253,2254,2256,2258,2260,2262],{"class":318,"line":483},[316,2255,360],{"class":322},[316,2257,363],{"class":322},[316,2259,331],{"class":366},[316,2261,369],{"class":330},[316,2263,372],{"class":326},[316,2265,2266,2268,2270,2272,2274,2276],{"class":318,"line":503},[316,2267,379],{"class":378},[316,2269,382],{"class":326},[316,2271,340],{"class":326},[316,2273,1489],{"class":343},[316,2275,390],{"class":326},[316,2277,461],{"class":326},[316,2279,2280,2282,2284,2287,2289,2292],{"class":318,"line":523},[316,2281,662],{"class":378},[316,2283,382],{"class":326},[316,2285,2286],{"class":330}," [prompt1",[316,2288,393],{"class":326},[316,2290,2291],{"class":330}," prompt2]",[316,2293,461],{"class":326},[316,2295,2296,2298],{"class":318,"line":545},[316,2297,403],{"class":326},[316,2299,406],{"class":330},[2301,2302,2303],"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":311,"searchDepth":350,"depth":350,"links":2305},[2306,2307],{"id":295,"depth":350,"text":296},{"id":702,"depth":350,"text":703,"children":2308},[2309,2311,2313,2315,2317,2319,2321,2323,2325,2327,2329,2331],{"id":707,"depth":357,"text":2310},"name (required)",{"id":787,"depth":357,"text":2312},"version (optional)",{"id":871,"depth":357,"text":2314},"description (optional)",{"id":966,"depth":357,"text":2316},"instructions (optional)",{"id":1057,"depth":357,"text":2318},"icons (optional)",{"id":1240,"depth":357,"text":2320},"route (optional)",{"id":1347,"depth":357,"text":2322},"browserRedirect (optional)",{"id":1432,"depth":357,"text":2324},"middleware (optional)",{"id":1559,"depth":357,"text":2326},"experimental_codeMode (optional)",{"id":1686,"depth":357,"text":2328},"tools (optional)",{"id":2017,"depth":357,"text":2330},"resources (optional)",{"id":2161,"depth":357,"text":2332},"prompts (optional)","Required fields and every defineMcpHandler option, including tools, resources, and prompts.","md",null,{},{"icon":140},{"title":2339,"description":2340},"Handler structure & options","defineMcpHandler fields, route, middleware, experimental_codeMode, tools, resources, prompts.","HPSxrOqeGlskI5jaQcvAxA4vUsRkrDSG2IxRf917fak",[2343,2345],{"title":132,"path":133,"stem":134,"description":2344,"icon":135,"children":-1},"Override the default `\u002Fmcp` handler and add custom defineMcpHandler endpoints.",{"title":142,"path":143,"stem":144,"description":2346,"icon":145,"children":-1},"Full handler examples, multiple handlers, routes, and default vs custom comparison.",1787670842887]