[{"data":1,"prerenderedAt":2141},["ShallowReactive",2],{"navigation_docs":3,"-getting-started-configuration":287,"-getting-started-configuration-surround":2136},[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":2127,"extension":2128,"links":2129,"meta":2130,"navigation":2131,"path":21,"seo":2132,"stem":22,"__hash__":2135},"docs\u002F1.getting-started\u002F3.configuration.md","Configure the module",{"type":291,"value":292,"toc":2111},"minimark",[293,298,307,411,414,418,421,1153,1157,1162,1165,1238,1242,1245,1317,1320,1337,1341,1344,1416,1422,1428,1524,1528,1531,1597,1603,1616,1620,1623,1688,1691,1875,1879,1882,1949,1953,1956,2074,2078,2107],[294,295,297],"h2",{"id":296},"basic-configuration","Basic Configuration",[299,300,301,302,306],"p",{},"Add the module to your ",[303,304,305],"code",{},"nuxt.config.ts",":",[308,309,314],"pre",{"className":310,"code":311,"filename":305,"language":312,"meta":313,"style":313},"language-typescript shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","export default defineNuxtConfig({\n  modules: ['@nuxtjs\u002Fmcp-toolkit'],\n  mcp: {\n    name: 'My MCP Server',\n  },\n})\n","typescript","",[303,315,316,340,367,378,396,402],{"__ignoreMap":313},[317,318,321,325,328,332,336],"span",{"class":319,"line":320},"line",1,[317,322,324],{"class":323},"s7zQu","export",[317,326,327],{"class":323}," default",[317,329,331],{"class":330},"s2Zo4"," defineNuxtConfig",[317,333,335],{"class":334},"sTEyZ","(",[317,337,339],{"class":338},"sMK4o","{\n",[317,341,343,347,349,352,355,359,361,364],{"class":319,"line":342},2,[317,344,346],{"class":345},"swJcz","  modules",[317,348,306],{"class":338},[317,350,351],{"class":334}," [",[317,353,354],{"class":338},"'",[317,356,358],{"class":357},"sfazB","@nuxtjs\u002Fmcp-toolkit",[317,360,354],{"class":338},[317,362,363],{"class":334},"]",[317,365,366],{"class":338},",\n",[317,368,370,373,375],{"class":319,"line":369},3,[317,371,372],{"class":345},"  mcp",[317,374,306],{"class":338},[317,376,377],{"class":338}," {\n",[317,379,381,384,386,389,392,394],{"class":319,"line":380},4,[317,382,383],{"class":345},"    name",[317,385,306],{"class":338},[317,387,388],{"class":338}," '",[317,390,391],{"class":357},"My MCP Server",[317,393,354],{"class":338},[317,395,366],{"class":338},[317,397,399],{"class":319,"line":398},5,[317,400,401],{"class":338},"  },\n",[317,403,405,408],{"class":319,"line":404},6,[317,406,407],{"class":338},"}",[317,409,410],{"class":334},")\n",[299,412,413],{},"The module works with sensible defaults, so minimal configuration is required.",[294,415,417],{"id":416},"configuration-options","Configuration Options",[299,419,420],{},"All available configuration options:",[422,423,424,438,450,461,472,483,491,580,780,827,853,886,938,973,1039,1105],"field-group",{},[425,426,429,435],"field",{"name":427,"type":428},"enabled","boolean",[299,430,431,432],{},"Default: ",[303,433,434],{},"true",[299,436,437],{},"Enable or disable the MCP server.",[425,439,442,447],{"name":440,"type":441},"route","string",[299,443,431,444],{},[303,445,446],{},"'\u002Fmcp'",[299,448,449],{},"The HTTP route where the MCP server will be accessible.",[425,451,453,458],{"name":452,"type":441},"browserRedirect",[299,454,431,455],{},[303,456,457],{},"'\u002F'",[299,459,460],{},"URL to redirect browsers when they access the MCP endpoint.",[425,462,464,469],{"name":463,"type":441},"name",[299,465,431,466],{},[303,467,468],{},"''",[299,470,471],{},"The name of your MCP server (used in the MCP protocol handshake).",[425,473,475,480],{"name":474,"type":441},"version",[299,476,431,477],{},[303,478,479],{},"'1.0.0'",[299,481,482],{},"The version of your MCP server (semantic versioning).",[425,484,486,487,490],{"name":485,"type":441},"description","Optional. A human-readable description of the server, sent as part of ",[303,488,489],{},"serverInfo"," during initialization. Clients display it in their UI (server lists, tooltips, install prompts).",[425,492,494,500,569],{"name":493,"type":441},"instructions",[299,495,496,497,499],{},"Optional. Operational instructions injected by clients into the model's system prompt. Use this to guide LLMs on workflows, tool relationships, or constraints — not to identify the server (use ",[303,498,485],{}," for that).",[308,501,505],{"className":502,"code":503,"filename":305,"language":504,"meta":313,"style":313},"language-ts shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","export default defineNuxtConfig({\n  mcp: {\n    description: 'Read and update todos for the current user.',\n    instructions: 'Always call list-todos before create-todo. Group results by status.',\n  },\n})\n","ts",[303,506,507,519,527,543,559,563],{"__ignoreMap":313},[317,508,509,511,513,515,517],{"class":319,"line":320},[317,510,324],{"class":323},[317,512,327],{"class":323},[317,514,331],{"class":330},[317,516,335],{"class":334},[317,518,339],{"class":338},[317,520,521,523,525],{"class":319,"line":342},[317,522,372],{"class":345},[317,524,306],{"class":338},[317,526,377],{"class":338},[317,528,529,532,534,536,539,541],{"class":319,"line":369},[317,530,531],{"class":345},"    description",[317,533,306],{"class":338},[317,535,388],{"class":338},[317,537,538],{"class":357},"Read and update todos for the current user.",[317,540,354],{"class":338},[317,542,366],{"class":338},[317,544,545,548,550,552,555,557],{"class":319,"line":380},[317,546,547],{"class":345},"    instructions",[317,549,306],{"class":338},[317,551,388],{"class":338},[317,553,554],{"class":357},"Always call list-todos before create-todo. Group results by status.",[317,556,354],{"class":338},[317,558,366],{"class":338},[317,560,561],{"class":319,"line":398},[317,562,401],{"class":338},[317,564,565,567],{"class":319,"line":404},[317,566,407],{"class":338},[317,568,410],{"class":334},[299,570,571,572,579],{},"See the ",[573,574,578],"a",{"href":575,"rel":576},"https:\u002F\u002Fmodelcontextprotocol.io\u002Fspecification\u002F2025-11-25\u002Fbasic\u002Flifecycle#initialization",[577],"nofollow","MCP lifecycle spec",".",[425,581,584,601],{"name":582,"type":583},"icons","McpIcon[]",[299,585,586,587,590,591,594,595,590,598,306],{},"Optional. Icons for the server, displayed by clients in their UI. Each entry needs ",[303,588,589],{},"src"," and ",[303,592,593],{},"mimeType",", with optional ",[303,596,597],{},"sizes",[303,599,600],{},"theme",[308,602,604],{"className":502,"code":603,"filename":305,"language":504,"meta":313,"style":313},"export default defineNuxtConfig({\n  mcp: {\n    icons: [\n      { src: 'https:\u002F\u002Fexample.com\u002Ficon-light.png', mimeType: 'image\u002Fpng', sizes: ['64x64'], theme: 'light' },\n      { src: 'https:\u002F\u002Fexample.com\u002Ficon-dark.png', mimeType: 'image\u002Fpng', sizes: ['64x64'], theme: 'dark' },\n    ],\n  },\n})\n",[303,605,606,618,626,636,703,761,768,773],{"__ignoreMap":313},[317,607,608,610,612,614,616],{"class":319,"line":320},[317,609,324],{"class":323},[317,611,327],{"class":323},[317,613,331],{"class":330},[317,615,335],{"class":334},[317,617,339],{"class":338},[317,619,620,622,624],{"class":319,"line":342},[317,621,372],{"class":345},[317,623,306],{"class":338},[317,625,377],{"class":338},[317,627,628,631,633],{"class":319,"line":369},[317,629,630],{"class":345},"    icons",[317,632,306],{"class":338},[317,634,635],{"class":334}," [\n",[317,637,638,641,644,646,648,651,653,656,659,661,663,666,668,670,673,675,677,679,682,684,686,688,691,693,695,698,700],{"class":319,"line":380},[317,639,640],{"class":338},"      {",[317,642,643],{"class":345}," src",[317,645,306],{"class":338},[317,647,388],{"class":338},[317,649,650],{"class":357},"https:\u002F\u002Fexample.com\u002Ficon-light.png",[317,652,354],{"class":338},[317,654,655],{"class":338},",",[317,657,658],{"class":345}," mimeType",[317,660,306],{"class":338},[317,662,388],{"class":338},[317,664,665],{"class":357},"image\u002Fpng",[317,667,354],{"class":338},[317,669,655],{"class":338},[317,671,672],{"class":345}," sizes",[317,674,306],{"class":338},[317,676,351],{"class":334},[317,678,354],{"class":338},[317,680,681],{"class":357},"64x64",[317,683,354],{"class":338},[317,685,363],{"class":334},[317,687,655],{"class":338},[317,689,690],{"class":345}," theme",[317,692,306],{"class":338},[317,694,388],{"class":338},[317,696,697],{"class":357},"light",[317,699,354],{"class":338},[317,701,702],{"class":338}," },\n",[317,704,705,707,709,711,713,716,718,720,722,724,726,728,730,732,734,736,738,740,742,744,746,748,750,752,754,757,759],{"class":319,"line":398},[317,706,640],{"class":338},[317,708,643],{"class":345},[317,710,306],{"class":338},[317,712,388],{"class":338},[317,714,715],{"class":357},"https:\u002F\u002Fexample.com\u002Ficon-dark.png",[317,717,354],{"class":338},[317,719,655],{"class":338},[317,721,658],{"class":345},[317,723,306],{"class":338},[317,725,388],{"class":338},[317,727,665],{"class":357},[317,729,354],{"class":338},[317,731,655],{"class":338},[317,733,672],{"class":345},[317,735,306],{"class":338},[317,737,351],{"class":334},[317,739,354],{"class":338},[317,741,681],{"class":357},[317,743,354],{"class":338},[317,745,363],{"class":334},[317,747,655],{"class":338},[317,749,690],{"class":345},[317,751,306],{"class":338},[317,753,388],{"class":338},[317,755,756],{"class":357},"dark",[317,758,354],{"class":338},[317,760,702],{"class":338},[317,762,763,766],{"class":319,"line":404},[317,764,765],{"class":334},"    ]",[317,767,366],{"class":338},[317,769,771],{"class":319,"line":770},7,[317,772,401],{"class":338},[317,774,776,778],{"class":319,"line":775},8,[317,777,407],{"class":338},[317,779,410],{"class":334},[425,781,783,788,795],{"name":782,"type":441},"dir",[299,784,431,785],{},[303,786,787],{},"'mcp'",[299,789,790,791,794],{},"Base directory for MCP definitions (relative to ",[303,792,793],{},"server\u002F","). The module expects:",[796,797,798,805,811,817],"ul",{},[799,800,801,804],"li",{},[303,802,803],{},"{dir}\u002Ftools\u002F"," - Tool definitions",[799,806,807,810],{},[303,808,809],{},"{dir}\u002Fresources\u002F"," - Resource definitions",[799,812,813,816],{},[303,814,815],{},"{dir}\u002Fprompts\u002F"," - Prompt definitions",[799,818,819,822,823,826],{},[303,820,821],{},"{dir}\u002Fhandlers\u002F\u003Cname>\u002F"," - Optional named handler folders (",[573,824,825],{"href":153},"organization",")",[425,828,830,834],{"name":829,"type":441},"appsDir",[299,831,431,832],{},[303,833,787],{},[299,835,836,837,840,841,844,845,848,849,852],{},"Base directory for ",[573,838,839],{"href":162},"MCP Apps"," ",[303,842,843],{},".vue"," files (relative to Nuxt's ",[303,846,847],{},"app\u002F"," directory). Scanned across layers. Defaults to ",[303,850,851],{},"app\u002Fmcp\u002F",". The MCP Apps pipeline only runs when this directory exists.",[425,854,857,862,873],{"name":855,"type":856},"defaultHandlerStrategy","'orphans' | 'all'",[299,858,431,859],{},[303,860,861],{},"'orphans'",[299,863,864,865,868,869,872],{},"Controls which auto-discovered definitions land on the default ",[303,866,867],{},"\u002Fmcp"," route when ",[573,870,871],{"href":153},"named handlers"," exist:",[796,874,875,880],{},[799,876,877,879],{},[303,878,861],{}," — only definitions not attached to any named handler (no folder attribution). When no folder handler exists, every definition is an orphan, so this naturally falls back to \"expose everything\" — zero-effort back-compat.",[799,881,882,885],{},[303,883,884],{},"'all'"," — every discovered definition, including those attributed to named handlers. Useful when you want a \"kitchen sink\" route in addition to specialized ones.",[425,887,889,893],{"name":888,"type":428},"autoImports",[299,890,431,891],{},[303,892,434],{},[299,894,895,896,899,900,899,903,899,906,909,910,913,914,899,917,899,920,899,923,926,927,930,931,934,935,579],{},"Auto-import MCP helpers (",[303,897,898],{},"defineMcpTool",", ",[303,901,902],{},"defineMcpResource",[303,904,905],{},"defineMcpHandler",[303,907,908],{},"defineMcpApp",", …), types (",[303,911,912],{},"McpRequestExtra",", …), composables (",[303,915,916],{},"useMcpSession",[303,918,919],{},"useMcpServer",[303,921,922],{},"useMcpLogger",[303,924,925],{},"useMcpElicitation","), and the ",[303,928,929],{},"InstallButton"," component. Set to ",[303,932,933],{},"false"," to disable all auto-imports and require explicit imports from ",[303,936,937],{},"@nuxtjs\u002Fmcp-toolkit\u002Fserver",[425,939,941,945],{"name":940,"type":428},"llms",[299,942,431,943],{},[303,944,434],{},[299,946,947,948,951,952,959,960,963,964,967,968,970,971,579],{},"Advertise this MCP server in ",[303,949,950],{},"\u002Fllms.txt"," when ",[573,953,956],{"href":954,"rel":955},"https:\u002F\u002Fgithub.com\u002Fnuxt-content\u002Fnuxt-llms",[577],[303,957,958],{},"nuxt-llms"," is registered. Adds an ",[303,961,962],{},"## MCP Server"," section pointing at your endpoint so agents that discover your site through ",[303,965,966],{},"llms.txt"," can connect without any extra configuration. No-op when ",[303,969,958],{}," isn't installed. See ",[573,972,215],{"href":216},[425,974,976,989,1014],{"name":975,"type":428},"logging",[299,977,978,979,984,985,579],{},"Optional. Server-side observability for every MCP request via ",[573,980,983],{"href":981,"rel":982},"https:\u002F\u002Fevlog.dev",[577],"evlog",", an ",[986,987,988],"strong",{},"optional peer dependency",[796,990,991,1001,1009],{},[799,992,993,996,997,1000],{},[303,994,995],{},"undefined"," (default) — auto-detect: on if the ",[303,998,999],{},"evlog\u002Fnuxt"," module is registered, off otherwise.",[799,1002,1003,1005,1006,1008],{},[303,1004,434],{}," — assert ",[303,1007,999],{}," is registered; throw at build otherwise.",[799,1010,1011,1013],{},[303,1012,933],{}," — opt out entirely.",[299,1015,1016,1017,899,1020,899,1023,899,1026,899,1029,1032,1033,1038],{},"When active, every MCP request emits a wide event tagged with ",[303,1018,1019],{},"mcp.transport",[303,1021,1022],{},"mcp.method",[303,1024,1025],{},"mcp.tool",[303,1027,1028],{},"mcp.session_id",[303,1030,1031],{},"mcp.request_id",", etc. Use ",[573,1034,1035],{"href":201},[303,1036,1037],{},"useMcpLogger()"," to push extra fields and discrete events.",[425,1040,1043,1047,1060,1066],{"name":1041,"type":1042},"sessions","boolean | object",[299,1044,431,1045],{},[303,1046,933],{},[299,1048,1049,1050,1055,1056,1059],{},"Enable ",[573,1051,1054],{"href":1052,"rel":1053},"https:\u002F\u002Fmodelcontextprotocol.io\u002Fspecification\u002F2025-11-25\u002Fbasic\u002Ftransports#session-management",[577],"MCP session management"," (stateful transport). When enabled, the server assigns session IDs via the ",[303,1057,1058],{},"MCP-Session-Id"," header and maintains state across requests, enabling SSE streaming, server-to-client notifications, and session continuity.",[299,1061,1062,1063,1065],{},"Pass ",[303,1064,434],{}," for defaults or an object with:",[796,1067,1068,1073,1083],{},[799,1069,1070,1072],{},[303,1071,427],{}," - Enable or disable sessions",[799,1074,1075,1078,1079,1082],{},[303,1076,1077],{},"maxDuration"," - Session timeout in milliseconds (default: ",[303,1080,1081],{},"1800000"," \u002F 30 minutes)",[799,1084,1085,1088,1089,1092,1093,1096,1097,1100,1101,1104],{},[303,1086,1087],{},"maxSessions"," - Maximum concurrent sessions before new session creation returns ",[303,1090,1091],{},"503"," (default: ",[303,1094,1095],{},"1000","). Enforced on the ",[986,1098,1099],{},"Node"," Nitro server only; Cloudflare Workers use the ",[303,1102,1103],{},"agents\u002Fmcp"," path in this module, which does not apply this cap.",[425,1106,1109,1118,1144],{"name":1107,"type":1108},"security","object",[299,1110,1111,1112,1117],{},"Optional. Hardens ",[573,1113,1116],{"href":1114,"rel":1115},"https:\u002F\u002Fmodelcontextprotocol.io\u002Fspecification\u002F2025-11-25\u002Fbasic\u002Ftransports#security",[577],"Streamable HTTP"," requests.",[796,1119,1120],{},[799,1121,1122,1125,1126,1128,1129,1132,1133,1135,1136,1139,1140,1143],{},[303,1123,1124],{},"allowedOrigins"," — ",[303,1127,995],{}," (default): allow requests with no ",[303,1130,1131],{},"Origin"," header (typical for same-origin and CLI); otherwise require ",[303,1134,1131],{}," to match the server origin (scheme + host + port). Use the literal ",[303,1137,1138],{},"'*'"," in config to disable Origin checks (explicit opt-out). ",[303,1141,1142],{},"string[]"," — allow only listed origins (each entry is normalized to an origin URL).",[299,1145,1146,1147,1149,1150,579],{},"Cross-site browser clients must send an allowed ",[303,1148,1131],{}," or receive ",[986,1151,1152],{},"403",[294,1154,1156],{"id":1155},"common-configuration-scenarios","Common Configuration Scenarios",[1158,1159,1161],"h3",{"id":1160},"custom-route","Custom Route",[299,1163,1164],{},"Change the MCP endpoint route:",[308,1166,1168],{"className":310,"code":1167,"filename":305,"language":312,"meta":313,"style":313},"export default defineNuxtConfig({\n  modules: ['@nuxtjs\u002Fmcp-toolkit'],\n  mcp: {\n    route: '\u002Fapi\u002Fmcp', \u002F\u002F Custom route\n  },\n})\n",[303,1169,1170,1182,1200,1208,1228,1232],{"__ignoreMap":313},[317,1171,1172,1174,1176,1178,1180],{"class":319,"line":320},[317,1173,324],{"class":323},[317,1175,327],{"class":323},[317,1177,331],{"class":330},[317,1179,335],{"class":334},[317,1181,339],{"class":338},[317,1183,1184,1186,1188,1190,1192,1194,1196,1198],{"class":319,"line":342},[317,1185,346],{"class":345},[317,1187,306],{"class":338},[317,1189,351],{"class":334},[317,1191,354],{"class":338},[317,1193,358],{"class":357},[317,1195,354],{"class":338},[317,1197,363],{"class":334},[317,1199,366],{"class":338},[317,1201,1202,1204,1206],{"class":319,"line":369},[317,1203,372],{"class":345},[317,1205,306],{"class":338},[317,1207,377],{"class":338},[317,1209,1210,1213,1215,1217,1220,1222,1224],{"class":319,"line":380},[317,1211,1212],{"class":345},"    route",[317,1214,306],{"class":338},[317,1216,388],{"class":338},[317,1218,1219],{"class":357},"\u002Fapi\u002Fmcp",[317,1221,354],{"class":338},[317,1223,655],{"class":338},[317,1225,1227],{"class":1226},"sHwdD"," \u002F\u002F Custom route\n",[317,1229,1230],{"class":319,"line":398},[317,1231,401],{"class":338},[317,1233,1234,1236],{"class":319,"line":404},[317,1235,407],{"class":338},[317,1237,410],{"class":334},[1158,1239,1241],{"id":1240},"custom-directory","Custom Directory",[299,1243,1244],{},"Use a different directory for MCP definitions:",[308,1246,1248],{"className":310,"code":1247,"filename":305,"language":312,"meta":313,"style":313},"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",[303,1249,1250,1262,1280,1288,1307,1311],{"__ignoreMap":313},[317,1251,1252,1254,1256,1258,1260],{"class":319,"line":320},[317,1253,324],{"class":323},[317,1255,327],{"class":323},[317,1257,331],{"class":330},[317,1259,335],{"class":334},[317,1261,339],{"class":338},[317,1263,1264,1266,1268,1270,1272,1274,1276,1278],{"class":319,"line":342},[317,1265,346],{"class":345},[317,1267,306],{"class":338},[317,1269,351],{"class":334},[317,1271,354],{"class":338},[317,1273,358],{"class":357},[317,1275,354],{"class":338},[317,1277,363],{"class":334},[317,1279,366],{"class":338},[317,1281,1282,1284,1286],{"class":319,"line":369},[317,1283,372],{"class":345},[317,1285,306],{"class":338},[317,1287,377],{"class":338},[317,1289,1290,1293,1295,1297,1300,1302,1304],{"class":319,"line":380},[317,1291,1292],{"class":345},"    dir",[317,1294,306],{"class":338},[317,1296,388],{"class":338},[317,1298,1299],{"class":357},"my-mcp",[317,1301,354],{"class":338},[317,1303,655],{"class":338},[317,1305,1306],{"class":1226}," \u002F\u002F Look in server\u002Fmy-mcp\u002F instead of server\u002Fmcp\u002F\n",[317,1308,1309],{"class":319,"line":398},[317,1310,401],{"class":338},[317,1312,1313,1315],{"class":319,"line":404},[317,1314,407],{"class":338},[317,1316,410],{"class":334},[299,1318,1319],{},"This will look for definitions in:",[796,1321,1322,1327,1332],{},[799,1323,1324],{},[303,1325,1326],{},"server\u002Fmy-mcp\u002Ftools\u002F",[799,1328,1329],{},[303,1330,1331],{},"server\u002Fmy-mcp\u002Fresources\u002F",[799,1333,1334],{},[303,1335,1336],{},"server\u002Fmy-mcp\u002Fprompts\u002F",[1158,1338,1340],{"id":1339},"browser-redirect","Browser Redirect",[299,1342,1343],{},"Redirect browsers to a custom URL:",[308,1345,1347],{"className":310,"code":1346,"filename":305,"language":312,"meta":313,"style":313},"export default defineNuxtConfig({\n  modules: ['@nuxtjs\u002Fmcp-toolkit'],\n  mcp: {\n    browserRedirect: '\u002Fdocs\u002Fmcp', \u002F\u002F Redirect browsers to documentation\n  },\n})\n",[303,1348,1349,1361,1379,1387,1406,1410],{"__ignoreMap":313},[317,1350,1351,1353,1355,1357,1359],{"class":319,"line":320},[317,1352,324],{"class":323},[317,1354,327],{"class":323},[317,1356,331],{"class":330},[317,1358,335],{"class":334},[317,1360,339],{"class":338},[317,1362,1363,1365,1367,1369,1371,1373,1375,1377],{"class":319,"line":342},[317,1364,346],{"class":345},[317,1366,306],{"class":338},[317,1368,351],{"class":334},[317,1370,354],{"class":338},[317,1372,358],{"class":357},[317,1374,354],{"class":338},[317,1376,363],{"class":334},[317,1378,366],{"class":338},[317,1380,1381,1383,1385],{"class":319,"line":369},[317,1382,372],{"class":345},[317,1384,306],{"class":338},[317,1386,377],{"class":338},[317,1388,1389,1392,1394,1396,1399,1401,1403],{"class":319,"line":380},[317,1390,1391],{"class":345},"    browserRedirect",[317,1393,306],{"class":338},[317,1395,388],{"class":338},[317,1397,1398],{"class":357},"\u002Fdocs\u002Fmcp",[317,1400,354],{"class":338},[317,1402,655],{"class":338},[317,1404,1405],{"class":1226}," \u002F\u002F Redirect browsers to documentation\n",[317,1407,1408],{"class":319,"line":398},[317,1409,401],{"class":338},[317,1411,1412,1414],{"class":319,"line":404},[317,1413,407],{"class":338},[317,1415,410],{"class":334},[1158,1417,1419,1420,826],{"id":1418},"streamable-http-security-allowedorigins","Streamable HTTP security (",[303,1421,1124],{},[299,1423,1424,1425,1427],{},"When browsers call your MCP endpoint from another site, they send an ",[303,1426,1131],{}," header. By default the module requires that origin to match your app. Allow a SPA on another host (or disable checks only in controlled environments):",[308,1429,1431],{"className":310,"code":1430,"filename":305,"language":312,"meta":313,"style":313},"export default defineNuxtConfig({\n  modules: ['@nuxtjs\u002Fmcp-toolkit'],\n  mcp: {\n    security: {\n      allowedOrigins: ['https:\u002F\u002Fmy-app.vercel.app'],\n      \u002F\u002F allowedOrigins: '*' \u002F\u002F explicit opt-out — use with care\n    },\n  },\n})\n",[303,1432,1433,1445,1463,1471,1480,1500,1508,1513,1517],{"__ignoreMap":313},[317,1434,1435,1437,1439,1441,1443],{"class":319,"line":320},[317,1436,324],{"class":323},[317,1438,327],{"class":323},[317,1440,331],{"class":330},[317,1442,335],{"class":334},[317,1444,339],{"class":338},[317,1446,1447,1449,1451,1453,1455,1457,1459,1461],{"class":319,"line":342},[317,1448,346],{"class":345},[317,1450,306],{"class":338},[317,1452,351],{"class":334},[317,1454,354],{"class":338},[317,1456,358],{"class":357},[317,1458,354],{"class":338},[317,1460,363],{"class":334},[317,1462,366],{"class":338},[317,1464,1465,1467,1469],{"class":319,"line":369},[317,1466,372],{"class":345},[317,1468,306],{"class":338},[317,1470,377],{"class":338},[317,1472,1473,1476,1478],{"class":319,"line":380},[317,1474,1475],{"class":345},"    security",[317,1477,306],{"class":338},[317,1479,377],{"class":338},[317,1481,1482,1485,1487,1489,1491,1494,1496,1498],{"class":319,"line":398},[317,1483,1484],{"class":345},"      allowedOrigins",[317,1486,306],{"class":338},[317,1488,351],{"class":334},[317,1490,354],{"class":338},[317,1492,1493],{"class":357},"https:\u002F\u002Fmy-app.vercel.app",[317,1495,354],{"class":338},[317,1497,363],{"class":334},[317,1499,366],{"class":338},[317,1501,1502,1505],{"class":319,"line":404},[317,1503,1504],{"class":1226},"      \u002F\u002F allowedOrigins: '*'",[317,1506,1507],{"class":1226}," \u002F\u002F explicit opt-out — use with care\n",[317,1509,1510],{"class":319,"line":770},[317,1511,1512],{"class":338},"    },\n",[317,1514,1515],{"class":319,"line":775},[317,1516,401],{"class":338},[317,1518,1520,1522],{"class":319,"line":1519},9,[317,1521,407],{"class":338},[317,1523,410],{"class":334},[1158,1525,1527],{"id":1526},"session-management","Session Management",[299,1529,1530],{},"Enable stateful sessions to support SSE streaming, server-to-client notifications, and per-session state:",[308,1532,1534],{"className":310,"code":1533,"filename":305,"language":312,"meta":313,"style":313},"export default defineNuxtConfig({\n  modules: ['@nuxtjs\u002Fmcp-toolkit'],\n  mcp: {\n    sessions: true,\n  },\n})\n",[303,1535,1536,1548,1566,1574,1587,1591],{"__ignoreMap":313},[317,1537,1538,1540,1542,1544,1546],{"class":319,"line":320},[317,1539,324],{"class":323},[317,1541,327],{"class":323},[317,1543,331],{"class":330},[317,1545,335],{"class":334},[317,1547,339],{"class":338},[317,1549,1550,1552,1554,1556,1558,1560,1562,1564],{"class":319,"line":342},[317,1551,346],{"class":345},[317,1553,306],{"class":338},[317,1555,351],{"class":334},[317,1557,354],{"class":338},[317,1559,358],{"class":357},[317,1561,354],{"class":338},[317,1563,363],{"class":334},[317,1565,366],{"class":338},[317,1567,1568,1570,1572],{"class":319,"line":369},[317,1569,372],{"class":345},[317,1571,306],{"class":338},[317,1573,377],{"class":338},[317,1575,1576,1579,1581,1585],{"class":319,"line":380},[317,1577,1578],{"class":345},"    sessions",[317,1580,306],{"class":338},[317,1582,1584],{"class":1583},"sfNiH"," true",[317,1586,366],{"class":338},[317,1588,1589],{"class":319,"line":398},[317,1590,401],{"class":338},[317,1592,1593,1595],{"class":319,"line":404},[317,1594,407],{"class":338},[317,1596,410],{"class":334},[299,1598,1599,1600,1602],{},"With sessions enabled, the server assigns an ",[303,1601,1058],{}," during initialization. Clients include this ID in subsequent requests, allowing the server to maintain state across the session lifecycle.",[1604,1605,571,1608,1611,1612,1615],"callout",{"color":1606,"icon":1607},"info","i-lucide-info",[573,1609,1610],{"href":240},"Sessions guide"," for the full ",[303,1613,1614],{},"useMcpSession()"," API, use cases, and examples.",[1158,1617,1619],{"id":1618},"disable-auto-imports","Disable Auto-Imports",[299,1621,1622],{},"If you prefer explicit imports over auto-imports:",[308,1624,1626],{"className":310,"code":1625,"filename":305,"language":312,"meta":313,"style":313},"export default defineNuxtConfig({\n  modules: ['@nuxtjs\u002Fmcp-toolkit'],\n  mcp: {\n    autoImports: false,\n  },\n})\n",[303,1627,1628,1640,1658,1666,1678,1682],{"__ignoreMap":313},[317,1629,1630,1632,1634,1636,1638],{"class":319,"line":320},[317,1631,324],{"class":323},[317,1633,327],{"class":323},[317,1635,331],{"class":330},[317,1637,335],{"class":334},[317,1639,339],{"class":338},[317,1641,1642,1644,1646,1648,1650,1652,1654,1656],{"class":319,"line":342},[317,1643,346],{"class":345},[317,1645,306],{"class":338},[317,1647,351],{"class":334},[317,1649,354],{"class":338},[317,1651,358],{"class":357},[317,1653,354],{"class":338},[317,1655,363],{"class":334},[317,1657,366],{"class":338},[317,1659,1660,1662,1664],{"class":319,"line":369},[317,1661,372],{"class":345},[317,1663,306],{"class":338},[317,1665,377],{"class":338},[317,1667,1668,1671,1673,1676],{"class":319,"line":380},[317,1669,1670],{"class":345},"    autoImports",[317,1672,306],{"class":338},[317,1674,1675],{"class":1583}," false",[317,1677,366],{"class":338},[317,1679,1680],{"class":319,"line":398},[317,1681,401],{"class":338},[317,1683,1684,1686],{"class":319,"line":404},[317,1685,407],{"class":338},[317,1687,410],{"class":334},[299,1689,1690],{},"With auto-imports disabled, import helpers and types explicitly:",[308,1692,1695],{"className":310,"code":1693,"filename":1694,"language":312,"meta":313,"style":313},"import { z } from 'zod'\nimport { defineMcpTool, type McpRequestExtra } from '@nuxtjs\u002Fmcp-toolkit\u002Fserver'\n\nexport default defineMcpTool({\n  description: 'Echo back a message',\n  inputSchema: { message: z.string() },\n  handler: async ({ message }, extra: McpRequestExtra) => {\n    return `Echo: ${message}`\n  },\n})\n","server\u002Fmcp\u002Ftools\u002Fecho.ts",[303,1696,1697,1722,1749,1755,1767,1783,1809,1844,1864,1868],{"__ignoreMap":313},[317,1698,1699,1702,1705,1708,1711,1714,1716,1719],{"class":319,"line":320},[317,1700,1701],{"class":323},"import",[317,1703,1704],{"class":338}," {",[317,1706,1707],{"class":334}," z",[317,1709,1710],{"class":338}," }",[317,1712,1713],{"class":323}," from",[317,1715,388],{"class":338},[317,1717,1718],{"class":357},"zod",[317,1720,1721],{"class":338},"'\n",[317,1723,1724,1726,1728,1731,1733,1736,1739,1741,1743,1745,1747],{"class":319,"line":342},[317,1725,1701],{"class":323},[317,1727,1704],{"class":338},[317,1729,1730],{"class":334}," defineMcpTool",[317,1732,655],{"class":338},[317,1734,1735],{"class":323}," type",[317,1737,1738],{"class":334}," McpRequestExtra",[317,1740,1710],{"class":338},[317,1742,1713],{"class":323},[317,1744,388],{"class":338},[317,1746,937],{"class":357},[317,1748,1721],{"class":338},[317,1750,1751],{"class":319,"line":369},[317,1752,1754],{"emptyLinePlaceholder":1753},true,"\n",[317,1756,1757,1759,1761,1763,1765],{"class":319,"line":380},[317,1758,324],{"class":323},[317,1760,327],{"class":323},[317,1762,1730],{"class":330},[317,1764,335],{"class":334},[317,1766,339],{"class":338},[317,1768,1769,1772,1774,1776,1779,1781],{"class":319,"line":398},[317,1770,1771],{"class":345},"  description",[317,1773,306],{"class":338},[317,1775,388],{"class":338},[317,1777,1778],{"class":357},"Echo back a message",[317,1780,354],{"class":338},[317,1782,366],{"class":338},[317,1784,1785,1788,1790,1792,1795,1797,1799,1801,1803,1806],{"class":319,"line":404},[317,1786,1787],{"class":345},"  inputSchema",[317,1789,306],{"class":338},[317,1791,1704],{"class":338},[317,1793,1794],{"class":345}," message",[317,1796,306],{"class":338},[317,1798,1707],{"class":334},[317,1800,579],{"class":338},[317,1802,441],{"class":330},[317,1804,1805],{"class":334},"() ",[317,1807,1808],{"class":338},"},\n",[317,1810,1811,1814,1816,1820,1823,1826,1829,1832,1834,1837,1839,1842],{"class":319,"line":770},[317,1812,1813],{"class":330},"  handler",[317,1815,306],{"class":338},[317,1817,1819],{"class":1818},"spNyl"," async",[317,1821,1822],{"class":338}," ({",[317,1824,1794],{"class":1825},"sHdIc",[317,1827,1828],{"class":338}," },",[317,1830,1831],{"class":1825}," extra",[317,1833,306],{"class":338},[317,1835,1738],{"class":1836},"sBMFI",[317,1838,826],{"class":338},[317,1840,1841],{"class":1818}," =>",[317,1843,377],{"class":338},[317,1845,1846,1849,1852,1855,1858,1861],{"class":319,"line":775},[317,1847,1848],{"class":323},"    return",[317,1850,1851],{"class":338}," `",[317,1853,1854],{"class":357},"Echo: ",[317,1856,1857],{"class":338},"${",[317,1859,1860],{"class":334},"message",[317,1862,1863],{"class":338},"}`\n",[317,1865,1866],{"class":319,"line":1519},[317,1867,401],{"class":338},[317,1869,1871,1873],{"class":319,"line":1870},10,[317,1872,407],{"class":338},[317,1874,410],{"class":334},[1158,1876,1878],{"id":1877},"disable-the-module","Disable the Module",[299,1880,1881],{},"Temporarily disable the MCP server:",[308,1883,1885],{"className":310,"code":1884,"filename":305,"language":312,"meta":313,"style":313},"export default defineNuxtConfig({\n  modules: ['@nuxtjs\u002Fmcp-toolkit'],\n  mcp: {\n    enabled: false, \u002F\u002F Disable the MCP server\n  },\n})\n",[303,1886,1887,1899,1917,1925,1939,1943],{"__ignoreMap":313},[317,1888,1889,1891,1893,1895,1897],{"class":319,"line":320},[317,1890,324],{"class":323},[317,1892,327],{"class":323},[317,1894,331],{"class":330},[317,1896,335],{"class":334},[317,1898,339],{"class":338},[317,1900,1901,1903,1905,1907,1909,1911,1913,1915],{"class":319,"line":342},[317,1902,346],{"class":345},[317,1904,306],{"class":338},[317,1906,351],{"class":334},[317,1908,354],{"class":338},[317,1910,358],{"class":357},[317,1912,354],{"class":338},[317,1914,363],{"class":334},[317,1916,366],{"class":338},[317,1918,1919,1921,1923],{"class":319,"line":369},[317,1920,372],{"class":345},[317,1922,306],{"class":338},[317,1924,377],{"class":338},[317,1926,1927,1930,1932,1934,1936],{"class":319,"line":380},[317,1928,1929],{"class":345},"    enabled",[317,1931,306],{"class":338},[317,1933,1675],{"class":1583},[317,1935,655],{"class":338},[317,1937,1938],{"class":1226}," \u002F\u002F Disable the MCP server\n",[317,1940,1941],{"class":319,"line":398},[317,1942,401],{"class":338},[317,1944,1945,1947],{"class":319,"line":404},[317,1946,407],{"class":338},[317,1948,410],{"class":334},[294,1950,1952],{"id":1951},"runtime-configuration","Runtime Configuration",[299,1954,1955],{},"Access configuration at runtime:",[308,1957,1960],{"className":310,"code":1958,"filename":1959,"language":312,"meta":313,"style":313},"export default defineEventHandler((event) => {\n  const config = useRuntimeConfig(event).mcp\n\n  return {\n    name: config.name,\n    version: config.version,\n    route: config.route,\n  }\n})\n","server\u002Fapi\u002Fconfig.ts",[303,1961,1962,1984,2009,2013,2020,2034,2049,2063,2068],{"__ignoreMap":313},[317,1963,1964,1966,1968,1971,1973,1975,1978,1980,1982],{"class":319,"line":320},[317,1965,324],{"class":323},[317,1967,327],{"class":323},[317,1969,1970],{"class":330}," defineEventHandler",[317,1972,335],{"class":334},[317,1974,335],{"class":338},[317,1976,1977],{"class":1825},"event",[317,1979,826],{"class":338},[317,1981,1841],{"class":1818},[317,1983,377],{"class":338},[317,1985,1986,1989,1992,1995,1998,2000,2002,2004,2006],{"class":319,"line":342},[317,1987,1988],{"class":1818},"  const",[317,1990,1991],{"class":334}," config",[317,1993,1994],{"class":338}," =",[317,1996,1997],{"class":330}," useRuntimeConfig",[317,1999,335],{"class":345},[317,2001,1977],{"class":334},[317,2003,826],{"class":345},[317,2005,579],{"class":338},[317,2007,2008],{"class":334},"mcp\n",[317,2010,2011],{"class":319,"line":369},[317,2012,1754],{"emptyLinePlaceholder":1753},[317,2014,2015,2018],{"class":319,"line":380},[317,2016,2017],{"class":323},"  return",[317,2019,377],{"class":338},[317,2021,2022,2024,2026,2028,2030,2032],{"class":319,"line":398},[317,2023,383],{"class":345},[317,2025,306],{"class":338},[317,2027,1991],{"class":334},[317,2029,579],{"class":338},[317,2031,463],{"class":334},[317,2033,366],{"class":338},[317,2035,2036,2039,2041,2043,2045,2047],{"class":319,"line":404},[317,2037,2038],{"class":345},"    version",[317,2040,306],{"class":338},[317,2042,1991],{"class":334},[317,2044,579],{"class":338},[317,2046,474],{"class":334},[317,2048,366],{"class":338},[317,2050,2051,2053,2055,2057,2059,2061],{"class":319,"line":770},[317,2052,1212],{"class":345},[317,2054,306],{"class":338},[317,2056,1991],{"class":334},[317,2058,579],{"class":338},[317,2060,440],{"class":334},[317,2062,366],{"class":338},[317,2064,2065],{"class":319,"line":775},[317,2066,2067],{"class":338},"  }\n",[317,2069,2070,2072],{"class":319,"line":1519},[317,2071,407],{"class":338},[317,2073,410],{"class":334},[294,2075,2077],{"id":2076},"next-steps","Next Steps",[796,2079,2080,2085,2090,2095,2102],{},[799,2081,2082,2084],{},[573,2083,41],{"href":47}," - Learn how to create tools",[799,2086,2087,2089],{},[573,2088,71],{"href":76}," - Create resources",[799,2091,2092,2094],{},[573,2093,100],{"href":105}," - Create prompts",[799,2096,2097,2099,2100],{},[573,2098,239],{"href":240}," - Per-session state with ",[303,2101,1614],{},[799,2103,2104,2106],{},[573,2105,195],{"href":196}," - Advanced path configuration",[2108,2109,2110],"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 .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 .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 pre.shiki code .sfNiH, html code.shiki .sfNiH{--shiki-light:#FF5370;--shiki-default:#FF9CAC;--shiki-dark:#FF9CAC}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sHdIc, html code.shiki .sHdIc{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#EEFFFF;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}",{"title":313,"searchDepth":342,"depth":342,"links":2112},[2113,2114,2115,2125,2126],{"id":296,"depth":342,"text":297},{"id":416,"depth":342,"text":417},{"id":1155,"depth":342,"text":1156,"children":2116},[2117,2118,2119,2120,2122,2123,2124],{"id":1160,"depth":369,"text":1161},{"id":1240,"depth":369,"text":1241},{"id":1339,"depth":369,"text":1340},{"id":1418,"depth":369,"text":2121},"Streamable HTTP security (allowedOrigins)",{"id":1526,"depth":369,"text":1527},{"id":1618,"depth":369,"text":1619},{"id":1877,"depth":369,"text":1878},{"id":1951,"depth":342,"text":1952},{"id":2076,"depth":342,"text":2077},"Configure the Nuxt MCP module to fit your needs.","md",null,{},{"title":20,"icon":23},{"title":2133,"description":2134},"Configure the Nuxt MCP Toolkit module","All configuration options for @nuxtjs\u002Fmcp-toolkit — route, name, version, sessions, security, default handler strategy, and auto-imports with practical examples.","8-eBPbj-kn53e-_1XWvg90RcdeJwKZELsjP4JyDQ88A",[2137,2139],{"title":15,"path":16,"stem":17,"description":2138,"icon":18,"children":-1},"Install and configure the Nuxt MCP module in your project.",{"title":25,"path":26,"stem":27,"description":2140,"icon":28,"children":-1},"Visual debugging tool integrated into Nuxt DevTools.",1787670843475]