[{"data":1,"prerenderedAt":1092},["ShallowReactive",2],{"navigation_docs":3,"-tools-overview":272,"-tools-overview-surround":1087},[4,40,70,99,122,151,184,243],{"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},"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],{"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,"children":155,"page":39},"Apps","\u002Fapps","6.apps",[156,160,165,170,174,179],{"title":46,"path":157,"stem":158,"icon":159},"\u002Fapps\u002Foverview","6.apps\u002F0.overview","i-lucide-app-window",{"title":161,"path":162,"stem":163,"icon":164},"Authoring & defineMcpApp","\u002Fapps\u002Fauthoring","6.apps\u002F1.authoring","i-lucide-code-2",{"title":166,"path":167,"stem":168,"icon":169},"useMcpApp() bridge","\u002Fapps\u002Fuse-mcp-app","6.apps\u002F2.use-mcp-app","i-lucide-message-circle",{"title":171,"path":172,"stem":173,"icon":64},"CSP & build pipeline","\u002Fapps\u002Fcsp-and-wiring","6.apps\u002F3.csp-and-wiring",{"title":175,"path":176,"stem":177,"icon":178},"Testing & publishing","\u002Fapps\u002Ftesting-publishing","6.apps\u002F4.testing-publishing","i-lucide-rocket",{"title":180,"path":181,"stem":182,"icon":183},"Patterns & limits","\u002Fapps\u002Fpatterns-reference","6.apps\u002F5.patterns-reference","i-lucide-book-marked",{"title":185,"path":186,"stem":187,"children":188,"page":39},"Advanced Topics","\u002Fadvanced","7.advanced",[189,194,199,204,208,213,218,223,228,233,238],{"title":190,"path":191,"stem":192,"icon":193},"Custom Paths","\u002Fadvanced\u002Fcustom-paths","7.advanced\u002F1.custom-paths","i-lucide-folder",{"title":195,"path":196,"stem":197,"icon":198},"Logging","\u002Fadvanced\u002Flogging","7.advanced\u002F10.logging","i-lucide-scroll-text",{"title":200,"path":201,"stem":202,"icon":203},"MCP Apps Internals","\u002Fadvanced\u002Fmcp-apps-internals","7.advanced\u002F11.mcp-apps-internals","i-lucide-cog",{"title":205,"path":206,"stem":207,"icon":64},"Middleware","\u002Fadvanced\u002Fmiddleware","7.advanced\u002F2.middleware",{"title":209,"path":210,"stem":211,"icon":212},"TypeScript","\u002Fadvanced\u002Ftypescript","7.advanced\u002F3.typescript","i-lucide-type",{"title":214,"path":215,"stem":216,"icon":217},"Hooks","\u002Fadvanced\u002Fhooks","7.advanced\u002F4.hooks","i-lucide-webhook",{"title":219,"path":220,"stem":221,"icon":222},"MCP Evals","\u002Fadvanced\u002Fevals","7.advanced\u002F5.evals","i-lucide-flask-conical",{"title":224,"path":225,"stem":226,"icon":227},"Sessions","\u002Fadvanced\u002Fsessions","7.advanced\u002F6.sessions","i-lucide-database",{"title":229,"path":230,"stem":231,"icon":232},"Dynamic Definitions","\u002Fadvanced\u002Fdynamic-definitions","7.advanced\u002F7.dynamic-definitions","i-lucide-toggle-right",{"title":234,"path":235,"stem":236,"icon":237},"Code Mode","\u002Fadvanced\u002Fcode-mode","7.advanced\u002F8.code-mode","i-lucide-code",{"title":239,"path":240,"stem":241,"icon":242},"Elicitation","\u002Fadvanced\u002Felicitation","7.advanced\u002F9.elicitation","i-lucide-message-square-quote",{"title":244,"path":245,"stem":246,"children":247,"page":39},"Examples","\u002Fexamples","8.examples",[248,253,258,263,268],{"title":249,"path":250,"stem":251,"icon":252},"Authentication","\u002Fexamples\u002Fauthentication","8.examples\u002F1.authentication","i-lucide-shield-check",{"title":254,"path":255,"stem":256,"icon":257},"API Integration","\u002Fexamples\u002Fapi-integration","8.examples\u002F2.api-integration","i-lucide-globe",{"title":259,"path":260,"stem":261,"icon":262},"Common Patterns","\u002Fexamples\u002Fcommon-patterns","8.examples\u002F3.common-patterns","i-lucide-lightbulb",{"title":264,"path":265,"stem":266,"icon":267},"File Operations","\u002Fexamples\u002Ffile-operations","8.examples\u002F4.file-operations","i-lucide-file",{"title":269,"path":270,"stem":271,"icon":107},"Prompt Examples","\u002Fexamples\u002Fprompt-examples","8.examples\u002F5.prompt-examples",{"id":273,"title":41,"body":274,"description":1071,"extension":1072,"links":1073,"meta":1082,"navigation":1083,"path":47,"seo":1084,"stem":48,"__hash__":1086},"docs\u002F2.tools\u002F0.overview.md",{"type":275,"value":276,"toc":1064},"minimark",[277,282,286,336,340,343,576,580,591,692,699,718,727,731,734,1009,1013,1016,1060],[278,279,281],"h2",{"id":280},"what-are-tools","What are Tools?",[283,284,285],"p",{},"Tools are functions that AI assistants can call to perform actions or retrieve information. They accept validated input parameters and return structured results.",[287,288,291,294,327],"prompt",{":actions":289,"description":290,"icon":49},"[\"copy\",\"cursor\",\"windsurf\"]","Scaffold a new MCP tool",[283,292,293],{},"Create a new MCP tool in my Nuxt app using @nuxtjs\u002Fmcp-toolkit.",[295,296,297,301,304,312,315,318,321,324],"ul",{},[298,299,300],"li",{},"Create a file in server\u002Fmcp\u002Ftools\u002F (e.g. server\u002Fmcp\u002Ftools\u002Fmy-tool.ts)",[298,302,303],{},"Use defineMcpTool (auto-imported) with a description and handler",[298,305,306,307,311],{},"Import Zod with ",[308,309,310],"code",{},"import { z } from 'zod'"," and define input parameters in inputSchema (e.g. z.string().describe('...'))",[298,313,314],{},"The handler receives validated input and returns a string, number, boolean, object, or full CallToolResult",[298,316,317],{},"Throw errors with createError({ statusCode, message }) from h3 for error cases",[298,319,320],{},"Name and title are auto-generated from the filename (e.g. my-tool.ts → name: 'my-tool', title: 'My Tool')",[298,322,323],{},"Add annotations for behavioral hints (readOnlyHint, destructiveHint, idempotentHint, openWorldHint)",[298,325,326],{},"Use subdirectories to auto-infer groups (e.g. tools\u002Fadmin\u002Fdelete-user.ts → group: 'admin')",[283,328,329,330],{},"Docs: ",[331,332,333],"a",{"href":333,"rel":334},"https:\u002F\u002Fmcp-toolkit.nuxt.dev\u002Ftools\u002Foverview",[335],"nofollow",[278,337,339],{"id":338},"basic-tool-definition","Basic Tool Definition",[283,341,342],{},"Here's a simple tool that echoes back a message:",[344,345,351],"pre",{"className":346,"code":347,"filename":348,"language":349,"meta":350,"style":350},"language-typescript shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import { z } from 'zod'\nimport { defineMcpTool } from '@nuxtjs\u002Fmcp-toolkit\u002Fserver'\n\nexport default defineMcpTool({\n  name: 'echo',\n  description: 'Echo back a message',\n  inputSchema: {\n    message: z.string().describe('The message to echo back'),\n  },\n  handler: async ({ message }) => `Echo: ${message}`,\n})\n","server\u002Fmcp\u002Ftools\u002Fecho.ts","typescript","",[308,352,353,386,407,414,432,453,470,481,519,525,567],{"__ignoreMap":350},[354,355,358,362,366,370,373,376,379,383],"span",{"class":356,"line":357},"line",1,[354,359,361],{"class":360},"s7zQu","import",[354,363,365],{"class":364},"sMK4o"," {",[354,367,369],{"class":368},"sTEyZ"," z",[354,371,372],{"class":364}," }",[354,374,375],{"class":360}," from",[354,377,378],{"class":364}," '",[354,380,382],{"class":381},"sfazB","zod",[354,384,385],{"class":364},"'\n",[354,387,389,391,393,396,398,400,402,405],{"class":356,"line":388},2,[354,390,361],{"class":360},[354,392,365],{"class":364},[354,394,395],{"class":368}," defineMcpTool",[354,397,372],{"class":364},[354,399,375],{"class":360},[354,401,378],{"class":364},[354,403,404],{"class":381},"@nuxtjs\u002Fmcp-toolkit\u002Fserver",[354,406,385],{"class":364},[354,408,410],{"class":356,"line":409},3,[354,411,413],{"emptyLinePlaceholder":412},true,"\n",[354,415,417,420,423,426,429],{"class":356,"line":416},4,[354,418,419],{"class":360},"export",[354,421,422],{"class":360}," default",[354,424,395],{"class":425},"s2Zo4",[354,427,428],{"class":368},"(",[354,430,431],{"class":364},"{\n",[354,433,435,439,442,444,447,450],{"class":356,"line":434},5,[354,436,438],{"class":437},"swJcz","  name",[354,440,441],{"class":364},":",[354,443,378],{"class":364},[354,445,446],{"class":381},"echo",[354,448,449],{"class":364},"'",[354,451,452],{"class":364},",\n",[354,454,456,459,461,463,466,468],{"class":356,"line":455},6,[354,457,458],{"class":437},"  description",[354,460,441],{"class":364},[354,462,378],{"class":364},[354,464,465],{"class":381},"Echo back a message",[354,467,449],{"class":364},[354,469,452],{"class":364},[354,471,473,476,478],{"class":356,"line":472},7,[354,474,475],{"class":437},"  inputSchema",[354,477,441],{"class":364},[354,479,480],{"class":364}," {\n",[354,482,484,487,489,491,494,497,500,502,505,507,509,512,514,517],{"class":356,"line":483},8,[354,485,486],{"class":437},"    message",[354,488,441],{"class":364},[354,490,369],{"class":368},[354,492,493],{"class":364},".",[354,495,496],{"class":425},"string",[354,498,499],{"class":368},"()",[354,501,493],{"class":364},[354,503,504],{"class":425},"describe",[354,506,428],{"class":368},[354,508,449],{"class":364},[354,510,511],{"class":381},"The message to echo back",[354,513,449],{"class":364},[354,515,516],{"class":368},")",[354,518,452],{"class":364},[354,520,522],{"class":356,"line":521},9,[354,523,524],{"class":364},"  },\n",[354,526,528,531,533,537,540,544,547,550,553,556,559,562,565],{"class":356,"line":527},10,[354,529,530],{"class":425},"  handler",[354,532,441],{"class":364},[354,534,536],{"class":535},"spNyl"," async",[354,538,539],{"class":364}," ({",[354,541,543],{"class":542},"sHdIc"," message",[354,545,546],{"class":364}," })",[354,548,549],{"class":535}," =>",[354,551,552],{"class":364}," `",[354,554,555],{"class":381},"Echo: ",[354,557,558],{"class":364},"${",[354,560,561],{"class":368},"message",[354,563,564],{"class":364},"}`",[354,566,452],{"class":364},[354,568,570,573],{"class":356,"line":569},11,[354,571,572],{"class":364},"}",[354,574,575],{"class":368},")\n",[278,577,579],{"id":578},"auto-generated-name-and-title","Auto-Generated Name and Title",[283,581,582,583,586,587,590],{},"You can omit ",[308,584,585],{},"name"," and ",[308,588,589],{},"title"," - they will be automatically generated from the filename:",[344,592,595],{"className":346,"code":593,"filename":594,"language":349,"meta":350,"style":350},"import { defineMcpTool } from '@nuxtjs\u002Fmcp-toolkit\u002Fserver'\n\nexport default defineMcpTool({\n  \u002F\u002F name and title are auto-generated from filename:\n  \u002F\u002F name: 'list-documentation'\n  \u002F\u002F title: 'List Documentation'\n  description: 'List all documentation files',\n  handler: async () => {\n    \u002F\u002F ...\n  },\n})\n","server\u002Fmcp\u002Ftools\u002Flist-documentation.ts",[308,596,597,615,619,631,637,642,647,662,677,682,686],{"__ignoreMap":350},[354,598,599,601,603,605,607,609,611,613],{"class":356,"line":357},[354,600,361],{"class":360},[354,602,365],{"class":364},[354,604,395],{"class":368},[354,606,372],{"class":364},[354,608,375],{"class":360},[354,610,378],{"class":364},[354,612,404],{"class":381},[354,614,385],{"class":364},[354,616,617],{"class":356,"line":388},[354,618,413],{"emptyLinePlaceholder":412},[354,620,621,623,625,627,629],{"class":356,"line":409},[354,622,419],{"class":360},[354,624,422],{"class":360},[354,626,395],{"class":425},[354,628,428],{"class":368},[354,630,431],{"class":364},[354,632,633],{"class":356,"line":416},[354,634,636],{"class":635},"sHwdD","  \u002F\u002F name and title are auto-generated from filename:\n",[354,638,639],{"class":356,"line":434},[354,640,641],{"class":635},"  \u002F\u002F name: 'list-documentation'\n",[354,643,644],{"class":356,"line":455},[354,645,646],{"class":635},"  \u002F\u002F title: 'List Documentation'\n",[354,648,649,651,653,655,658,660],{"class":356,"line":472},[354,650,458],{"class":437},[354,652,441],{"class":364},[354,654,378],{"class":364},[354,656,657],{"class":381},"List all documentation files",[354,659,449],{"class":364},[354,661,452],{"class":364},[354,663,664,666,668,670,673,675],{"class":356,"line":483},[354,665,530],{"class":425},[354,667,441],{"class":364},[354,669,536],{"class":535},[354,671,672],{"class":364}," ()",[354,674,549],{"class":535},[354,676,480],{"class":364},[354,678,679],{"class":356,"line":521},[354,680,681],{"class":635},"    \u002F\u002F ...\n",[354,683,684],{"class":356,"line":527},[354,685,524],{"class":364},[354,687,688,690],{"class":356,"line":569},[354,689,572],{"class":364},[354,691,575],{"class":368},[283,693,694,695,698],{},"The filename ",[308,696,697],{},"list-documentation.ts"," automatically becomes:",[295,700,701,710],{},[298,702,703,705,706,709],{},[308,704,585],{},": ",[308,707,708],{},"list-documentation"," (kebab-case)",[298,711,712,705,714,717],{},[308,713,589],{},[308,715,716],{},"List Documentation"," (title case)",[283,719,720,721,723,724,726],{},"You can still provide ",[308,722,585],{}," or ",[308,725,589],{}," explicitly to override the auto-generated values.",[278,728,730],{"id":729},"tool-structure","Tool Structure",[283,732,733],{},"A tool definition consists of:",[735,736,737,836],"code-group",{},[344,738,741],{"className":346,"code":739,"filename":740,"language":349,"meta":350,"style":350},"export default defineMcpTool({\n  name: 'tool-name',        \u002F\u002F Unique identifier (optional - auto-generated from filename)\n  inputSchema: { ... },      \u002F\u002F Zod schema for input validation\n  handler: async (args) => {\n    return 'result'          \u002F\u002F string, number, boolean, object, or CallToolResult\n  },\n})\n","Required Fields",[308,742,743,755,774,791,811,826,830],{"__ignoreMap":350},[354,744,745,747,749,751,753],{"class":356,"line":357},[354,746,419],{"class":360},[354,748,422],{"class":360},[354,750,395],{"class":425},[354,752,428],{"class":368},[354,754,431],{"class":364},[354,756,757,759,761,763,766,768,771],{"class":356,"line":388},[354,758,438],{"class":437},[354,760,441],{"class":364},[354,762,378],{"class":364},[354,764,765],{"class":381},"tool-name",[354,767,449],{"class":364},[354,769,770],{"class":364},",",[354,772,773],{"class":635},"        \u002F\u002F Unique identifier (optional - auto-generated from filename)\n",[354,775,776,778,780,782,785,788],{"class":356,"line":409},[354,777,475],{"class":437},[354,779,441],{"class":364},[354,781,365],{"class":364},[354,783,784],{"class":364}," ...",[354,786,787],{"class":364}," },",[354,789,790],{"class":635},"      \u002F\u002F Zod schema for input validation\n",[354,792,793,795,797,799,802,805,807,809],{"class":356,"line":416},[354,794,530],{"class":425},[354,796,441],{"class":364},[354,798,536],{"class":535},[354,800,801],{"class":364}," (",[354,803,804],{"class":542},"args",[354,806,516],{"class":364},[354,808,549],{"class":535},[354,810,480],{"class":364},[354,812,813,816,818,821,823],{"class":356,"line":434},[354,814,815],{"class":360},"    return",[354,817,378],{"class":364},[354,819,820],{"class":381},"result",[354,822,449],{"class":364},[354,824,825],{"class":635},"          \u002F\u002F string, number, boolean, object, or CallToolResult\n",[354,827,828],{"class":356,"line":455},[354,829,524],{"class":364},[354,831,832,834],{"class":356,"line":472},[354,833,572],{"class":364},[354,835,575],{"class":368},[344,837,840],{"className":346,"code":838,"filename":839,"language":349,"meta":350,"style":350},"export default defineMcpTool({\n  name: 'tool-name',              \u002F\u002F Optional - auto-generated from filename\n  title: 'Tool Title',            \u002F\u002F Optional - auto-generated from filename\n  description: 'Tool description',  \u002F\u002F What the tool does\n  inputSchema: { ... },            \u002F\u002F Optional - Zod schema for input validation\n  outputSchema: { ... },            \u002F\u002F Zod schema for structured output\n  annotations: { ... },             \u002F\u002F Behavioral hints for clients\n  inputExamples: [{ ... }],         \u002F\u002F Concrete usage examples\n  handler: async (args) => { ... },\n})\n","Optional Fields",[308,841,842,854,871,890,908,923,939,955,980,1003],{"__ignoreMap":350},[354,843,844,846,848,850,852],{"class":356,"line":357},[354,845,419],{"class":360},[354,847,422],{"class":360},[354,849,395],{"class":425},[354,851,428],{"class":368},[354,853,431],{"class":364},[354,855,856,858,860,862,864,866,868],{"class":356,"line":388},[354,857,438],{"class":437},[354,859,441],{"class":364},[354,861,378],{"class":364},[354,863,765],{"class":381},[354,865,449],{"class":364},[354,867,770],{"class":364},[354,869,870],{"class":635},"              \u002F\u002F Optional - auto-generated from filename\n",[354,872,873,876,878,880,883,885,887],{"class":356,"line":409},[354,874,875],{"class":437},"  title",[354,877,441],{"class":364},[354,879,378],{"class":364},[354,881,882],{"class":381},"Tool Title",[354,884,449],{"class":364},[354,886,770],{"class":364},[354,888,889],{"class":635},"            \u002F\u002F Optional - auto-generated from filename\n",[354,891,892,894,896,898,901,903,905],{"class":356,"line":416},[354,893,458],{"class":437},[354,895,441],{"class":364},[354,897,378],{"class":364},[354,899,900],{"class":381},"Tool description",[354,902,449],{"class":364},[354,904,770],{"class":364},[354,906,907],{"class":635},"  \u002F\u002F What the tool does\n",[354,909,910,912,914,916,918,920],{"class":356,"line":434},[354,911,475],{"class":437},[354,913,441],{"class":364},[354,915,365],{"class":364},[354,917,784],{"class":364},[354,919,787],{"class":364},[354,921,922],{"class":635},"            \u002F\u002F Optional - Zod schema for input validation\n",[354,924,925,928,930,932,934,936],{"class":356,"line":455},[354,926,927],{"class":437},"  outputSchema",[354,929,441],{"class":364},[354,931,365],{"class":364},[354,933,784],{"class":364},[354,935,787],{"class":364},[354,937,938],{"class":635},"            \u002F\u002F Zod schema for structured output\n",[354,940,941,944,946,948,950,952],{"class":356,"line":472},[354,942,943],{"class":437},"  annotations",[354,945,441],{"class":364},[354,947,365],{"class":364},[354,949,784],{"class":364},[354,951,787],{"class":364},[354,953,954],{"class":635},"             \u002F\u002F Behavioral hints for clients\n",[354,956,957,960,962,965,968,970,972,975,977],{"class":356,"line":483},[354,958,959],{"class":437},"  inputExamples",[354,961,441],{"class":364},[354,963,964],{"class":368}," [",[354,966,967],{"class":364},"{",[354,969,784],{"class":364},[354,971,372],{"class":364},[354,973,974],{"class":368},"]",[354,976,770],{"class":364},[354,978,979],{"class":635},"         \u002F\u002F Concrete usage examples\n",[354,981,982,984,986,988,990,992,994,996,998,1000],{"class":356,"line":521},[354,983,530],{"class":425},[354,985,441],{"class":364},[354,987,536],{"class":535},[354,989,801],{"class":364},[354,991,804],{"class":542},[354,993,516],{"class":364},[354,995,549],{"class":535},[354,997,365],{"class":364},[354,999,784],{"class":364},[354,1001,1002],{"class":364}," },\n",[354,1004,1005,1007],{"class":356,"line":527},[354,1006,572],{"class":364},[354,1008,575],{"class":368},[278,1010,1012],{"id":1011},"in-depth-guides","In-depth guides",[283,1014,1015],{},"The Tools documentation is split into focused pages so the table of contents stays scannable.",[1017,1018,1019,1032,1039,1047],"card-group",{},[1020,1021,1023,1024,1027,1028,1031],"card",{"color":1022,"icon":54,"title":51,"to":52},"neutral","Zod ",[308,1025,1026],{},"inputSchema"," \u002F ",[308,1029,1030],{},"outputSchema",", handler return types, and media helpers.",[1020,1033,1034,1035,1038],{"color":1022,"icon":59,"title":56,"to":57},"Hints for clients, ",[308,1036,1037],{},"inputExamples"," for model-friendly samples.",[1020,1040,1042,1043,1046],{"color":1022,"icon":64,"title":1041,"to":62},"Errors & response caching","H3 and plain errors, Nitro ",[308,1044,1045],{},"cache"," options.",[1020,1048,1049,1027,1052,1055,1056,1059],{"color":1022,"icon":69,"title":66,"to":67},[308,1050,1051],{},"group",[308,1053,1054],{},"tags",", layout on disk, ",[308,1057,1058],{},"enabled"," guards, next steps.",[1061,1062,1063],"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 .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}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 .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}",{"title":350,"searchDepth":388,"depth":388,"links":1065},[1066,1067,1068,1069,1070],{"id":280,"depth":388,"text":281},{"id":338,"depth":388,"text":339},{"id":578,"depth":388,"text":579},{"id":729,"depth":388,"text":730},{"id":1011,"depth":388,"text":1012},"Create MCP tools with Zod validation and type safety.","md",[1074,1077,1079,1080],{"label":1075,"icon":54,"to":52,"color":1022,"variant":1076},"Schema & handler","subtle",{"label":1078,"icon":59,"to":57,"color":1022,"variant":1076},"Annotations",{"label":61,"icon":64,"to":62,"color":1022,"variant":1076},{"label":1081,"icon":69,"to":67,"color":1022,"variant":1076},"Groups & advanced",{},{"title":46,"icon":49},{"title":41,"description":1085},"Create MCP tools with Zod validation and full TypeScript support.","ZkihPO4HLR6sLIJ7lE0ikk_KeWVcQbrgTYFZfiEi3GQ",[1088,1090],{"title":35,"path":36,"stem":37,"description":1089,"icon":38,"children":-1},"AI-assisted MCP server development using Agent Skills. Let AI help you setup, create, review, and troubleshoot MCP servers in your Nuxt app.",{"title":51,"path":52,"stem":53,"description":1091,"icon":54,"children":-1},"Define tool inputs and outputs with Zod, and return text, structured data, or media from handlers.",1777306539873]