[{"data":1,"prerenderedAt":1611},["ShallowReactive",2],{"navigation_docs":3,"-advanced-custom-paths":287,"-advanced-custom-paths-surround":1606},[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":289,"body":290,"description":1598,"extension":1599,"links":1600,"meta":1601,"navigation":1602,"path":196,"seo":1603,"stem":197,"__hash__":1605},"docs\u002F7.advanced\u002F1.custom-paths.md","Customize MCP definition paths",{"type":291,"value":292,"toc":1583},"minimark",[293,298,302,313,317,324,433,436,442,446,453,458,646,650,824,828,834,910,917,921,924,930,933,1080,1084,1087,1274,1277,1307,1311,1314,1437,1441,1444,1455,1520,1524,1557,1561,1579],[294,295,297],"h2",{"id":296},"default-path-structure","Default Path Structure",[299,300,301],"p",{},"By default, the module looks for definitions in:",[303,304,309],"pre",{"className":305,"code":307,"language":308},[306],"language-text","server\u002F\n└── mcp\u002F\n    ├── tools\u002F\n    │   └── # Tool definitions\n    ├── resources\u002F\n    │   └── # Resource definitions\n    └── prompts\u002F\n        └── # Prompt definitions\n","text",[310,311,307],"code",{"__ignoreMap":312},"",[294,314,316],{"id":315},"changing-the-base-directory","Changing the Base Directory",[299,318,319,320,323],{},"Change the base directory using the ",[310,321,322],{},"dir"," configuration option:",[303,325,330],{"className":326,"code":327,"filename":328,"language":329,"meta":312,"style":312},"language-typescript shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","export default defineNuxtConfig({\n  modules: ['@nuxtjs\u002Fmcp-toolkit'],\n  mcp: {\n    dir: 'my-mcp', \u002F\u002F Look in server\u002Fmy-mcp\u002F instead of server\u002Fmcp\u002F\n  },\n})\n","nuxt.config.ts","typescript",[310,331,332,356,384,395,418,424],{"__ignoreMap":312},[333,334,337,341,344,348,352],"span",{"class":335,"line":336},"line",1,[333,338,340],{"class":339},"s7zQu","export",[333,342,343],{"class":339}," default",[333,345,347],{"class":346},"s2Zo4"," defineNuxtConfig",[333,349,351],{"class":350},"sTEyZ","(",[333,353,355],{"class":354},"sMK4o","{\n",[333,357,359,363,366,369,372,376,378,381],{"class":335,"line":358},2,[333,360,362],{"class":361},"swJcz","  modules",[333,364,365],{"class":354},":",[333,367,368],{"class":350}," [",[333,370,371],{"class":354},"'",[333,373,375],{"class":374},"sfazB","@nuxtjs\u002Fmcp-toolkit",[333,377,371],{"class":354},[333,379,380],{"class":350},"]",[333,382,383],{"class":354},",\n",[333,385,387,390,392],{"class":335,"line":386},3,[333,388,389],{"class":361},"  mcp",[333,391,365],{"class":354},[333,393,394],{"class":354}," {\n",[333,396,398,401,403,406,409,411,414],{"class":335,"line":397},4,[333,399,400],{"class":361},"    dir",[333,402,365],{"class":354},[333,404,405],{"class":354}," '",[333,407,408],{"class":374},"my-mcp",[333,410,371],{"class":354},[333,412,413],{"class":354},",",[333,415,417],{"class":416},"sHwdD"," \u002F\u002F Look in server\u002Fmy-mcp\u002F instead of server\u002Fmcp\u002F\n",[333,419,421],{"class":335,"line":420},5,[333,422,423],{"class":354},"  },\n",[333,425,427,430],{"class":335,"line":426},6,[333,428,429],{"class":354},"}",[333,431,432],{"class":350},")\n",[299,434,435],{},"This will look for definitions in:",[303,437,440],{"className":438,"code":439,"language":308},[306],"server\u002F\n└── my-mcp\u002F\n    ├── tools\u002F\n    │   └── # Tool definitions\n    ├── resources\u002F\n    │   └── # Resource definitions\n    └── prompts\u002F\n        └── # Prompt definitions\n",[310,441,439],{"__ignoreMap":312},[294,443,445],{"id":444},"extending-paths-with-hooks","Extending Paths with Hooks",[299,447,448,449,452],{},"For more advanced use cases, use the ",[310,450,451],{},"mcp:definitions:paths"," hook to add additional directories to scan. This is useful when you want to share definitions across multiple modules or layers.",[454,455,457],"h3",{"id":456},"using-the-hook-in-nuxtconfigts","Using the Hook in nuxt.config.ts",[303,459,461],{"className":326,"code":460,"filename":328,"language":329,"meta":312,"style":312},"export default defineNuxtConfig({\n  modules: ['@nuxtjs\u002Fmcp-toolkit'],\n  hooks: {\n    'mcp:definitions:paths'(paths) {\n      \u002F\u002F Add additional paths for tools\n      paths.tools.push('shared\u002Ftools')\n\n      \u002F\u002F Add additional paths for resources\n      paths.resources.push('shared\u002Fresources')\n\n      \u002F\u002F Add additional paths for prompts\n      paths.prompts.push('shared\u002Fprompts')\n    },\n  },\n})\n",[310,462,463,475,493,502,522,527,554,561,567,592,597,603,628,634,639],{"__ignoreMap":312},[333,464,465,467,469,471,473],{"class":335,"line":336},[333,466,340],{"class":339},[333,468,343],{"class":339},[333,470,347],{"class":346},[333,472,351],{"class":350},[333,474,355],{"class":354},[333,476,477,479,481,483,485,487,489,491],{"class":335,"line":358},[333,478,362],{"class":361},[333,480,365],{"class":354},[333,482,368],{"class":350},[333,484,371],{"class":354},[333,486,375],{"class":374},[333,488,371],{"class":354},[333,490,380],{"class":350},[333,492,383],{"class":354},[333,494,495,498,500],{"class":335,"line":386},[333,496,497],{"class":361},"  hooks",[333,499,365],{"class":354},[333,501,394],{"class":354},[333,503,504,507,509,511,513,517,520],{"class":335,"line":397},[333,505,506],{"class":354},"    '",[333,508,451],{"class":374},[333,510,371],{"class":354},[333,512,351],{"class":354},[333,514,516],{"class":515},"sHdIc","paths",[333,518,519],{"class":354},")",[333,521,394],{"class":354},[333,523,524],{"class":335,"line":420},[333,525,526],{"class":416},"      \u002F\u002F Add additional paths for tools\n",[333,528,529,532,535,538,540,543,545,547,550,552],{"class":335,"line":426},[333,530,531],{"class":350},"      paths",[333,533,534],{"class":354},".",[333,536,537],{"class":350},"tools",[333,539,534],{"class":354},[333,541,542],{"class":346},"push",[333,544,351],{"class":361},[333,546,371],{"class":354},[333,548,549],{"class":374},"shared\u002Ftools",[333,551,371],{"class":354},[333,553,432],{"class":361},[333,555,557],{"class":335,"line":556},7,[333,558,560],{"emptyLinePlaceholder":559},true,"\n",[333,562,564],{"class":335,"line":563},8,[333,565,566],{"class":416},"      \u002F\u002F Add additional paths for resources\n",[333,568,570,572,574,577,579,581,583,585,588,590],{"class":335,"line":569},9,[333,571,531],{"class":350},[333,573,534],{"class":354},[333,575,576],{"class":350},"resources",[333,578,534],{"class":354},[333,580,542],{"class":346},[333,582,351],{"class":361},[333,584,371],{"class":354},[333,586,587],{"class":374},"shared\u002Fresources",[333,589,371],{"class":354},[333,591,432],{"class":361},[333,593,595],{"class":335,"line":594},10,[333,596,560],{"emptyLinePlaceholder":559},[333,598,600],{"class":335,"line":599},11,[333,601,602],{"class":416},"      \u002F\u002F Add additional paths for prompts\n",[333,604,606,608,610,613,615,617,619,621,624,626],{"class":335,"line":605},12,[333,607,531],{"class":350},[333,609,534],{"class":354},[333,611,612],{"class":350},"prompts",[333,614,534],{"class":354},[333,616,542],{"class":346},[333,618,351],{"class":361},[333,620,371],{"class":354},[333,622,623],{"class":374},"shared\u002Fprompts",[333,625,371],{"class":354},[333,627,432],{"class":361},[333,629,631],{"class":335,"line":630},13,[333,632,633],{"class":354},"    },\n",[333,635,637],{"class":335,"line":636},14,[333,638,423],{"class":354},[333,640,642,644],{"class":335,"line":641},15,[333,643,429],{"class":354},[333,645,432],{"class":350},[454,647,649],{"id":648},"using-the-hook-in-a-custom-module","Using the Hook in a Custom Module",[303,651,654],{"className":326,"code":652,"filename":653,"language":329,"meta":312,"style":312},"export default defineNuxtModule({\n  setup(options, nuxt) {\n    nuxt.hook('mcp:definitions:paths', (paths) => {\n      \u002F\u002F Add additional paths for tools\n      paths.tools.push('shared\u002Ftools')\n\n      \u002F\u002F Add additional paths for resources\n      paths.resources.push('shared\u002Fresources')\n\n      \u002F\u002F Add additional paths for prompts\n      paths.prompts.push('shared\u002Fprompts')\n    })\n  },\n})\n","my-module.ts",[310,655,656,669,688,721,725,747,751,755,777,781,785,807,814,818],{"__ignoreMap":312},[333,657,658,660,662,665,667],{"class":335,"line":336},[333,659,340],{"class":339},[333,661,343],{"class":339},[333,663,664],{"class":346}," defineNuxtModule",[333,666,351],{"class":350},[333,668,355],{"class":354},[333,670,671,674,676,679,681,684,686],{"class":335,"line":358},[333,672,673],{"class":361},"  setup",[333,675,351],{"class":354},[333,677,678],{"class":515},"options",[333,680,413],{"class":354},[333,682,683],{"class":515}," nuxt",[333,685,519],{"class":354},[333,687,394],{"class":354},[333,689,690,693,695,698,700,702,704,706,708,711,713,715,719],{"class":335,"line":386},[333,691,692],{"class":350},"    nuxt",[333,694,534],{"class":354},[333,696,697],{"class":346},"hook",[333,699,351],{"class":361},[333,701,371],{"class":354},[333,703,451],{"class":374},[333,705,371],{"class":354},[333,707,413],{"class":354},[333,709,710],{"class":354}," (",[333,712,516],{"class":515},[333,714,519],{"class":354},[333,716,718],{"class":717},"spNyl"," =>",[333,720,394],{"class":354},[333,722,723],{"class":335,"line":397},[333,724,526],{"class":416},[333,726,727,729,731,733,735,737,739,741,743,745],{"class":335,"line":420},[333,728,531],{"class":350},[333,730,534],{"class":354},[333,732,537],{"class":350},[333,734,534],{"class":354},[333,736,542],{"class":346},[333,738,351],{"class":361},[333,740,371],{"class":354},[333,742,549],{"class":374},[333,744,371],{"class":354},[333,746,432],{"class":361},[333,748,749],{"class":335,"line":426},[333,750,560],{"emptyLinePlaceholder":559},[333,752,753],{"class":335,"line":556},[333,754,566],{"class":416},[333,756,757,759,761,763,765,767,769,771,773,775],{"class":335,"line":563},[333,758,531],{"class":350},[333,760,534],{"class":354},[333,762,576],{"class":350},[333,764,534],{"class":354},[333,766,542],{"class":346},[333,768,351],{"class":361},[333,770,371],{"class":354},[333,772,587],{"class":374},[333,774,371],{"class":354},[333,776,432],{"class":361},[333,778,779],{"class":335,"line":569},[333,780,560],{"emptyLinePlaceholder":559},[333,782,783],{"class":335,"line":594},[333,784,602],{"class":416},[333,786,787,789,791,793,795,797,799,801,803,805],{"class":335,"line":599},[333,788,531],{"class":350},[333,790,534],{"class":354},[333,792,612],{"class":350},[333,794,534],{"class":354},[333,796,542],{"class":346},[333,798,351],{"class":361},[333,800,371],{"class":354},[333,802,623],{"class":374},[333,804,371],{"class":354},[333,806,432],{"class":361},[333,808,809,812],{"class":335,"line":605},[333,810,811],{"class":354},"    }",[333,813,432],{"class":361},[333,815,816],{"class":335,"line":630},[333,817,423],{"class":354},[333,819,820,822],{"class":335,"line":636},[333,821,429],{"class":354},[333,823,432],{"class":350},[294,825,827],{"id":826},"path-structure","Path Structure",[299,829,830,831,833],{},"The ",[310,832,516],{}," object has the following structure:",[303,835,837],{"className":326,"code":836,"language":329,"meta":312,"style":312},"{\n  tools: string[]      \u002F\u002F Array of tool directory paths\n  resources: string[]  \u002F\u002F Array of resource directory paths\n  prompts: string[]    \u002F\u002F Array of prompt directory paths\n  handlers: string[]   \u002F\u002F Array of handler directory paths\n}\n",[310,838,839,843,860,875,890,905],{"__ignoreMap":312},[333,840,841],{"class":335,"line":336},[333,842,355],{"class":354},[333,844,845,849,851,854,857],{"class":335,"line":358},[333,846,848],{"class":847},"sBMFI","  tools",[333,850,365],{"class":354},[333,852,853],{"class":350}," string",[333,855,856],{"class":361},"[]      ",[333,858,859],{"class":416},"\u002F\u002F Array of tool directory paths\n",[333,861,862,865,867,869,872],{"class":335,"line":386},[333,863,864],{"class":847},"  resources",[333,866,365],{"class":354},[333,868,853],{"class":350},[333,870,871],{"class":361},"[]  ",[333,873,874],{"class":416},"\u002F\u002F Array of resource directory paths\n",[333,876,877,880,882,884,887],{"class":335,"line":397},[333,878,879],{"class":847},"  prompts",[333,881,365],{"class":354},[333,883,853],{"class":350},[333,885,886],{"class":361},"[]    ",[333,888,889],{"class":416},"\u002F\u002F Array of prompt directory paths\n",[333,891,892,895,897,899,902],{"class":335,"line":420},[333,893,894],{"class":847},"  handlers",[333,896,365],{"class":354},[333,898,853],{"class":350},[333,900,901],{"class":361},"[]   ",[333,903,904],{"class":416},"\u002F\u002F Array of handler directory paths\n",[333,906,907],{"class":335,"line":426},[333,908,909],{"class":354},"}\n",[299,911,912,913,916],{},"All paths are relative to the ",[310,914,915],{},"server\u002F"," directory of each Nuxt layer.",[294,918,920],{"id":919},"example-shared-definitions","Example: Shared Definitions",[299,922,923],{},"Share definitions across multiple Nuxt layers:",[303,925,928],{"className":926,"code":927,"language":308},[306],"project\u002F\n├── shared\u002F\n│   ├── tools\u002F\n│   │   └── common-tool.ts\n│   └── resources\u002F\n│       └── common-resource.ts\n└── apps\u002F\n    ├── web\u002F\n    │   └── server\u002F\n    │       └── mcp\u002F\n    │           └── tools\u002F\n    │               └── web-tool.ts\n    └── api\u002F\n        └── server\u002F\n            └── mcp\u002F\n                └── tools\u002F\n                    └── api-tool.ts\n",[310,929,927],{"__ignoreMap":312},[299,931,932],{},"Configure the hook to include shared definitions:",[303,934,936],{"className":326,"code":935,"filename":328,"language":329,"meta":312,"style":312},"export default defineNuxtConfig({\n  modules: ['@nuxtjs\u002Fmcp-toolkit'],\n  hooks: {\n    'mcp:definitions:paths'(paths) {\n      \u002F\u002F Include shared tools from project root\n      paths.tools.push('..\u002F..\u002Fshared\u002Ftools')\n      paths.resources.push('..\u002F..\u002Fshared\u002Fresources')\n      paths.prompts.push('..\u002F..\u002Fshared\u002Fprompts')\n    },\n  },\n})\n",[310,937,938,950,968,976,992,997,1020,1043,1066,1070,1074],{"__ignoreMap":312},[333,939,940,942,944,946,948],{"class":335,"line":336},[333,941,340],{"class":339},[333,943,343],{"class":339},[333,945,347],{"class":346},[333,947,351],{"class":350},[333,949,355],{"class":354},[333,951,952,954,956,958,960,962,964,966],{"class":335,"line":358},[333,953,362],{"class":361},[333,955,365],{"class":354},[333,957,368],{"class":350},[333,959,371],{"class":354},[333,961,375],{"class":374},[333,963,371],{"class":354},[333,965,380],{"class":350},[333,967,383],{"class":354},[333,969,970,972,974],{"class":335,"line":386},[333,971,497],{"class":361},[333,973,365],{"class":354},[333,975,394],{"class":354},[333,977,978,980,982,984,986,988,990],{"class":335,"line":397},[333,979,506],{"class":354},[333,981,451],{"class":374},[333,983,371],{"class":354},[333,985,351],{"class":354},[333,987,516],{"class":515},[333,989,519],{"class":354},[333,991,394],{"class":354},[333,993,994],{"class":335,"line":420},[333,995,996],{"class":416},"      \u002F\u002F Include shared tools from project root\n",[333,998,999,1001,1003,1005,1007,1009,1011,1013,1016,1018],{"class":335,"line":426},[333,1000,531],{"class":350},[333,1002,534],{"class":354},[333,1004,537],{"class":350},[333,1006,534],{"class":354},[333,1008,542],{"class":346},[333,1010,351],{"class":361},[333,1012,371],{"class":354},[333,1014,1015],{"class":374},"..\u002F..\u002Fshared\u002Ftools",[333,1017,371],{"class":354},[333,1019,432],{"class":361},[333,1021,1022,1024,1026,1028,1030,1032,1034,1036,1039,1041],{"class":335,"line":556},[333,1023,531],{"class":350},[333,1025,534],{"class":354},[333,1027,576],{"class":350},[333,1029,534],{"class":354},[333,1031,542],{"class":346},[333,1033,351],{"class":361},[333,1035,371],{"class":354},[333,1037,1038],{"class":374},"..\u002F..\u002Fshared\u002Fresources",[333,1040,371],{"class":354},[333,1042,432],{"class":361},[333,1044,1045,1047,1049,1051,1053,1055,1057,1059,1062,1064],{"class":335,"line":563},[333,1046,531],{"class":350},[333,1048,534],{"class":354},[333,1050,612],{"class":350},[333,1052,534],{"class":354},[333,1054,542],{"class":346},[333,1056,351],{"class":361},[333,1058,371],{"class":354},[333,1060,1061],{"class":374},"..\u002F..\u002Fshared\u002Fprompts",[333,1063,371],{"class":354},[333,1065,432],{"class":361},[333,1067,1068],{"class":335,"line":569},[333,1069,633],{"class":354},[333,1071,1072],{"class":335,"line":594},[333,1073,423],{"class":354},[333,1075,1076,1078],{"class":335,"line":599},[333,1077,429],{"class":354},[333,1079,432],{"class":350},[294,1081,1083],{"id":1082},"example-multiple-source-directories","Example: Multiple Source Directories",[299,1085,1086],{},"Scan multiple directories for definitions:",[303,1088,1090],{"className":326,"code":1089,"filename":328,"language":329,"meta":312,"style":312},"export default defineNuxtConfig({\n  modules: ['@nuxtjs\u002Fmcp-toolkit'],\n  mcp: {\n    dir: 'mcp', \u002F\u002F Default directory\n  },\n  hooks: {\n    'mcp:definitions:paths'(paths) {\n      \u002F\u002F Add additional tool directories\n      paths.tools.push('legacy-tools')\n      paths.tools.push('new-tools')\n\n      \u002F\u002F Add additional resource directories\n      paths.resources.push('external-resources')\n    },\n  },\n})\n",[310,1091,1092,1104,1122,1130,1148,1152,1160,1176,1181,1204,1227,1231,1236,1259,1263,1267],{"__ignoreMap":312},[333,1093,1094,1096,1098,1100,1102],{"class":335,"line":336},[333,1095,340],{"class":339},[333,1097,343],{"class":339},[333,1099,347],{"class":346},[333,1101,351],{"class":350},[333,1103,355],{"class":354},[333,1105,1106,1108,1110,1112,1114,1116,1118,1120],{"class":335,"line":358},[333,1107,362],{"class":361},[333,1109,365],{"class":354},[333,1111,368],{"class":350},[333,1113,371],{"class":354},[333,1115,375],{"class":374},[333,1117,371],{"class":354},[333,1119,380],{"class":350},[333,1121,383],{"class":354},[333,1123,1124,1126,1128],{"class":335,"line":386},[333,1125,389],{"class":361},[333,1127,365],{"class":354},[333,1129,394],{"class":354},[333,1131,1132,1134,1136,1138,1141,1143,1145],{"class":335,"line":397},[333,1133,400],{"class":361},[333,1135,365],{"class":354},[333,1137,405],{"class":354},[333,1139,1140],{"class":374},"mcp",[333,1142,371],{"class":354},[333,1144,413],{"class":354},[333,1146,1147],{"class":416}," \u002F\u002F Default directory\n",[333,1149,1150],{"class":335,"line":420},[333,1151,423],{"class":354},[333,1153,1154,1156,1158],{"class":335,"line":426},[333,1155,497],{"class":361},[333,1157,365],{"class":354},[333,1159,394],{"class":354},[333,1161,1162,1164,1166,1168,1170,1172,1174],{"class":335,"line":556},[333,1163,506],{"class":354},[333,1165,451],{"class":374},[333,1167,371],{"class":354},[333,1169,351],{"class":354},[333,1171,516],{"class":515},[333,1173,519],{"class":354},[333,1175,394],{"class":354},[333,1177,1178],{"class":335,"line":563},[333,1179,1180],{"class":416},"      \u002F\u002F Add additional tool directories\n",[333,1182,1183,1185,1187,1189,1191,1193,1195,1197,1200,1202],{"class":335,"line":569},[333,1184,531],{"class":350},[333,1186,534],{"class":354},[333,1188,537],{"class":350},[333,1190,534],{"class":354},[333,1192,542],{"class":346},[333,1194,351],{"class":361},[333,1196,371],{"class":354},[333,1198,1199],{"class":374},"legacy-tools",[333,1201,371],{"class":354},[333,1203,432],{"class":361},[333,1205,1206,1208,1210,1212,1214,1216,1218,1220,1223,1225],{"class":335,"line":594},[333,1207,531],{"class":350},[333,1209,534],{"class":354},[333,1211,537],{"class":350},[333,1213,534],{"class":354},[333,1215,542],{"class":346},[333,1217,351],{"class":361},[333,1219,371],{"class":354},[333,1221,1222],{"class":374},"new-tools",[333,1224,371],{"class":354},[333,1226,432],{"class":361},[333,1228,1229],{"class":335,"line":599},[333,1230,560],{"emptyLinePlaceholder":559},[333,1232,1233],{"class":335,"line":605},[333,1234,1235],{"class":416},"      \u002F\u002F Add additional resource directories\n",[333,1237,1238,1240,1242,1244,1246,1248,1250,1252,1255,1257],{"class":335,"line":630},[333,1239,531],{"class":350},[333,1241,534],{"class":354},[333,1243,576],{"class":350},[333,1245,534],{"class":354},[333,1247,542],{"class":346},[333,1249,351],{"class":361},[333,1251,371],{"class":354},[333,1253,1254],{"class":374},"external-resources",[333,1256,371],{"class":354},[333,1258,432],{"class":361},[333,1260,1261],{"class":335,"line":636},[333,1262,633],{"class":354},[333,1264,1265],{"class":335,"line":641},[333,1266,423],{"class":354},[333,1268,1270,1272],{"class":335,"line":1269},16,[333,1271,429],{"class":354},[333,1273,432],{"class":350},[299,1275,1276],{},"This will scan:",[1278,1279,1280,1287,1292,1297,1302],"ul",{},[1281,1282,1283,1286],"li",{},[310,1284,1285],{},"server\u002Fmcp\u002Ftools\u002F"," (default)",[1281,1288,1289],{},[310,1290,1291],{},"server\u002Flegacy-tools\u002F",[1281,1293,1294],{},[310,1295,1296],{},"server\u002Fnew-tools\u002F",[1281,1298,1299,1286],{},[310,1300,1301],{},"server\u002Fmcp\u002Fresources\u002F",[1281,1303,1304],{},[310,1305,1306],{},"server\u002Fexternal-resources\u002F",[294,1308,1310],{"id":1309},"example-layer-specific-paths","Example: Layer-Specific Paths",[299,1312,1313],{},"In a Nuxt layer setup, configure paths per layer:",[303,1315,1318],{"className":326,"code":1316,"filename":1317,"language":329,"meta":312,"style":312},"export default defineNuxtConfig({\n  modules: ['@nuxtjs\u002Fmcp-toolkit'],\n  hooks: {\n    'mcp:definitions:paths'(paths) {\n      \u002F\u002F Only include API-specific tools\n      paths.tools = ['api\u002Ftools']\n      paths.resources = ['api\u002Fresources']\n    },\n  },\n})\n","layers\u002Fapi\u002Fnuxt.config.ts",[310,1319,1320,1332,1350,1358,1374,1379,1402,1423,1427,1431],{"__ignoreMap":312},[333,1321,1322,1324,1326,1328,1330],{"class":335,"line":336},[333,1323,340],{"class":339},[333,1325,343],{"class":339},[333,1327,347],{"class":346},[333,1329,351],{"class":350},[333,1331,355],{"class":354},[333,1333,1334,1336,1338,1340,1342,1344,1346,1348],{"class":335,"line":358},[333,1335,362],{"class":361},[333,1337,365],{"class":354},[333,1339,368],{"class":350},[333,1341,371],{"class":354},[333,1343,375],{"class":374},[333,1345,371],{"class":354},[333,1347,380],{"class":350},[333,1349,383],{"class":354},[333,1351,1352,1354,1356],{"class":335,"line":386},[333,1353,497],{"class":361},[333,1355,365],{"class":354},[333,1357,394],{"class":354},[333,1359,1360,1362,1364,1366,1368,1370,1372],{"class":335,"line":397},[333,1361,506],{"class":354},[333,1363,451],{"class":374},[333,1365,371],{"class":354},[333,1367,351],{"class":354},[333,1369,516],{"class":515},[333,1371,519],{"class":354},[333,1373,394],{"class":354},[333,1375,1376],{"class":335,"line":420},[333,1377,1378],{"class":416},"      \u002F\u002F Only include API-specific tools\n",[333,1380,1381,1383,1385,1387,1390,1392,1394,1397,1399],{"class":335,"line":426},[333,1382,531],{"class":350},[333,1384,534],{"class":354},[333,1386,537],{"class":350},[333,1388,1389],{"class":354}," =",[333,1391,368],{"class":361},[333,1393,371],{"class":354},[333,1395,1396],{"class":374},"api\u002Ftools",[333,1398,371],{"class":354},[333,1400,1401],{"class":361},"]\n",[333,1403,1404,1406,1408,1410,1412,1414,1416,1419,1421],{"class":335,"line":556},[333,1405,531],{"class":350},[333,1407,534],{"class":354},[333,1409,576],{"class":350},[333,1411,1389],{"class":354},[333,1413,368],{"class":361},[333,1415,371],{"class":354},[333,1417,1418],{"class":374},"api\u002Fresources",[333,1420,371],{"class":354},[333,1422,1401],{"class":361},[333,1424,1425],{"class":335,"line":563},[333,1426,633],{"class":354},[333,1428,1429],{"class":335,"line":569},[333,1430,423],{"class":354},[333,1432,1433,1435],{"class":335,"line":594},[333,1434,429],{"class":354},[333,1436,432],{"class":350},[294,1438,1440],{"id":1439},"path-resolution","Path Resolution",[299,1442,1443],{},"Paths are resolved relative to:",[1445,1446,1447,1452],"ol",{},[1281,1448,830,1449,1451],{},[310,1450,915],{}," directory of the current Nuxt layer",[1281,1453,1454],{},"The project root (for absolute paths)",[303,1456,1458],{"className":326,"code":1457,"language":329,"meta":312,"style":312},"\u002F\u002F Relative to server\u002F\npaths.tools.push('custom\u002Ftools')\n\n\u002F\u002F Absolute from project root\npaths.tools.push('\u002Fabsolute\u002Fpath\u002Fto\u002Ftools')\n",[310,1459,1460,1465,1488,1492,1497],{"__ignoreMap":312},[333,1461,1462],{"class":335,"line":336},[333,1463,1464],{"class":416},"\u002F\u002F Relative to server\u002F\n",[333,1466,1467,1469,1471,1473,1475,1477,1479,1481,1484,1486],{"class":335,"line":358},[333,1468,516],{"class":350},[333,1470,534],{"class":354},[333,1472,537],{"class":350},[333,1474,534],{"class":354},[333,1476,542],{"class":346},[333,1478,351],{"class":350},[333,1480,371],{"class":354},[333,1482,1483],{"class":374},"custom\u002Ftools",[333,1485,371],{"class":354},[333,1487,432],{"class":350},[333,1489,1490],{"class":335,"line":386},[333,1491,560],{"emptyLinePlaceholder":559},[333,1493,1494],{"class":335,"line":397},[333,1495,1496],{"class":416},"\u002F\u002F Absolute from project root\n",[333,1498,1499,1501,1503,1505,1507,1509,1511,1513,1516,1518],{"class":335,"line":420},[333,1500,516],{"class":350},[333,1502,534],{"class":354},[333,1504,537],{"class":350},[333,1506,534],{"class":354},[333,1508,542],{"class":346},[333,1510,351],{"class":350},[333,1512,371],{"class":354},[333,1514,1515],{"class":374},"\u002Fabsolute\u002Fpath\u002Fto\u002Ftools",[333,1517,371],{"class":354},[333,1519,432],{"class":350},[294,1521,1523],{"id":1522},"best-practices","Best Practices",[1445,1525,1526,1533,1539,1545,1551],{},[1281,1527,1528,1532],{},[1529,1530,1531],"strong",{},"Use descriptive directory names",": Make it clear what each directory contains",[1281,1534,1535,1538],{},[1529,1536,1537],{},"Keep paths organized",": Group related definitions together",[1281,1540,1541,1544],{},[1529,1542,1543],{},"Document custom paths",": Add comments explaining why custom paths are used",[1281,1546,1547,1550],{},[1529,1548,1549],{},"Test path resolution",": Ensure paths resolve correctly in all environments",[1281,1552,1553,1556],{},[1529,1554,1555],{},"Consider layer structure",": Use layers for complex multi-app setups",[294,1558,1560],{"id":1559},"next-steps","Next Steps",[1278,1562,1563,1569,1574],{},[1281,1564,1565,1568],{},[1566,1567,123],"a",{"href":128}," - Create multiple MCP endpoints",[1281,1570,1571,1573],{},[1566,1572,229],{"href":230}," - Learn more about hooks",[1281,1575,1576,1578],{},[1566,1577,20],{"href":21}," - Configure the module",[1580,1581,1582],"style",{},"html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .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 .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}",{"title":312,"searchDepth":358,"depth":358,"links":1584},[1585,1586,1587,1591,1592,1593,1594,1595,1596,1597],{"id":296,"depth":358,"text":297},{"id":315,"depth":358,"text":316},{"id":444,"depth":358,"text":445,"children":1588},[1589,1590],{"id":456,"depth":386,"text":457},{"id":648,"depth":386,"text":649},{"id":826,"depth":358,"text":827},{"id":919,"depth":358,"text":920},{"id":1082,"depth":358,"text":1083},{"id":1309,"depth":358,"text":1310},{"id":1439,"depth":358,"text":1440},{"id":1522,"depth":358,"text":1523},{"id":1559,"depth":358,"text":1560},"Customize where the module looks for MCP definitions.","md",null,{},{"title":195,"icon":198},{"title":195,"description":1604},"Customize the directory structure for MCP definitions.","t-X9VLIQ1-LD8u0o-N1kpu3dBkVv1Wbkb0oWRf5jd_g",[1607,1609],{"title":185,"path":186,"stem":187,"description":1608,"icon":188,"children":-1},"UI patterns, unsupported Nuxt features in the iframe, and API reference.",{"title":200,"path":201,"stem":202,"description":1610,"icon":203,"children":-1},"Stream logs to MCP clients and capture structured wide events with useMcpLogger().",1787670841806]