[{"data":1,"prerenderedAt":1462},["ShallowReactive",2],{"navigation_docs":3,"-advanced-custom-paths":139,"-advanced-custom-paths-surround":1457},[4,40,65,110],{"title":5,"path":6,"stem":7,"children":8,"page":39},"Getting Started","\u002Fgetting-started","1.getting-started",[9,14,19,24,29,34],{"title":10,"path":11,"stem":12,"icon":13},"Introduction","\u002Fgetting-started\u002Fintroduction","1.getting-started\u002F1.introduction","i-lucide-book-open",{"title":15,"path":16,"stem":17,"icon":18},"Installation","\u002Fgetting-started\u002Finstallation","1.getting-started\u002F2.installation","i-lucide-download",{"title":20,"path":21,"stem":22,"icon":23},"Configuration","\u002Fgetting-started\u002Fconfiguration","1.getting-started\u002F3.configuration","i-lucide-settings",{"title":25,"path":26,"stem":27,"icon":28},"MCP Inspector","\u002Fgetting-started\u002Finspector","1.getting-started\u002F4.inspector","i-lucide-circuit-board",{"title":30,"path":31,"stem":32,"icon":33},"Connection","\u002Fgetting-started\u002Fconnection","1.getting-started\u002F5.connection","i-lucide-plug",{"title":35,"path":36,"stem":37,"icon":38},"Agent Skills","\u002Fgetting-started\u002Fagent-skills","1.getting-started\u002F6.agent-skills","i-lucide-sparkles",false,{"title":41,"path":42,"stem":43,"children":44,"page":39},"Core Concepts","\u002Fcore-concepts","2.core-concepts",[45,50,55,60],{"title":46,"path":47,"stem":48,"icon":49},"Tools","\u002Fcore-concepts\u002Ftools","2.core-concepts\u002F2.tools","i-lucide-wrench",{"title":51,"path":52,"stem":53,"icon":54},"Resources","\u002Fcore-concepts\u002Fresources","2.core-concepts\u002F3.resources","i-lucide-package",{"title":56,"path":57,"stem":58,"icon":59},"Prompts","\u002Fcore-concepts\u002Fprompts","2.core-concepts\u002F4.prompts","i-lucide-message-square",{"title":61,"path":62,"stem":63,"icon":64},"Handlers","\u002Fcore-concepts\u002Fhandlers","2.core-concepts\u002F5.handlers","i-lucide-server",{"title":66,"path":67,"stem":68,"children":69,"page":39},"Advanced Topics","\u002Fadvanced","3.advanced",[70,75,80,85,90,95,100,105],{"title":71,"path":72,"stem":73,"icon":74},"Custom Paths","\u002Fadvanced\u002Fcustom-paths","3.advanced\u002F1.custom-paths","i-lucide-folder",{"title":76,"path":77,"stem":78,"icon":79},"Middleware","\u002Fadvanced\u002Fmiddleware","3.advanced\u002F2.middleware","i-lucide-shield",{"title":81,"path":82,"stem":83,"icon":84},"TypeScript","\u002Fadvanced\u002Ftypescript","3.advanced\u002F3.typescript","i-lucide-type",{"title":86,"path":87,"stem":88,"icon":89},"Hooks","\u002Fadvanced\u002Fhooks","3.advanced\u002F4.hooks","i-lucide-webhook",{"title":91,"path":92,"stem":93,"icon":94},"MCP Evals","\u002Fadvanced\u002Fevals","3.advanced\u002F5.evals","i-lucide-flask-conical",{"title":96,"path":97,"stem":98,"icon":99},"Sessions","\u002Fadvanced\u002Fsessions","3.advanced\u002F6.sessions","i-lucide-database",{"title":101,"path":102,"stem":103,"icon":104},"Dynamic Definitions","\u002Fadvanced\u002Fdynamic-definitions","3.advanced\u002F7.dynamic-definitions","i-lucide-toggle-right",{"title":106,"path":107,"stem":108,"icon":109},"Code Mode","\u002Fadvanced\u002Fcode-mode","3.advanced\u002F8.code-mode","i-lucide-code",{"title":111,"path":112,"stem":113,"children":114,"page":39},"Examples","\u002Fexamples","4.examples",[115,120,125,130,135],{"title":116,"path":117,"stem":118,"icon":119},"Authentication","\u002Fexamples\u002Fauthentication","4.examples\u002F1.authentication","i-lucide-shield-check",{"title":121,"path":122,"stem":123,"icon":124},"API Integration","\u002Fexamples\u002Fapi-integration","4.examples\u002F2.api-integration","i-lucide-globe",{"title":126,"path":127,"stem":128,"icon":129},"Common Patterns","\u002Fexamples\u002Fcommon-patterns","4.examples\u002F3.common-patterns","i-lucide-lightbulb",{"title":131,"path":132,"stem":133,"icon":134},"File Operations","\u002Fexamples\u002Ffile-operations","4.examples\u002F4.file-operations","i-lucide-file",{"title":136,"path":137,"stem":138,"icon":59},"Prompt Examples","\u002Fexamples\u002Fprompt-examples","4.examples\u002F5.prompt-examples",{"id":140,"title":71,"body":141,"description":1449,"extension":1450,"links":1451,"meta":1452,"navigation":1453,"path":72,"seo":1454,"stem":73,"__hash__":1456},"docs\u002F3.advanced\u002F1.custom-paths.md",{"type":142,"value":143,"toc":1434},"minimark",[144,149,153,164,168,175,284,287,293,297,304,309,497,501,675,679,685,761,768,772,775,781,784,931,935,938,1125,1128,1158,1162,1165,1288,1292,1295,1306,1371,1375,1408,1412,1430],[145,146,148],"h2",{"id":147},"default-path-structure","Default Path Structure",[150,151,152],"p",{},"By default, the module looks for definitions in:",[154,155,160],"pre",{"className":156,"code":158,"language":159},[157],"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",[161,162,158],"code",{"__ignoreMap":163},"",[145,165,167],{"id":166},"changing-the-base-directory","Changing the Base Directory",[150,169,170,171,174],{},"Change the base directory using the ",[161,172,173],{},"dir"," configuration option:",[154,176,181],{"className":177,"code":178,"filename":179,"language":180,"meta":163,"style":163},"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",[161,182,183,207,235,246,269,275],{"__ignoreMap":163},[184,185,188,192,195,199,203],"span",{"class":186,"line":187},"line",1,[184,189,191],{"class":190},"s7zQu","export",[184,193,194],{"class":190}," default",[184,196,198],{"class":197},"s2Zo4"," defineNuxtConfig",[184,200,202],{"class":201},"sTEyZ","(",[184,204,206],{"class":205},"sMK4o","{\n",[184,208,210,214,217,220,223,227,229,232],{"class":186,"line":209},2,[184,211,213],{"class":212},"swJcz","  modules",[184,215,216],{"class":205},":",[184,218,219],{"class":201}," [",[184,221,222],{"class":205},"'",[184,224,226],{"class":225},"sfazB","@nuxtjs\u002Fmcp-toolkit",[184,228,222],{"class":205},[184,230,231],{"class":201},"]",[184,233,234],{"class":205},",\n",[184,236,238,241,243],{"class":186,"line":237},3,[184,239,240],{"class":212},"  mcp",[184,242,216],{"class":205},[184,244,245],{"class":205}," {\n",[184,247,249,252,254,257,260,262,265],{"class":186,"line":248},4,[184,250,251],{"class":212},"    dir",[184,253,216],{"class":205},[184,255,256],{"class":205}," '",[184,258,259],{"class":225},"my-mcp",[184,261,222],{"class":205},[184,263,264],{"class":205},",",[184,266,268],{"class":267},"sHwdD"," \u002F\u002F Look in server\u002Fmy-mcp\u002F instead of server\u002Fmcp\u002F\n",[184,270,272],{"class":186,"line":271},5,[184,273,274],{"class":205},"  },\n",[184,276,278,281],{"class":186,"line":277},6,[184,279,280],{"class":205},"}",[184,282,283],{"class":201},")\n",[150,285,286],{},"This will look for definitions in:",[154,288,291],{"className":289,"code":290,"language":159},[157],"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",[161,292,290],{"__ignoreMap":163},[145,294,296],{"id":295},"extending-paths-with-hooks","Extending Paths with Hooks",[150,298,299,300,303],{},"For more advanced use cases, use the ",[161,301,302],{},"mcp:definitions:paths"," hook to add additional directories to scan. This is useful when you want to share definitions across multiple modules or layers.",[305,306,308],"h3",{"id":307},"using-the-hook-in-nuxtconfigts","Using the Hook in nuxt.config.ts",[154,310,312],{"className":177,"code":311,"filename":179,"language":180,"meta":163,"style":163},"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",[161,313,314,326,344,353,373,378,405,412,418,443,448,454,479,485,490],{"__ignoreMap":163},[184,315,316,318,320,322,324],{"class":186,"line":187},[184,317,191],{"class":190},[184,319,194],{"class":190},[184,321,198],{"class":197},[184,323,202],{"class":201},[184,325,206],{"class":205},[184,327,328,330,332,334,336,338,340,342],{"class":186,"line":209},[184,329,213],{"class":212},[184,331,216],{"class":205},[184,333,219],{"class":201},[184,335,222],{"class":205},[184,337,226],{"class":225},[184,339,222],{"class":205},[184,341,231],{"class":201},[184,343,234],{"class":205},[184,345,346,349,351],{"class":186,"line":237},[184,347,348],{"class":212},"  hooks",[184,350,216],{"class":205},[184,352,245],{"class":205},[184,354,355,358,360,362,364,368,371],{"class":186,"line":248},[184,356,357],{"class":205},"    '",[184,359,302],{"class":225},[184,361,222],{"class":205},[184,363,202],{"class":205},[184,365,367],{"class":366},"sHdIc","paths",[184,369,370],{"class":205},")",[184,372,245],{"class":205},[184,374,375],{"class":186,"line":271},[184,376,377],{"class":267},"      \u002F\u002F Add additional paths for tools\n",[184,379,380,383,386,389,391,394,396,398,401,403],{"class":186,"line":277},[184,381,382],{"class":201},"      paths",[184,384,385],{"class":205},".",[184,387,388],{"class":201},"tools",[184,390,385],{"class":205},[184,392,393],{"class":197},"push",[184,395,202],{"class":212},[184,397,222],{"class":205},[184,399,400],{"class":225},"shared\u002Ftools",[184,402,222],{"class":205},[184,404,283],{"class":212},[184,406,408],{"class":186,"line":407},7,[184,409,411],{"emptyLinePlaceholder":410},true,"\n",[184,413,415],{"class":186,"line":414},8,[184,416,417],{"class":267},"      \u002F\u002F Add additional paths for resources\n",[184,419,421,423,425,428,430,432,434,436,439,441],{"class":186,"line":420},9,[184,422,382],{"class":201},[184,424,385],{"class":205},[184,426,427],{"class":201},"resources",[184,429,385],{"class":205},[184,431,393],{"class":197},[184,433,202],{"class":212},[184,435,222],{"class":205},[184,437,438],{"class":225},"shared\u002Fresources",[184,440,222],{"class":205},[184,442,283],{"class":212},[184,444,446],{"class":186,"line":445},10,[184,447,411],{"emptyLinePlaceholder":410},[184,449,451],{"class":186,"line":450},11,[184,452,453],{"class":267},"      \u002F\u002F Add additional paths for prompts\n",[184,455,457,459,461,464,466,468,470,472,475,477],{"class":186,"line":456},12,[184,458,382],{"class":201},[184,460,385],{"class":205},[184,462,463],{"class":201},"prompts",[184,465,385],{"class":205},[184,467,393],{"class":197},[184,469,202],{"class":212},[184,471,222],{"class":205},[184,473,474],{"class":225},"shared\u002Fprompts",[184,476,222],{"class":205},[184,478,283],{"class":212},[184,480,482],{"class":186,"line":481},13,[184,483,484],{"class":205},"    },\n",[184,486,488],{"class":186,"line":487},14,[184,489,274],{"class":205},[184,491,493,495],{"class":186,"line":492},15,[184,494,280],{"class":205},[184,496,283],{"class":201},[305,498,500],{"id":499},"using-the-hook-in-a-custom-module","Using the Hook in a Custom Module",[154,502,505],{"className":177,"code":503,"filename":504,"language":180,"meta":163,"style":163},"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",[161,506,507,520,539,572,576,598,602,606,628,632,636,658,665,669],{"__ignoreMap":163},[184,508,509,511,513,516,518],{"class":186,"line":187},[184,510,191],{"class":190},[184,512,194],{"class":190},[184,514,515],{"class":197}," defineNuxtModule",[184,517,202],{"class":201},[184,519,206],{"class":205},[184,521,522,525,527,530,532,535,537],{"class":186,"line":209},[184,523,524],{"class":212},"  setup",[184,526,202],{"class":205},[184,528,529],{"class":366},"options",[184,531,264],{"class":205},[184,533,534],{"class":366}," nuxt",[184,536,370],{"class":205},[184,538,245],{"class":205},[184,540,541,544,546,549,551,553,555,557,559,562,564,566,570],{"class":186,"line":237},[184,542,543],{"class":201},"    nuxt",[184,545,385],{"class":205},[184,547,548],{"class":197},"hook",[184,550,202],{"class":212},[184,552,222],{"class":205},[184,554,302],{"class":225},[184,556,222],{"class":205},[184,558,264],{"class":205},[184,560,561],{"class":205}," (",[184,563,367],{"class":366},[184,565,370],{"class":205},[184,567,569],{"class":568},"spNyl"," =>",[184,571,245],{"class":205},[184,573,574],{"class":186,"line":248},[184,575,377],{"class":267},[184,577,578,580,582,584,586,588,590,592,594,596],{"class":186,"line":271},[184,579,382],{"class":201},[184,581,385],{"class":205},[184,583,388],{"class":201},[184,585,385],{"class":205},[184,587,393],{"class":197},[184,589,202],{"class":212},[184,591,222],{"class":205},[184,593,400],{"class":225},[184,595,222],{"class":205},[184,597,283],{"class":212},[184,599,600],{"class":186,"line":277},[184,601,411],{"emptyLinePlaceholder":410},[184,603,604],{"class":186,"line":407},[184,605,417],{"class":267},[184,607,608,610,612,614,616,618,620,622,624,626],{"class":186,"line":414},[184,609,382],{"class":201},[184,611,385],{"class":205},[184,613,427],{"class":201},[184,615,385],{"class":205},[184,617,393],{"class":197},[184,619,202],{"class":212},[184,621,222],{"class":205},[184,623,438],{"class":225},[184,625,222],{"class":205},[184,627,283],{"class":212},[184,629,630],{"class":186,"line":420},[184,631,411],{"emptyLinePlaceholder":410},[184,633,634],{"class":186,"line":445},[184,635,453],{"class":267},[184,637,638,640,642,644,646,648,650,652,654,656],{"class":186,"line":450},[184,639,382],{"class":201},[184,641,385],{"class":205},[184,643,463],{"class":201},[184,645,385],{"class":205},[184,647,393],{"class":197},[184,649,202],{"class":212},[184,651,222],{"class":205},[184,653,474],{"class":225},[184,655,222],{"class":205},[184,657,283],{"class":212},[184,659,660,663],{"class":186,"line":456},[184,661,662],{"class":205},"    }",[184,664,283],{"class":212},[184,666,667],{"class":186,"line":481},[184,668,274],{"class":205},[184,670,671,673],{"class":186,"line":487},[184,672,280],{"class":205},[184,674,283],{"class":201},[145,676,678],{"id":677},"path-structure","Path Structure",[150,680,681,682,684],{},"The ",[161,683,367],{}," object has the following structure:",[154,686,688],{"className":177,"code":687,"language":180,"meta":163,"style":163},"{\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",[161,689,690,694,711,726,741,756],{"__ignoreMap":163},[184,691,692],{"class":186,"line":187},[184,693,206],{"class":205},[184,695,696,700,702,705,708],{"class":186,"line":209},[184,697,699],{"class":698},"sBMFI","  tools",[184,701,216],{"class":205},[184,703,704],{"class":201}," string",[184,706,707],{"class":212},"[]      ",[184,709,710],{"class":267},"\u002F\u002F Array of tool directory paths\n",[184,712,713,716,718,720,723],{"class":186,"line":237},[184,714,715],{"class":698},"  resources",[184,717,216],{"class":205},[184,719,704],{"class":201},[184,721,722],{"class":212},"[]  ",[184,724,725],{"class":267},"\u002F\u002F Array of resource directory paths\n",[184,727,728,731,733,735,738],{"class":186,"line":248},[184,729,730],{"class":698},"  prompts",[184,732,216],{"class":205},[184,734,704],{"class":201},[184,736,737],{"class":212},"[]    ",[184,739,740],{"class":267},"\u002F\u002F Array of prompt directory paths\n",[184,742,743,746,748,750,753],{"class":186,"line":271},[184,744,745],{"class":698},"  handlers",[184,747,216],{"class":205},[184,749,704],{"class":201},[184,751,752],{"class":212},"[]   ",[184,754,755],{"class":267},"\u002F\u002F Array of handler directory paths\n",[184,757,758],{"class":186,"line":277},[184,759,760],{"class":205},"}\n",[150,762,763,764,767],{},"All paths are relative to the ",[161,765,766],{},"server\u002F"," directory of each Nuxt layer.",[145,769,771],{"id":770},"example-shared-definitions","Example: Shared Definitions",[150,773,774],{},"Share definitions across multiple Nuxt layers:",[154,776,779],{"className":777,"code":778,"language":159},[157],"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",[161,780,778],{"__ignoreMap":163},[150,782,783],{},"Configure the hook to include shared definitions:",[154,785,787],{"className":177,"code":786,"filename":179,"language":180,"meta":163,"style":163},"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",[161,788,789,801,819,827,843,848,871,894,917,921,925],{"__ignoreMap":163},[184,790,791,793,795,797,799],{"class":186,"line":187},[184,792,191],{"class":190},[184,794,194],{"class":190},[184,796,198],{"class":197},[184,798,202],{"class":201},[184,800,206],{"class":205},[184,802,803,805,807,809,811,813,815,817],{"class":186,"line":209},[184,804,213],{"class":212},[184,806,216],{"class":205},[184,808,219],{"class":201},[184,810,222],{"class":205},[184,812,226],{"class":225},[184,814,222],{"class":205},[184,816,231],{"class":201},[184,818,234],{"class":205},[184,820,821,823,825],{"class":186,"line":237},[184,822,348],{"class":212},[184,824,216],{"class":205},[184,826,245],{"class":205},[184,828,829,831,833,835,837,839,841],{"class":186,"line":248},[184,830,357],{"class":205},[184,832,302],{"class":225},[184,834,222],{"class":205},[184,836,202],{"class":205},[184,838,367],{"class":366},[184,840,370],{"class":205},[184,842,245],{"class":205},[184,844,845],{"class":186,"line":271},[184,846,847],{"class":267},"      \u002F\u002F Include shared tools from project root\n",[184,849,850,852,854,856,858,860,862,864,867,869],{"class":186,"line":277},[184,851,382],{"class":201},[184,853,385],{"class":205},[184,855,388],{"class":201},[184,857,385],{"class":205},[184,859,393],{"class":197},[184,861,202],{"class":212},[184,863,222],{"class":205},[184,865,866],{"class":225},"..\u002F..\u002Fshared\u002Ftools",[184,868,222],{"class":205},[184,870,283],{"class":212},[184,872,873,875,877,879,881,883,885,887,890,892],{"class":186,"line":407},[184,874,382],{"class":201},[184,876,385],{"class":205},[184,878,427],{"class":201},[184,880,385],{"class":205},[184,882,393],{"class":197},[184,884,202],{"class":212},[184,886,222],{"class":205},[184,888,889],{"class":225},"..\u002F..\u002Fshared\u002Fresources",[184,891,222],{"class":205},[184,893,283],{"class":212},[184,895,896,898,900,902,904,906,908,910,913,915],{"class":186,"line":414},[184,897,382],{"class":201},[184,899,385],{"class":205},[184,901,463],{"class":201},[184,903,385],{"class":205},[184,905,393],{"class":197},[184,907,202],{"class":212},[184,909,222],{"class":205},[184,911,912],{"class":225},"..\u002F..\u002Fshared\u002Fprompts",[184,914,222],{"class":205},[184,916,283],{"class":212},[184,918,919],{"class":186,"line":420},[184,920,484],{"class":205},[184,922,923],{"class":186,"line":445},[184,924,274],{"class":205},[184,926,927,929],{"class":186,"line":450},[184,928,280],{"class":205},[184,930,283],{"class":201},[145,932,934],{"id":933},"example-multiple-source-directories","Example: Multiple Source Directories",[150,936,937],{},"Scan multiple directories for definitions:",[154,939,941],{"className":177,"code":940,"filename":179,"language":180,"meta":163,"style":163},"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",[161,942,943,955,973,981,999,1003,1011,1027,1032,1055,1078,1082,1087,1110,1114,1118],{"__ignoreMap":163},[184,944,945,947,949,951,953],{"class":186,"line":187},[184,946,191],{"class":190},[184,948,194],{"class":190},[184,950,198],{"class":197},[184,952,202],{"class":201},[184,954,206],{"class":205},[184,956,957,959,961,963,965,967,969,971],{"class":186,"line":209},[184,958,213],{"class":212},[184,960,216],{"class":205},[184,962,219],{"class":201},[184,964,222],{"class":205},[184,966,226],{"class":225},[184,968,222],{"class":205},[184,970,231],{"class":201},[184,972,234],{"class":205},[184,974,975,977,979],{"class":186,"line":237},[184,976,240],{"class":212},[184,978,216],{"class":205},[184,980,245],{"class":205},[184,982,983,985,987,989,992,994,996],{"class":186,"line":248},[184,984,251],{"class":212},[184,986,216],{"class":205},[184,988,256],{"class":205},[184,990,991],{"class":225},"mcp",[184,993,222],{"class":205},[184,995,264],{"class":205},[184,997,998],{"class":267}," \u002F\u002F Default directory\n",[184,1000,1001],{"class":186,"line":271},[184,1002,274],{"class":205},[184,1004,1005,1007,1009],{"class":186,"line":277},[184,1006,348],{"class":212},[184,1008,216],{"class":205},[184,1010,245],{"class":205},[184,1012,1013,1015,1017,1019,1021,1023,1025],{"class":186,"line":407},[184,1014,357],{"class":205},[184,1016,302],{"class":225},[184,1018,222],{"class":205},[184,1020,202],{"class":205},[184,1022,367],{"class":366},[184,1024,370],{"class":205},[184,1026,245],{"class":205},[184,1028,1029],{"class":186,"line":414},[184,1030,1031],{"class":267},"      \u002F\u002F Add additional tool directories\n",[184,1033,1034,1036,1038,1040,1042,1044,1046,1048,1051,1053],{"class":186,"line":420},[184,1035,382],{"class":201},[184,1037,385],{"class":205},[184,1039,388],{"class":201},[184,1041,385],{"class":205},[184,1043,393],{"class":197},[184,1045,202],{"class":212},[184,1047,222],{"class":205},[184,1049,1050],{"class":225},"legacy-tools",[184,1052,222],{"class":205},[184,1054,283],{"class":212},[184,1056,1057,1059,1061,1063,1065,1067,1069,1071,1074,1076],{"class":186,"line":445},[184,1058,382],{"class":201},[184,1060,385],{"class":205},[184,1062,388],{"class":201},[184,1064,385],{"class":205},[184,1066,393],{"class":197},[184,1068,202],{"class":212},[184,1070,222],{"class":205},[184,1072,1073],{"class":225},"new-tools",[184,1075,222],{"class":205},[184,1077,283],{"class":212},[184,1079,1080],{"class":186,"line":450},[184,1081,411],{"emptyLinePlaceholder":410},[184,1083,1084],{"class":186,"line":456},[184,1085,1086],{"class":267},"      \u002F\u002F Add additional resource directories\n",[184,1088,1089,1091,1093,1095,1097,1099,1101,1103,1106,1108],{"class":186,"line":481},[184,1090,382],{"class":201},[184,1092,385],{"class":205},[184,1094,427],{"class":201},[184,1096,385],{"class":205},[184,1098,393],{"class":197},[184,1100,202],{"class":212},[184,1102,222],{"class":205},[184,1104,1105],{"class":225},"external-resources",[184,1107,222],{"class":205},[184,1109,283],{"class":212},[184,1111,1112],{"class":186,"line":487},[184,1113,484],{"class":205},[184,1115,1116],{"class":186,"line":492},[184,1117,274],{"class":205},[184,1119,1121,1123],{"class":186,"line":1120},16,[184,1122,280],{"class":205},[184,1124,283],{"class":201},[150,1126,1127],{},"This will scan:",[1129,1130,1131,1138,1143,1148,1153],"ul",{},[1132,1133,1134,1137],"li",{},[161,1135,1136],{},"server\u002Fmcp\u002Ftools\u002F"," (default)",[1132,1139,1140],{},[161,1141,1142],{},"server\u002Flegacy-tools\u002F",[1132,1144,1145],{},[161,1146,1147],{},"server\u002Fnew-tools\u002F",[1132,1149,1150,1137],{},[161,1151,1152],{},"server\u002Fmcp\u002Fresources\u002F",[1132,1154,1155],{},[161,1156,1157],{},"server\u002Fexternal-resources\u002F",[145,1159,1161],{"id":1160},"example-layer-specific-paths","Example: Layer-Specific Paths",[150,1163,1164],{},"In a Nuxt layer setup, configure paths per layer:",[154,1166,1169],{"className":177,"code":1167,"filename":1168,"language":180,"meta":163,"style":163},"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",[161,1170,1171,1183,1201,1209,1225,1230,1253,1274,1278,1282],{"__ignoreMap":163},[184,1172,1173,1175,1177,1179,1181],{"class":186,"line":187},[184,1174,191],{"class":190},[184,1176,194],{"class":190},[184,1178,198],{"class":197},[184,1180,202],{"class":201},[184,1182,206],{"class":205},[184,1184,1185,1187,1189,1191,1193,1195,1197,1199],{"class":186,"line":209},[184,1186,213],{"class":212},[184,1188,216],{"class":205},[184,1190,219],{"class":201},[184,1192,222],{"class":205},[184,1194,226],{"class":225},[184,1196,222],{"class":205},[184,1198,231],{"class":201},[184,1200,234],{"class":205},[184,1202,1203,1205,1207],{"class":186,"line":237},[184,1204,348],{"class":212},[184,1206,216],{"class":205},[184,1208,245],{"class":205},[184,1210,1211,1213,1215,1217,1219,1221,1223],{"class":186,"line":248},[184,1212,357],{"class":205},[184,1214,302],{"class":225},[184,1216,222],{"class":205},[184,1218,202],{"class":205},[184,1220,367],{"class":366},[184,1222,370],{"class":205},[184,1224,245],{"class":205},[184,1226,1227],{"class":186,"line":271},[184,1228,1229],{"class":267},"      \u002F\u002F Only include API-specific tools\n",[184,1231,1232,1234,1236,1238,1241,1243,1245,1248,1250],{"class":186,"line":277},[184,1233,382],{"class":201},[184,1235,385],{"class":205},[184,1237,388],{"class":201},[184,1239,1240],{"class":205}," =",[184,1242,219],{"class":212},[184,1244,222],{"class":205},[184,1246,1247],{"class":225},"api\u002Ftools",[184,1249,222],{"class":205},[184,1251,1252],{"class":212},"]\n",[184,1254,1255,1257,1259,1261,1263,1265,1267,1270,1272],{"class":186,"line":407},[184,1256,382],{"class":201},[184,1258,385],{"class":205},[184,1260,427],{"class":201},[184,1262,1240],{"class":205},[184,1264,219],{"class":212},[184,1266,222],{"class":205},[184,1268,1269],{"class":225},"api\u002Fresources",[184,1271,222],{"class":205},[184,1273,1252],{"class":212},[184,1275,1276],{"class":186,"line":414},[184,1277,484],{"class":205},[184,1279,1280],{"class":186,"line":420},[184,1281,274],{"class":205},[184,1283,1284,1286],{"class":186,"line":445},[184,1285,280],{"class":205},[184,1287,283],{"class":201},[145,1289,1291],{"id":1290},"path-resolution","Path Resolution",[150,1293,1294],{},"Paths are resolved relative to:",[1296,1297,1298,1303],"ol",{},[1132,1299,681,1300,1302],{},[161,1301,766],{}," directory of the current Nuxt layer",[1132,1304,1305],{},"The project root (for absolute paths)",[154,1307,1309],{"className":177,"code":1308,"language":180,"meta":163,"style":163},"\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",[161,1310,1311,1316,1339,1343,1348],{"__ignoreMap":163},[184,1312,1313],{"class":186,"line":187},[184,1314,1315],{"class":267},"\u002F\u002F Relative to server\u002F\n",[184,1317,1318,1320,1322,1324,1326,1328,1330,1332,1335,1337],{"class":186,"line":209},[184,1319,367],{"class":201},[184,1321,385],{"class":205},[184,1323,388],{"class":201},[184,1325,385],{"class":205},[184,1327,393],{"class":197},[184,1329,202],{"class":201},[184,1331,222],{"class":205},[184,1333,1334],{"class":225},"custom\u002Ftools",[184,1336,222],{"class":205},[184,1338,283],{"class":201},[184,1340,1341],{"class":186,"line":237},[184,1342,411],{"emptyLinePlaceholder":410},[184,1344,1345],{"class":186,"line":248},[184,1346,1347],{"class":267},"\u002F\u002F Absolute from project root\n",[184,1349,1350,1352,1354,1356,1358,1360,1362,1364,1367,1369],{"class":186,"line":271},[184,1351,367],{"class":201},[184,1353,385],{"class":205},[184,1355,388],{"class":201},[184,1357,385],{"class":205},[184,1359,393],{"class":197},[184,1361,202],{"class":201},[184,1363,222],{"class":205},[184,1365,1366],{"class":225},"\u002Fabsolute\u002Fpath\u002Fto\u002Ftools",[184,1368,222],{"class":205},[184,1370,283],{"class":201},[145,1372,1374],{"id":1373},"best-practices","Best Practices",[1296,1376,1377,1384,1390,1396,1402],{},[1132,1378,1379,1383],{},[1380,1381,1382],"strong",{},"Use descriptive directory names",": Make it clear what each directory contains",[1132,1385,1386,1389],{},[1380,1387,1388],{},"Keep paths organized",": Group related definitions together",[1132,1391,1392,1395],{},[1380,1393,1394],{},"Document custom paths",": Add comments explaining why custom paths are used",[1132,1397,1398,1401],{},[1380,1399,1400],{},"Test path resolution",": Ensure paths resolve correctly in all environments",[1132,1403,1404,1407],{},[1380,1405,1406],{},"Consider layer structure",": Use layers for complex multi-app setups",[145,1409,1411],{"id":1410},"next-steps","Next Steps",[1129,1413,1414,1420,1425],{},[1132,1415,1416,1419],{},[1417,1418,61],"a",{"href":62}," - Create multiple MCP endpoints",[1132,1421,1422,1424],{},[1417,1423,86],{"href":87}," - Learn more about hooks",[1132,1426,1427,1429],{},[1417,1428,20],{"href":21}," - Configure the module",[1431,1432,1433],"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":163,"searchDepth":209,"depth":209,"links":1435},[1436,1437,1438,1442,1443,1444,1445,1446,1447,1448],{"id":147,"depth":209,"text":148},{"id":166,"depth":209,"text":167},{"id":295,"depth":209,"text":296,"children":1439},[1440,1441],{"id":307,"depth":237,"text":308},{"id":499,"depth":237,"text":500},{"id":677,"depth":209,"text":678},{"id":770,"depth":209,"text":771},{"id":933,"depth":209,"text":934},{"id":1160,"depth":209,"text":1161},{"id":1290,"depth":209,"text":1291},{"id":1373,"depth":209,"text":1374},{"id":1410,"depth":209,"text":1411},"Customize where the module looks for MCP definitions.","md",null,{},{"icon":74},{"title":71,"description":1455},"Customize the directory structure for MCP definitions.","f-MSb76rqKDnsgMyvCLVB9cbgpIZ6Bnyp3y5GVp2_Tc",[1458,1460],{"title":61,"path":62,"stem":63,"description":1459,"icon":64,"children":-1},"Create custom MCP endpoints with their own tools, resources, and prompts.",{"title":76,"path":77,"stem":78,"description":1461,"icon":79,"children":-1},"Intercept MCP requests to add authentication, logging, analytics, and more.",1774007087743]