[{"data":1,"prerenderedAt":893},["ShallowReactive",2],{"navigation_docs":3,"-advanced-hooks":127,"-advanced-hooks-surround":888},[4,40,68,98],{"title":5,"path":6,"stem":7,"children":8,"page":39},"Getting Started","/getting-started","1.getting-started",[9,14,19,24,29,34],{"title":10,"path":11,"stem":12,"icon":13},"Introduction","/getting-started/introduction","1.getting-started/1.introduction","i-lucide-book-open",{"title":15,"path":16,"stem":17,"icon":18},"Installation","/getting-started/installation","1.getting-started/2.installation","i-lucide-download",{"title":20,"path":21,"stem":22,"icon":23},"Configuration","/getting-started/configuration","1.getting-started/3.configuration","i-lucide-settings",{"title":25,"path":26,"stem":27,"icon":28},"MCP Inspector","/getting-started/inspector","1.getting-started/4.inspector","i-lucide-circuit-board",{"title":30,"path":31,"stem":32,"icon":33},"Connection","/getting-started/connection","1.getting-started/5.connection","i-lucide-plug",{"title":35,"path":36,"stem":37,"icon":38},"Agent Skills","/getting-started/agent-skills","1.getting-started/6.agent-skills","i-lucide-sparkles",false,{"title":41,"path":42,"stem":43,"children":44,"page":39},"Core Concepts","/core-concepts","2.core-concepts",[45,48,53,58,63],{"title":20,"path":46,"stem":47,"icon":23},"/core-concepts/configuration","2.core-concepts/1.configuration",{"title":49,"path":50,"stem":51,"icon":52},"Tools","/core-concepts/tools","2.core-concepts/2.tools","i-lucide-wrench",{"title":54,"path":55,"stem":56,"icon":57},"Resources","/core-concepts/resources","2.core-concepts/3.resources","i-lucide-package",{"title":59,"path":60,"stem":61,"icon":62},"Prompts","/core-concepts/prompts","2.core-concepts/4.prompts","i-lucide-message-square",{"title":64,"path":65,"stem":66,"icon":67},"Handlers","/core-concepts/handlers","2.core-concepts/5.handlers","i-lucide-server",{"title":69,"path":70,"stem":71,"children":72,"page":39},"Advanced Topics","/advanced","3.advanced",[73,78,83,88,93],{"title":74,"path":75,"stem":76,"icon":77},"Custom Paths","/advanced/custom-paths","3.advanced/1.custom-paths","i-lucide-folder",{"title":79,"path":80,"stem":81,"icon":82},"Middleware","/advanced/middleware","3.advanced/2.middleware","i-lucide-shield",{"title":84,"path":85,"stem":86,"icon":87},"TypeScript","/advanced/typescript","3.advanced/3.typescript","i-lucide-type",{"title":89,"path":90,"stem":91,"icon":92},"Hooks","/advanced/hooks","3.advanced/4.hooks","i-lucide-webhook",{"title":94,"path":95,"stem":96,"icon":97},"MCP Evals","/advanced/evals","3.advanced/5.evals","i-lucide-flask-conical",{"title":99,"path":100,"stem":101,"children":102,"page":39},"Examples","/examples","4.examples",[103,108,113,118,123],{"title":104,"path":105,"stem":106,"icon":107},"Authentication","/examples/authentication","4.examples/1.authentication","i-lucide-shield-check",{"title":109,"path":110,"stem":111,"icon":112},"API Integration","/examples/api-integration","4.examples/2.api-integration","i-lucide-globe",{"title":114,"path":115,"stem":116,"icon":117},"Common Patterns","/examples/common-patterns","4.examples/3.common-patterns","i-lucide-lightbulb",{"title":119,"path":120,"stem":121,"icon":122},"File Operations","/examples/file-operations","4.examples/4.file-operations","i-lucide-file",{"title":124,"path":125,"stem":126,"icon":62},"Prompt Examples","/examples/prompt-examples","4.examples/5.prompt-examples",{"id":128,"title":89,"body":129,"description":880,"extension":881,"links":882,"meta":883,"navigation":884,"path":90,"seo":885,"stem":91,"__hash__":887},"docs/3.advanced/4.hooks.md",{"type":130,"value":131,"toc":869},"minimark",[132,137,141,148,151,156,289,293,548,552,710,714,720,789,796,800,803,842,846,865],[133,134,136],"h2",{"id":135},"available-hooks","Available Hooks",[138,139,140],"p",{},"The Nuxt MCP module provides hooks for extending and customizing behavior.",[133,142,144],{"id":143},"mcpdefinitionspaths",[145,146,147],"code",{},"mcp:definitions:paths",[138,149,150],{},"This hook allows you to add additional directories to scan for MCP definitions.",[152,153,155],"h3",{"id":154},"hook-signature","Hook Signature",[157,158,163],"pre",{"className":159,"code":160,"language":161,"meta":162,"style":162},"language-typescript shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","nuxt.hook('mcp:definitions:paths', (paths: {\n  tools: string[]\n  resources: string[]\n  prompts: string[]\n  handlers: string[]\n}) => {\n  // Modify paths\n})\n","typescript","",[145,164,165,209,225,237,249,261,273,280],{"__ignoreMap":162},[166,167,170,174,178,182,185,188,191,193,196,199,203,206],"span",{"class":168,"line":169},"line",1,[166,171,173],{"class":172},"sTEyZ","nuxt",[166,175,177],{"class":176},"sMK4o",".",[166,179,181],{"class":180},"s2Zo4","hook",[166,183,184],{"class":172},"(",[166,186,187],{"class":176},"'",[166,189,147],{"class":190},"sfazB",[166,192,187],{"class":176},[166,194,195],{"class":176},",",[166,197,198],{"class":176}," (",[166,200,202],{"class":201},"sHdIc","paths",[166,204,205],{"class":176},":",[166,207,208],{"class":176}," {\n",[166,210,212,216,218,222],{"class":168,"line":211},2,[166,213,215],{"class":214},"swJcz","  tools",[166,217,205],{"class":176},[166,219,221],{"class":220},"sBMFI"," string",[166,223,224],{"class":172},"[]\n",[166,226,228,231,233,235],{"class":168,"line":227},3,[166,229,230],{"class":214},"  resources",[166,232,205],{"class":176},[166,234,221],{"class":220},[166,236,224],{"class":172},[166,238,240,243,245,247],{"class":168,"line":239},4,[166,241,242],{"class":214},"  prompts",[166,244,205],{"class":176},[166,246,221],{"class":220},[166,248,224],{"class":172},[166,250,252,255,257,259],{"class":168,"line":251},5,[166,253,254],{"class":214},"  handlers",[166,256,205],{"class":176},[166,258,221],{"class":220},[166,260,224],{"class":172},[166,262,264,267,271],{"class":168,"line":263},6,[166,265,266],{"class":176},"})",[166,268,270],{"class":269},"spNyl"," =>",[166,272,208],{"class":176},[166,274,276],{"class":168,"line":275},7,[166,277,279],{"class":278},"sHwdD","  // Modify paths\n",[166,281,283,286],{"class":168,"line":282},8,[166,284,285],{"class":176},"}",[166,287,288],{"class":172},")\n",[152,290,292],{"id":291},"usage-in-nuxtconfigts","Usage in nuxt.config.ts",[157,294,297],{"className":159,"code":295,"filename":296,"language":161,"meta":162,"style":162},"export default defineNuxtConfig({\n  modules: ['@nuxtjs/mcp-toolkit'],\n  hooks: {\n    'mcp:definitions:paths'(paths) {\n      // Add additional tool directories\n      paths.tools.push('shared/tools')\n      paths.tools.push('legacy/tools')\n\n      // Add additional resource directories\n      paths.resources.push('shared/resources')\n\n      // Add additional prompt directories\n      paths.prompts.push('shared/prompts')\n\n      // Add additional handler directories\n      paths.handlers.push('custom/handlers')\n    },\n  },\n})\n","nuxt.config.ts",[145,298,299,316,339,348,366,371,397,420,426,432,457,462,468,493,498,504,529,535,541],{"__ignoreMap":162},[166,300,301,305,308,311,313],{"class":168,"line":169},[166,302,304],{"class":303},"s7zQu","export",[166,306,307],{"class":303}," default",[166,309,310],{"class":180}," defineNuxtConfig",[166,312,184],{"class":172},[166,314,315],{"class":176},"{\n",[166,317,318,321,323,326,328,331,333,336],{"class":168,"line":211},[166,319,320],{"class":214},"  modules",[166,322,205],{"class":176},[166,324,325],{"class":172}," [",[166,327,187],{"class":176},[166,329,330],{"class":190},"@nuxtjs/mcp-toolkit",[166,332,187],{"class":176},[166,334,335],{"class":172},"]",[166,337,338],{"class":176},",\n",[166,340,341,344,346],{"class":168,"line":227},[166,342,343],{"class":214},"  hooks",[166,345,205],{"class":176},[166,347,208],{"class":176},[166,349,350,353,355,357,359,361,364],{"class":168,"line":239},[166,351,352],{"class":176},"    '",[166,354,147],{"class":190},[166,356,187],{"class":176},[166,358,184],{"class":176},[166,360,202],{"class":201},[166,362,363],{"class":176},")",[166,365,208],{"class":176},[166,367,368],{"class":168,"line":251},[166,369,370],{"class":278},"      // Add additional tool directories\n",[166,372,373,376,378,381,383,386,388,390,393,395],{"class":168,"line":263},[166,374,375],{"class":172},"      paths",[166,377,177],{"class":176},[166,379,380],{"class":172},"tools",[166,382,177],{"class":176},[166,384,385],{"class":180},"push",[166,387,184],{"class":214},[166,389,187],{"class":176},[166,391,392],{"class":190},"shared/tools",[166,394,187],{"class":176},[166,396,288],{"class":214},[166,398,399,401,403,405,407,409,411,413,416,418],{"class":168,"line":275},[166,400,375],{"class":172},[166,402,177],{"class":176},[166,404,380],{"class":172},[166,406,177],{"class":176},[166,408,385],{"class":180},[166,410,184],{"class":214},[166,412,187],{"class":176},[166,414,415],{"class":190},"legacy/tools",[166,417,187],{"class":176},[166,419,288],{"class":214},[166,421,422],{"class":168,"line":282},[166,423,425],{"emptyLinePlaceholder":424},true,"\n",[166,427,429],{"class":168,"line":428},9,[166,430,431],{"class":278},"      // Add additional resource directories\n",[166,433,435,437,439,442,444,446,448,450,453,455],{"class":168,"line":434},10,[166,436,375],{"class":172},[166,438,177],{"class":176},[166,440,441],{"class":172},"resources",[166,443,177],{"class":176},[166,445,385],{"class":180},[166,447,184],{"class":214},[166,449,187],{"class":176},[166,451,452],{"class":190},"shared/resources",[166,454,187],{"class":176},[166,456,288],{"class":214},[166,458,460],{"class":168,"line":459},11,[166,461,425],{"emptyLinePlaceholder":424},[166,463,465],{"class":168,"line":464},12,[166,466,467],{"class":278},"      // Add additional prompt directories\n",[166,469,471,473,475,478,480,482,484,486,489,491],{"class":168,"line":470},13,[166,472,375],{"class":172},[166,474,177],{"class":176},[166,476,477],{"class":172},"prompts",[166,479,177],{"class":176},[166,481,385],{"class":180},[166,483,184],{"class":214},[166,485,187],{"class":176},[166,487,488],{"class":190},"shared/prompts",[166,490,187],{"class":176},[166,492,288],{"class":214},[166,494,496],{"class":168,"line":495},14,[166,497,425],{"emptyLinePlaceholder":424},[166,499,501],{"class":168,"line":500},15,[166,502,503],{"class":278},"      // Add additional handler directories\n",[166,505,507,509,511,514,516,518,520,522,525,527],{"class":168,"line":506},16,[166,508,375],{"class":172},[166,510,177],{"class":176},[166,512,513],{"class":172},"handlers",[166,515,177],{"class":176},[166,517,385],{"class":180},[166,519,184],{"class":214},[166,521,187],{"class":176},[166,523,524],{"class":190},"custom/handlers",[166,526,187],{"class":176},[166,528,288],{"class":214},[166,530,532],{"class":168,"line":531},17,[166,533,534],{"class":176},"    },\n",[166,536,538],{"class":168,"line":537},18,[166,539,540],{"class":176},"  },\n",[166,542,544,546],{"class":168,"line":543},19,[166,545,285],{"class":176},[166,547,288],{"class":172},[152,549,551],{"id":550},"usage-in-a-custom-module","Usage in a Custom Module",[157,553,556],{"className":159,"code":554,"filename":555,"language":161,"meta":162,"style":162},"export default defineNuxtModule({\n  setup(options, nuxt) {\n    nuxt.hook('mcp:definitions:paths', (paths) => {\n      // Add paths from this module\n      paths.tools.push('my-module/tools')\n      paths.resources.push('my-module/resources')\n      paths.prompts.push('my-module/prompts')\n    })\n  },\n})\n","my-module.ts",[145,557,558,571,590,619,624,647,670,693,700,704],{"__ignoreMap":162},[166,559,560,562,564,567,569],{"class":168,"line":169},[166,561,304],{"class":303},[166,563,307],{"class":303},[166,565,566],{"class":180}," defineNuxtModule",[166,568,184],{"class":172},[166,570,315],{"class":176},[166,572,573,576,578,581,583,586,588],{"class":168,"line":211},[166,574,575],{"class":214},"  setup",[166,577,184],{"class":176},[166,579,580],{"class":201},"options",[166,582,195],{"class":176},[166,584,585],{"class":201}," nuxt",[166,587,363],{"class":176},[166,589,208],{"class":176},[166,591,592,595,597,599,601,603,605,607,609,611,613,615,617],{"class":168,"line":227},[166,593,594],{"class":172},"    nuxt",[166,596,177],{"class":176},[166,598,181],{"class":180},[166,600,184],{"class":214},[166,602,187],{"class":176},[166,604,147],{"class":190},[166,606,187],{"class":176},[166,608,195],{"class":176},[166,610,198],{"class":176},[166,612,202],{"class":201},[166,614,363],{"class":176},[166,616,270],{"class":269},[166,618,208],{"class":176},[166,620,621],{"class":168,"line":239},[166,622,623],{"class":278},"      // Add paths from this module\n",[166,625,626,628,630,632,634,636,638,640,643,645],{"class":168,"line":251},[166,627,375],{"class":172},[166,629,177],{"class":176},[166,631,380],{"class":172},[166,633,177],{"class":176},[166,635,385],{"class":180},[166,637,184],{"class":214},[166,639,187],{"class":176},[166,641,642],{"class":190},"my-module/tools",[166,644,187],{"class":176},[166,646,288],{"class":214},[166,648,649,651,653,655,657,659,661,663,666,668],{"class":168,"line":263},[166,650,375],{"class":172},[166,652,177],{"class":176},[166,654,441],{"class":172},[166,656,177],{"class":176},[166,658,385],{"class":180},[166,660,184],{"class":214},[166,662,187],{"class":176},[166,664,665],{"class":190},"my-module/resources",[166,667,187],{"class":176},[166,669,288],{"class":214},[166,671,672,674,676,678,680,682,684,686,689,691],{"class":168,"line":275},[166,673,375],{"class":172},[166,675,177],{"class":176},[166,677,477],{"class":172},[166,679,177],{"class":176},[166,681,385],{"class":180},[166,683,184],{"class":214},[166,685,187],{"class":176},[166,687,688],{"class":190},"my-module/prompts",[166,690,187],{"class":176},[166,692,288],{"class":214},[166,694,695,698],{"class":168,"line":282},[166,696,697],{"class":176},"    }",[166,699,288],{"class":214},[166,701,702],{"class":168,"line":428},[166,703,540],{"class":176},[166,705,706,708],{"class":168,"line":434},[166,707,285],{"class":176},[166,709,288],{"class":172},[133,711,713],{"id":712},"path-structure","Path Structure",[138,715,716,717,719],{},"The ",[145,718,202],{}," object contains arrays of directory paths:",[157,721,723],{"className":159,"code":722,"language":161,"meta":162,"style":162},"{\n  tools: string[]      // Directories to scan for tools\n  resources: string[]  // Directories to scan for resources\n  prompts: string[]    // Directories to scan for prompts\n  handlers: string[]  // Directories to scan for handlers\n}\n",[145,724,725,729,743,757,771,784],{"__ignoreMap":162},[166,726,727],{"class":168,"line":169},[166,728,315],{"class":176},[166,730,731,733,735,737,740],{"class":168,"line":211},[166,732,215],{"class":220},[166,734,205],{"class":176},[166,736,221],{"class":172},[166,738,739],{"class":214},"[]      ",[166,741,742],{"class":278},"// Directories to scan for tools\n",[166,744,745,747,749,751,754],{"class":168,"line":227},[166,746,230],{"class":220},[166,748,205],{"class":176},[166,750,221],{"class":172},[166,752,753],{"class":214},"[]  ",[166,755,756],{"class":278},"// Directories to scan for resources\n",[166,758,759,761,763,765,768],{"class":168,"line":239},[166,760,242],{"class":220},[166,762,205],{"class":176},[166,764,221],{"class":172},[166,766,767],{"class":214},"[]    ",[166,769,770],{"class":278},"// Directories to scan for prompts\n",[166,772,773,775,777,779,781],{"class":168,"line":251},[166,774,254],{"class":220},[166,776,205],{"class":176},[166,778,221],{"class":172},[166,780,753],{"class":214},[166,782,783],{"class":278},"// Directories to scan for handlers\n",[166,785,786],{"class":168,"line":263},[166,787,788],{"class":176},"}\n",[138,790,791,792,795],{},"All paths are relative to the ",[145,793,794],{},"server/"," directory of each Nuxt layer.",[133,797,799],{"id":798},"path-resolution","Path Resolution",[138,801,802],{},"Paths are resolved in the following order:",[804,805,806,823,833],"ol",{},[807,808,809,815,816,819,820],"li",{},[810,811,812,813],"strong",{},"Relative to ",[145,814,794],{},": Paths like ",[145,817,818],{},"'tools'"," resolve to ",[145,821,822],{},"server/tools/",[807,824,825,828,829,832],{},[810,826,827],{},"Absolute paths",": Paths starting with ",[145,830,831],{},"/"," resolve from project root",[807,834,835,838,839,841],{},[810,836,837],{},"Layer-specific",": Each Nuxt layer resolves paths relative to its own ",[145,840,794],{}," directory",[133,843,845],{"id":844},"next-steps","Next Steps",[847,848,849,855,860],"ul",{},[807,850,851,854],{},[852,853,74],"a",{"href":75}," - Learn more about customizing paths",[807,856,857,859],{},[852,858,64],{"href":65}," - Create multiple MCP endpoints",[807,861,862,864],{},[852,863,20],{"href":21}," - Configure the module",[866,867,868],"style",{},"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 .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}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 .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}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 .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}",{"title":162,"searchDepth":211,"depth":211,"links":870},[871,872,877,878,879],{"id":135,"depth":211,"text":136},{"id":143,"depth":211,"text":147,"children":873},[874,875,876],{"id":154,"depth":227,"text":155},{"id":291,"depth":227,"text":292},{"id":550,"depth":227,"text":551},{"id":712,"depth":211,"text":713},{"id":798,"depth":211,"text":799},{"id":844,"depth":211,"text":845},"Use Nuxt hooks to extend and customize the MCP module.","md",null,{},{"icon":92},{"title":89,"description":886},"Use hooks to extend MCP definitions paths and customize behavior.","sKZWQ0KFecixTom8n5KHvX1cVr0nvVA39NVnba-f8tY",[889,891],{"title":84,"path":85,"stem":86,"description":890,"icon":87,"children":-1},"Type safety and TypeScript features in the Nuxt MCP module.",{"title":94,"path":95,"stem":96,"description":892,"icon":97,"children":-1},"Evaluate MCP tools and workflows with Evalite and the AI SDK MCP client.",1770606002773]