[{"data":1,"prerenderedAt":1087},["ShallowReactive",2],{"navigation_docs":3,"-tools-overview":282,"-tools-overview-surround":1082},[4,40,70,99,122,156,189,253],{"title":5,"path":6,"stem":7,"children":8,"page":39},"入门指南","\u002Fgetting-started","1.getting-started",[9,14,19,24,29,34],{"title":10,"path":11,"stem":12,"icon":13},"简介","\u002Fgetting-started\u002Fintroduction","1.getting-started\u002F1.introduction","i-lucide-book-open",{"title":15,"path":16,"stem":17,"icon":18},"安装","\u002Fgetting-started\u002Finstallation","1.getting-started\u002F2.installation","i-lucide-download",{"title":20,"path":21,"stem":22,"icon":23},"配置","\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},"工具","\u002Ftools","2.tools",[45,50,55,60,65],{"title":46,"path":47,"stem":48,"icon":49},"概览","\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},"注释与输入示例","\u002Ftools\u002Fannotations","2.tools\u002F2.annotations","i-lucide-badge-info",{"title":61,"path":62,"stem":63,"icon":64},"错误与缓存","\u002Ftools\u002Ferrors-caching","2.tools\u002F3.errors-caching","i-lucide-shield",{"title":66,"path":67,"stem":68,"icon":69},"分组、文件与动态注册","\u002Ftools\u002Fgroups-organization","2.tools\u002F4.groups-organization","i-lucide-tags",{"title":71,"path":72,"stem":73,"children":74,"page":39},"资源","\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},"静态资源与结构","\u002Fresources\u002Fstatic-and-structure","3.resources\u002F1.static-and-structure","i-lucide-file-stack",{"title":85,"path":86,"stem":87,"icon":88},"模板与处理程序","\u002Fresources\u002Ftemplates-and-handlers","3.resources\u002F2.templates-and-handlers","i-lucide-git-branch",{"title":90,"path":91,"stem":92,"icon":93},"元数据、内容与错误","\u002Fresources\u002Fcontent-metadata-errors","3.resources\u002F3.content-metadata-errors","i-lucide-layers",{"title":95,"path":96,"stem":97,"icon":98},"分组与组织","\u002Fresources\u002Forganization","3.resources\u002F4.organization","i-lucide-folder-tree",{"title":100,"path":101,"stem":102,"children":103,"page":39},"提示词","\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},"编写与结构","\u002Fprompts\u002Fauthoring","4.prompts\u002F1.authoring","i-lucide-pen-line",{"title":114,"path":115,"stem":116,"icon":93},"输入、处理器与消息","\u002Fprompts\u002Finput-handler-messages","4.prompts\u002F2.input-handler-messages",{"title":118,"path":119,"stem":120,"icon":121},"模式与高级用法","\u002Fprompts\u002Fpatterns-advanced","4.prompts\u002F3.patterns-advanced","i-lucide-line-chart",{"title":123,"path":124,"stem":125,"children":126,"page":39},"处理器","\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},"默认与自定义处理器","\u002Fhandlers\u002Fdefault-and-custom","5.handlers\u002F1.default-and-custom","i-lucide-toggle-left",{"title":137,"path":138,"stem":139,"icon":140},"结构与选项","\u002Fhandlers\u002Fstructure-and-options","5.handlers\u002F2.structure-and-options","i-lucide-sliders-horizontal",{"title":142,"path":143,"stem":144,"icon":145},"示例与路由","\u002Fhandlers\u002Fexamples-routing","5.handlers\u002F3.examples-routing","i-lucide-route",{"title":147,"path":148,"stem":149,"icon":150},"分享与实践","\u002Fhandlers\u002Fsharing-practices","5.handlers\u002F4.sharing-practices","i-lucide-share-2",{"title":152,"path":153,"stem":154,"icon":155},"多处理器组织","\u002Fhandlers\u002Forganization","5.handlers\u002F5.organization","i-lucide-network",{"title":157,"path":158,"stem":159,"children":160,"page":39},"应用","\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},"编写与 defineMcpApp","\u002Fapps\u002Fauthoring","6.apps\u002F1.authoring","i-lucide-code-2",{"title":171,"path":172,"stem":173,"icon":174},"useMcpApp() 桥接","\u002Fapps\u002Fuse-mcp-app","6.apps\u002F2.use-mcp-app","i-lucide-message-circle",{"title":176,"path":177,"stem":178,"icon":64},"CSP 与构建流水线","\u002Fapps\u002Fcsp-and-wiring","6.apps\u002F3.csp-and-wiring",{"title":180,"path":181,"stem":182,"icon":183},"测试与发布","\u002Fapps\u002Ftesting-publishing","6.apps\u002F4.testing-publishing","i-lucide-rocket",{"title":185,"path":186,"stem":187,"icon":188},"模式与限制","\u002Fapps\u002Fpatterns-reference","6.apps\u002F5.patterns-reference","i-lucide-book-marked",{"title":190,"path":191,"stem":192,"children":193,"page":39},"进阶主题","\u002Fadvanced","7.advanced",[194,199,204,209,214,218,223,228,233,238,243,248],{"title":195,"path":196,"stem":197,"icon":198},"自定义路径","\u002Fadvanced\u002Fcustom-paths","7.advanced\u002F1.custom-paths","i-lucide-folder",{"title":200,"path":201,"stem":202,"icon":203},"日志","\u002Fadvanced\u002Flogging","7.advanced\u002F10.logging","i-lucide-scroll-text",{"title":205,"path":206,"stem":207,"icon":208},"MCP Apps 内部机制","\u002Fadvanced\u002Fmcp-apps-internals","7.advanced\u002F11.mcp-apps-internals","i-lucide-cog",{"title":210,"path":211,"stem":212,"icon":213},"列出定义","\u002Fadvanced\u002Flisting-definitions","7.advanced\u002F12.listing-definitions","i-lucide-list",{"title":215,"path":216,"stem":217,"icon":64},"Middleware","\u002Fadvanced\u002Fmiddleware","7.advanced\u002F2.middleware",{"title":219,"path":220,"stem":221,"icon":222},"TypeScript","\u002Fadvanced\u002Ftypescript","7.advanced\u002F3.typescript","i-lucide-type",{"title":224,"path":225,"stem":226,"icon":227},"Hooks","\u002Fadvanced\u002Fhooks","7.advanced\u002F4.hooks","i-lucide-webhook",{"title":229,"path":230,"stem":231,"icon":232},"MCP 评估","\u002Fadvanced\u002Fevals","7.advanced\u002F5.evals","i-lucide-flask-conical",{"title":234,"path":235,"stem":236,"icon":237},"会话","\u002Fadvanced\u002Fsessions","7.advanced\u002F6.sessions","i-lucide-database",{"title":239,"path":240,"stem":241,"icon":242},"动态定义","\u002Fadvanced\u002Fdynamic-definitions","7.advanced\u002F7.dynamic-definitions","i-lucide-toggle-right",{"title":244,"path":245,"stem":246,"icon":247},"代码模式 (Code Mode)","\u002Fadvanced\u002Fcode-mode","7.advanced\u002F8.code-mode","i-lucide-code",{"title":249,"path":250,"stem":251,"icon":252},"启发式询问","\u002Fadvanced\u002Felicitation","7.advanced\u002F9.elicitation","i-lucide-message-square-quote",{"title":254,"path":255,"stem":256,"children":257,"page":39},"示例","\u002Fexamples","8.examples",[258,263,268,273,278],{"title":259,"path":260,"stem":261,"icon":262},"身份验证","\u002Fexamples\u002Fauthentication","8.examples\u002F1.authentication","i-lucide-shield-check",{"title":264,"path":265,"stem":266,"icon":267},"API 集成","\u002Fexamples\u002Fapi-integration","8.examples\u002F2.api-integration","i-lucide-globe",{"title":269,"path":270,"stem":271,"icon":272},"常见模式","\u002Fexamples\u002Fcommon-patterns","8.examples\u002F3.common-patterns","i-lucide-lightbulb",{"title":274,"path":275,"stem":276,"icon":277},"文件操作","\u002Fexamples\u002Ffile-operations","8.examples\u002F4.file-operations","i-lucide-file",{"title":279,"path":280,"stem":281,"icon":107},"提示词示例","\u002Fexamples\u002Fprompt-examples","8.examples\u002F5.prompt-examples",{"id":283,"title":41,"body":284,"description":1066,"extension":1067,"links":1068,"meta":1077,"navigation":1078,"path":47,"seo":1079,"stem":48,"__hash__":1081},"docs\u002F2.tools\u002F0.overview.md",{"type":285,"value":286,"toc":1059},"minimark",[287,292,296,346,349,352,585,588,599,700,707,726,735,738,741,1016,1019,1022,1055],[288,289,291],"h2",{"id":290},"什么是工具","什么是工具？",[293,294,295],"p",{},"工具是 AI 助手可以调用来执行操作或检索信息的函数。它们接收经过验证的输入参数，并返回结构化结果。",[297,298,301,304,337],"prompt",{":actions":299,"description":300,"icon":49},"[\"copy\",\"cursor\",\"windsurf\"]","搭建一个新的 MCP 工具",[293,302,303],{},"在我的 Nuxt 应用中使用 @nuxtjs\u002Fmcp-toolkit 创建一个新的 MCP 工具。",[305,306,307,311,314,322,325,328,331,334],"ul",{},[308,309,310],"li",{},"在 server\u002Fmcp\u002Ftools\u002F 中创建一个文件（例如 server\u002Fmcp\u002Ftools\u002Fmy-tool.ts）",[308,312,313],{},"使用 defineMcpTool（自动导入）并提供 description 和 handler",[308,315,316,317,321],{},"使用 ",[318,319,320],"code",{},"import { z } from 'zod'"," 导入 Zod，并在 inputSchema 中定义输入参数（例如 z.string().describe('...')）",[308,323,324],{},"handler 接收经过验证的输入，并返回 string、number、boolean、object 或完整的 CallToolResult",[308,326,327],{},"使用 h3 的 createError({ statusCode, message }) 抛出错误以处理错误情况",[308,329,330],{},"名称和标题会根据文件名自动生成（例如 my-tool.ts → name: 'my-tool', title: 'My Tool'）",[308,332,333],{},"为行为提示添加注解（readOnlyHint、destructiveHint、idempotentHint、openWorldHint）",[308,335,336],{},"使用子目录自动推断分组（例如 tools\u002Fadmin\u002Fdelete-user.ts → group: 'admin'）",[293,338,339,340],{},"文档：",[341,342,343],"a",{"href":343,"rel":344},"https:\u002F\u002Fmcp-toolkit.nuxt.dev\u002Ftools\u002Foverview",[345],"nofollow",[288,347,348],{"id":348},"基础工具定义",[293,350,351],{},"下面是一个简单的工具，会回显一条消息：",[353,354,360],"pre",{"className":355,"code":356,"filename":357,"language":358,"meta":359,"style":359},"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: '回显一条消息',\n  inputSchema: {\n    message: z.string().describe('要回显的消息'),\n  },\n  handler: async ({ message }) => `回显：${message}`,\n})\n","server\u002Fmcp\u002Ftools\u002Fecho.ts","typescript","",[318,361,362,395,416,423,441,462,479,490,528,534,576],{"__ignoreMap":359},[363,364,367,371,375,379,382,385,388,392],"span",{"class":365,"line":366},"line",1,[363,368,370],{"class":369},"s7zQu","import",[363,372,374],{"class":373},"sMK4o"," {",[363,376,378],{"class":377},"sTEyZ"," z",[363,380,381],{"class":373}," }",[363,383,384],{"class":369}," from",[363,386,387],{"class":373}," '",[363,389,391],{"class":390},"sfazB","zod",[363,393,394],{"class":373},"'\n",[363,396,398,400,402,405,407,409,411,414],{"class":365,"line":397},2,[363,399,370],{"class":369},[363,401,374],{"class":373},[363,403,404],{"class":377}," defineMcpTool",[363,406,381],{"class":373},[363,408,384],{"class":369},[363,410,387],{"class":373},[363,412,413],{"class":390},"@nuxtjs\u002Fmcp-toolkit\u002Fserver",[363,415,394],{"class":373},[363,417,419],{"class":365,"line":418},3,[363,420,422],{"emptyLinePlaceholder":421},true,"\n",[363,424,426,429,432,435,438],{"class":365,"line":425},4,[363,427,428],{"class":369},"export",[363,430,431],{"class":369}," default",[363,433,404],{"class":434},"s2Zo4",[363,436,437],{"class":377},"(",[363,439,440],{"class":373},"{\n",[363,442,444,448,451,453,456,459],{"class":365,"line":443},5,[363,445,447],{"class":446},"swJcz","  name",[363,449,450],{"class":373},":",[363,452,387],{"class":373},[363,454,455],{"class":390},"echo",[363,457,458],{"class":373},"'",[363,460,461],{"class":373},",\n",[363,463,465,468,470,472,475,477],{"class":365,"line":464},6,[363,466,467],{"class":446},"  description",[363,469,450],{"class":373},[363,471,387],{"class":373},[363,473,474],{"class":390},"回显一条消息",[363,476,458],{"class":373},[363,478,461],{"class":373},[363,480,482,485,487],{"class":365,"line":481},7,[363,483,484],{"class":446},"  inputSchema",[363,486,450],{"class":373},[363,488,489],{"class":373}," {\n",[363,491,493,496,498,500,503,506,509,511,514,516,518,521,523,526],{"class":365,"line":492},8,[363,494,495],{"class":446},"    message",[363,497,450],{"class":373},[363,499,378],{"class":377},[363,501,502],{"class":373},".",[363,504,505],{"class":434},"string",[363,507,508],{"class":377},"()",[363,510,502],{"class":373},[363,512,513],{"class":434},"describe",[363,515,437],{"class":377},[363,517,458],{"class":373},[363,519,520],{"class":390},"要回显的消息",[363,522,458],{"class":373},[363,524,525],{"class":377},")",[363,527,461],{"class":373},[363,529,531],{"class":365,"line":530},9,[363,532,533],{"class":373},"  },\n",[363,535,537,540,542,546,549,553,556,559,562,565,568,571,574],{"class":365,"line":536},10,[363,538,539],{"class":434},"  handler",[363,541,450],{"class":373},[363,543,545],{"class":544},"spNyl"," async",[363,547,548],{"class":373}," ({",[363,550,552],{"class":551},"sHdIc"," message",[363,554,555],{"class":373}," })",[363,557,558],{"class":544}," =>",[363,560,561],{"class":373}," `",[363,563,564],{"class":390},"回显：",[363,566,567],{"class":373},"${",[363,569,570],{"class":377},"message",[363,572,573],{"class":373},"}`",[363,575,461],{"class":373},[363,577,579,582],{"class":365,"line":578},11,[363,580,581],{"class":373},"}",[363,583,584],{"class":377},")\n",[288,586,587],{"id":587},"自动生成的名称和标题",[293,589,590,591,594,595,598],{},"你可以省略 ",[318,592,593],{},"name"," 和 ",[318,596,597],{},"title","——它们将从文件名自动生成：",[353,600,603],{"className":355,"code":601,"filename":602,"language":358,"meta":359,"style":359},"import { defineMcpTool } from '@nuxtjs\u002Fmcp-toolkit\u002Fserver'\n\nexport default defineMcpTool({\n  \u002F\u002F name 和 title 会根据文件名自动生成：\n  \u002F\u002F name: 'list-documentation'\n  \u002F\u002F title: 'List Documentation'\n  description: '列出所有文档文件',\n  handler: async () => {\n    \u002F\u002F ...\n  },\n})\n","server\u002Fmcp\u002Ftools\u002Flist-documentation.ts",[318,604,605,623,627,639,645,650,655,670,685,690,694],{"__ignoreMap":359},[363,606,607,609,611,613,615,617,619,621],{"class":365,"line":366},[363,608,370],{"class":369},[363,610,374],{"class":373},[363,612,404],{"class":377},[363,614,381],{"class":373},[363,616,384],{"class":369},[363,618,387],{"class":373},[363,620,413],{"class":390},[363,622,394],{"class":373},[363,624,625],{"class":365,"line":397},[363,626,422],{"emptyLinePlaceholder":421},[363,628,629,631,633,635,637],{"class":365,"line":418},[363,630,428],{"class":369},[363,632,431],{"class":369},[363,634,404],{"class":434},[363,636,437],{"class":377},[363,638,440],{"class":373},[363,640,641],{"class":365,"line":425},[363,642,644],{"class":643},"sHwdD","  \u002F\u002F name 和 title 会根据文件名自动生成：\n",[363,646,647],{"class":365,"line":443},[363,648,649],{"class":643},"  \u002F\u002F name: 'list-documentation'\n",[363,651,652],{"class":365,"line":464},[363,653,654],{"class":643},"  \u002F\u002F title: 'List Documentation'\n",[363,656,657,659,661,663,666,668],{"class":365,"line":481},[363,658,467],{"class":446},[363,660,450],{"class":373},[363,662,387],{"class":373},[363,664,665],{"class":390},"列出所有文档文件",[363,667,458],{"class":373},[363,669,461],{"class":373},[363,671,672,674,676,678,681,683],{"class":365,"line":492},[363,673,539],{"class":434},[363,675,450],{"class":373},[363,677,545],{"class":544},[363,679,680],{"class":373}," ()",[363,682,558],{"class":544},[363,684,489],{"class":373},[363,686,687],{"class":365,"line":530},[363,688,689],{"class":643},"    \u002F\u002F ...\n",[363,691,692],{"class":365,"line":536},[363,693,533],{"class":373},[363,695,696,698],{"class":365,"line":578},[363,697,581],{"class":373},[363,699,584],{"class":377},[293,701,702,703,706],{},"文件名 ",[318,704,705],{},"list-documentation.ts"," 会自动变为：",[305,708,709,718],{},[308,710,711,713,714,717],{},[318,712,593],{},": ",[318,715,716],{},"list-documentation","（kebab-case）",[308,719,720,713,722,725],{},[318,721,597],{},[318,723,724],{},"List Documentation","（标题式大小写）",[293,727,728,729,731,732,734],{},"你仍然可以显式提供 ",[318,730,593],{}," 或 ",[318,733,597],{}," 来覆盖自动生成的值。",[288,736,737],{"id":737},"工具结构",[293,739,740],{},"一个工具定义由以下部分组成：",[742,743,744,843],"code-group",{},[353,745,748],{"className":355,"code":746,"filename":747,"language":358,"meta":359,"style":359},"export default defineMcpTool({\n  name: 'tool-name',        \u002F\u002F 唯一标识符（可选 - 将从文件名自动生成）\n  inputSchema: { ... },      \u002F\u002F 用于输入校验的 Zod schema\n  handler: async (args) => {\n    return 'result'          \u002F\u002F string、number、boolean、object 或 CallToolResult\n  },\n})\n","Required Fields",[318,749,750,762,781,798,818,833,837],{"__ignoreMap":359},[363,751,752,754,756,758,760],{"class":365,"line":366},[363,753,428],{"class":369},[363,755,431],{"class":369},[363,757,404],{"class":434},[363,759,437],{"class":377},[363,761,440],{"class":373},[363,763,764,766,768,770,773,775,778],{"class":365,"line":397},[363,765,447],{"class":446},[363,767,450],{"class":373},[363,769,387],{"class":373},[363,771,772],{"class":390},"tool-name",[363,774,458],{"class":373},[363,776,777],{"class":373},",",[363,779,780],{"class":643},"        \u002F\u002F 唯一标识符（可选 - 将从文件名自动生成）\n",[363,782,783,785,787,789,792,795],{"class":365,"line":418},[363,784,484],{"class":446},[363,786,450],{"class":373},[363,788,374],{"class":373},[363,790,791],{"class":373}," ...",[363,793,794],{"class":373}," },",[363,796,797],{"class":643},"      \u002F\u002F 用于输入校验的 Zod schema\n",[363,799,800,802,804,806,809,812,814,816],{"class":365,"line":425},[363,801,539],{"class":434},[363,803,450],{"class":373},[363,805,545],{"class":544},[363,807,808],{"class":373}," (",[363,810,811],{"class":551},"args",[363,813,525],{"class":373},[363,815,558],{"class":544},[363,817,489],{"class":373},[363,819,820,823,825,828,830],{"class":365,"line":443},[363,821,822],{"class":369},"    return",[363,824,387],{"class":373},[363,826,827],{"class":390},"result",[363,829,458],{"class":373},[363,831,832],{"class":643},"          \u002F\u002F string、number、boolean、object 或 CallToolResult\n",[363,834,835],{"class":365,"line":464},[363,836,533],{"class":373},[363,838,839,841],{"class":365,"line":481},[363,840,581],{"class":373},[363,842,584],{"class":377},[353,844,847],{"className":355,"code":845,"filename":846,"language":358,"meta":359,"style":359},"export default defineMcpTool({\n  name: 'tool-name',              \u002F\u002F 可选 - 将从文件名自动生成\n  title: 'Tool Title',            \u002F\u002F 可选 - 将从文件名自动生成\n  description: '工具描述',  \u002F\u002F 工具的作用\n  inputSchema: { ... },            \u002F\u002F 可选 - 用于输入校验的 Zod schema\n  outputSchema: { ... },            \u002F\u002F 用于结构化输出的 Zod schema\n  annotations: { ... },             \u002F\u002F 面向客户端的行为提示\n  inputExamples: [{ ... }],         \u002F\u002F 具体的使用示例\n  handler: async (args) => { ... },\n})\n","Optional Fields",[318,848,849,861,878,897,915,930,946,962,987,1010],{"__ignoreMap":359},[363,850,851,853,855,857,859],{"class":365,"line":366},[363,852,428],{"class":369},[363,854,431],{"class":369},[363,856,404],{"class":434},[363,858,437],{"class":377},[363,860,440],{"class":373},[363,862,863,865,867,869,871,873,875],{"class":365,"line":397},[363,864,447],{"class":446},[363,866,450],{"class":373},[363,868,387],{"class":373},[363,870,772],{"class":390},[363,872,458],{"class":373},[363,874,777],{"class":373},[363,876,877],{"class":643},"              \u002F\u002F 可选 - 将从文件名自动生成\n",[363,879,880,883,885,887,890,892,894],{"class":365,"line":418},[363,881,882],{"class":446},"  title",[363,884,450],{"class":373},[363,886,387],{"class":373},[363,888,889],{"class":390},"Tool Title",[363,891,458],{"class":373},[363,893,777],{"class":373},[363,895,896],{"class":643},"            \u002F\u002F 可选 - 将从文件名自动生成\n",[363,898,899,901,903,905,908,910,912],{"class":365,"line":425},[363,900,467],{"class":446},[363,902,450],{"class":373},[363,904,387],{"class":373},[363,906,907],{"class":390},"工具描述",[363,909,458],{"class":373},[363,911,777],{"class":373},[363,913,914],{"class":643},"  \u002F\u002F 工具的作用\n",[363,916,917,919,921,923,925,927],{"class":365,"line":443},[363,918,484],{"class":446},[363,920,450],{"class":373},[363,922,374],{"class":373},[363,924,791],{"class":373},[363,926,794],{"class":373},[363,928,929],{"class":643},"            \u002F\u002F 可选 - 用于输入校验的 Zod schema\n",[363,931,932,935,937,939,941,943],{"class":365,"line":464},[363,933,934],{"class":446},"  outputSchema",[363,936,450],{"class":373},[363,938,374],{"class":373},[363,940,791],{"class":373},[363,942,794],{"class":373},[363,944,945],{"class":643},"            \u002F\u002F 用于结构化输出的 Zod schema\n",[363,947,948,951,953,955,957,959],{"class":365,"line":481},[363,949,950],{"class":446},"  annotations",[363,952,450],{"class":373},[363,954,374],{"class":373},[363,956,791],{"class":373},[363,958,794],{"class":373},[363,960,961],{"class":643},"             \u002F\u002F 面向客户端的行为提示\n",[363,963,964,967,969,972,975,977,979,982,984],{"class":365,"line":492},[363,965,966],{"class":446},"  inputExamples",[363,968,450],{"class":373},[363,970,971],{"class":377}," [",[363,973,974],{"class":373},"{",[363,976,791],{"class":373},[363,978,381],{"class":373},[363,980,981],{"class":377},"]",[363,983,777],{"class":373},[363,985,986],{"class":643},"         \u002F\u002F 具体的使用示例\n",[363,988,989,991,993,995,997,999,1001,1003,1005,1007],{"class":365,"line":530},[363,990,539],{"class":434},[363,992,450],{"class":373},[363,994,545],{"class":544},[363,996,808],{"class":373},[363,998,811],{"class":551},[363,1000,525],{"class":373},[363,1002,558],{"class":544},[363,1004,374],{"class":373},[363,1006,791],{"class":373},[363,1008,1009],{"class":373}," },\n",[363,1011,1012,1014],{"class":365,"line":536},[363,1013,581],{"class":373},[363,1015,584],{"class":377},[288,1017,1018],{"id":1018},"进一步探索",[293,1020,1021],{},"在你编写了一些工具之后，可以继续扩展：",[1023,1024,1025,1035,1043,1048],"card-group",{},[1026,1027,1030,1031,1034],"card",{"color":1028,"icon":267,"title":1029,"to":265},"neutral","集成外部 API","调用第三方服务，使用 ",[318,1032,1033],{},"useEvent()","，并通过 Nitro 缓存响应。",[1026,1036,1038,1039,1042],{"color":1028,"icon":262,"title":1037,"to":260},"认证客户端","Bearer 令牌、Better Auth API 密钥，以及按工具设置的 ",[318,1040,1041],{},"enabled"," 保护。",[1026,1044,1047],{"color":1028,"icon":1045,"title":1046,"to":245},"i-lucide-terminal","使用代码模式","让 LLM 在单个受沙箱保护的 JS 执行中编排多个工具调用。",[1026,1049,1050,1051,1054],{"color":1028,"icon":155,"title":152,"to":153},"通过 ",[318,1052,1053],{},"handlers\u002F\u003Cname>\u002F"," 文件夹约定，将工具分配给专用的 MCP 路由。",[1056,1057,1058],"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":359,"searchDepth":397,"depth":397,"links":1060},[1061,1062,1063,1064,1065],{"id":290,"depth":397,"text":291},{"id":348,"depth":397,"text":348},{"id":587,"depth":397,"text":587},{"id":737,"depth":397,"text":737},{"id":1018,"depth":397,"text":1018},"使用 Zod 校验和类型安全创建 MCP 工具。","md",[1069,1072,1074,1075],{"label":1070,"icon":54,"to":52,"color":1028,"variant":1071},"Schema 与 handler","subtle",{"label":1073,"icon":59,"to":57,"color":1028,"variant":1071},"注解",{"label":61,"icon":64,"to":62,"color":1028,"variant":1071},{"label":1076,"icon":69,"to":67,"color":1028,"variant":1071},"分组与高级",{},{"title":46,"icon":49},{"title":41,"description":1080},"使用 Zod 校验和完整的 TypeScript 支持创建 MCP 工具。","mfsVVV23oIlKlqlQxQ9WphFDqaadjwBzmA0QfO9HYAI",[1083,1085],{"title":35,"path":36,"stem":37,"description":1084,"icon":38,"children":-1},"使用 Agent Skills 进行 AI 辅助的 MCP 服务器开发。让 AI 帮助你在 Nuxt 应用中设置、创建、审查和排查 MCP 服务器。",{"title":51,"path":52,"stem":53,"description":1086,"icon":54,"children":-1},"使用 Zod 定义工具输入和输出，并从处理器返回文本、结构化数据或媒体。",1778659574535]