[{"data":1,"prerenderedAt":1522},["ShallowReactive",2],{"navigation_docs":3,"-getting-started-configuration":139,"-getting-started-configuration-surround":1517},[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":20,"body":141,"description":1509,"extension":1510,"links":1511,"meta":1512,"navigation":1513,"path":21,"seo":1514,"stem":22,"__hash__":1516},"docs\u002F1.getting-started\u002F3.configuration.md",{"type":142,"value":143,"toc":1493},"minimark",[144,149,158,262,265,269,272,530,534,539,542,616,620,623,695,698,715,719,722,794,801,807,905,909,912,978,984,998,1002,1005,1070,1073,1257,1261,1264,1331,1335,1338,1456,1460,1489],[145,146,148],"h2",{"id":147},"basic-configuration","Basic Configuration",[150,151,152,153,157],"p",{},"Add the module to your ",[154,155,156],"code",{},"nuxt.config.ts",":",[159,160,165],"pre",{"className":161,"code":162,"filename":156,"language":163,"meta":164,"style":164},"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","",[154,166,167,191,218,229,247,253],{"__ignoreMap":164},[168,169,172,176,179,183,187],"span",{"class":170,"line":171},"line",1,[168,173,175],{"class":174},"s7zQu","export",[168,177,178],{"class":174}," default",[168,180,182],{"class":181},"s2Zo4"," defineNuxtConfig",[168,184,186],{"class":185},"sTEyZ","(",[168,188,190],{"class":189},"sMK4o","{\n",[168,192,194,198,200,203,206,210,212,215],{"class":170,"line":193},2,[168,195,197],{"class":196},"swJcz","  modules",[168,199,157],{"class":189},[168,201,202],{"class":185}," [",[168,204,205],{"class":189},"'",[168,207,209],{"class":208},"sfazB","@nuxtjs\u002Fmcp-toolkit",[168,211,205],{"class":189},[168,213,214],{"class":185},"]",[168,216,217],{"class":189},",\n",[168,219,221,224,226],{"class":170,"line":220},3,[168,222,223],{"class":196},"  mcp",[168,225,157],{"class":189},[168,227,228],{"class":189}," {\n",[168,230,232,235,237,240,243,245],{"class":170,"line":231},4,[168,233,234],{"class":196},"    name",[168,236,157],{"class":189},[168,238,239],{"class":189}," '",[168,241,242],{"class":208},"My MCP Server",[168,244,205],{"class":189},[168,246,217],{"class":189},[168,248,250],{"class":170,"line":249},5,[168,251,252],{"class":189},"  },\n",[168,254,256,259],{"class":170,"line":255},6,[168,257,258],{"class":189},"}",[168,260,261],{"class":185},")\n",[150,263,264],{},"The module works with sensible defaults, so minimal configuration is required.",[145,266,268],{"id":267},"configuration-options","Configuration Options",[150,270,271],{},"All available configuration options:",[273,274,275,289,301,312,323,334,371,412,481],"field-group",{},[276,277,280,286],"field",{"name":278,"type":279},"enabled","boolean",[150,281,282,283],{},"Default: ",[154,284,285],{},"true",[150,287,288],{},"Enable or disable the MCP server.",[276,290,293,298],{"name":291,"type":292},"route","string",[150,294,282,295],{},[154,296,297],{},"'\u002Fmcp'",[150,299,300],{},"The HTTP route where the MCP server will be accessible.",[276,302,304,309],{"name":303,"type":292},"browserRedirect",[150,305,282,306],{},[154,307,308],{},"'\u002F'",[150,310,311],{},"URL to redirect browsers when they access the MCP endpoint.",[276,313,315,320],{"name":314,"type":292},"name",[150,316,282,317],{},[154,318,319],{},"''",[150,321,322],{},"The name of your MCP server (used in the MCP protocol handshake).",[276,324,326,331],{"name":325,"type":292},"version",[150,327,282,328],{},[154,329,330],{},"'1.0.0'",[150,332,333],{},"The version of your MCP server (semantic versioning).",[276,335,337,342,349],{"name":336,"type":292},"dir",[150,338,282,339],{},[154,340,341],{},"'mcp'",[150,343,344,345,348],{},"Base directory for MCP definitions (relative to ",[154,346,347],{},"server\u002F","). The module expects:",[350,351,352,359,365],"ul",{},[353,354,355,358],"li",{},[154,356,357],{},"{dir}\u002Ftools\u002F"," - Tool definitions",[353,360,361,364],{},[154,362,363],{},"{dir}\u002Fresources\u002F"," - Resource definitions",[353,366,367,370],{},[154,368,369],{},"{dir}\u002Fprompts\u002F"," - Prompt definitions",[276,372,374,378],{"name":373,"type":279},"autoImports",[150,375,282,376],{},[154,377,285],{},[150,379,380,381,384,385,388,389,392,393,384,396,399,400,403,404,407,408,411],{},"Auto-import MCP helpers (",[154,382,383],{},"defineMcpTool",", ",[154,386,387],{},"defineMcpResource",", etc.), types (",[154,390,391],{},"McpToolExtra",", …), composables (",[154,394,395],{},"useMcpSession",[154,397,398],{},"useMcpServer","), and the ",[154,401,402],{},"InstallButton"," component. Set to ",[154,405,406],{},"false"," to disable all auto-imports and require explicit imports from ",[154,409,410],{},"@nuxtjs\u002Fmcp-toolkit\u002Fserver",".",[276,413,416,420,435,441],{"name":414,"type":415},"sessions","boolean | object",[150,417,282,418],{},[154,419,406],{},[150,421,422,423,430,431,434],{},"Enable ",[424,425,429],"a",{"href":426,"rel":427},"https:\u002F\u002Fmodelcontextprotocol.io\u002Fspecification\u002F2025-11-25\u002Fbasic\u002Ftransports#session-management",[428],"nofollow","MCP session management"," (stateful transport). When enabled, the server assigns session IDs via the ",[154,432,433],{},"MCP-Session-Id"," header and maintains state across requests, enabling SSE streaming, server-to-client notifications, and session continuity.",[150,436,437,438,440],{},"Pass ",[154,439,285],{}," for defaults or an object with:",[350,442,443,448,458],{},[353,444,445,447],{},[154,446,278],{}," - Enable or disable sessions",[353,449,450,453,454,457],{},[154,451,452],{},"maxDuration"," - Session timeout in milliseconds (default: ",[154,455,456],{},"1800000"," \u002F 30 minutes)",[353,459,460,463,464,467,468,471,472,476,477,480],{},[154,461,462],{},"maxSessions"," - Maximum concurrent sessions before new session creation returns ",[154,465,466],{},"503"," (default: ",[154,469,470],{},"1000","). Enforced on the ",[473,474,475],"strong",{},"Node"," Nitro server only; Cloudflare Workers use the ",[154,478,479],{},"agents\u002Fmcp"," path in this module, which does not apply this cap.",[276,482,485,494,521],{"name":483,"type":484},"security","object",[150,486,487,488,493],{},"Optional. Hardens ",[424,489,492],{"href":490,"rel":491},"https:\u002F\u002Fmodelcontextprotocol.io\u002Fspecification\u002F2025-11-25\u002Fbasic\u002Ftransports#security",[428],"Streamable HTTP"," requests.",[350,495,496],{},[353,497,498,501,502,505,506,509,510,512,513,516,517,520],{},[154,499,500],{},"allowedOrigins"," — ",[154,503,504],{},"undefined"," (default): allow requests with no ",[154,507,508],{},"Origin"," header (typical for same-origin and CLI); otherwise require ",[154,511,508],{}," to match the server origin (scheme + host + port). Use the literal ",[154,514,515],{},"'*'"," in config to disable Origin checks (explicit opt-out). ",[154,518,519],{},"string[]"," — allow only listed origins (each entry is normalized to an origin URL).",[150,522,523,524,526,527,411],{},"Cross-site browser clients must send an allowed ",[154,525,508],{}," or receive ",[473,528,529],{},"403",[145,531,533],{"id":532},"common-configuration-scenarios","Common Configuration Scenarios",[535,536,538],"h3",{"id":537},"custom-route","Custom Route",[150,540,541],{},"Change the MCP endpoint route:",[159,543,545],{"className":161,"code":544,"filename":156,"language":163,"meta":164,"style":164},"export default defineNuxtConfig({\n  modules: ['@nuxtjs\u002Fmcp-toolkit'],\n  mcp: {\n    route: '\u002Fapi\u002Fmcp', \u002F\u002F Custom route\n  },\n})\n",[154,546,547,559,577,585,606,610],{"__ignoreMap":164},[168,548,549,551,553,555,557],{"class":170,"line":171},[168,550,175],{"class":174},[168,552,178],{"class":174},[168,554,182],{"class":181},[168,556,186],{"class":185},[168,558,190],{"class":189},[168,560,561,563,565,567,569,571,573,575],{"class":170,"line":193},[168,562,197],{"class":196},[168,564,157],{"class":189},[168,566,202],{"class":185},[168,568,205],{"class":189},[168,570,209],{"class":208},[168,572,205],{"class":189},[168,574,214],{"class":185},[168,576,217],{"class":189},[168,578,579,581,583],{"class":170,"line":220},[168,580,223],{"class":196},[168,582,157],{"class":189},[168,584,228],{"class":189},[168,586,587,590,592,594,597,599,602],{"class":170,"line":231},[168,588,589],{"class":196},"    route",[168,591,157],{"class":189},[168,593,239],{"class":189},[168,595,596],{"class":208},"\u002Fapi\u002Fmcp",[168,598,205],{"class":189},[168,600,601],{"class":189},",",[168,603,605],{"class":604},"sHwdD"," \u002F\u002F Custom route\n",[168,607,608],{"class":170,"line":249},[168,609,252],{"class":189},[168,611,612,614],{"class":170,"line":255},[168,613,258],{"class":189},[168,615,261],{"class":185},[535,617,619],{"id":618},"custom-directory","Custom Directory",[150,621,622],{},"Use a different directory for MCP definitions:",[159,624,626],{"className":161,"code":625,"filename":156,"language":163,"meta":164,"style":164},"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",[154,627,628,640,658,666,685,689],{"__ignoreMap":164},[168,629,630,632,634,636,638],{"class":170,"line":171},[168,631,175],{"class":174},[168,633,178],{"class":174},[168,635,182],{"class":181},[168,637,186],{"class":185},[168,639,190],{"class":189},[168,641,642,644,646,648,650,652,654,656],{"class":170,"line":193},[168,643,197],{"class":196},[168,645,157],{"class":189},[168,647,202],{"class":185},[168,649,205],{"class":189},[168,651,209],{"class":208},[168,653,205],{"class":189},[168,655,214],{"class":185},[168,657,217],{"class":189},[168,659,660,662,664],{"class":170,"line":220},[168,661,223],{"class":196},[168,663,157],{"class":189},[168,665,228],{"class":189},[168,667,668,671,673,675,678,680,682],{"class":170,"line":231},[168,669,670],{"class":196},"    dir",[168,672,157],{"class":189},[168,674,239],{"class":189},[168,676,677],{"class":208},"my-mcp",[168,679,205],{"class":189},[168,681,601],{"class":189},[168,683,684],{"class":604}," \u002F\u002F Look in server\u002Fmy-mcp\u002F instead of server\u002Fmcp\u002F\n",[168,686,687],{"class":170,"line":249},[168,688,252],{"class":189},[168,690,691,693],{"class":170,"line":255},[168,692,258],{"class":189},[168,694,261],{"class":185},[150,696,697],{},"This will look for definitions in:",[350,699,700,705,710],{},[353,701,702],{},[154,703,704],{},"server\u002Fmy-mcp\u002Ftools\u002F",[353,706,707],{},[154,708,709],{},"server\u002Fmy-mcp\u002Fresources\u002F",[353,711,712],{},[154,713,714],{},"server\u002Fmy-mcp\u002Fprompts\u002F",[535,716,718],{"id":717},"browser-redirect","Browser Redirect",[150,720,721],{},"Redirect browsers to a custom URL:",[159,723,725],{"className":161,"code":724,"filename":156,"language":163,"meta":164,"style":164},"export default defineNuxtConfig({\n  modules: ['@nuxtjs\u002Fmcp-toolkit'],\n  mcp: {\n    browserRedirect: '\u002Fdocs\u002Fmcp', \u002F\u002F Redirect browsers to documentation\n  },\n})\n",[154,726,727,739,757,765,784,788],{"__ignoreMap":164},[168,728,729,731,733,735,737],{"class":170,"line":171},[168,730,175],{"class":174},[168,732,178],{"class":174},[168,734,182],{"class":181},[168,736,186],{"class":185},[168,738,190],{"class":189},[168,740,741,743,745,747,749,751,753,755],{"class":170,"line":193},[168,742,197],{"class":196},[168,744,157],{"class":189},[168,746,202],{"class":185},[168,748,205],{"class":189},[168,750,209],{"class":208},[168,752,205],{"class":189},[168,754,214],{"class":185},[168,756,217],{"class":189},[168,758,759,761,763],{"class":170,"line":220},[168,760,223],{"class":196},[168,762,157],{"class":189},[168,764,228],{"class":189},[168,766,767,770,772,774,777,779,781],{"class":170,"line":231},[168,768,769],{"class":196},"    browserRedirect",[168,771,157],{"class":189},[168,773,239],{"class":189},[168,775,776],{"class":208},"\u002Fdocs\u002Fmcp",[168,778,205],{"class":189},[168,780,601],{"class":189},[168,782,783],{"class":604}," \u002F\u002F Redirect browsers to documentation\n",[168,785,786],{"class":170,"line":249},[168,787,252],{"class":189},[168,789,790,792],{"class":170,"line":255},[168,791,258],{"class":189},[168,793,261],{"class":185},[535,795,797,798,800],{"id":796},"streamable-http-security-allowedorigins","Streamable HTTP security (",[154,799,500],{},")",[150,802,803,804,806],{},"When browsers call your MCP endpoint from another site, they send an ",[154,805,508],{}," 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):",[159,808,810],{"className":161,"code":809,"filename":156,"language":163,"meta":164,"style":164},"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",[154,811,812,824,842,850,859,879,887,893,898],{"__ignoreMap":164},[168,813,814,816,818,820,822],{"class":170,"line":171},[168,815,175],{"class":174},[168,817,178],{"class":174},[168,819,182],{"class":181},[168,821,186],{"class":185},[168,823,190],{"class":189},[168,825,826,828,830,832,834,836,838,840],{"class":170,"line":193},[168,827,197],{"class":196},[168,829,157],{"class":189},[168,831,202],{"class":185},[168,833,205],{"class":189},[168,835,209],{"class":208},[168,837,205],{"class":189},[168,839,214],{"class":185},[168,841,217],{"class":189},[168,843,844,846,848],{"class":170,"line":220},[168,845,223],{"class":196},[168,847,157],{"class":189},[168,849,228],{"class":189},[168,851,852,855,857],{"class":170,"line":231},[168,853,854],{"class":196},"    security",[168,856,157],{"class":189},[168,858,228],{"class":189},[168,860,861,864,866,868,870,873,875,877],{"class":170,"line":249},[168,862,863],{"class":196},"      allowedOrigins",[168,865,157],{"class":189},[168,867,202],{"class":185},[168,869,205],{"class":189},[168,871,872],{"class":208},"https:\u002F\u002Fmy-app.vercel.app",[168,874,205],{"class":189},[168,876,214],{"class":185},[168,878,217],{"class":189},[168,880,881,884],{"class":170,"line":255},[168,882,883],{"class":604},"      \u002F\u002F allowedOrigins: '*'",[168,885,886],{"class":604}," \u002F\u002F explicit opt-out — use with care\n",[168,888,890],{"class":170,"line":889},7,[168,891,892],{"class":189},"    },\n",[168,894,896],{"class":170,"line":895},8,[168,897,252],{"class":189},[168,899,901,903],{"class":170,"line":900},9,[168,902,258],{"class":189},[168,904,261],{"class":185},[535,906,908],{"id":907},"session-management","Session Management",[150,910,911],{},"Enable stateful sessions to support SSE streaming, server-to-client notifications, and per-session state:",[159,913,915],{"className":161,"code":914,"filename":156,"language":163,"meta":164,"style":164},"export default defineNuxtConfig({\n  modules: ['@nuxtjs\u002Fmcp-toolkit'],\n  mcp: {\n    sessions: true,\n  },\n})\n",[154,916,917,929,947,955,968,972],{"__ignoreMap":164},[168,918,919,921,923,925,927],{"class":170,"line":171},[168,920,175],{"class":174},[168,922,178],{"class":174},[168,924,182],{"class":181},[168,926,186],{"class":185},[168,928,190],{"class":189},[168,930,931,933,935,937,939,941,943,945],{"class":170,"line":193},[168,932,197],{"class":196},[168,934,157],{"class":189},[168,936,202],{"class":185},[168,938,205],{"class":189},[168,940,209],{"class":208},[168,942,205],{"class":189},[168,944,214],{"class":185},[168,946,217],{"class":189},[168,948,949,951,953],{"class":170,"line":220},[168,950,223],{"class":196},[168,952,157],{"class":189},[168,954,228],{"class":189},[168,956,957,960,962,966],{"class":170,"line":231},[168,958,959],{"class":196},"    sessions",[168,961,157],{"class":189},[168,963,965],{"class":964},"sfNiH"," true",[168,967,217],{"class":189},[168,969,970],{"class":170,"line":249},[168,971,252],{"class":189},[168,973,974,976],{"class":170,"line":255},[168,975,258],{"class":189},[168,977,261],{"class":185},[150,979,980,981,983],{},"With sessions enabled, the server assigns an ",[154,982,433],{}," during initialization. Clients include this ID in subsequent requests, allowing the server to maintain state across the session lifecycle.",[985,986,989,990,993,994,997],"callout",{"color":987,"icon":988},"info","i-lucide-info","See the ",[424,991,992],{"href":97},"Sessions guide"," for the full ",[154,995,996],{},"useMcpSession()"," API, use cases, and examples.",[535,999,1001],{"id":1000},"disable-auto-imports","Disable Auto-Imports",[150,1003,1004],{},"If you prefer explicit imports over auto-imports:",[159,1006,1008],{"className":161,"code":1007,"filename":156,"language":163,"meta":164,"style":164},"export default defineNuxtConfig({\n  modules: ['@nuxtjs\u002Fmcp-toolkit'],\n  mcp: {\n    autoImports: false,\n  },\n})\n",[154,1009,1010,1022,1040,1048,1060,1064],{"__ignoreMap":164},[168,1011,1012,1014,1016,1018,1020],{"class":170,"line":171},[168,1013,175],{"class":174},[168,1015,178],{"class":174},[168,1017,182],{"class":181},[168,1019,186],{"class":185},[168,1021,190],{"class":189},[168,1023,1024,1026,1028,1030,1032,1034,1036,1038],{"class":170,"line":193},[168,1025,197],{"class":196},[168,1027,157],{"class":189},[168,1029,202],{"class":185},[168,1031,205],{"class":189},[168,1033,209],{"class":208},[168,1035,205],{"class":189},[168,1037,214],{"class":185},[168,1039,217],{"class":189},[168,1041,1042,1044,1046],{"class":170,"line":220},[168,1043,223],{"class":196},[168,1045,157],{"class":189},[168,1047,228],{"class":189},[168,1049,1050,1053,1055,1058],{"class":170,"line":231},[168,1051,1052],{"class":196},"    autoImports",[168,1054,157],{"class":189},[168,1056,1057],{"class":964}," false",[168,1059,217],{"class":189},[168,1061,1062],{"class":170,"line":249},[168,1063,252],{"class":189},[168,1065,1066,1068],{"class":170,"line":255},[168,1067,258],{"class":189},[168,1069,261],{"class":185},[150,1071,1072],{},"With auto-imports disabled, import helpers and types explicitly:",[159,1074,1077],{"className":161,"code":1075,"filename":1076,"language":163,"meta":164,"style":164},"import { z } from 'zod'\nimport { defineMcpTool, type McpToolExtra } 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: McpToolExtra) => {\n    return `Echo: ${message}`\n  },\n})\n","server\u002Fmcp\u002Ftools\u002Fecho.ts",[154,1078,1079,1104,1131,1137,1149,1165,1191,1226,1246,1250],{"__ignoreMap":164},[168,1080,1081,1084,1087,1090,1093,1096,1098,1101],{"class":170,"line":171},[168,1082,1083],{"class":174},"import",[168,1085,1086],{"class":189}," {",[168,1088,1089],{"class":185}," z",[168,1091,1092],{"class":189}," }",[168,1094,1095],{"class":174}," from",[168,1097,239],{"class":189},[168,1099,1100],{"class":208},"zod",[168,1102,1103],{"class":189},"'\n",[168,1105,1106,1108,1110,1113,1115,1118,1121,1123,1125,1127,1129],{"class":170,"line":193},[168,1107,1083],{"class":174},[168,1109,1086],{"class":189},[168,1111,1112],{"class":185}," defineMcpTool",[168,1114,601],{"class":189},[168,1116,1117],{"class":174}," type",[168,1119,1120],{"class":185}," McpToolExtra",[168,1122,1092],{"class":189},[168,1124,1095],{"class":174},[168,1126,239],{"class":189},[168,1128,410],{"class":208},[168,1130,1103],{"class":189},[168,1132,1133],{"class":170,"line":220},[168,1134,1136],{"emptyLinePlaceholder":1135},true,"\n",[168,1138,1139,1141,1143,1145,1147],{"class":170,"line":231},[168,1140,175],{"class":174},[168,1142,178],{"class":174},[168,1144,1112],{"class":181},[168,1146,186],{"class":185},[168,1148,190],{"class":189},[168,1150,1151,1154,1156,1158,1161,1163],{"class":170,"line":249},[168,1152,1153],{"class":196},"  description",[168,1155,157],{"class":189},[168,1157,239],{"class":189},[168,1159,1160],{"class":208},"Echo back a message",[168,1162,205],{"class":189},[168,1164,217],{"class":189},[168,1166,1167,1170,1172,1174,1177,1179,1181,1183,1185,1188],{"class":170,"line":255},[168,1168,1169],{"class":196},"  inputSchema",[168,1171,157],{"class":189},[168,1173,1086],{"class":189},[168,1175,1176],{"class":196}," message",[168,1178,157],{"class":189},[168,1180,1089],{"class":185},[168,1182,411],{"class":189},[168,1184,292],{"class":181},[168,1186,1187],{"class":185},"() ",[168,1189,1190],{"class":189},"},\n",[168,1192,1193,1196,1198,1202,1205,1208,1211,1214,1216,1219,1221,1224],{"class":170,"line":889},[168,1194,1195],{"class":181},"  handler",[168,1197,157],{"class":189},[168,1199,1201],{"class":1200},"spNyl"," async",[168,1203,1204],{"class":189}," ({",[168,1206,1176],{"class":1207},"sHdIc",[168,1209,1210],{"class":189}," },",[168,1212,1213],{"class":1207}," extra",[168,1215,157],{"class":189},[168,1217,1120],{"class":1218},"sBMFI",[168,1220,800],{"class":189},[168,1222,1223],{"class":1200}," =>",[168,1225,228],{"class":189},[168,1227,1228,1231,1234,1237,1240,1243],{"class":170,"line":895},[168,1229,1230],{"class":174},"    return",[168,1232,1233],{"class":189}," `",[168,1235,1236],{"class":208},"Echo: ",[168,1238,1239],{"class":189},"${",[168,1241,1242],{"class":185},"message",[168,1244,1245],{"class":189},"}`\n",[168,1247,1248],{"class":170,"line":900},[168,1249,252],{"class":189},[168,1251,1253,1255],{"class":170,"line":1252},10,[168,1254,258],{"class":189},[168,1256,261],{"class":185},[535,1258,1260],{"id":1259},"disable-the-module","Disable the Module",[150,1262,1263],{},"Temporarily disable the MCP server:",[159,1265,1267],{"className":161,"code":1266,"filename":156,"language":163,"meta":164,"style":164},"export default defineNuxtConfig({\n  modules: ['@nuxtjs\u002Fmcp-toolkit'],\n  mcp: {\n    enabled: false, \u002F\u002F Disable the MCP server\n  },\n})\n",[154,1268,1269,1281,1299,1307,1321,1325],{"__ignoreMap":164},[168,1270,1271,1273,1275,1277,1279],{"class":170,"line":171},[168,1272,175],{"class":174},[168,1274,178],{"class":174},[168,1276,182],{"class":181},[168,1278,186],{"class":185},[168,1280,190],{"class":189},[168,1282,1283,1285,1287,1289,1291,1293,1295,1297],{"class":170,"line":193},[168,1284,197],{"class":196},[168,1286,157],{"class":189},[168,1288,202],{"class":185},[168,1290,205],{"class":189},[168,1292,209],{"class":208},[168,1294,205],{"class":189},[168,1296,214],{"class":185},[168,1298,217],{"class":189},[168,1300,1301,1303,1305],{"class":170,"line":220},[168,1302,223],{"class":196},[168,1304,157],{"class":189},[168,1306,228],{"class":189},[168,1308,1309,1312,1314,1316,1318],{"class":170,"line":231},[168,1310,1311],{"class":196},"    enabled",[168,1313,157],{"class":189},[168,1315,1057],{"class":964},[168,1317,601],{"class":189},[168,1319,1320],{"class":604}," \u002F\u002F Disable the MCP server\n",[168,1322,1323],{"class":170,"line":249},[168,1324,252],{"class":189},[168,1326,1327,1329],{"class":170,"line":255},[168,1328,258],{"class":189},[168,1330,261],{"class":185},[145,1332,1334],{"id":1333},"runtime-configuration","Runtime Configuration",[150,1336,1337],{},"Access configuration at runtime:",[159,1339,1342],{"className":161,"code":1340,"filename":1341,"language":163,"meta":164,"style":164},"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",[154,1343,1344,1366,1391,1395,1402,1416,1431,1445,1450],{"__ignoreMap":164},[168,1345,1346,1348,1350,1353,1355,1357,1360,1362,1364],{"class":170,"line":171},[168,1347,175],{"class":174},[168,1349,178],{"class":174},[168,1351,1352],{"class":181}," defineEventHandler",[168,1354,186],{"class":185},[168,1356,186],{"class":189},[168,1358,1359],{"class":1207},"event",[168,1361,800],{"class":189},[168,1363,1223],{"class":1200},[168,1365,228],{"class":189},[168,1367,1368,1371,1374,1377,1380,1382,1384,1386,1388],{"class":170,"line":193},[168,1369,1370],{"class":1200},"  const",[168,1372,1373],{"class":185}," config",[168,1375,1376],{"class":189}," =",[168,1378,1379],{"class":181}," useRuntimeConfig",[168,1381,186],{"class":196},[168,1383,1359],{"class":185},[168,1385,800],{"class":196},[168,1387,411],{"class":189},[168,1389,1390],{"class":185},"mcp\n",[168,1392,1393],{"class":170,"line":220},[168,1394,1136],{"emptyLinePlaceholder":1135},[168,1396,1397,1400],{"class":170,"line":231},[168,1398,1399],{"class":174},"  return",[168,1401,228],{"class":189},[168,1403,1404,1406,1408,1410,1412,1414],{"class":170,"line":249},[168,1405,234],{"class":196},[168,1407,157],{"class":189},[168,1409,1373],{"class":185},[168,1411,411],{"class":189},[168,1413,314],{"class":185},[168,1415,217],{"class":189},[168,1417,1418,1421,1423,1425,1427,1429],{"class":170,"line":255},[168,1419,1420],{"class":196},"    version",[168,1422,157],{"class":189},[168,1424,1373],{"class":185},[168,1426,411],{"class":189},[168,1428,325],{"class":185},[168,1430,217],{"class":189},[168,1432,1433,1435,1437,1439,1441,1443],{"class":170,"line":889},[168,1434,589],{"class":196},[168,1436,157],{"class":189},[168,1438,1373],{"class":185},[168,1440,411],{"class":189},[168,1442,291],{"class":185},[168,1444,217],{"class":189},[168,1446,1447],{"class":170,"line":895},[168,1448,1449],{"class":189},"  }\n",[168,1451,1452,1454],{"class":170,"line":900},[168,1453,258],{"class":189},[168,1455,261],{"class":185},[145,1457,1459],{"id":1458},"next-steps","Next Steps",[350,1461,1462,1467,1472,1477,1484],{},[353,1463,1464,1466],{},[424,1465,46],{"href":47}," - Learn how to create tools",[353,1468,1469,1471],{},[424,1470,51],{"href":52}," - Create resources",[353,1473,1474,1476],{},[424,1475,56],{"href":57}," - Create prompts",[353,1478,1479,1481,1482],{},[424,1480,96],{"href":97}," - Per-session state with ",[154,1483,996],{},[353,1485,1486,1488],{},[424,1487,71],{"href":72}," - Advanced path configuration",[1490,1491,1492],"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":164,"searchDepth":193,"depth":193,"links":1494},[1495,1496,1497,1507,1508],{"id":147,"depth":193,"text":148},{"id":267,"depth":193,"text":268},{"id":532,"depth":193,"text":533,"children":1498},[1499,1500,1501,1502,1504,1505,1506],{"id":537,"depth":220,"text":538},{"id":618,"depth":220,"text":619},{"id":717,"depth":220,"text":718},{"id":796,"depth":220,"text":1503},"Streamable HTTP security (allowedOrigins)",{"id":907,"depth":220,"text":908},{"id":1000,"depth":220,"text":1001},{"id":1259,"depth":220,"text":1260},{"id":1333,"depth":193,"text":1334},{"id":1458,"depth":193,"text":1459},"Configure the Nuxt MCP module to fit your needs.","md",null,{},{"icon":23},{"title":20,"description":1515},"Configure the Nuxt MCP module with practical examples.","liuJmQsZc_ZeIcJW9Jpv6x8kO6nKktQFbAKVr4R_i0s",[1518,1520],{"title":15,"path":16,"stem":17,"description":1519,"icon":18,"children":-1},"Install and configure the Nuxt MCP module in your project.",{"title":25,"path":26,"stem":27,"description":1521,"icon":28,"children":-1},"Visual debugging tool integrated into Nuxt DevTools",1776256260273]