[{"data":1,"prerenderedAt":1434},["ShallowReactive",2],{"navigation_docs":3,"-handlers-sharing-practices":282,"-handlers-sharing-practices-surround":1429},[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":147,"body":284,"description":1420,"extension":1421,"links":1422,"meta":1423,"navigation":1424,"path":148,"seo":1425,"stem":149,"__hash__":1428},"docs\u002F5.handlers\u002F4.sharing-practices.md",{"type":285,"value":286,"toc":1409},"minimark",[287,291,296,300,423,505,509,512,624,729,733,736,818,895,898,912,915,1099,1191,1280,1283,1289,1297,1321,1324,1359,1362,1405],[288,289,290],"h2",{"id":290},"使用场景",[292,293,295],"h3",{"id":294},"_1-功能分离","1. 功能分离",[297,298,299],"p",{},"将不同功能拆分到不同的处理器中：",[301,302,308],"pre",{"className":303,"code":304,"filename":305,"language":306,"meta":307,"style":307},"language-typescript shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import { defineMcpHandler } from '@nuxtjs\u002Fmcp-toolkit\u002Fserver'\n\nexport default defineMcpHandler({\n  name: 'users',\n  tools: [getUserTool, createUserTool, updateUserTool],\n})\n","server\u002Fmcp\u002Fuser-management.ts","typescript","",[309,310,311,344,351,369,390,414],"code",{"__ignoreMap":307},[312,313,316,320,324,328,331,334,337,341],"span",{"class":314,"line":315},"line",1,[312,317,319],{"class":318},"s7zQu","import",[312,321,323],{"class":322},"sMK4o"," {",[312,325,327],{"class":326},"sTEyZ"," defineMcpHandler",[312,329,330],{"class":322}," }",[312,332,333],{"class":318}," from",[312,335,336],{"class":322}," '",[312,338,340],{"class":339},"sfazB","@nuxtjs\u002Fmcp-toolkit\u002Fserver",[312,342,343],{"class":322},"'\n",[312,345,347],{"class":314,"line":346},2,[312,348,350],{"emptyLinePlaceholder":349},true,"\n",[312,352,354,357,360,363,366],{"class":314,"line":353},3,[312,355,356],{"class":318},"export",[312,358,359],{"class":318}," default",[312,361,327],{"class":362},"s2Zo4",[312,364,365],{"class":326},"(",[312,367,368],{"class":322},"{\n",[312,370,372,376,379,381,384,387],{"class":314,"line":371},4,[312,373,375],{"class":374},"swJcz","  name",[312,377,378],{"class":322},":",[312,380,336],{"class":322},[312,382,383],{"class":339},"users",[312,385,386],{"class":322},"'",[312,388,389],{"class":322},",\n",[312,391,393,396,398,401,404,407,409,412],{"class":314,"line":392},5,[312,394,395],{"class":374},"  tools",[312,397,378],{"class":322},[312,399,400],{"class":326}," [getUserTool",[312,402,403],{"class":322},",",[312,405,406],{"class":326}," createUserTool",[312,408,403],{"class":322},[312,410,411],{"class":326}," updateUserTool]",[312,413,389],{"class":322},[312,415,417,420],{"class":314,"line":416},6,[312,418,419],{"class":322},"}",[312,421,422],{"class":326},")\n",[301,424,427],{"className":303,"code":425,"filename":426,"language":306,"meta":307,"style":307},"import { defineMcpHandler } from '@nuxtjs\u002Fmcp-toolkit\u002Fserver'\n\nexport default defineMcpHandler({\n  name: 'content',\n  tools: [createPostTool, updatePostTool, deletePostTool],\n})\n","server\u002Fmcp\u002Fcontent-management.ts",[309,428,429,447,451,463,478,499],{"__ignoreMap":307},[312,430,431,433,435,437,439,441,443,445],{"class":314,"line":315},[312,432,319],{"class":318},[312,434,323],{"class":322},[312,436,327],{"class":326},[312,438,330],{"class":322},[312,440,333],{"class":318},[312,442,336],{"class":322},[312,444,340],{"class":339},[312,446,343],{"class":322},[312,448,449],{"class":314,"line":346},[312,450,350],{"emptyLinePlaceholder":349},[312,452,453,455,457,459,461],{"class":314,"line":353},[312,454,356],{"class":318},[312,456,359],{"class":318},[312,458,327],{"class":362},[312,460,365],{"class":326},[312,462,368],{"class":322},[312,464,465,467,469,471,474,476],{"class":314,"line":371},[312,466,375],{"class":374},[312,468,378],{"class":322},[312,470,336],{"class":322},[312,472,473],{"class":339},"content",[312,475,386],{"class":322},[312,477,389],{"class":322},[312,479,480,482,484,487,489,492,494,497],{"class":314,"line":392},[312,481,395],{"class":374},[312,483,378],{"class":322},[312,485,486],{"class":326}," [createPostTool",[312,488,403],{"class":322},[312,490,491],{"class":326}," updatePostTool",[312,493,403],{"class":322},[312,495,496],{"class":326}," deletePostTool]",[312,498,389],{"class":322},[312,500,501,503],{"class":314,"line":416},[312,502,419],{"class":322},[312,504,422],{"class":326},[292,506,508],{"id":507},"_2-版本化-api","2. 版本化 API",[297,510,511],{},"创建带版本的处理器：",[301,513,516],{"className":303,"code":514,"filename":515,"language":306,"meta":307,"style":307},"import { defineMcpHandler } from '@nuxtjs\u002Fmcp-toolkit\u002Fserver'\n\nexport default defineMcpHandler({\n  name: 'api-v1',\n  version: '1.0.0',\n  route: '\u002Fapi\u002Fv1\u002Fmcp',\n  tools: [ ... ],\n})\n","server\u002Fmcp\u002Fapi-v1.ts",[309,517,518,536,540,552,567,583,599,617],{"__ignoreMap":307},[312,519,520,522,524,526,528,530,532,534],{"class":314,"line":315},[312,521,319],{"class":318},[312,523,323],{"class":322},[312,525,327],{"class":326},[312,527,330],{"class":322},[312,529,333],{"class":318},[312,531,336],{"class":322},[312,533,340],{"class":339},[312,535,343],{"class":322},[312,537,538],{"class":314,"line":346},[312,539,350],{"emptyLinePlaceholder":349},[312,541,542,544,546,548,550],{"class":314,"line":353},[312,543,356],{"class":318},[312,545,359],{"class":318},[312,547,327],{"class":362},[312,549,365],{"class":326},[312,551,368],{"class":322},[312,553,554,556,558,560,563,565],{"class":314,"line":371},[312,555,375],{"class":374},[312,557,378],{"class":322},[312,559,336],{"class":322},[312,561,562],{"class":339},"api-v1",[312,564,386],{"class":322},[312,566,389],{"class":322},[312,568,569,572,574,576,579,581],{"class":314,"line":392},[312,570,571],{"class":374},"  version",[312,573,378],{"class":322},[312,575,336],{"class":322},[312,577,578],{"class":339},"1.0.0",[312,580,386],{"class":322},[312,582,389],{"class":322},[312,584,585,588,590,592,595,597],{"class":314,"line":416},[312,586,587],{"class":374},"  route",[312,589,378],{"class":322},[312,591,336],{"class":322},[312,593,594],{"class":339},"\u002Fapi\u002Fv1\u002Fmcp",[312,596,386],{"class":322},[312,598,389],{"class":322},[312,600,602,604,606,609,612,615],{"class":314,"line":601},7,[312,603,395],{"class":374},[312,605,378],{"class":322},[312,607,608],{"class":326}," [ ",[312,610,611],{"class":322},"...",[312,613,614],{"class":326}," ]",[312,616,389],{"class":322},[312,618,620,622],{"class":314,"line":619},8,[312,621,419],{"class":322},[312,623,422],{"class":326},[301,625,628],{"className":303,"code":626,"filename":627,"language":306,"meta":307,"style":307},"import { defineMcpHandler } from '@nuxtjs\u002Fmcp-toolkit\u002Fserver'\n\nexport default defineMcpHandler({\n  name: 'api-v2',\n  version: '2.0.0',\n  route: '\u002Fapi\u002Fv2\u002Fmcp',\n  tools: [ ... ],\n})\n","server\u002Fmcp\u002Fapi-v2.ts",[309,629,630,648,652,664,679,694,709,723],{"__ignoreMap":307},[312,631,632,634,636,638,640,642,644,646],{"class":314,"line":315},[312,633,319],{"class":318},[312,635,323],{"class":322},[312,637,327],{"class":326},[312,639,330],{"class":322},[312,641,333],{"class":318},[312,643,336],{"class":322},[312,645,340],{"class":339},[312,647,343],{"class":322},[312,649,650],{"class":314,"line":346},[312,651,350],{"emptyLinePlaceholder":349},[312,653,654,656,658,660,662],{"class":314,"line":353},[312,655,356],{"class":318},[312,657,359],{"class":318},[312,659,327],{"class":362},[312,661,365],{"class":326},[312,663,368],{"class":322},[312,665,666,668,670,672,675,677],{"class":314,"line":371},[312,667,375],{"class":374},[312,669,378],{"class":322},[312,671,336],{"class":322},[312,673,674],{"class":339},"api-v2",[312,676,386],{"class":322},[312,678,389],{"class":322},[312,680,681,683,685,687,690,692],{"class":314,"line":392},[312,682,571],{"class":374},[312,684,378],{"class":322},[312,686,336],{"class":322},[312,688,689],{"class":339},"2.0.0",[312,691,386],{"class":322},[312,693,389],{"class":322},[312,695,696,698,700,702,705,707],{"class":314,"line":416},[312,697,587],{"class":374},[312,699,378],{"class":322},[312,701,336],{"class":322},[312,703,704],{"class":339},"\u002Fapi\u002Fv2\u002Fmcp",[312,706,386],{"class":322},[312,708,389],{"class":322},[312,710,711,713,715,717,719,721],{"class":314,"line":601},[312,712,395],{"class":374},[312,714,378],{"class":322},[312,716,608],{"class":326},[312,718,611],{"class":322},[312,720,614],{"class":326},[312,722,389],{"class":322},[312,724,725,727],{"class":314,"line":619},[312,726,419],{"class":322},[312,728,422],{"class":326},[292,730,732],{"id":731},"_3-按领域划分的处理器","3. 按领域划分的处理器",[297,734,735],{},"按领域组织：",[301,737,740],{"className":303,"code":738,"filename":739,"language":306,"meta":307,"style":307},"import { defineMcpHandler } from '@nuxtjs\u002Fmcp-toolkit\u002Fserver'\n\nexport default defineMcpHandler({\n  name: 'ecommerce',\n  tools: [addToCartTool, checkoutTool, getProductsTool],\n})\n","server\u002Fmcp\u002Fecommerce.ts",[309,741,742,760,764,776,791,812],{"__ignoreMap":307},[312,743,744,746,748,750,752,754,756,758],{"class":314,"line":315},[312,745,319],{"class":318},[312,747,323],{"class":322},[312,749,327],{"class":326},[312,751,330],{"class":322},[312,753,333],{"class":318},[312,755,336],{"class":322},[312,757,340],{"class":339},[312,759,343],{"class":322},[312,761,762],{"class":314,"line":346},[312,763,350],{"emptyLinePlaceholder":349},[312,765,766,768,770,772,774],{"class":314,"line":353},[312,767,356],{"class":318},[312,769,359],{"class":318},[312,771,327],{"class":362},[312,773,365],{"class":326},[312,775,368],{"class":322},[312,777,778,780,782,784,787,789],{"class":314,"line":371},[312,779,375],{"class":374},[312,781,378],{"class":322},[312,783,336],{"class":322},[312,785,786],{"class":339},"ecommerce",[312,788,386],{"class":322},[312,790,389],{"class":322},[312,792,793,795,797,800,802,805,807,810],{"class":314,"line":392},[312,794,395],{"class":374},[312,796,378],{"class":322},[312,798,799],{"class":326}," [addToCartTool",[312,801,403],{"class":322},[312,803,804],{"class":326}," checkoutTool",[312,806,403],{"class":322},[312,808,809],{"class":326}," getProductsTool]",[312,811,389],{"class":322},[312,813,814,816],{"class":314,"line":416},[312,815,419],{"class":322},[312,817,422],{"class":326},[301,819,822],{"className":303,"code":820,"filename":821,"language":306,"meta":307,"style":307},"import { defineMcpHandler } from '@nuxtjs\u002Fmcp-toolkit\u002Fserver'\n\nexport default defineMcpHandler({\n  name: 'analytics',\n  tools: [getStatsTool, generateReportTool],\n})\n","server\u002Fmcp\u002Fanalytics.ts",[309,823,824,842,846,858,873,889],{"__ignoreMap":307},[312,825,826,828,830,832,834,836,838,840],{"class":314,"line":315},[312,827,319],{"class":318},[312,829,323],{"class":322},[312,831,327],{"class":326},[312,833,330],{"class":322},[312,835,333],{"class":318},[312,837,336],{"class":322},[312,839,340],{"class":339},[312,841,343],{"class":322},[312,843,844],{"class":314,"line":346},[312,845,350],{"emptyLinePlaceholder":349},[312,847,848,850,852,854,856],{"class":314,"line":353},[312,849,356],{"class":318},[312,851,359],{"class":318},[312,853,327],{"class":362},[312,855,365],{"class":326},[312,857,368],{"class":322},[312,859,860,862,864,866,869,871],{"class":314,"line":371},[312,861,375],{"class":374},[312,863,378],{"class":322},[312,865,336],{"class":322},[312,867,868],{"class":339},"analytics",[312,870,386],{"class":322},[312,872,389],{"class":322},[312,874,875,877,879,882,884,887],{"class":314,"line":392},[312,876,395],{"class":374},[312,878,378],{"class":322},[312,880,881],{"class":326}," [getStatsTool",[312,883,403],{"class":322},[312,885,886],{"class":326}," generateReportTool]",[312,888,389],{"class":322},[312,890,891,893],{"class":314,"line":416},[312,892,419],{"class":322},[312,894,422],{"class":326},[288,896,897],{"id":897},"在处理器之间共享工具",[899,900,903,904,907,908,911],"callout",{"color":901,"icon":902},"primary","i-lucide-arrow-right","对于任何新处理器，优先使用 ",[905,906,152],"a",{"href":153}," 功能（文件夹约定加上 ",[309,909,910],{},"getMcp*"," 函数形式）。下面的模式仍然完全受支持，适用于显式、手工构建的处理器配置。",[297,913,914],{},"你可以通过将工具定义导出到单独文件，在处理器之间共享它们：",[301,916,919],{"className":303,"code":917,"filename":918,"language":306,"meta":307,"style":307},"import { z } from 'zod'\nimport { defineMcpTool } from '@nuxtjs\u002Fmcp-toolkit\u002Fserver'\n\nexport const sharedTool = defineMcpTool({\n  name: 'shared-tool',\n  description: '一个共享工具',\n  inputSchema: {\n    input: z.string(),\n  },\n  handler: async ({ input }) => `Shared: ${input}`,\n})\n","server\u002Fmcp\u002Fshared-tools.ts",[309,920,921,941,960,964,984,999,1015,1025,1045,1051,1092],{"__ignoreMap":307},[312,922,923,925,927,930,932,934,936,939],{"class":314,"line":315},[312,924,319],{"class":318},[312,926,323],{"class":322},[312,928,929],{"class":326}," z",[312,931,330],{"class":322},[312,933,333],{"class":318},[312,935,336],{"class":322},[312,937,938],{"class":339},"zod",[312,940,343],{"class":322},[312,942,943,945,947,950,952,954,956,958],{"class":314,"line":346},[312,944,319],{"class":318},[312,946,323],{"class":322},[312,948,949],{"class":326}," defineMcpTool",[312,951,330],{"class":322},[312,953,333],{"class":318},[312,955,336],{"class":322},[312,957,340],{"class":339},[312,959,343],{"class":322},[312,961,962],{"class":314,"line":353},[312,963,350],{"emptyLinePlaceholder":349},[312,965,966,968,972,975,978,980,982],{"class":314,"line":371},[312,967,356],{"class":318},[312,969,971],{"class":970},"spNyl"," const",[312,973,974],{"class":326}," sharedTool ",[312,976,977],{"class":322},"=",[312,979,949],{"class":362},[312,981,365],{"class":326},[312,983,368],{"class":322},[312,985,986,988,990,992,995,997],{"class":314,"line":392},[312,987,375],{"class":374},[312,989,378],{"class":322},[312,991,336],{"class":322},[312,993,994],{"class":339},"shared-tool",[312,996,386],{"class":322},[312,998,389],{"class":322},[312,1000,1001,1004,1006,1008,1011,1013],{"class":314,"line":416},[312,1002,1003],{"class":374},"  description",[312,1005,378],{"class":322},[312,1007,336],{"class":322},[312,1009,1010],{"class":339},"一个共享工具",[312,1012,386],{"class":322},[312,1014,389],{"class":322},[312,1016,1017,1020,1022],{"class":314,"line":601},[312,1018,1019],{"class":374},"  inputSchema",[312,1021,378],{"class":322},[312,1023,1024],{"class":322}," {\n",[312,1026,1027,1030,1032,1034,1037,1040,1043],{"class":314,"line":619},[312,1028,1029],{"class":374},"    input",[312,1031,378],{"class":322},[312,1033,929],{"class":326},[312,1035,1036],{"class":322},".",[312,1038,1039],{"class":362},"string",[312,1041,1042],{"class":326},"()",[312,1044,389],{"class":322},[312,1046,1048],{"class":314,"line":1047},9,[312,1049,1050],{"class":322},"  },\n",[312,1052,1054,1057,1059,1062,1065,1069,1072,1075,1078,1081,1084,1087,1090],{"class":314,"line":1053},10,[312,1055,1056],{"class":362},"  handler",[312,1058,378],{"class":322},[312,1060,1061],{"class":970}," async",[312,1063,1064],{"class":322}," ({",[312,1066,1068],{"class":1067},"sHdIc"," input",[312,1070,1071],{"class":322}," })",[312,1073,1074],{"class":970}," =>",[312,1076,1077],{"class":322}," `",[312,1079,1080],{"class":339},"Shared: ",[312,1082,1083],{"class":322},"${",[312,1085,1086],{"class":326},"input",[312,1088,1089],{"class":322},"}`",[312,1091,389],{"class":322},[312,1093,1095,1097],{"class":314,"line":1094},11,[312,1096,419],{"class":322},[312,1098,422],{"class":326},[301,1100,1103],{"className":303,"code":1101,"filename":1102,"language":306,"meta":307,"style":307},"import { sharedTool } from '.\u002Fshared-tools'\nimport { defineMcpHandler } from '@nuxtjs\u002Fmcp-toolkit\u002Fserver'\n\nexport default defineMcpHandler({\n  name: 'handler1',\n  tools: [sharedTool],\n})\n","server\u002Fmcp\u002Fhandler1.ts",[309,1104,1105,1125,1143,1147,1159,1174,1185],{"__ignoreMap":307},[312,1106,1107,1109,1111,1114,1116,1118,1120,1123],{"class":314,"line":315},[312,1108,319],{"class":318},[312,1110,323],{"class":322},[312,1112,1113],{"class":326}," sharedTool",[312,1115,330],{"class":322},[312,1117,333],{"class":318},[312,1119,336],{"class":322},[312,1121,1122],{"class":339},".\u002Fshared-tools",[312,1124,343],{"class":322},[312,1126,1127,1129,1131,1133,1135,1137,1139,1141],{"class":314,"line":346},[312,1128,319],{"class":318},[312,1130,323],{"class":322},[312,1132,327],{"class":326},[312,1134,330],{"class":322},[312,1136,333],{"class":318},[312,1138,336],{"class":322},[312,1140,340],{"class":339},[312,1142,343],{"class":322},[312,1144,1145],{"class":314,"line":353},[312,1146,350],{"emptyLinePlaceholder":349},[312,1148,1149,1151,1153,1155,1157],{"class":314,"line":371},[312,1150,356],{"class":318},[312,1152,359],{"class":318},[312,1154,327],{"class":362},[312,1156,365],{"class":326},[312,1158,368],{"class":322},[312,1160,1161,1163,1165,1167,1170,1172],{"class":314,"line":392},[312,1162,375],{"class":374},[312,1164,378],{"class":322},[312,1166,336],{"class":322},[312,1168,1169],{"class":339},"handler1",[312,1171,386],{"class":322},[312,1173,389],{"class":322},[312,1175,1176,1178,1180,1183],{"class":314,"line":416},[312,1177,395],{"class":374},[312,1179,378],{"class":322},[312,1181,1182],{"class":326}," [sharedTool]",[312,1184,389],{"class":322},[312,1186,1187,1189],{"class":314,"line":601},[312,1188,419],{"class":322},[312,1190,422],{"class":326},[301,1192,1195],{"className":303,"code":1193,"filename":1194,"language":306,"meta":307,"style":307},"import { sharedTool } from '.\u002Fshared-tools'\nimport { defineMcpHandler } from '@nuxtjs\u002Fmcp-toolkit\u002Fserver'\n\nexport default defineMcpHandler({\n  name: 'handler2',\n  tools: [sharedTool],\n})\n","server\u002Fmcp\u002Fhandler2.ts",[309,1196,1197,1215,1233,1237,1249,1264,1274],{"__ignoreMap":307},[312,1198,1199,1201,1203,1205,1207,1209,1211,1213],{"class":314,"line":315},[312,1200,319],{"class":318},[312,1202,323],{"class":322},[312,1204,1113],{"class":326},[312,1206,330],{"class":322},[312,1208,333],{"class":318},[312,1210,336],{"class":322},[312,1212,1122],{"class":339},[312,1214,343],{"class":322},[312,1216,1217,1219,1221,1223,1225,1227,1229,1231],{"class":314,"line":346},[312,1218,319],{"class":318},[312,1220,323],{"class":322},[312,1222,327],{"class":326},[312,1224,330],{"class":322},[312,1226,333],{"class":318},[312,1228,336],{"class":322},[312,1230,340],{"class":339},[312,1232,343],{"class":322},[312,1234,1235],{"class":314,"line":353},[312,1236,350],{"emptyLinePlaceholder":349},[312,1238,1239,1241,1243,1245,1247],{"class":314,"line":371},[312,1240,356],{"class":318},[312,1242,359],{"class":318},[312,1244,327],{"class":362},[312,1246,365],{"class":326},[312,1248,368],{"class":322},[312,1250,1251,1253,1255,1257,1260,1262],{"class":314,"line":392},[312,1252,375],{"class":374},[312,1254,378],{"class":322},[312,1256,336],{"class":322},[312,1258,1259],{"class":339},"handler2",[312,1261,386],{"class":322},[312,1263,389],{"class":322},[312,1265,1266,1268,1270,1272],{"class":314,"line":416},[312,1267,395],{"class":374},[312,1269,378],{"class":322},[312,1271,1182],{"class":326},[312,1273,389],{"class":322},[312,1275,1276,1278],{"class":314,"line":601},[312,1277,419],{"class":322},[312,1279,422],{"class":326},[288,1281,1282],{"id":1282},"文件组织",[297,1284,1285,1288],{},[309,1286,1287],{},"server\u002Fmcp\u002F"," 中可以共存两种约定：",[301,1290,1295],{"className":1291,"code":1293,"language":1294},[1292],"language-text","server\u002F\n└── mcp\u002F\n    ├── index.ts              # 默认处理器覆盖（可选）\n    ├── migration.ts          # 顶层处理器（默认包含所有工具）\n    ├── tools\u002F                # 默认处理器工具（孤立项）\n    ├── resources\u002F            # 默认处理器资源（孤立项）\n    ├── prompts\u002F              # 默认处理器提示词（孤立项）\n    └── handlers\u002F             # ✨ 命名处理器文件夹（推荐）\n        ├── admin\u002F\n        │   ├── index.ts      # 必需：defineMcpHandler({ ... })\n        │   ├── tools\u002F        # 自动附加到 \u002Fmcp\u002Fadmin\n        │   └── prompts\u002F\n        └── apps\u002F\n            ├── index.ts\n            └── tools\u002F        # 自动附加到 \u002Fmcp\u002Fapps\n","text",[309,1296,1293],{"__ignoreMap":307},[899,1298,1299,1301,1302,1305,1306,1309,1310,1312,1313,1316,1317,1320],{"color":901,"icon":272},[309,1300,1287],{}," 根目录下的 ",[309,1303,1304],{},"index.ts"," 会覆盖默认处理器配置。在 ",[309,1307,1308],{},"handlers\u002F\u003Cname>\u002F"," 目录中，",[309,1311,1304],{}," 是必需的（即使只有一行：",[309,1314,1315],{},"export default defineMcpHandler({})","）——它负责注册 ",[309,1318,1319],{},"\u002Fmcp\u002F\u003Cname>"," 路由。",[288,1322,1323],{"id":1323},"最佳实践",[1325,1326,1327,1335,1341,1347,1353],"ol",{},[1328,1329,1330,1334],"li",{},[1331,1332,1333],"strong",{},"使用描述性名称","：让处理器名称清晰且具体",[1328,1336,1337,1340],{},[1331,1338,1339],{},"将相关功能分组","：把相关的工具\u002F资源放在一起",[1328,1342,1343,1346],{},[1331,1344,1345],{},"为处理器添加版本","：对处理器版本使用语义化版本控制",[1328,1348,1349,1352],{},[1331,1350,1351],{},"记录处理器","：添加注释说明每个处理器的作用",[1328,1354,1355,1358],{},[1331,1356,1357],{},"保持处理器聚焦","：每个处理器都应有明确、单一的目的",[288,1360,1361],{"id":1361},"后续步骤",[1363,1364,1365,1373,1379,1385,1390,1395,1400],"ul",{},[1328,1366,1367,1369,1370,1372],{},[905,1368,152],{"href":153}," - 文件夹约定 + ",[309,1371,910],{}," 函数形式",[1328,1374,1375,1378],{},[905,1376,1377],{"href":245},"代码模式"," - 使用 LLM 生成的 JavaScript 编排工具",[1328,1380,1381,1384],{},[905,1382,1383],{"href":216},"中间件"," - 添加身份验证和日志记录",[1328,1386,1387,1389],{},[905,1388,239],{"href":240}," - 有条件地注册定义",[1328,1391,1392,1394],{},[905,1393,20],{"href":21}," - 配置默认处理器",[1328,1396,1397,1399],{},[905,1398,41],{"href":47}," - 为你的处理器创建工具",[1328,1401,1402,1404],{},[905,1403,254],{"href":270}," - 查看更多处理器示例",[1406,1407,1408],"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 .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 .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}",{"title":307,"searchDepth":346,"depth":346,"links":1410},[1411,1416,1417,1418,1419],{"id":290,"depth":346,"text":290,"children":1412},[1413,1414,1415],{"id":294,"depth":353,"text":295},{"id":507,"depth":353,"text":508},{"id":731,"depth":353,"text":732},{"id":897,"depth":346,"text":897},{"id":1282,"depth":346,"text":1282},{"id":1323,"depth":346,"text":1323},{"id":1361,"depth":346,"text":1361},"跨处理器工具共享、文件布局、使用场景和后续步骤。","md",null,{},{"icon":150},{"title":1426,"description":1427},"处理器之间共享工具","共享的工具定义、处理器文件组织、使用场景和最佳实践。","sJt5R389I0Y05O6RgXu-G8sMWug_PA9mNDpyHMPs0kU",[1430,1432],{"title":142,"path":143,"stem":144,"description":1431,"icon":145,"children":-1},"完整的处理器示例、多个处理器、路由，以及默认与自定义的比较。",{"title":152,"path":153,"stem":154,"description":1433,"icon":155,"children":-1},"通过文件夹约定自动将自动发现的定义归属到多个 MCP 处理器，并为交叉切分场景提供一个基于函数的逃生口。",1778659579438]