[{"data":1,"prerenderedAt":4883},["ShallowReactive",2],{"navigation_docs":3,"-core-concepts-handlers":139,"-core-concepts-handlers-surround":4878},[4,40,65,110],{"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},"MCP Inspector","\u002Fgetting-started\u002Finspector","1.getting-started\u002F4.inspector","i-lucide-circuit-board",{"title":30,"path":31,"stem":32,"icon":33},"连接","\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},"核心概念","\u002Fcore-concepts","2.core-concepts",[45,50,55,60],{"title":46,"path":47,"stem":48,"icon":49},"工具","\u002Fcore-concepts\u002Ftools","2.core-concepts\u002F2.tools","i-lucide-wrench",{"title":51,"path":52,"stem":53,"icon":54},"资源","\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},"进阶主题","\u002Fadvanced","3.advanced",[70,75,80,85,90,95,100,105],{"title":71,"path":72,"stem":73,"icon":74},"自定义路径","\u002Fadvanced\u002Fcustom-paths","3.advanced\u002F1.custom-paths","i-lucide-folder",{"title":76,"path":77,"stem":78,"icon":79},"中间件","\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},"钩子","\u002Fadvanced\u002Fhooks","3.advanced\u002F4.hooks","i-lucide-webhook",{"title":91,"path":92,"stem":93,"icon":94},"MCP 评估","\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},"动态定义","\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},"示例","\u002Fexamples","4.examples",[115,120,125,130,135],{"title":116,"path":117,"stem":118,"icon":119},"身份验证","\u002Fexamples\u002Fauthentication","4.examples\u002F1.authentication","i-lucide-shield-check",{"title":121,"path":122,"stem":123,"icon":124},"API 集成","\u002Fexamples\u002Fapi-integration","4.examples\u002F2.api-integration","i-lucide-globe",{"title":126,"path":127,"stem":128,"icon":129},"常见模式","\u002Fexamples\u002Fcommon-patterns","4.examples\u002F3.common-patterns","i-lucide-lightbulb",{"title":131,"path":132,"stem":133,"icon":134},"文件操作","\u002Fexamples\u002Ffile-operations","4.examples\u002F4.file-operations","i-lucide-file",{"title":136,"path":137,"stem":138,"icon":59},"提示词示例","\u002Fexamples\u002Fprompt-examples","4.examples\u002F5.prompt-examples",{"id":140,"title":61,"body":141,"description":4870,"extension":4871,"links":4872,"meta":4873,"navigation":4874,"path":62,"seo":4875,"stem":63,"__hash__":4877},"docs\u002F2.core-concepts\u002F5.handlers.md",{"type":142,"value":143,"toc":4829},"minimark",[144,149,158,240,243,256,259,270,274,284,365,368,412,434,439,507,511,591,594,601,948,951,954,1236,1239,1245,1255,1317,1323,1326,1399,1404,1409,1423,1500,1505,1510,1584,1589,1592,1700,1707,1713,1724,1818,1828,1834,1839,1842,2188,2198,2203,2206,2332,2337,2340,2466,2469,2472,3432,3435,3438,3445,3448,3521,3594,3597,3610,3636,3639,3716,3719,3833,3836,3840,3843,3923,4005,4009,4012,4116,4220,4224,4227,4309,4386,4389,4392,4553,4645,4734,4737,4743,4749,4754,4757,4790,4793,4825],[145,146,148],"h2",{"id":147},"什么是处理器-handlers","什么是处理器 (Handlers)？",[150,151,152,153,157],"p",{},"处理器允许你在单个 Nuxt 应用中创建",[154,155,156],"strong",{},"多个 MCP 端点","。每个处理器都有自己的路由、名称、版本，并且可以包含专属的工具、资源和提示词集合。",[159,160,161],"code-collapse",{},[162,163,169],"pre",{"className":164,"code":165,"filename":166,"language":167,"meta":168,"style":168},"language-txt shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","使用 @nuxtjs\u002Fmcp-toolkit 创建具有专属端点和工具的自定义 MCP 处理器。\n\n- 在 server\u002Fmcp\u002F 根目录下创建 .ts 文件（例如 server\u002Fmcp\u002Fadmin.ts）—— tools\u002F、resources\u002F、prompts\u002F 等子目录中的文件是定义文件，而非处理器\n- 使用 defineMcpHandler（自动导入）并配置 name、route、tools、resources 和 prompts\n- 显式设置路由（例如 route: '\u002Fmcp\u002Fadmin'）\n- 使用 defineMcpTool 内联定义工具，或导入共享工具\n- 通过创建 server\u002Fmcp\u002Findex.ts 并使用 defineMcpHandler 来覆盖默认处理器\n- 添加中间件以实现处理器特定的身份验证或日志记录\n- 为每个处理器设置 version 和 browserRedirect\n\n文档：https:\u002F\u002Fmcp-toolkit.nuxt.dev\u002Fcore-concepts\u002Fhandlers\n","Prompt","txt","",[170,171,172,180,187,193,199,205,211,217,223,229,234],"code",{"__ignoreMap":168},[173,174,177],"span",{"class":175,"line":176},"line",1,[173,178,179],{},"使用 @nuxtjs\u002Fmcp-toolkit 创建具有专属端点和工具的自定义 MCP 处理器。\n",[173,181,183],{"class":175,"line":182},2,[173,184,186],{"emptyLinePlaceholder":185},true,"\n",[173,188,190],{"class":175,"line":189},3,[173,191,192],{},"- 在 server\u002Fmcp\u002F 根目录下创建 .ts 文件（例如 server\u002Fmcp\u002Fadmin.ts）—— tools\u002F、resources\u002F、prompts\u002F 等子目录中的文件是定义文件，而非处理器\n",[173,194,196],{"class":175,"line":195},4,[173,197,198],{},"- 使用 defineMcpHandler（自动导入）并配置 name、route、tools、resources 和 prompts\n",[173,200,202],{"class":175,"line":201},5,[173,203,204],{},"- 显式设置路由（例如 route: '\u002Fmcp\u002Fadmin'）\n",[173,206,208],{"class":175,"line":207},6,[173,209,210],{},"- 使用 defineMcpTool 内联定义工具，或导入共享工具\n",[173,212,214],{"class":175,"line":213},7,[173,215,216],{},"- 通过创建 server\u002Fmcp\u002Findex.ts 并使用 defineMcpHandler 来覆盖默认处理器\n",[173,218,220],{"class":175,"line":219},8,[173,221,222],{},"- 添加中间件以实现处理器特定的身份验证或日志记录\n",[173,224,226],{"class":175,"line":225},9,[173,227,228],{},"- 为每个处理器设置 version 和 browserRedirect\n",[173,230,232],{"class":175,"line":231},10,[173,233,186],{"emptyLinePlaceholder":185},[173,235,237],{"class":175,"line":236},11,[173,238,239],{},"文档：https:\u002F\u002Fmcp-toolkit.nuxt.dev\u002Fcore-concepts\u002Fhandlers\n",[150,241,242],{},"在以下场景中非常有用：",[244,245,246,250,253],"ul",{},[247,248,249],"li",{},"将不同的 MCP 功能分离到不同的端点",[247,251,252],{},"创建带版本控制的 MCP API",[247,254,255],{},"按领域或功能组织工具\u002F资源",[145,257,258],{"id":258},"默认处理器",[150,260,261,262,265,266,269],{},"默认情况下，该模块会在 ",[170,263,264],{},"\u002Fmcp","（或你配置的路由）处创建单个 MCP 端点，其中包含 ",[170,267,268],{},"server\u002Fmcp\u002F"," 目录下的所有工具、资源和提示词。",[271,272,273],"h3",{"id":273},"覆盖默认处理器",[150,275,276,277,279,280,283],{},"你可以通过在 ",[170,278,268],{}," 中创建 ",[170,281,282],{},"index.ts"," 文件来覆盖默认处理器的配置：",[162,285,290],{"className":286,"code":287,"filename":288,"language":289,"meta":168,"style":168},"language-typescript shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","export default defineMcpHandler({\n  version: '2.0.0',\n  browserRedirect: '\u002Fdocs',\n  \u002F\u002F 如果未指定 tools\u002Fresources\u002Fprompts，则使用全局定义\n})\n","server\u002Fmcp\u002Findex.ts","typescript",[170,291,292,313,335,351,357],{"__ignoreMap":168},[173,293,294,298,301,305,309],{"class":175,"line":176},[173,295,297],{"class":296},"s7zQu","export",[173,299,300],{"class":296}," default",[173,302,304],{"class":303},"s2Zo4"," defineMcpHandler",[173,306,308],{"class":307},"sTEyZ","(",[173,310,312],{"class":311},"sMK4o","{\n",[173,314,315,319,322,325,329,332],{"class":175,"line":182},[173,316,318],{"class":317},"swJcz","  version",[173,320,321],{"class":311},":",[173,323,324],{"class":311}," '",[173,326,328],{"class":327},"sfazB","2.0.0",[173,330,331],{"class":311},"'",[173,333,334],{"class":311},",\n",[173,336,337,340,342,344,347,349],{"class":175,"line":189},[173,338,339],{"class":317},"  browserRedirect",[173,341,321],{"class":311},[173,343,324],{"class":311},[173,345,346],{"class":327},"\u002Fdocs",[173,348,331],{"class":311},[173,350,334],{"class":311},[173,352,353],{"class":175,"line":195},[173,354,356],{"class":355},"sHwdD","  \u002F\u002F 如果未指定 tools\u002Fresources\u002Fprompts，则使用全局定义\n",[173,358,359,362],{"class":175,"line":201},[173,360,361],{"class":311},"}",[173,363,364],{"class":307},")\n",[150,366,367],{},"这允许你自定义：",[244,369,370,376,382,388,401],{},[247,371,372,375],{},[170,373,374],{},"version"," - 覆盖服务器版本",[247,377,378,381],{},[170,379,380],{},"browserRedirect"," - 覆盖浏览器重定向 URL",[247,383,384,387],{},[170,385,386],{},"name"," - 覆盖服务器名称（可选）",[247,389,390,393,394,393,397,400],{},[170,391,392],{},"tools","、",[170,395,396],{},"resources",[170,398,399],{},"prompts"," - 使用特定定义而非全局定义",[247,402,403,406,407,411],{},[170,404,405],{},"middleware"," - 添加请求拦截以用于身份验证、日志记录等（",[408,409,410],"a",{"href":77},"了解更多","）",[413,414,417,418,421,422,425,426,429,430,433],"callout",{"color":415,"icon":416},"info","i-lucide-info","默认处理器会",[154,419,420],{},"忽略"," ",[170,423,424],{},"route"," 属性。如需更改路由，请在 ",[170,427,428],{},"nuxt.config.ts"," 中使用 ",[170,431,432],{},"mcp.route","。",[435,436,438],"h4",{"id":437},"示例自定义版本和重定向","示例：自定义版本和重定向",[162,440,442],{"className":286,"code":441,"filename":288,"language":289,"meta":168,"style":168},"export default defineMcpHandler({\n  name: 'My Documentation MCP',\n  version: '1.2.0',\n  browserRedirect: '\u002Fgetting-started',\n})\n",[170,443,444,456,472,487,501],{"__ignoreMap":168},[173,445,446,448,450,452,454],{"class":175,"line":176},[173,447,297],{"class":296},[173,449,300],{"class":296},[173,451,304],{"class":303},[173,453,308],{"class":307},[173,455,312],{"class":311},[173,457,458,461,463,465,468,470],{"class":175,"line":182},[173,459,460],{"class":317},"  name",[173,462,321],{"class":311},[173,464,324],{"class":311},[173,466,467],{"class":327},"My Documentation MCP",[173,469,331],{"class":311},[173,471,334],{"class":311},[173,473,474,476,478,480,483,485],{"class":175,"line":189},[173,475,318],{"class":317},[173,477,321],{"class":311},[173,479,324],{"class":311},[173,481,482],{"class":327},"1.2.0",[173,484,331],{"class":311},[173,486,334],{"class":311},[173,488,489,491,493,495,497,499],{"class":175,"line":195},[173,490,339],{"class":317},[173,492,321],{"class":311},[173,494,324],{"class":311},[173,496,6],{"class":327},[173,498,331],{"class":311},[173,500,334],{"class":311},[173,502,503,505],{"class":175,"line":201},[173,504,361],{"class":311},[173,506,364],{"class":307},[435,508,510],{"id":509},"示例限制暴露的工具","示例：限制暴露的工具",[162,512,514],{"className":286,"code":513,"filename":288,"language":289,"meta":168,"style":168},"import { myTool, anotherTool } from '.\u002Ftools\u002Fmy-tools'\n\nexport default defineMcpHandler({\n  \u002F\u002F 仅暴露特定工具，而非 server\u002Fmcp\u002Ftools\u002F 中的所有工具\n  tools: [myTool, anotherTool],\n})\n",[170,515,516,547,551,563,568,585],{"__ignoreMap":168},[173,517,518,521,524,527,530,533,536,539,541,544],{"class":175,"line":176},[173,519,520],{"class":296},"import",[173,522,523],{"class":311}," {",[173,525,526],{"class":307}," myTool",[173,528,529],{"class":311},",",[173,531,532],{"class":307}," anotherTool",[173,534,535],{"class":311}," }",[173,537,538],{"class":296}," from",[173,540,324],{"class":311},[173,542,543],{"class":327},".\u002Ftools\u002Fmy-tools",[173,545,546],{"class":311},"'\n",[173,548,549],{"class":175,"line":182},[173,550,186],{"emptyLinePlaceholder":185},[173,552,553,555,557,559,561],{"class":175,"line":189},[173,554,297],{"class":296},[173,556,300],{"class":296},[173,558,304],{"class":303},[173,560,308],{"class":307},[173,562,312],{"class":311},[173,564,565],{"class":175,"line":195},[173,566,567],{"class":355},"  \u002F\u002F 仅暴露特定工具，而非 server\u002Fmcp\u002Ftools\u002F 中的所有工具\n",[173,569,570,573,575,578,580,583],{"class":175,"line":201},[173,571,572],{"class":317},"  tools",[173,574,321],{"class":311},[173,576,577],{"class":307}," [myTool",[173,579,529],{"class":311},[173,581,582],{"class":307}," anotherTool]",[173,584,334],{"class":311},[173,586,587,589],{"class":175,"line":207},[173,588,361],{"class":311},[173,590,364],{"class":307},[145,592,593],{"id":593},"自定义处理器",[150,595,596,597,600],{},"使用 ",[170,598,599],{},"defineMcpHandler"," 创建自定义处理器：",[162,602,605],{"className":286,"code":603,"filename":604,"language":289,"meta":168,"style":168},"import { z } from 'zod'\nimport { defineMcpTool, defineMcpHandler } from '@nuxtjs\u002Fmcp-toolkit\u002Fserver'\n\nconst migrationTool = defineMcpTool({\n  name: 'migrate-v3-to-v4',\n  title: 'Migrate v3 to v4',\n  description: 'Migrate code from version 3 to version 4',\n  inputSchema: {\n    code: z.string().describe('The code to migrate'),\n  },\n  handler: async ({ code }) => {\n    return code.replace(\u002Fv3\u002Fg, 'v4')\n  },\n})\n\nexport default defineMcpHandler({\n  name: 'migration',\n  version: '0.1.0',\n  route: '\u002Fmcp\u002Fmigration',\n  tools: [migrationTool],\n  browserRedirect: '\u002F',\n})\n","server\u002Fmcp\u002Fmigration.ts",[170,606,607,627,651,655,673,688,704,720,730,767,772,797,835,840,847,852,865,881,897,914,926,941],{"__ignoreMap":168},[173,608,609,611,613,616,618,620,622,625],{"class":175,"line":176},[173,610,520],{"class":296},[173,612,523],{"class":311},[173,614,615],{"class":307}," z",[173,617,535],{"class":311},[173,619,538],{"class":296},[173,621,324],{"class":311},[173,623,624],{"class":327},"zod",[173,626,546],{"class":311},[173,628,629,631,633,636,638,640,642,644,646,649],{"class":175,"line":182},[173,630,520],{"class":296},[173,632,523],{"class":311},[173,634,635],{"class":307}," defineMcpTool",[173,637,529],{"class":311},[173,639,304],{"class":307},[173,641,535],{"class":311},[173,643,538],{"class":296},[173,645,324],{"class":311},[173,647,648],{"class":327},"@nuxtjs\u002Fmcp-toolkit\u002Fserver",[173,650,546],{"class":311},[173,652,653],{"class":175,"line":189},[173,654,186],{"emptyLinePlaceholder":185},[173,656,657,661,664,667,669,671],{"class":175,"line":195},[173,658,660],{"class":659},"spNyl","const",[173,662,663],{"class":307}," migrationTool ",[173,665,666],{"class":311},"=",[173,668,635],{"class":303},[173,670,308],{"class":307},[173,672,312],{"class":311},[173,674,675,677,679,681,684,686],{"class":175,"line":201},[173,676,460],{"class":317},[173,678,321],{"class":311},[173,680,324],{"class":311},[173,682,683],{"class":327},"migrate-v3-to-v4",[173,685,331],{"class":311},[173,687,334],{"class":311},[173,689,690,693,695,697,700,702],{"class":175,"line":207},[173,691,692],{"class":317},"  title",[173,694,321],{"class":311},[173,696,324],{"class":311},[173,698,699],{"class":327},"Migrate v3 to v4",[173,701,331],{"class":311},[173,703,334],{"class":311},[173,705,706,709,711,713,716,718],{"class":175,"line":213},[173,707,708],{"class":317},"  description",[173,710,321],{"class":311},[173,712,324],{"class":311},[173,714,715],{"class":327},"Migrate code from version 3 to version 4",[173,717,331],{"class":311},[173,719,334],{"class":311},[173,721,722,725,727],{"class":175,"line":219},[173,723,724],{"class":317},"  inputSchema",[173,726,321],{"class":311},[173,728,729],{"class":311}," {\n",[173,731,732,735,737,739,742,745,748,750,753,755,757,760,762,765],{"class":175,"line":225},[173,733,734],{"class":317},"    code",[173,736,321],{"class":311},[173,738,615],{"class":307},[173,740,741],{"class":311},".",[173,743,744],{"class":303},"string",[173,746,747],{"class":307},"()",[173,749,741],{"class":311},[173,751,752],{"class":303},"describe",[173,754,308],{"class":307},[173,756,331],{"class":311},[173,758,759],{"class":327},"The code to migrate",[173,761,331],{"class":311},[173,763,764],{"class":307},")",[173,766,334],{"class":311},[173,768,769],{"class":175,"line":231},[173,770,771],{"class":311},"  },\n",[173,773,774,777,779,782,785,789,792,795],{"class":175,"line":236},[173,775,776],{"class":303},"  handler",[173,778,321],{"class":311},[173,780,781],{"class":659}," async",[173,783,784],{"class":311}," ({",[173,786,788],{"class":787},"sHdIc"," code",[173,790,791],{"class":311}," })",[173,793,794],{"class":659}," =>",[173,796,729],{"class":311},[173,798,800,803,805,807,810,812,815,818,820,824,826,828,831,833],{"class":175,"line":799},12,[173,801,802],{"class":296},"    return",[173,804,788],{"class":307},[173,806,741],{"class":311},[173,808,809],{"class":303},"replace",[173,811,308],{"class":317},[173,813,814],{"class":311},"\u002F",[173,816,817],{"class":327},"v3",[173,819,814],{"class":311},[173,821,823],{"class":822},"sbssI","g",[173,825,529],{"class":311},[173,827,324],{"class":311},[173,829,830],{"class":327},"v4",[173,832,331],{"class":311},[173,834,364],{"class":317},[173,836,838],{"class":175,"line":837},13,[173,839,771],{"class":311},[173,841,843,845],{"class":175,"line":842},14,[173,844,361],{"class":311},[173,846,364],{"class":307},[173,848,850],{"class":175,"line":849},15,[173,851,186],{"emptyLinePlaceholder":185},[173,853,855,857,859,861,863],{"class":175,"line":854},16,[173,856,297],{"class":296},[173,858,300],{"class":296},[173,860,304],{"class":303},[173,862,308],{"class":307},[173,864,312],{"class":311},[173,866,868,870,872,874,877,879],{"class":175,"line":867},17,[173,869,460],{"class":317},[173,871,321],{"class":311},[173,873,324],{"class":311},[173,875,876],{"class":327},"migration",[173,878,331],{"class":311},[173,880,334],{"class":311},[173,882,884,886,888,890,893,895],{"class":175,"line":883},18,[173,885,318],{"class":317},[173,887,321],{"class":311},[173,889,324],{"class":311},[173,891,892],{"class":327},"0.1.0",[173,894,331],{"class":311},[173,896,334],{"class":311},[173,898,900,903,905,907,910,912],{"class":175,"line":899},19,[173,901,902],{"class":317},"  route",[173,904,321],{"class":311},[173,906,324],{"class":311},[173,908,909],{"class":327},"\u002Fmcp\u002Fmigration",[173,911,331],{"class":311},[173,913,334],{"class":311},[173,915,917,919,921,924],{"class":175,"line":916},20,[173,918,572],{"class":317},[173,920,321],{"class":311},[173,922,923],{"class":307}," [migrationTool]",[173,925,334],{"class":311},[173,927,929,931,933,935,937,939],{"class":175,"line":928},21,[173,930,339],{"class":317},[173,932,321],{"class":311},[173,934,324],{"class":311},[173,936,814],{"class":327},[173,938,331],{"class":311},[173,940,334],{"class":311},[173,942,944,946],{"class":175,"line":943},22,[173,945,361],{"class":311},[173,947,364],{"class":307},[145,949,950],{"id":950},"处理器结构",[150,952,953],{},"处理器定义包含以下内容：",[955,956,957,1021],"code-group",{},[162,958,961],{"className":286,"code":959,"filename":960,"language":289,"meta":168,"style":168},"import { defineMcpHandler } from '@nuxtjs\u002Fmcp-toolkit\u002Fserver'\n\nexport default defineMcpHandler({\n  name: 'handler-name',  \u002F\u002F 唯一标识符\n})\n","必填字段",[170,962,963,981,985,997,1015],{"__ignoreMap":168},[173,964,965,967,969,971,973,975,977,979],{"class":175,"line":176},[173,966,520],{"class":296},[173,968,523],{"class":311},[173,970,304],{"class":307},[173,972,535],{"class":311},[173,974,538],{"class":296},[173,976,324],{"class":311},[173,978,648],{"class":327},[173,980,546],{"class":311},[173,982,983],{"class":175,"line":182},[173,984,186],{"emptyLinePlaceholder":185},[173,986,987,989,991,993,995],{"class":175,"line":189},[173,988,297],{"class":296},[173,990,300],{"class":296},[173,992,304],{"class":303},[173,994,308],{"class":307},[173,996,312],{"class":311},[173,998,999,1001,1003,1005,1008,1010,1012],{"class":175,"line":195},[173,1000,460],{"class":317},[173,1002,321],{"class":311},[173,1004,324],{"class":311},[173,1006,1007],{"class":327},"handler-name",[173,1009,331],{"class":311},[173,1011,529],{"class":311},[173,1013,1014],{"class":355},"  \u002F\u002F 唯一标识符\n",[173,1016,1017,1019],{"class":175,"line":201},[173,1018,361],{"class":311},[173,1020,364],{"class":307},[162,1022,1025],{"className":286,"code":1023,"filename":1024,"language":289,"meta":168,"style":168},"import { defineMcpHandler } from '@nuxtjs\u002Fmcp-toolkit\u002Fserver'\n\nexport default defineMcpHandler({\n  name: 'handler-name',\n  version: '1.0.0',              \u002F\u002F 处理器版本\n  route: '\u002Fmcp\u002Fcustom',          \u002F\u002F 自定义路由\n  browserRedirect: '\u002F',          \u002F\u002F 浏览器重定向 URL\n  middleware: async (event) => { ... }, \u002F\u002F 请求拦截\n  tools: [ ... ],                 \u002F\u002F 工具数组\n  resources: [ ... ],            \u002F\u002F 资源数组\n  prompts: [ ... ],               \u002F\u002F 提示词数组\n  experimental_codeMode: true,    \u002F\u002F 启用代码模式（实验性）\n})\n","可选字段",[170,1026,1027,1045,1049,1061,1075,1093,1111,1128,1158,1178,1196,1214,1230],{"__ignoreMap":168},[173,1028,1029,1031,1033,1035,1037,1039,1041,1043],{"class":175,"line":176},[173,1030,520],{"class":296},[173,1032,523],{"class":311},[173,1034,304],{"class":307},[173,1036,535],{"class":311},[173,1038,538],{"class":296},[173,1040,324],{"class":311},[173,1042,648],{"class":327},[173,1044,546],{"class":311},[173,1046,1047],{"class":175,"line":182},[173,1048,186],{"emptyLinePlaceholder":185},[173,1050,1051,1053,1055,1057,1059],{"class":175,"line":189},[173,1052,297],{"class":296},[173,1054,300],{"class":296},[173,1056,304],{"class":303},[173,1058,308],{"class":307},[173,1060,312],{"class":311},[173,1062,1063,1065,1067,1069,1071,1073],{"class":175,"line":195},[173,1064,460],{"class":317},[173,1066,321],{"class":311},[173,1068,324],{"class":311},[173,1070,1007],{"class":327},[173,1072,331],{"class":311},[173,1074,334],{"class":311},[173,1076,1077,1079,1081,1083,1086,1088,1090],{"class":175,"line":201},[173,1078,318],{"class":317},[173,1080,321],{"class":311},[173,1082,324],{"class":311},[173,1084,1085],{"class":327},"1.0.0",[173,1087,331],{"class":311},[173,1089,529],{"class":311},[173,1091,1092],{"class":355},"              \u002F\u002F 处理器版本\n",[173,1094,1095,1097,1099,1101,1104,1106,1108],{"class":175,"line":207},[173,1096,902],{"class":317},[173,1098,321],{"class":311},[173,1100,324],{"class":311},[173,1102,1103],{"class":327},"\u002Fmcp\u002Fcustom",[173,1105,331],{"class":311},[173,1107,529],{"class":311},[173,1109,1110],{"class":355},"          \u002F\u002F 自定义路由\n",[173,1112,1113,1115,1117,1119,1121,1123,1125],{"class":175,"line":213},[173,1114,339],{"class":317},[173,1116,321],{"class":311},[173,1118,324],{"class":311},[173,1120,814],{"class":327},[173,1122,331],{"class":311},[173,1124,529],{"class":311},[173,1126,1127],{"class":355},"          \u002F\u002F 浏览器重定向 URL\n",[173,1129,1130,1133,1135,1137,1140,1143,1145,1147,1149,1152,1155],{"class":175,"line":219},[173,1131,1132],{"class":303},"  middleware",[173,1134,321],{"class":311},[173,1136,781],{"class":659},[173,1138,1139],{"class":311}," (",[173,1141,1142],{"class":787},"event",[173,1144,764],{"class":311},[173,1146,794],{"class":659},[173,1148,523],{"class":311},[173,1150,1151],{"class":311}," ...",[173,1153,1154],{"class":311}," },",[173,1156,1157],{"class":355}," \u002F\u002F 请求拦截\n",[173,1159,1160,1162,1164,1167,1170,1173,1175],{"class":175,"line":225},[173,1161,572],{"class":317},[173,1163,321],{"class":311},[173,1165,1166],{"class":307}," [ ",[173,1168,1169],{"class":311},"...",[173,1171,1172],{"class":307}," ]",[173,1174,529],{"class":311},[173,1176,1177],{"class":355},"                 \u002F\u002F 工具数组\n",[173,1179,1180,1183,1185,1187,1189,1191,1193],{"class":175,"line":231},[173,1181,1182],{"class":317},"  resources",[173,1184,321],{"class":311},[173,1186,1166],{"class":307},[173,1188,1169],{"class":311},[173,1190,1172],{"class":307},[173,1192,529],{"class":311},[173,1194,1195],{"class":355},"            \u002F\u002F 资源数组\n",[173,1197,1198,1201,1203,1205,1207,1209,1211],{"class":175,"line":236},[173,1199,1200],{"class":317},"  prompts",[173,1202,321],{"class":311},[173,1204,1166],{"class":307},[173,1206,1169],{"class":311},[173,1208,1172],{"class":307},[173,1210,529],{"class":311},[173,1212,1213],{"class":355},"               \u002F\u002F 提示词数组\n",[173,1215,1216,1219,1221,1225,1227],{"class":175,"line":799},[173,1217,1218],{"class":317},"  experimental_codeMode",[173,1220,321],{"class":311},[173,1222,1224],{"class":1223},"sfNiH"," true",[173,1226,529],{"class":311},[173,1228,1229],{"class":355},"    \u002F\u002F 启用代码模式（实验性）\n",[173,1231,1232,1234],{"class":175,"line":837},[173,1233,361],{"class":311},[173,1235,364],{"class":307},[145,1237,1238],{"id":1238},"处理器选项",[271,1240,1242,1244],{"id":1241},"name必填",[170,1243,386],{},"（必填）",[150,1246,1247,1248,1250,1251,1254],{},"处理器的唯一标识符。",[170,1249,386],{}," 决定了处理器的挂载位置。默认情况下，处理器可通过 ",[170,1252,1253],{},"\u002Fmcp\u002F:name"," 访问。",[162,1256,1258],{"className":286,"code":1257,"language":289,"meta":168,"style":168},"import { defineMcpHandler } from '@nuxtjs\u002Fmcp-toolkit\u002Fserver'\n\nexport default defineMcpHandler({\n  name: 'migration', \u002F\u002F 处理器挂载在 \u002Fmcp\u002Fmigration\n})\n",[170,1259,1260,1278,1282,1294,1311],{"__ignoreMap":168},[173,1261,1262,1264,1266,1268,1270,1272,1274,1276],{"class":175,"line":176},[173,1263,520],{"class":296},[173,1265,523],{"class":311},[173,1267,304],{"class":307},[173,1269,535],{"class":311},[173,1271,538],{"class":296},[173,1273,324],{"class":311},[173,1275,648],{"class":327},[173,1277,546],{"class":311},[173,1279,1280],{"class":175,"line":182},[173,1281,186],{"emptyLinePlaceholder":185},[173,1283,1284,1286,1288,1290,1292],{"class":175,"line":189},[173,1285,297],{"class":296},[173,1287,300],{"class":296},[173,1289,304],{"class":303},[173,1291,308],{"class":307},[173,1293,312],{"class":311},[173,1295,1296,1298,1300,1302,1304,1306,1308],{"class":175,"line":195},[173,1297,460],{"class":317},[173,1299,321],{"class":311},[173,1301,324],{"class":311},[173,1303,876],{"class":327},[173,1305,331],{"class":311},[173,1307,529],{"class":311},[173,1309,1310],{"class":355}," \u002F\u002F 处理器挂载在 \u002Fmcp\u002Fmigration\n",[173,1312,1313,1315],{"class":175,"line":201},[173,1314,361],{"class":311},[173,1316,364],{"class":307},[271,1318,1320,1322],{"id":1319},"version可选",[170,1321,374],{},"（可选）",[150,1324,1325],{},"处理器的版本。默认为模块配置的版本。",[162,1327,1329],{"className":286,"code":1328,"language":289,"meta":168,"style":168},"import { defineMcpHandler } from '@nuxtjs\u002Fmcp-toolkit\u002Fserver'\n\nexport default defineMcpHandler({\n  name: 'migration',\n  version: '2.0.0',\n})\n",[170,1330,1331,1349,1353,1365,1379,1393],{"__ignoreMap":168},[173,1332,1333,1335,1337,1339,1341,1343,1345,1347],{"class":175,"line":176},[173,1334,520],{"class":296},[173,1336,523],{"class":311},[173,1338,304],{"class":307},[173,1340,535],{"class":311},[173,1342,538],{"class":296},[173,1344,324],{"class":311},[173,1346,648],{"class":327},[173,1348,546],{"class":311},[173,1350,1351],{"class":175,"line":182},[173,1352,186],{"emptyLinePlaceholder":185},[173,1354,1355,1357,1359,1361,1363],{"class":175,"line":189},[173,1356,297],{"class":296},[173,1358,300],{"class":296},[173,1360,304],{"class":303},[173,1362,308],{"class":307},[173,1364,312],{"class":311},[173,1366,1367,1369,1371,1373,1375,1377],{"class":175,"line":195},[173,1368,460],{"class":317},[173,1370,321],{"class":311},[173,1372,324],{"class":311},[173,1374,876],{"class":327},[173,1376,331],{"class":311},[173,1378,334],{"class":311},[173,1380,1381,1383,1385,1387,1389,1391],{"class":175,"line":201},[173,1382,318],{"class":317},[173,1384,321],{"class":311},[173,1386,324],{"class":311},[173,1388,328],{"class":327},[173,1390,331],{"class":311},[173,1392,334],{"class":311},[173,1394,1395,1397],{"class":175,"line":207},[173,1396,361],{"class":311},[173,1398,364],{"class":307},[271,1400,1402,1322],{"id":1401},"route可选",[170,1403,424],{},[150,1405,1406,1407,433],{},"处理器的自定义路由。默认为 ",[170,1408,1253],{},[413,1410,1411,1412,1414,1415,1417,1418,1420,1421,433],{"color":415,"icon":416},"此选项仅用于",[154,1413,593],{},"。对于默认处理器覆盖（",[170,1416,282],{},"），请改用 ",[170,1419,428],{}," 中的 ",[170,1422,432],{},[162,1424,1426],{"className":286,"code":1425,"language":289,"meta":168,"style":168},"import { defineMcpHandler } from '@nuxtjs\u002Fmcp-toolkit\u002Fserver'\n\nexport default defineMcpHandler({\n  name: 'migration',\n  route: '\u002Fapi\u002Fmcp\u002Fmigration', \u002F\u002F 自定义路由\n})\n",[170,1427,1428,1446,1450,1462,1476,1494],{"__ignoreMap":168},[173,1429,1430,1432,1434,1436,1438,1440,1442,1444],{"class":175,"line":176},[173,1431,520],{"class":296},[173,1433,523],{"class":311},[173,1435,304],{"class":307},[173,1437,535],{"class":311},[173,1439,538],{"class":296},[173,1441,324],{"class":311},[173,1443,648],{"class":327},[173,1445,546],{"class":311},[173,1447,1448],{"class":175,"line":182},[173,1449,186],{"emptyLinePlaceholder":185},[173,1451,1452,1454,1456,1458,1460],{"class":175,"line":189},[173,1453,297],{"class":296},[173,1455,300],{"class":296},[173,1457,304],{"class":303},[173,1459,308],{"class":307},[173,1461,312],{"class":311},[173,1463,1464,1466,1468,1470,1472,1474],{"class":175,"line":195},[173,1465,460],{"class":317},[173,1467,321],{"class":311},[173,1469,324],{"class":311},[173,1471,876],{"class":327},[173,1473,331],{"class":311},[173,1475,334],{"class":311},[173,1477,1478,1480,1482,1484,1487,1489,1491],{"class":175,"line":201},[173,1479,902],{"class":317},[173,1481,321],{"class":311},[173,1483,324],{"class":311},[173,1485,1486],{"class":327},"\u002Fapi\u002Fmcp\u002Fmigration",[173,1488,331],{"class":311},[173,1490,529],{"class":311},[173,1492,1493],{"class":355}," \u002F\u002F 自定义路由\n",[173,1495,1496,1498],{"class":175,"line":207},[173,1497,361],{"class":311},[173,1499,364],{"class":307},[271,1501,1503,1322],{"id":1502},"browserredirect可选",[170,1504,380],{},[150,1506,1507,1508,433],{},"当浏览器访问处理器端点时重定向的 URL。默认为模块配置的 ",[170,1509,380],{},[162,1511,1513],{"className":286,"code":1512,"language":289,"meta":168,"style":168},"import { defineMcpHandler } from '@nuxtjs\u002Fmcp-toolkit\u002Fserver'\n\nexport default defineMcpHandler({\n  name: 'migration',\n  browserRedirect: '\u002Fdocs\u002Fmigration',\n})\n",[170,1514,1515,1533,1537,1549,1563,1578],{"__ignoreMap":168},[173,1516,1517,1519,1521,1523,1525,1527,1529,1531],{"class":175,"line":176},[173,1518,520],{"class":296},[173,1520,523],{"class":311},[173,1522,304],{"class":307},[173,1524,535],{"class":311},[173,1526,538],{"class":296},[173,1528,324],{"class":311},[173,1530,648],{"class":327},[173,1532,546],{"class":311},[173,1534,1535],{"class":175,"line":182},[173,1536,186],{"emptyLinePlaceholder":185},[173,1538,1539,1541,1543,1545,1547],{"class":175,"line":189},[173,1540,297],{"class":296},[173,1542,300],{"class":296},[173,1544,304],{"class":303},[173,1546,308],{"class":307},[173,1548,312],{"class":311},[173,1550,1551,1553,1555,1557,1559,1561],{"class":175,"line":195},[173,1552,460],{"class":317},[173,1554,321],{"class":311},[173,1556,324],{"class":311},[173,1558,876],{"class":327},[173,1560,331],{"class":311},[173,1562,334],{"class":311},[173,1564,1565,1567,1569,1571,1574,1576],{"class":175,"line":201},[173,1566,339],{"class":317},[173,1568,321],{"class":311},[173,1570,324],{"class":311},[173,1572,1573],{"class":327},"\u002Fdocs\u002Fmigration",[173,1575,331],{"class":311},[173,1577,334],{"class":311},[173,1579,1580,1582],{"class":175,"line":207},[173,1581,361],{"class":311},[173,1583,364],{"class":307},[271,1585,1587,1322],{"id":1586},"middleware可选",[170,1588,405],{},[150,1590,1591],{},"在请求处理前\u002F后拦截请求的函数。适用于身份验证、日志记录和设置上下文。",[162,1593,1596],{"className":286,"code":1594,"filename":1595,"language":289,"meta":168,"style":168},"import { defineMcpHandler } from '@nuxtjs\u002Fmcp-toolkit\u002Fserver'\n\nexport default defineMcpHandler({\n  name: 'custom',\n  middleware: async (event) => {\n    event.context.userId = 'user-123'\n  },\n})\n","server\u002Fmcp\u002Fcustom.ts",[170,1597,1598,1616,1620,1632,1647,1665,1690,1694],{"__ignoreMap":168},[173,1599,1600,1602,1604,1606,1608,1610,1612,1614],{"class":175,"line":176},[173,1601,520],{"class":296},[173,1603,523],{"class":311},[173,1605,304],{"class":307},[173,1607,535],{"class":311},[173,1609,538],{"class":296},[173,1611,324],{"class":311},[173,1613,648],{"class":327},[173,1615,546],{"class":311},[173,1617,1618],{"class":175,"line":182},[173,1619,186],{"emptyLinePlaceholder":185},[173,1621,1622,1624,1626,1628,1630],{"class":175,"line":189},[173,1623,297],{"class":296},[173,1625,300],{"class":296},[173,1627,304],{"class":303},[173,1629,308],{"class":307},[173,1631,312],{"class":311},[173,1633,1634,1636,1638,1640,1643,1645],{"class":175,"line":195},[173,1635,460],{"class":317},[173,1637,321],{"class":311},[173,1639,324],{"class":311},[173,1641,1642],{"class":327},"custom",[173,1644,331],{"class":311},[173,1646,334],{"class":311},[173,1648,1649,1651,1653,1655,1657,1659,1661,1663],{"class":175,"line":201},[173,1650,1132],{"class":303},[173,1652,321],{"class":311},[173,1654,781],{"class":659},[173,1656,1139],{"class":311},[173,1658,1142],{"class":787},[173,1660,764],{"class":311},[173,1662,794],{"class":659},[173,1664,729],{"class":311},[173,1666,1667,1670,1672,1675,1677,1680,1683,1685,1688],{"class":175,"line":207},[173,1668,1669],{"class":307},"    event",[173,1671,741],{"class":311},[173,1673,1674],{"class":307},"context",[173,1676,741],{"class":311},[173,1678,1679],{"class":307},"userId",[173,1681,1682],{"class":311}," =",[173,1684,324],{"class":311},[173,1686,1687],{"class":327},"user-123",[173,1689,546],{"class":311},[173,1691,1692],{"class":175,"line":213},[173,1693,771],{"class":311},[173,1695,1696,1698],{"class":175,"line":219},[173,1697,361],{"class":311},[173,1699,364],{"class":307},[413,1701,1703,1704,433],{"color":1702,"icon":13},"primary","有关详细文档和示例，请参阅",[408,1705,1706],{"href":77},"中间件指南",[271,1708,1710,1322],{"id":1709},"experimental_codemode可选",[170,1711,1712],{},"experimental_codeMode",[150,1714,1715,1716,1719,1720,1723],{},"启用",[408,1717,1718],{"href":107},"代码模式","，允许 LLM 在单次 JavaScript 执行中编排多次工具调用。传递 ",[170,1721,1722],{},"true"," 使用默认值，或传递配置对象：",[162,1725,1727],{"className":286,"code":1726,"language":289,"meta":168,"style":168},"import { defineMcpHandler } from '@nuxtjs\u002Fmcp-toolkit\u002Fserver'\n\nexport default defineMcpHandler({\n  name: 'custom',\n  experimental_codeMode: {\n    progressive: true,\n    memoryLimit: 128,\n  },\n})\n",[170,1728,1729,1747,1751,1763,1777,1785,1796,1808,1812],{"__ignoreMap":168},[173,1730,1731,1733,1735,1737,1739,1741,1743,1745],{"class":175,"line":176},[173,1732,520],{"class":296},[173,1734,523],{"class":311},[173,1736,304],{"class":307},[173,1738,535],{"class":311},[173,1740,538],{"class":296},[173,1742,324],{"class":311},[173,1744,648],{"class":327},[173,1746,546],{"class":311},[173,1748,1749],{"class":175,"line":182},[173,1750,186],{"emptyLinePlaceholder":185},[173,1752,1753,1755,1757,1759,1761],{"class":175,"line":189},[173,1754,297],{"class":296},[173,1756,300],{"class":296},[173,1758,304],{"class":303},[173,1760,308],{"class":307},[173,1762,312],{"class":311},[173,1764,1765,1767,1769,1771,1773,1775],{"class":175,"line":195},[173,1766,460],{"class":317},[173,1768,321],{"class":311},[173,1770,324],{"class":311},[173,1772,1642],{"class":327},[173,1774,331],{"class":311},[173,1776,334],{"class":311},[173,1778,1779,1781,1783],{"class":175,"line":201},[173,1780,1218],{"class":317},[173,1782,321],{"class":311},[173,1784,729],{"class":311},[173,1786,1787,1790,1792,1794],{"class":175,"line":207},[173,1788,1789],{"class":317},"    progressive",[173,1791,321],{"class":311},[173,1793,1224],{"class":1223},[173,1795,334],{"class":311},[173,1797,1798,1801,1803,1806],{"class":175,"line":213},[173,1799,1800],{"class":317},"    memoryLimit",[173,1802,321],{"class":311},[173,1804,1805],{"class":822}," 128",[173,1807,334],{"class":311},[173,1809,1810],{"class":175,"line":219},[173,1811,771],{"class":311},[173,1813,1814,1816],{"class":175,"line":225},[173,1815,361],{"class":311},[173,1817,364],{"class":307},[150,1819,1820,1821,1824,1825,433],{},"代码模式需要 ",[170,1822,1823],{},"secure-exec"," 和 Node.js ",[170,1826,1827],{},">=18.16.0",[413,1829,1830,1831,433],{"color":1702,"icon":13},"有关完整文档、安全详情和配置选项，请参阅",[408,1832,1833],{"href":107},"代码模式指南",[271,1835,1837,1322],{"id":1836},"tools可选",[170,1838,392],{},[150,1840,1841],{},"专属于此处理器的工具定义数组，或根据请求上下文动态返回工具的函数：",[955,1843,1844,1971],{},[162,1845,1848],{"className":286,"code":1846,"filename":1847,"language":289,"meta":168,"style":168},"import { defineMcpTool, defineMcpHandler } from '@nuxtjs\u002Fmcp-toolkit\u002Fserver'\n\nconst tool1 = defineMcpTool({ ... })\nconst tool2 = defineMcpTool({ ... })\n\nexport default defineMcpHandler({\n  name: 'custom',\n  tools: [tool1, tool2],\n})\n","静态数组",[170,1849,1850,1872,1876,1898,1919,1923,1935,1949,1965],{"__ignoreMap":168},[173,1851,1852,1854,1856,1858,1860,1862,1864,1866,1868,1870],{"class":175,"line":176},[173,1853,520],{"class":296},[173,1855,523],{"class":311},[173,1857,635],{"class":307},[173,1859,529],{"class":311},[173,1861,304],{"class":307},[173,1863,535],{"class":311},[173,1865,538],{"class":296},[173,1867,324],{"class":311},[173,1869,648],{"class":327},[173,1871,546],{"class":311},[173,1873,1874],{"class":175,"line":182},[173,1875,186],{"emptyLinePlaceholder":185},[173,1877,1878,1880,1883,1885,1887,1889,1892,1894,1896],{"class":175,"line":189},[173,1879,660],{"class":659},[173,1881,1882],{"class":307}," tool1 ",[173,1884,666],{"class":311},[173,1886,635],{"class":303},[173,1888,308],{"class":307},[173,1890,1891],{"class":311},"{",[173,1893,1151],{"class":311},[173,1895,535],{"class":311},[173,1897,364],{"class":307},[173,1899,1900,1902,1905,1907,1909,1911,1913,1915,1917],{"class":175,"line":195},[173,1901,660],{"class":659},[173,1903,1904],{"class":307}," tool2 ",[173,1906,666],{"class":311},[173,1908,635],{"class":303},[173,1910,308],{"class":307},[173,1912,1891],{"class":311},[173,1914,1151],{"class":311},[173,1916,535],{"class":311},[173,1918,364],{"class":307},[173,1920,1921],{"class":175,"line":201},[173,1922,186],{"emptyLinePlaceholder":185},[173,1924,1925,1927,1929,1931,1933],{"class":175,"line":207},[173,1926,297],{"class":296},[173,1928,300],{"class":296},[173,1930,304],{"class":303},[173,1932,308],{"class":307},[173,1934,312],{"class":311},[173,1936,1937,1939,1941,1943,1945,1947],{"class":175,"line":213},[173,1938,460],{"class":317},[173,1940,321],{"class":311},[173,1942,324],{"class":311},[173,1944,1642],{"class":327},[173,1946,331],{"class":311},[173,1948,334],{"class":311},[173,1950,1951,1953,1955,1958,1960,1963],{"class":175,"line":219},[173,1952,572],{"class":317},[173,1954,321],{"class":311},[173,1956,1957],{"class":307}," [tool1",[173,1959,529],{"class":311},[173,1961,1962],{"class":307}," tool2]",[173,1964,334],{"class":311},[173,1966,1967,1969],{"class":175,"line":225},[173,1968,361],{"class":311},[173,1970,364],{"class":307},[162,1972,1975],{"className":286,"code":1973,"filename":1974,"language":289,"meta":168,"style":168},"import { defineMcpHandler } from '@nuxtjs\u002Fmcp-toolkit\u002Fserver'\n\nexport default defineMcpHandler({\n  name: 'custom',\n  middleware: async (event) => {\n    event.context.user = await getUser(event)\n  },\n  tools: async (event) => {\n    const base = [publicTool]\n    if (event.context.user?.role === 'admin') {\n      base.push(adminTool)\n    }\n    return base\n  },\n})\n","动态函数",[170,1976,1977,1995,1999,2011,2025,2043,2070,2074,2092,2111,2149,2166,2171,2178,2182],{"__ignoreMap":168},[173,1978,1979,1981,1983,1985,1987,1989,1991,1993],{"class":175,"line":176},[173,1980,520],{"class":296},[173,1982,523],{"class":311},[173,1984,304],{"class":307},[173,1986,535],{"class":311},[173,1988,538],{"class":296},[173,1990,324],{"class":311},[173,1992,648],{"class":327},[173,1994,546],{"class":311},[173,1996,1997],{"class":175,"line":182},[173,1998,186],{"emptyLinePlaceholder":185},[173,2000,2001,2003,2005,2007,2009],{"class":175,"line":189},[173,2002,297],{"class":296},[173,2004,300],{"class":296},[173,2006,304],{"class":303},[173,2008,308],{"class":307},[173,2010,312],{"class":311},[173,2012,2013,2015,2017,2019,2021,2023],{"class":175,"line":195},[173,2014,460],{"class":317},[173,2016,321],{"class":311},[173,2018,324],{"class":311},[173,2020,1642],{"class":327},[173,2022,331],{"class":311},[173,2024,334],{"class":311},[173,2026,2027,2029,2031,2033,2035,2037,2039,2041],{"class":175,"line":201},[173,2028,1132],{"class":303},[173,2030,321],{"class":311},[173,2032,781],{"class":659},[173,2034,1139],{"class":311},[173,2036,1142],{"class":787},[173,2038,764],{"class":311},[173,2040,794],{"class":659},[173,2042,729],{"class":311},[173,2044,2045,2047,2049,2051,2053,2056,2058,2061,2064,2066,2068],{"class":175,"line":207},[173,2046,1669],{"class":307},[173,2048,741],{"class":311},[173,2050,1674],{"class":307},[173,2052,741],{"class":311},[173,2054,2055],{"class":307},"user",[173,2057,1682],{"class":311},[173,2059,2060],{"class":296}," await",[173,2062,2063],{"class":303}," getUser",[173,2065,308],{"class":317},[173,2067,1142],{"class":307},[173,2069,364],{"class":317},[173,2071,2072],{"class":175,"line":213},[173,2073,771],{"class":311},[173,2075,2076,2078,2080,2082,2084,2086,2088,2090],{"class":175,"line":219},[173,2077,572],{"class":303},[173,2079,321],{"class":311},[173,2081,781],{"class":659},[173,2083,1139],{"class":311},[173,2085,1142],{"class":787},[173,2087,764],{"class":311},[173,2089,794],{"class":659},[173,2091,729],{"class":311},[173,2093,2094,2097,2100,2102,2105,2108],{"class":175,"line":225},[173,2095,2096],{"class":659},"    const",[173,2098,2099],{"class":307}," base",[173,2101,1682],{"class":311},[173,2103,2104],{"class":317}," [",[173,2106,2107],{"class":307},"publicTool",[173,2109,2110],{"class":317},"]\n",[173,2112,2113,2116,2118,2120,2122,2124,2126,2128,2131,2134,2137,2139,2142,2144,2147],{"class":175,"line":231},[173,2114,2115],{"class":296},"    if",[173,2117,1139],{"class":317},[173,2119,1142],{"class":307},[173,2121,741],{"class":311},[173,2123,1674],{"class":307},[173,2125,741],{"class":311},[173,2127,2055],{"class":307},[173,2129,2130],{"class":311},"?.",[173,2132,2133],{"class":307},"role",[173,2135,2136],{"class":311}," ===",[173,2138,324],{"class":311},[173,2140,2141],{"class":327},"admin",[173,2143,331],{"class":311},[173,2145,2146],{"class":317},") ",[173,2148,312],{"class":311},[173,2150,2151,2154,2156,2159,2161,2164],{"class":175,"line":236},[173,2152,2153],{"class":307},"      base",[173,2155,741],{"class":311},[173,2157,2158],{"class":303},"push",[173,2160,308],{"class":317},[173,2162,2163],{"class":307},"adminTool",[173,2165,364],{"class":317},[173,2167,2168],{"class":175,"line":799},[173,2169,2170],{"class":311},"    }\n",[173,2172,2173,2175],{"class":175,"line":837},[173,2174,802],{"class":296},[173,2176,2177],{"class":307}," base\n",[173,2179,2180],{"class":175,"line":842},[173,2181,771],{"class":311},[173,2183,2184,2186],{"class":175,"line":849},[173,2185,361],{"class":311},[173,2187,364],{"class":307},[413,2189,2190,2191,2194,2195,433],{"color":1702,"icon":13},"有关基于身份验证的过滤和 ",[170,2192,2193],{},"enabled"," 守卫的详细信息，请参阅",[408,2196,2197],{"href":102},"动态定义指南",[271,2199,2201,1322],{"id":2200},"resources可选",[170,2202,396],{},[150,2204,2205],{},"专属于此处理器的资源定义数组。",[162,2207,2209],{"className":286,"code":2208,"language":289,"meta":168,"style":168},"import { defineMcpResource, defineMcpHandler } from '@nuxtjs\u002Fmcp-toolkit\u002Fserver'\n\nconst resource1 = defineMcpResource({ ... })\nconst resource2 = defineMcpResource({ ... })\n\nexport default defineMcpHandler({\n  name: 'custom',\n  resources: [resource1, resource2],\n})\n",[170,2210,2211,2234,2238,2259,2280,2284,2296,2310,2326],{"__ignoreMap":168},[173,2212,2213,2215,2217,2220,2222,2224,2226,2228,2230,2232],{"class":175,"line":176},[173,2214,520],{"class":296},[173,2216,523],{"class":311},[173,2218,2219],{"class":307}," defineMcpResource",[173,2221,529],{"class":311},[173,2223,304],{"class":307},[173,2225,535],{"class":311},[173,2227,538],{"class":296},[173,2229,324],{"class":311},[173,2231,648],{"class":327},[173,2233,546],{"class":311},[173,2235,2236],{"class":175,"line":182},[173,2237,186],{"emptyLinePlaceholder":185},[173,2239,2240,2242,2245,2247,2249,2251,2253,2255,2257],{"class":175,"line":189},[173,2241,660],{"class":659},[173,2243,2244],{"class":307}," resource1 ",[173,2246,666],{"class":311},[173,2248,2219],{"class":303},[173,2250,308],{"class":307},[173,2252,1891],{"class":311},[173,2254,1151],{"class":311},[173,2256,535],{"class":311},[173,2258,364],{"class":307},[173,2260,2261,2263,2266,2268,2270,2272,2274,2276,2278],{"class":175,"line":195},[173,2262,660],{"class":659},[173,2264,2265],{"class":307}," resource2 ",[173,2267,666],{"class":311},[173,2269,2219],{"class":303},[173,2271,308],{"class":307},[173,2273,1891],{"class":311},[173,2275,1151],{"class":311},[173,2277,535],{"class":311},[173,2279,364],{"class":307},[173,2281,2282],{"class":175,"line":201},[173,2283,186],{"emptyLinePlaceholder":185},[173,2285,2286,2288,2290,2292,2294],{"class":175,"line":207},[173,2287,297],{"class":296},[173,2289,300],{"class":296},[173,2291,304],{"class":303},[173,2293,308],{"class":307},[173,2295,312],{"class":311},[173,2297,2298,2300,2302,2304,2306,2308],{"class":175,"line":213},[173,2299,460],{"class":317},[173,2301,321],{"class":311},[173,2303,324],{"class":311},[173,2305,1642],{"class":327},[173,2307,331],{"class":311},[173,2309,334],{"class":311},[173,2311,2312,2314,2316,2319,2321,2324],{"class":175,"line":219},[173,2313,1182],{"class":317},[173,2315,321],{"class":311},[173,2317,2318],{"class":307}," [resource1",[173,2320,529],{"class":311},[173,2322,2323],{"class":307}," resource2]",[173,2325,334],{"class":311},[173,2327,2328,2330],{"class":175,"line":225},[173,2329,361],{"class":311},[173,2331,364],{"class":307},[271,2333,2335,1322],{"id":2334},"prompts可选",[170,2336,399],{},[150,2338,2339],{},"专属于此处理器的提示词定义数组。",[162,2341,2343],{"className":286,"code":2342,"language":289,"meta":168,"style":168},"import { defineMcpPrompt, defineMcpHandler } from '@nuxtjs\u002Fmcp-toolkit\u002Fserver'\n\nconst prompt1 = defineMcpPrompt({ ... })\nconst prompt2 = defineMcpPrompt({ ... })\n\nexport default defineMcpHandler({\n  name: 'custom',\n  prompts: [prompt1, prompt2],\n})\n",[170,2344,2345,2368,2372,2393,2414,2418,2430,2444,2460],{"__ignoreMap":168},[173,2346,2347,2349,2351,2354,2356,2358,2360,2362,2364,2366],{"class":175,"line":176},[173,2348,520],{"class":296},[173,2350,523],{"class":311},[173,2352,2353],{"class":307}," defineMcpPrompt",[173,2355,529],{"class":311},[173,2357,304],{"class":307},[173,2359,535],{"class":311},[173,2361,538],{"class":296},[173,2363,324],{"class":311},[173,2365,648],{"class":327},[173,2367,546],{"class":311},[173,2369,2370],{"class":175,"line":182},[173,2371,186],{"emptyLinePlaceholder":185},[173,2373,2374,2376,2379,2381,2383,2385,2387,2389,2391],{"class":175,"line":189},[173,2375,660],{"class":659},[173,2377,2378],{"class":307}," prompt1 ",[173,2380,666],{"class":311},[173,2382,2353],{"class":303},[173,2384,308],{"class":307},[173,2386,1891],{"class":311},[173,2388,1151],{"class":311},[173,2390,535],{"class":311},[173,2392,364],{"class":307},[173,2394,2395,2397,2400,2402,2404,2406,2408,2410,2412],{"class":175,"line":195},[173,2396,660],{"class":659},[173,2398,2399],{"class":307}," prompt2 ",[173,2401,666],{"class":311},[173,2403,2353],{"class":303},[173,2405,308],{"class":307},[173,2407,1891],{"class":311},[173,2409,1151],{"class":311},[173,2411,535],{"class":311},[173,2413,364],{"class":307},[173,2415,2416],{"class":175,"line":201},[173,2417,186],{"emptyLinePlaceholder":185},[173,2419,2420,2422,2424,2426,2428],{"class":175,"line":207},[173,2421,297],{"class":296},[173,2423,300],{"class":296},[173,2425,304],{"class":303},[173,2427,308],{"class":307},[173,2429,312],{"class":311},[173,2431,2432,2434,2436,2438,2440,2442],{"class":175,"line":213},[173,2433,460],{"class":317},[173,2435,321],{"class":311},[173,2437,324],{"class":311},[173,2439,1642],{"class":327},[173,2441,331],{"class":311},[173,2443,334],{"class":311},[173,2445,2446,2448,2450,2453,2455,2458],{"class":175,"line":219},[173,2447,1200],{"class":317},[173,2449,321],{"class":311},[173,2451,2452],{"class":307}," [prompt1",[173,2454,529],{"class":311},[173,2456,2457],{"class":307}," prompt2]",[173,2459,334],{"class":311},[173,2461,2462,2464],{"class":175,"line":225},[173,2463,361],{"class":311},[173,2465,364],{"class":307},[145,2467,2468],{"id":2468},"完整示例",[150,2470,2471],{},"以下是一个自定义处理器的完整示例：",[162,2473,2476],{"className":286,"code":2474,"filename":2475,"language":289,"meta":168,"style":168},"import { z } from 'zod'\nimport { defineMcpTool, defineMcpResource, defineMcpPrompt, defineMcpHandler } from '@nuxtjs\u002Fmcp-toolkit\u002Fserver'\n\nconst getUserTool = defineMcpTool({\n  name: 'get-user',\n  description: 'Get user information',\n  inputSchema: {\n    userId: z.string(),\n  },\n  handler: async ({ userId }) => {\n    const user = await db.users.find(userId)\n    return user\n  },\n})\n\nconst createUserTool = defineMcpTool({\n  name: 'create-user',\n  description: 'Create a new user',\n  inputSchema: {\n    name: z.string(),\n    email: z.string().email(),\n  },\n  handler: async ({ name, email }) => {\n    const user = await db.users.create({ name, email })\n    return `User created: ${user.id}`\n  },\n})\n\n\u002F\u002F 为此处理器定义资源\nconst userResource = defineMcpResource({\n  name: 'user',\n  uri: 'api:\u002F\u002Fusers\u002F{id}',\n  handler: async (uri, variables) => {\n    const id = variables.id as string\n    const user = await db.users.find(id)\n    return {\n      contents: [{\n        uri: uri.toString(),\n        mimeType: 'application\u002Fjson',\n        text: JSON.stringify(user),\n      }],\n    }\n  },\n})\n\n\u002F\u002F 为此处理器定义提示词\nconst userPrompt = defineMcpPrompt({\n  name: 'user-help',\n  description: 'Get help with user operations',\n  handler: async () => {\n    return {\n      messages: [{\n        role: 'user',\n        content: {\n          type: 'text',\n          text: 'How can I manage users?',\n        },\n      }],\n    }\n  },\n})\n\n\u002F\u002F 导出处理器\nexport default defineMcpHandler({\n  name: 'api',\n  version: '1.0.0',\n  route: '\u002Fmcp\u002Fapi',\n  tools: [getUserTool, createUserTool],\n  resources: [userResource],\n  prompts: [userPrompt],\n  browserRedirect: '\u002Fdocs\u002Fapi',\n})\n","server\u002Fmcp\u002Fapi-handler.ts",[170,2477,2478,2496,2526,2530,2545,2560,2575,2583,2600,2604,2623,2653,2660,2664,2670,2674,2689,2704,2719,2727,2744,2768,2772,2797,2833,2857,2862,2869,2874,2880,2896,2911,2928,2953,2976,3003,3010,3022,3042,3059,3083,3094,3099,3104,3111,3116,3122,3138,3154,3170,3186,3193,3205,3221,3231,3248,3265,3271,3280,3285,3290,3297,3302,3308,3321,3337,3352,3368,3385,3397,3409,3425],{"__ignoreMap":168},[173,2479,2480,2482,2484,2486,2488,2490,2492,2494],{"class":175,"line":176},[173,2481,520],{"class":296},[173,2483,523],{"class":311},[173,2485,615],{"class":307},[173,2487,535],{"class":311},[173,2489,538],{"class":296},[173,2491,324],{"class":311},[173,2493,624],{"class":327},[173,2495,546],{"class":311},[173,2497,2498,2500,2502,2504,2506,2508,2510,2512,2514,2516,2518,2520,2522,2524],{"class":175,"line":182},[173,2499,520],{"class":296},[173,2501,523],{"class":311},[173,2503,635],{"class":307},[173,2505,529],{"class":311},[173,2507,2219],{"class":307},[173,2509,529],{"class":311},[173,2511,2353],{"class":307},[173,2513,529],{"class":311},[173,2515,304],{"class":307},[173,2517,535],{"class":311},[173,2519,538],{"class":296},[173,2521,324],{"class":311},[173,2523,648],{"class":327},[173,2525,546],{"class":311},[173,2527,2528],{"class":175,"line":189},[173,2529,186],{"emptyLinePlaceholder":185},[173,2531,2532,2534,2537,2539,2541,2543],{"class":175,"line":195},[173,2533,660],{"class":659},[173,2535,2536],{"class":307}," getUserTool ",[173,2538,666],{"class":311},[173,2540,635],{"class":303},[173,2542,308],{"class":307},[173,2544,312],{"class":311},[173,2546,2547,2549,2551,2553,2556,2558],{"class":175,"line":201},[173,2548,460],{"class":317},[173,2550,321],{"class":311},[173,2552,324],{"class":311},[173,2554,2555],{"class":327},"get-user",[173,2557,331],{"class":311},[173,2559,334],{"class":311},[173,2561,2562,2564,2566,2568,2571,2573],{"class":175,"line":207},[173,2563,708],{"class":317},[173,2565,321],{"class":311},[173,2567,324],{"class":311},[173,2569,2570],{"class":327},"Get user information",[173,2572,331],{"class":311},[173,2574,334],{"class":311},[173,2576,2577,2579,2581],{"class":175,"line":213},[173,2578,724],{"class":317},[173,2580,321],{"class":311},[173,2582,729],{"class":311},[173,2584,2585,2588,2590,2592,2594,2596,2598],{"class":175,"line":219},[173,2586,2587],{"class":317},"    userId",[173,2589,321],{"class":311},[173,2591,615],{"class":307},[173,2593,741],{"class":311},[173,2595,744],{"class":303},[173,2597,747],{"class":307},[173,2599,334],{"class":311},[173,2601,2602],{"class":175,"line":225},[173,2603,771],{"class":311},[173,2605,2606,2608,2610,2612,2614,2617,2619,2621],{"class":175,"line":231},[173,2607,776],{"class":303},[173,2609,321],{"class":311},[173,2611,781],{"class":659},[173,2613,784],{"class":311},[173,2615,2616],{"class":787}," userId",[173,2618,791],{"class":311},[173,2620,794],{"class":659},[173,2622,729],{"class":311},[173,2624,2625,2627,2630,2632,2634,2637,2639,2642,2644,2647,2649,2651],{"class":175,"line":236},[173,2626,2096],{"class":659},[173,2628,2629],{"class":307}," user",[173,2631,1682],{"class":311},[173,2633,2060],{"class":296},[173,2635,2636],{"class":307}," db",[173,2638,741],{"class":311},[173,2640,2641],{"class":307},"users",[173,2643,741],{"class":311},[173,2645,2646],{"class":303},"find",[173,2648,308],{"class":317},[173,2650,1679],{"class":307},[173,2652,364],{"class":317},[173,2654,2655,2657],{"class":175,"line":799},[173,2656,802],{"class":296},[173,2658,2659],{"class":307}," user\n",[173,2661,2662],{"class":175,"line":837},[173,2663,771],{"class":311},[173,2665,2666,2668],{"class":175,"line":842},[173,2667,361],{"class":311},[173,2669,364],{"class":307},[173,2671,2672],{"class":175,"line":849},[173,2673,186],{"emptyLinePlaceholder":185},[173,2675,2676,2678,2681,2683,2685,2687],{"class":175,"line":854},[173,2677,660],{"class":659},[173,2679,2680],{"class":307}," createUserTool ",[173,2682,666],{"class":311},[173,2684,635],{"class":303},[173,2686,308],{"class":307},[173,2688,312],{"class":311},[173,2690,2691,2693,2695,2697,2700,2702],{"class":175,"line":867},[173,2692,460],{"class":317},[173,2694,321],{"class":311},[173,2696,324],{"class":311},[173,2698,2699],{"class":327},"create-user",[173,2701,331],{"class":311},[173,2703,334],{"class":311},[173,2705,2706,2708,2710,2712,2715,2717],{"class":175,"line":883},[173,2707,708],{"class":317},[173,2709,321],{"class":311},[173,2711,324],{"class":311},[173,2713,2714],{"class":327},"Create a new user",[173,2716,331],{"class":311},[173,2718,334],{"class":311},[173,2720,2721,2723,2725],{"class":175,"line":899},[173,2722,724],{"class":317},[173,2724,321],{"class":311},[173,2726,729],{"class":311},[173,2728,2729,2732,2734,2736,2738,2740,2742],{"class":175,"line":916},[173,2730,2731],{"class":317},"    name",[173,2733,321],{"class":311},[173,2735,615],{"class":307},[173,2737,741],{"class":311},[173,2739,744],{"class":303},[173,2741,747],{"class":307},[173,2743,334],{"class":311},[173,2745,2746,2749,2751,2753,2755,2757,2759,2761,2764,2766],{"class":175,"line":928},[173,2747,2748],{"class":317},"    email",[173,2750,321],{"class":311},[173,2752,615],{"class":307},[173,2754,741],{"class":311},[173,2756,744],{"class":303},[173,2758,747],{"class":307},[173,2760,741],{"class":311},[173,2762,2763],{"class":303},"email",[173,2765,747],{"class":307},[173,2767,334],{"class":311},[173,2769,2770],{"class":175,"line":943},[173,2771,771],{"class":311},[173,2773,2775,2777,2779,2781,2783,2786,2788,2791,2793,2795],{"class":175,"line":2774},23,[173,2776,776],{"class":303},[173,2778,321],{"class":311},[173,2780,781],{"class":659},[173,2782,784],{"class":311},[173,2784,2785],{"class":787}," name",[173,2787,529],{"class":311},[173,2789,2790],{"class":787}," email",[173,2792,791],{"class":311},[173,2794,794],{"class":659},[173,2796,729],{"class":311},[173,2798,2800,2802,2804,2806,2808,2810,2812,2814,2816,2819,2821,2823,2825,2827,2829,2831],{"class":175,"line":2799},24,[173,2801,2096],{"class":659},[173,2803,2629],{"class":307},[173,2805,1682],{"class":311},[173,2807,2060],{"class":296},[173,2809,2636],{"class":307},[173,2811,741],{"class":311},[173,2813,2641],{"class":307},[173,2815,741],{"class":311},[173,2817,2818],{"class":303},"create",[173,2820,308],{"class":317},[173,2822,1891],{"class":311},[173,2824,2785],{"class":307},[173,2826,529],{"class":311},[173,2828,2790],{"class":307},[173,2830,535],{"class":311},[173,2832,364],{"class":317},[173,2834,2836,2838,2841,2844,2847,2849,2851,2854],{"class":175,"line":2835},25,[173,2837,802],{"class":296},[173,2839,2840],{"class":311}," `",[173,2842,2843],{"class":327},"User created: ",[173,2845,2846],{"class":311},"${",[173,2848,2055],{"class":307},[173,2850,741],{"class":311},[173,2852,2853],{"class":307},"id",[173,2855,2856],{"class":311},"}`\n",[173,2858,2860],{"class":175,"line":2859},26,[173,2861,771],{"class":311},[173,2863,2865,2867],{"class":175,"line":2864},27,[173,2866,361],{"class":311},[173,2868,364],{"class":307},[173,2870,2872],{"class":175,"line":2871},28,[173,2873,186],{"emptyLinePlaceholder":185},[173,2875,2877],{"class":175,"line":2876},29,[173,2878,2879],{"class":355},"\u002F\u002F 为此处理器定义资源\n",[173,2881,2883,2885,2888,2890,2892,2894],{"class":175,"line":2882},30,[173,2884,660],{"class":659},[173,2886,2887],{"class":307}," userResource ",[173,2889,666],{"class":311},[173,2891,2219],{"class":303},[173,2893,308],{"class":307},[173,2895,312],{"class":311},[173,2897,2899,2901,2903,2905,2907,2909],{"class":175,"line":2898},31,[173,2900,460],{"class":317},[173,2902,321],{"class":311},[173,2904,324],{"class":311},[173,2906,2055],{"class":327},[173,2908,331],{"class":311},[173,2910,334],{"class":311},[173,2912,2914,2917,2919,2921,2924,2926],{"class":175,"line":2913},32,[173,2915,2916],{"class":317},"  uri",[173,2918,321],{"class":311},[173,2920,324],{"class":311},[173,2922,2923],{"class":327},"api:\u002F\u002Fusers\u002F{id}",[173,2925,331],{"class":311},[173,2927,334],{"class":311},[173,2929,2931,2933,2935,2937,2939,2942,2944,2947,2949,2951],{"class":175,"line":2930},33,[173,2932,776],{"class":303},[173,2934,321],{"class":311},[173,2936,781],{"class":659},[173,2938,1139],{"class":311},[173,2940,2941],{"class":787},"uri",[173,2943,529],{"class":311},[173,2945,2946],{"class":787}," variables",[173,2948,764],{"class":311},[173,2950,794],{"class":659},[173,2952,729],{"class":311},[173,2954,2956,2958,2961,2963,2965,2967,2969,2972],{"class":175,"line":2955},34,[173,2957,2096],{"class":659},[173,2959,2960],{"class":307}," id",[173,2962,1682],{"class":311},[173,2964,2946],{"class":307},[173,2966,741],{"class":311},[173,2968,2853],{"class":307},[173,2970,2971],{"class":296}," as",[173,2973,2975],{"class":2974},"sBMFI"," string\n",[173,2977,2979,2981,2983,2985,2987,2989,2991,2993,2995,2997,2999,3001],{"class":175,"line":2978},35,[173,2980,2096],{"class":659},[173,2982,2629],{"class":307},[173,2984,1682],{"class":311},[173,2986,2060],{"class":296},[173,2988,2636],{"class":307},[173,2990,741],{"class":311},[173,2992,2641],{"class":307},[173,2994,741],{"class":311},[173,2996,2646],{"class":303},[173,2998,308],{"class":317},[173,3000,2853],{"class":307},[173,3002,364],{"class":317},[173,3004,3006,3008],{"class":175,"line":3005},36,[173,3007,802],{"class":296},[173,3009,729],{"class":311},[173,3011,3013,3016,3018,3020],{"class":175,"line":3012},37,[173,3014,3015],{"class":317},"      contents",[173,3017,321],{"class":311},[173,3019,2104],{"class":317},[173,3021,312],{"class":311},[173,3023,3025,3028,3030,3033,3035,3038,3040],{"class":175,"line":3024},38,[173,3026,3027],{"class":317},"        uri",[173,3029,321],{"class":311},[173,3031,3032],{"class":307}," uri",[173,3034,741],{"class":311},[173,3036,3037],{"class":303},"toString",[173,3039,747],{"class":317},[173,3041,334],{"class":311},[173,3043,3045,3048,3050,3052,3055,3057],{"class":175,"line":3044},39,[173,3046,3047],{"class":317},"        mimeType",[173,3049,321],{"class":311},[173,3051,324],{"class":311},[173,3053,3054],{"class":327},"application\u002Fjson",[173,3056,331],{"class":311},[173,3058,334],{"class":311},[173,3060,3062,3065,3067,3070,3072,3075,3077,3079,3081],{"class":175,"line":3061},40,[173,3063,3064],{"class":317},"        text",[173,3066,321],{"class":311},[173,3068,3069],{"class":307}," JSON",[173,3071,741],{"class":311},[173,3073,3074],{"class":303},"stringify",[173,3076,308],{"class":317},[173,3078,2055],{"class":307},[173,3080,764],{"class":317},[173,3082,334],{"class":311},[173,3084,3086,3089,3092],{"class":175,"line":3085},41,[173,3087,3088],{"class":311},"      }",[173,3090,3091],{"class":317},"]",[173,3093,334],{"class":311},[173,3095,3097],{"class":175,"line":3096},42,[173,3098,2170],{"class":311},[173,3100,3102],{"class":175,"line":3101},43,[173,3103,771],{"class":311},[173,3105,3107,3109],{"class":175,"line":3106},44,[173,3108,361],{"class":311},[173,3110,364],{"class":307},[173,3112,3114],{"class":175,"line":3113},45,[173,3115,186],{"emptyLinePlaceholder":185},[173,3117,3119],{"class":175,"line":3118},46,[173,3120,3121],{"class":355},"\u002F\u002F 为此处理器定义提示词\n",[173,3123,3125,3127,3130,3132,3134,3136],{"class":175,"line":3124},47,[173,3126,660],{"class":659},[173,3128,3129],{"class":307}," userPrompt ",[173,3131,666],{"class":311},[173,3133,2353],{"class":303},[173,3135,308],{"class":307},[173,3137,312],{"class":311},[173,3139,3141,3143,3145,3147,3150,3152],{"class":175,"line":3140},48,[173,3142,460],{"class":317},[173,3144,321],{"class":311},[173,3146,324],{"class":311},[173,3148,3149],{"class":327},"user-help",[173,3151,331],{"class":311},[173,3153,334],{"class":311},[173,3155,3157,3159,3161,3163,3166,3168],{"class":175,"line":3156},49,[173,3158,708],{"class":317},[173,3160,321],{"class":311},[173,3162,324],{"class":311},[173,3164,3165],{"class":327},"Get help with user operations",[173,3167,331],{"class":311},[173,3169,334],{"class":311},[173,3171,3173,3175,3177,3179,3182,3184],{"class":175,"line":3172},50,[173,3174,776],{"class":303},[173,3176,321],{"class":311},[173,3178,781],{"class":659},[173,3180,3181],{"class":311}," ()",[173,3183,794],{"class":659},[173,3185,729],{"class":311},[173,3187,3189,3191],{"class":175,"line":3188},51,[173,3190,802],{"class":296},[173,3192,729],{"class":311},[173,3194,3196,3199,3201,3203],{"class":175,"line":3195},52,[173,3197,3198],{"class":317},"      messages",[173,3200,321],{"class":311},[173,3202,2104],{"class":317},[173,3204,312],{"class":311},[173,3206,3208,3211,3213,3215,3217,3219],{"class":175,"line":3207},53,[173,3209,3210],{"class":317},"        role",[173,3212,321],{"class":311},[173,3214,324],{"class":311},[173,3216,2055],{"class":327},[173,3218,331],{"class":311},[173,3220,334],{"class":311},[173,3222,3224,3227,3229],{"class":175,"line":3223},54,[173,3225,3226],{"class":317},"        content",[173,3228,321],{"class":311},[173,3230,729],{"class":311},[173,3232,3234,3237,3239,3241,3244,3246],{"class":175,"line":3233},55,[173,3235,3236],{"class":317},"          type",[173,3238,321],{"class":311},[173,3240,324],{"class":311},[173,3242,3243],{"class":327},"text",[173,3245,331],{"class":311},[173,3247,334],{"class":311},[173,3249,3251,3254,3256,3258,3261,3263],{"class":175,"line":3250},56,[173,3252,3253],{"class":317},"          text",[173,3255,321],{"class":311},[173,3257,324],{"class":311},[173,3259,3260],{"class":327},"How can I manage users?",[173,3262,331],{"class":311},[173,3264,334],{"class":311},[173,3266,3268],{"class":175,"line":3267},57,[173,3269,3270],{"class":311},"        },\n",[173,3272,3274,3276,3278],{"class":175,"line":3273},58,[173,3275,3088],{"class":311},[173,3277,3091],{"class":317},[173,3279,334],{"class":311},[173,3281,3283],{"class":175,"line":3282},59,[173,3284,2170],{"class":311},[173,3286,3288],{"class":175,"line":3287},60,[173,3289,771],{"class":311},[173,3291,3293,3295],{"class":175,"line":3292},61,[173,3294,361],{"class":311},[173,3296,364],{"class":307},[173,3298,3300],{"class":175,"line":3299},62,[173,3301,186],{"emptyLinePlaceholder":185},[173,3303,3305],{"class":175,"line":3304},63,[173,3306,3307],{"class":355},"\u002F\u002F 导出处理器\n",[173,3309,3311,3313,3315,3317,3319],{"class":175,"line":3310},64,[173,3312,297],{"class":296},[173,3314,300],{"class":296},[173,3316,304],{"class":303},[173,3318,308],{"class":307},[173,3320,312],{"class":311},[173,3322,3324,3326,3328,3330,3333,3335],{"class":175,"line":3323},65,[173,3325,460],{"class":317},[173,3327,321],{"class":311},[173,3329,324],{"class":311},[173,3331,3332],{"class":327},"api",[173,3334,331],{"class":311},[173,3336,334],{"class":311},[173,3338,3340,3342,3344,3346,3348,3350],{"class":175,"line":3339},66,[173,3341,318],{"class":317},[173,3343,321],{"class":311},[173,3345,324],{"class":311},[173,3347,1085],{"class":327},[173,3349,331],{"class":311},[173,3351,334],{"class":311},[173,3353,3355,3357,3359,3361,3364,3366],{"class":175,"line":3354},67,[173,3356,902],{"class":317},[173,3358,321],{"class":311},[173,3360,324],{"class":311},[173,3362,3363],{"class":327},"\u002Fmcp\u002Fapi",[173,3365,331],{"class":311},[173,3367,334],{"class":311},[173,3369,3371,3373,3375,3378,3380,3383],{"class":175,"line":3370},68,[173,3372,572],{"class":317},[173,3374,321],{"class":311},[173,3376,3377],{"class":307}," [getUserTool",[173,3379,529],{"class":311},[173,3381,3382],{"class":307}," createUserTool]",[173,3384,334],{"class":311},[173,3386,3388,3390,3392,3395],{"class":175,"line":3387},69,[173,3389,1182],{"class":317},[173,3391,321],{"class":311},[173,3393,3394],{"class":307}," [userResource]",[173,3396,334],{"class":311},[173,3398,3400,3402,3404,3407],{"class":175,"line":3399},70,[173,3401,1200],{"class":317},[173,3403,321],{"class":311},[173,3405,3406],{"class":307}," [userPrompt]",[173,3408,334],{"class":311},[173,3410,3412,3414,3416,3418,3421,3423],{"class":175,"line":3411},71,[173,3413,339],{"class":317},[173,3415,321],{"class":311},[173,3417,324],{"class":311},[173,3419,3420],{"class":327},"\u002Fdocs\u002Fapi",[173,3422,331],{"class":311},[173,3424,334],{"class":311},[173,3426,3428,3430],{"class":175,"line":3427},72,[173,3429,361],{"class":311},[173,3431,364],{"class":307},[145,3433,3434],{"id":3434},"多个处理器",[150,3436,3437],{},"您可以在应用程序中创建多个处理器：",[162,3439,3443],{"className":3440,"code":3442,"language":3243},[3441],"language-text","server\u002F\n└── mcp\u002F\n    ├── migration.ts          # Migration handler\n    ├── api-handler.ts        # API handler\n    ├── admin-handler.ts      # Admin handler\n    ├── tools\u002F\n    │   └── echo.ts           # Default handler tools\n    ├── resources\u002F\n    │   └── readme.ts         # Default handler resources\n    └── prompts\u002F\n        └── greeting.ts       # Default handler prompts\n",[170,3444,3442],{"__ignoreMap":168},[150,3446,3447],{},"每个处理器文件都应导出一个默认的处理器定义：",[162,3449,3451],{"className":286,"code":3450,"filename":604,"language":289,"meta":168,"style":168},"import { defineMcpHandler } from '@nuxtjs\u002Fmcp-toolkit\u002Fserver'\n\nexport default defineMcpHandler({\n  name: 'migration',\n  tools: [ ... ],\n})\n",[170,3452,3453,3471,3475,3487,3501,3515],{"__ignoreMap":168},[173,3454,3455,3457,3459,3461,3463,3465,3467,3469],{"class":175,"line":176},[173,3456,520],{"class":296},[173,3458,523],{"class":311},[173,3460,304],{"class":307},[173,3462,535],{"class":311},[173,3464,538],{"class":296},[173,3466,324],{"class":311},[173,3468,648],{"class":327},[173,3470,546],{"class":311},[173,3472,3473],{"class":175,"line":182},[173,3474,186],{"emptyLinePlaceholder":185},[173,3476,3477,3479,3481,3483,3485],{"class":175,"line":189},[173,3478,297],{"class":296},[173,3480,300],{"class":296},[173,3482,304],{"class":303},[173,3484,308],{"class":307},[173,3486,312],{"class":311},[173,3488,3489,3491,3493,3495,3497,3499],{"class":175,"line":195},[173,3490,460],{"class":317},[173,3492,321],{"class":311},[173,3494,324],{"class":311},[173,3496,876],{"class":327},[173,3498,331],{"class":311},[173,3500,334],{"class":311},[173,3502,3503,3505,3507,3509,3511,3513],{"class":175,"line":201},[173,3504,572],{"class":317},[173,3506,321],{"class":311},[173,3508,1166],{"class":307},[173,3510,1169],{"class":311},[173,3512,1172],{"class":307},[173,3514,334],{"class":311},[173,3516,3517,3519],{"class":175,"line":207},[173,3518,361],{"class":311},[173,3520,364],{"class":307},[162,3522,3524],{"className":286,"code":3523,"filename":2475,"language":289,"meta":168,"style":168},"import { defineMcpHandler } from '@nuxtjs\u002Fmcp-toolkit\u002Fserver'\n\nexport default defineMcpHandler({\n  name: 'api',\n  tools: [ ... ],\n})\n",[170,3525,3526,3544,3548,3560,3574,3588],{"__ignoreMap":168},[173,3527,3528,3530,3532,3534,3536,3538,3540,3542],{"class":175,"line":176},[173,3529,520],{"class":296},[173,3531,523],{"class":311},[173,3533,304],{"class":307},[173,3535,535],{"class":311},[173,3537,538],{"class":296},[173,3539,324],{"class":311},[173,3541,648],{"class":327},[173,3543,546],{"class":311},[173,3545,3546],{"class":175,"line":182},[173,3547,186],{"emptyLinePlaceholder":185},[173,3549,3550,3552,3554,3556,3558],{"class":175,"line":189},[173,3551,297],{"class":296},[173,3553,300],{"class":296},[173,3555,304],{"class":303},[173,3557,308],{"class":307},[173,3559,312],{"class":311},[173,3561,3562,3564,3566,3568,3570,3572],{"class":175,"line":195},[173,3563,460],{"class":317},[173,3565,321],{"class":311},[173,3567,324],{"class":311},[173,3569,3332],{"class":327},[173,3571,331],{"class":311},[173,3573,334],{"class":311},[173,3575,3576,3578,3580,3582,3584,3586],{"class":175,"line":201},[173,3577,572],{"class":317},[173,3579,321],{"class":311},[173,3581,1166],{"class":307},[173,3583,1169],{"class":311},[173,3585,1172],{"class":307},[173,3587,334],{"class":311},[173,3589,3590,3592],{"class":175,"line":207},[173,3591,361],{"class":311},[173,3593,364],{"class":307},[145,3595,3596],{"id":3596},"处理器路由",[150,3598,3599,3600,3602,3603,3605,3606,3609],{},"处理器的 ",[170,3601,386],{}," 决定了它的挂载位置。默认情况下，处理器可通过 ",[170,3604,1253],{}," 访问，其中 ",[170,3607,3608],{},":name"," 是处理器的名称：",[244,3611,3612,3621,3628],{},[247,3613,3614,3615,3618,3619],{},"名称为 ",[170,3616,3617],{},"name: 'migration'"," 的处理器 → 挂载于 ",[170,3620,909],{},[247,3622,3614,3623,3618,3626],{},[170,3624,3625],{},"name: 'api'",[170,3627,3363],{},[247,3629,3614,3630,3618,3633],{},[170,3631,3632],{},"name: 'admin'",[170,3634,3635],{},"\u002Fmcp\u002Fadmin",[150,3637,3638],{},"您也可以指定自定义路由来覆盖默认路由：",[162,3640,3642],{"className":286,"code":3641,"language":289,"meta":168,"style":168},"import { defineMcpHandler } from '@nuxtjs\u002Fmcp-toolkit\u002Fserver'\n\nexport default defineMcpHandler({\n  name: 'api',\n  route: '\u002Fapi\u002Fmcp\u002Fv1', \u002F\u002F 自定义路由，替代默认的 \u002Fmcp\u002Fapi\n})\n",[170,3643,3644,3662,3666,3678,3692,3710],{"__ignoreMap":168},[173,3645,3646,3648,3650,3652,3654,3656,3658,3660],{"class":175,"line":176},[173,3647,520],{"class":296},[173,3649,523],{"class":311},[173,3651,304],{"class":307},[173,3653,535],{"class":311},[173,3655,538],{"class":296},[173,3657,324],{"class":311},[173,3659,648],{"class":327},[173,3661,546],{"class":311},[173,3663,3664],{"class":175,"line":182},[173,3665,186],{"emptyLinePlaceholder":185},[173,3667,3668,3670,3672,3674,3676],{"class":175,"line":189},[173,3669,297],{"class":296},[173,3671,300],{"class":296},[173,3673,304],{"class":303},[173,3675,308],{"class":307},[173,3677,312],{"class":311},[173,3679,3680,3682,3684,3686,3688,3690],{"class":175,"line":195},[173,3681,460],{"class":317},[173,3683,321],{"class":311},[173,3685,324],{"class":311},[173,3687,3332],{"class":327},[173,3689,331],{"class":311},[173,3691,334],{"class":311},[173,3693,3694,3696,3698,3700,3703,3705,3707],{"class":175,"line":201},[173,3695,902],{"class":317},[173,3697,321],{"class":311},[173,3699,324],{"class":311},[173,3701,3702],{"class":327},"\u002Fapi\u002Fmcp\u002Fv1",[173,3704,331],{"class":311},[173,3706,529],{"class":311},[173,3708,3709],{"class":355}," \u002F\u002F 自定义路由，替代默认的 \u002Fmcp\u002Fapi\n",[173,3711,3712,3714],{"class":175,"line":207},[173,3713,361],{"class":311},[173,3715,364],{"class":307},[145,3717,3718],{"id":3718},"默认处理器与自定义处理器",[3720,3721,3722,3741],"table",{},[3723,3724,3725],"thead",{},[3726,3727,3728,3732,3734,3739],"tr",{},[3729,3730,3731],"th",{},"特性",[3729,3733,258],{},[3729,3735,3736,3737,764],{},"默认处理器覆盖 (",[170,3738,282],{},[3729,3740,593],{},[3742,3743,3744,3764,3780,3793,3807,3821],"tbody",{},[3726,3745,3746,3750,3755,3759],{},[3747,3748,3749],"td",{},"路由",[3747,3751,3752,3754],{},[170,3753,264],{},"（通过配置）",[3747,3756,3757,3754],{},[170,3758,264],{},[3747,3760,3761,3763],{},[170,3762,1253],{},"（或自定义路由）",[3726,3765,3766,3768,3774,3777],{},[3747,3767,46],{},[3747,3769,3770,3771],{},"来自 ",[170,3772,3773],{},"server\u002Fmcp\u002Ftools\u002F",[3747,3775,3776],{},"自定义或全局",[3747,3778,3779],{},"在处理器中定义",[3726,3781,3782,3784,3789,3791],{},[3747,3783,51],{},[3747,3785,3770,3786],{},[170,3787,3788],{},"server\u002Fmcp\u002Fresources\u002F",[3747,3790,3776],{},[3747,3792,3779],{},[3726,3794,3795,3798,3803,3805],{},[3747,3796,3797],{},"提示词",[3747,3799,3770,3800],{},[170,3801,3802],{},"server\u002Fmcp\u002Fprompts\u002F",[3747,3804,3776],{},[3747,3806,3779],{},[3726,3808,3809,3812,3815,3818],{},[3747,3810,3811],{},"名称",[3747,3813,3814],{},"来自配置",[3747,3816,3817],{},"自定义或配置",[3747,3819,3820],{},"处理器名称（必填）",[3726,3822,3823,3826,3828,3830],{},[3747,3824,3825],{},"版本",[3747,3827,3814],{},[3747,3829,3817],{},[3747,3831,3832],{},"处理器版本",[145,3834,3835],{"id":3835},"使用场景",[271,3837,3839],{"id":3838},"_1-功能分离","1. 功能分离",[150,3841,3842],{},"将不同的功能分离到不同的处理器中：",[162,3844,3847],{"className":286,"code":3845,"filename":3846,"language":289,"meta":168,"style":168},"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",[170,3848,3849,3867,3871,3883,3897,3917],{"__ignoreMap":168},[173,3850,3851,3853,3855,3857,3859,3861,3863,3865],{"class":175,"line":176},[173,3852,520],{"class":296},[173,3854,523],{"class":311},[173,3856,304],{"class":307},[173,3858,535],{"class":311},[173,3860,538],{"class":296},[173,3862,324],{"class":311},[173,3864,648],{"class":327},[173,3866,546],{"class":311},[173,3868,3869],{"class":175,"line":182},[173,3870,186],{"emptyLinePlaceholder":185},[173,3872,3873,3875,3877,3879,3881],{"class":175,"line":189},[173,3874,297],{"class":296},[173,3876,300],{"class":296},[173,3878,304],{"class":303},[173,3880,308],{"class":307},[173,3882,312],{"class":311},[173,3884,3885,3887,3889,3891,3893,3895],{"class":175,"line":195},[173,3886,460],{"class":317},[173,3888,321],{"class":311},[173,3890,324],{"class":311},[173,3892,2641],{"class":327},[173,3894,331],{"class":311},[173,3896,334],{"class":311},[173,3898,3899,3901,3903,3905,3907,3910,3912,3915],{"class":175,"line":201},[173,3900,572],{"class":317},[173,3902,321],{"class":311},[173,3904,3377],{"class":307},[173,3906,529],{"class":311},[173,3908,3909],{"class":307}," createUserTool",[173,3911,529],{"class":311},[173,3913,3914],{"class":307}," updateUserTool]",[173,3916,334],{"class":311},[173,3918,3919,3921],{"class":175,"line":207},[173,3920,361],{"class":311},[173,3922,364],{"class":307},[162,3924,3927],{"className":286,"code":3925,"filename":3926,"language":289,"meta":168,"style":168},"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",[170,3928,3929,3947,3951,3963,3978,3999],{"__ignoreMap":168},[173,3930,3931,3933,3935,3937,3939,3941,3943,3945],{"class":175,"line":176},[173,3932,520],{"class":296},[173,3934,523],{"class":311},[173,3936,304],{"class":307},[173,3938,535],{"class":311},[173,3940,538],{"class":296},[173,3942,324],{"class":311},[173,3944,648],{"class":327},[173,3946,546],{"class":311},[173,3948,3949],{"class":175,"line":182},[173,3950,186],{"emptyLinePlaceholder":185},[173,3952,3953,3955,3957,3959,3961],{"class":175,"line":189},[173,3954,297],{"class":296},[173,3956,300],{"class":296},[173,3958,304],{"class":303},[173,3960,308],{"class":307},[173,3962,312],{"class":311},[173,3964,3965,3967,3969,3971,3974,3976],{"class":175,"line":195},[173,3966,460],{"class":317},[173,3968,321],{"class":311},[173,3970,324],{"class":311},[173,3972,3973],{"class":327},"content",[173,3975,331],{"class":311},[173,3977,334],{"class":311},[173,3979,3980,3982,3984,3987,3989,3992,3994,3997],{"class":175,"line":201},[173,3981,572],{"class":317},[173,3983,321],{"class":311},[173,3985,3986],{"class":307}," [createPostTool",[173,3988,529],{"class":311},[173,3990,3991],{"class":307}," updatePostTool",[173,3993,529],{"class":311},[173,3995,3996],{"class":307}," deletePostTool]",[173,3998,334],{"class":311},[173,4000,4001,4003],{"class":175,"line":207},[173,4002,361],{"class":311},[173,4004,364],{"class":307},[271,4006,4008],{"id":4007},"_2-版本化-api","2. 版本化 API",[150,4010,4011],{},"创建带版本号的处理器：",[162,4013,4016],{"className":286,"code":4014,"filename":4015,"language":289,"meta":168,"style":168},"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",[170,4017,4018,4036,4040,4052,4067,4081,4096,4110],{"__ignoreMap":168},[173,4019,4020,4022,4024,4026,4028,4030,4032,4034],{"class":175,"line":176},[173,4021,520],{"class":296},[173,4023,523],{"class":311},[173,4025,304],{"class":307},[173,4027,535],{"class":311},[173,4029,538],{"class":296},[173,4031,324],{"class":311},[173,4033,648],{"class":327},[173,4035,546],{"class":311},[173,4037,4038],{"class":175,"line":182},[173,4039,186],{"emptyLinePlaceholder":185},[173,4041,4042,4044,4046,4048,4050],{"class":175,"line":189},[173,4043,297],{"class":296},[173,4045,300],{"class":296},[173,4047,304],{"class":303},[173,4049,308],{"class":307},[173,4051,312],{"class":311},[173,4053,4054,4056,4058,4060,4063,4065],{"class":175,"line":195},[173,4055,460],{"class":317},[173,4057,321],{"class":311},[173,4059,324],{"class":311},[173,4061,4062],{"class":327},"api-v1",[173,4064,331],{"class":311},[173,4066,334],{"class":311},[173,4068,4069,4071,4073,4075,4077,4079],{"class":175,"line":201},[173,4070,318],{"class":317},[173,4072,321],{"class":311},[173,4074,324],{"class":311},[173,4076,1085],{"class":327},[173,4078,331],{"class":311},[173,4080,334],{"class":311},[173,4082,4083,4085,4087,4089,4092,4094],{"class":175,"line":207},[173,4084,902],{"class":317},[173,4086,321],{"class":311},[173,4088,324],{"class":311},[173,4090,4091],{"class":327},"\u002Fapi\u002Fv1\u002Fmcp",[173,4093,331],{"class":311},[173,4095,334],{"class":311},[173,4097,4098,4100,4102,4104,4106,4108],{"class":175,"line":213},[173,4099,572],{"class":317},[173,4101,321],{"class":311},[173,4103,1166],{"class":307},[173,4105,1169],{"class":311},[173,4107,1172],{"class":307},[173,4109,334],{"class":311},[173,4111,4112,4114],{"class":175,"line":219},[173,4113,361],{"class":311},[173,4115,364],{"class":307},[162,4117,4120],{"className":286,"code":4118,"filename":4119,"language":289,"meta":168,"style":168},"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",[170,4121,4122,4140,4144,4156,4171,4185,4200,4214],{"__ignoreMap":168},[173,4123,4124,4126,4128,4130,4132,4134,4136,4138],{"class":175,"line":176},[173,4125,520],{"class":296},[173,4127,523],{"class":311},[173,4129,304],{"class":307},[173,4131,535],{"class":311},[173,4133,538],{"class":296},[173,4135,324],{"class":311},[173,4137,648],{"class":327},[173,4139,546],{"class":311},[173,4141,4142],{"class":175,"line":182},[173,4143,186],{"emptyLinePlaceholder":185},[173,4145,4146,4148,4150,4152,4154],{"class":175,"line":189},[173,4147,297],{"class":296},[173,4149,300],{"class":296},[173,4151,304],{"class":303},[173,4153,308],{"class":307},[173,4155,312],{"class":311},[173,4157,4158,4160,4162,4164,4167,4169],{"class":175,"line":195},[173,4159,460],{"class":317},[173,4161,321],{"class":311},[173,4163,324],{"class":311},[173,4165,4166],{"class":327},"api-v2",[173,4168,331],{"class":311},[173,4170,334],{"class":311},[173,4172,4173,4175,4177,4179,4181,4183],{"class":175,"line":201},[173,4174,318],{"class":317},[173,4176,321],{"class":311},[173,4178,324],{"class":311},[173,4180,328],{"class":327},[173,4182,331],{"class":311},[173,4184,334],{"class":311},[173,4186,4187,4189,4191,4193,4196,4198],{"class":175,"line":207},[173,4188,902],{"class":317},[173,4190,321],{"class":311},[173,4192,324],{"class":311},[173,4194,4195],{"class":327},"\u002Fapi\u002Fv2\u002Fmcp",[173,4197,331],{"class":311},[173,4199,334],{"class":311},[173,4201,4202,4204,4206,4208,4210,4212],{"class":175,"line":213},[173,4203,572],{"class":317},[173,4205,321],{"class":311},[173,4207,1166],{"class":307},[173,4209,1169],{"class":311},[173,4211,1172],{"class":307},[173,4213,334],{"class":311},[173,4215,4216,4218],{"class":175,"line":219},[173,4217,361],{"class":311},[173,4219,364],{"class":307},[271,4221,4223],{"id":4222},"_3-领域特定处理器","3. 领域特定处理器",[150,4225,4226],{},"按业务领域进行组织：",[162,4228,4231],{"className":286,"code":4229,"filename":4230,"language":289,"meta":168,"style":168},"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",[170,4232,4233,4251,4255,4267,4282,4303],{"__ignoreMap":168},[173,4234,4235,4237,4239,4241,4243,4245,4247,4249],{"class":175,"line":176},[173,4236,520],{"class":296},[173,4238,523],{"class":311},[173,4240,304],{"class":307},[173,4242,535],{"class":311},[173,4244,538],{"class":296},[173,4246,324],{"class":311},[173,4248,648],{"class":327},[173,4250,546],{"class":311},[173,4252,4253],{"class":175,"line":182},[173,4254,186],{"emptyLinePlaceholder":185},[173,4256,4257,4259,4261,4263,4265],{"class":175,"line":189},[173,4258,297],{"class":296},[173,4260,300],{"class":296},[173,4262,304],{"class":303},[173,4264,308],{"class":307},[173,4266,312],{"class":311},[173,4268,4269,4271,4273,4275,4278,4280],{"class":175,"line":195},[173,4270,460],{"class":317},[173,4272,321],{"class":311},[173,4274,324],{"class":311},[173,4276,4277],{"class":327},"ecommerce",[173,4279,331],{"class":311},[173,4281,334],{"class":311},[173,4283,4284,4286,4288,4291,4293,4296,4298,4301],{"class":175,"line":201},[173,4285,572],{"class":317},[173,4287,321],{"class":311},[173,4289,4290],{"class":307}," [addToCartTool",[173,4292,529],{"class":311},[173,4294,4295],{"class":307}," checkoutTool",[173,4297,529],{"class":311},[173,4299,4300],{"class":307}," getProductsTool]",[173,4302,334],{"class":311},[173,4304,4305,4307],{"class":175,"line":207},[173,4306,361],{"class":311},[173,4308,364],{"class":307},[162,4310,4313],{"className":286,"code":4311,"filename":4312,"language":289,"meta":168,"style":168},"import { defineMcpHandler } from '@nuxtjs\u002Fmcp-toolkit\u002Fserver'\n\nexport default defineMcpHandler({\n  name: 'analytics',\n  tools: [getStatsTool, generateReportTool],\n})\n","server\u002Fmcp\u002Fanalytics.ts",[170,4314,4315,4333,4337,4349,4364,4380],{"__ignoreMap":168},[173,4316,4317,4319,4321,4323,4325,4327,4329,4331],{"class":175,"line":176},[173,4318,520],{"class":296},[173,4320,523],{"class":311},[173,4322,304],{"class":307},[173,4324,535],{"class":311},[173,4326,538],{"class":296},[173,4328,324],{"class":311},[173,4330,648],{"class":327},[173,4332,546],{"class":311},[173,4334,4335],{"class":175,"line":182},[173,4336,186],{"emptyLinePlaceholder":185},[173,4338,4339,4341,4343,4345,4347],{"class":175,"line":189},[173,4340,297],{"class":296},[173,4342,300],{"class":296},[173,4344,304],{"class":303},[173,4346,308],{"class":307},[173,4348,312],{"class":311},[173,4350,4351,4353,4355,4357,4360,4362],{"class":175,"line":195},[173,4352,460],{"class":317},[173,4354,321],{"class":311},[173,4356,324],{"class":311},[173,4358,4359],{"class":327},"analytics",[173,4361,331],{"class":311},[173,4363,334],{"class":311},[173,4365,4366,4368,4370,4373,4375,4378],{"class":175,"line":201},[173,4367,572],{"class":317},[173,4369,321],{"class":311},[173,4371,4372],{"class":307}," [getStatsTool",[173,4374,529],{"class":311},[173,4376,4377],{"class":307}," generateReportTool]",[173,4379,334],{"class":311},[173,4381,4382,4384],{"class":175,"line":207},[173,4383,361],{"class":311},[173,4385,364],{"class":307},[145,4387,4388],{"id":4388},"在处理器之间共享工具",[150,4390,4391],{},"您可以通过将工具定义导出到单独的文件中，在多个处理器之间共享它们：",[162,4393,4396],{"className":286,"code":4394,"filename":4395,"language":289,"meta":168,"style":168},"import { z } from 'zod'\nimport { defineMcpTool } from '@nuxtjs\u002Fmcp-toolkit\u002Fserver'\n\nexport const sharedTool = defineMcpTool({\n  name: 'shared-tool',\n  description: 'A shared tool',\n  inputSchema: {\n    input: z.string(),\n  },\n  handler: async ({ input }) => `Shared: ${input}`,\n})\n","server\u002Fmcp\u002Fshared-tools.ts",[170,4397,4398,4416,4434,4438,4456,4471,4486,4494,4511,4515,4547],{"__ignoreMap":168},[173,4399,4400,4402,4404,4406,4408,4410,4412,4414],{"class":175,"line":176},[173,4401,520],{"class":296},[173,4403,523],{"class":311},[173,4405,615],{"class":307},[173,4407,535],{"class":311},[173,4409,538],{"class":296},[173,4411,324],{"class":311},[173,4413,624],{"class":327},[173,4415,546],{"class":311},[173,4417,4418,4420,4422,4424,4426,4428,4430,4432],{"class":175,"line":182},[173,4419,520],{"class":296},[173,4421,523],{"class":311},[173,4423,635],{"class":307},[173,4425,535],{"class":311},[173,4427,538],{"class":296},[173,4429,324],{"class":311},[173,4431,648],{"class":327},[173,4433,546],{"class":311},[173,4435,4436],{"class":175,"line":189},[173,4437,186],{"emptyLinePlaceholder":185},[173,4439,4440,4442,4445,4448,4450,4452,4454],{"class":175,"line":195},[173,4441,297],{"class":296},[173,4443,4444],{"class":659}," const",[173,4446,4447],{"class":307}," sharedTool ",[173,4449,666],{"class":311},[173,4451,635],{"class":303},[173,4453,308],{"class":307},[173,4455,312],{"class":311},[173,4457,4458,4460,4462,4464,4467,4469],{"class":175,"line":201},[173,4459,460],{"class":317},[173,4461,321],{"class":311},[173,4463,324],{"class":311},[173,4465,4466],{"class":327},"shared-tool",[173,4468,331],{"class":311},[173,4470,334],{"class":311},[173,4472,4473,4475,4477,4479,4482,4484],{"class":175,"line":207},[173,4474,708],{"class":317},[173,4476,321],{"class":311},[173,4478,324],{"class":311},[173,4480,4481],{"class":327},"A shared tool",[173,4483,331],{"class":311},[173,4485,334],{"class":311},[173,4487,4488,4490,4492],{"class":175,"line":213},[173,4489,724],{"class":317},[173,4491,321],{"class":311},[173,4493,729],{"class":311},[173,4495,4496,4499,4501,4503,4505,4507,4509],{"class":175,"line":219},[173,4497,4498],{"class":317},"    input",[173,4500,321],{"class":311},[173,4502,615],{"class":307},[173,4504,741],{"class":311},[173,4506,744],{"class":303},[173,4508,747],{"class":307},[173,4510,334],{"class":311},[173,4512,4513],{"class":175,"line":225},[173,4514,771],{"class":311},[173,4516,4517,4519,4521,4523,4525,4528,4530,4532,4534,4537,4539,4542,4545],{"class":175,"line":231},[173,4518,776],{"class":303},[173,4520,321],{"class":311},[173,4522,781],{"class":659},[173,4524,784],{"class":311},[173,4526,4527],{"class":787}," input",[173,4529,791],{"class":311},[173,4531,794],{"class":659},[173,4533,2840],{"class":311},[173,4535,4536],{"class":327},"Shared: ",[173,4538,2846],{"class":311},[173,4540,4541],{"class":307},"input",[173,4543,4544],{"class":311},"}`",[173,4546,334],{"class":311},[173,4548,4549,4551],{"class":175,"line":236},[173,4550,361],{"class":311},[173,4552,364],{"class":307},[162,4554,4557],{"className":286,"code":4555,"filename":4556,"language":289,"meta":168,"style":168},"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",[170,4558,4559,4579,4597,4601,4613,4628,4639],{"__ignoreMap":168},[173,4560,4561,4563,4565,4568,4570,4572,4574,4577],{"class":175,"line":176},[173,4562,520],{"class":296},[173,4564,523],{"class":311},[173,4566,4567],{"class":307}," sharedTool",[173,4569,535],{"class":311},[173,4571,538],{"class":296},[173,4573,324],{"class":311},[173,4575,4576],{"class":327},".\u002Fshared-tools",[173,4578,546],{"class":311},[173,4580,4581,4583,4585,4587,4589,4591,4593,4595],{"class":175,"line":182},[173,4582,520],{"class":296},[173,4584,523],{"class":311},[173,4586,304],{"class":307},[173,4588,535],{"class":311},[173,4590,538],{"class":296},[173,4592,324],{"class":311},[173,4594,648],{"class":327},[173,4596,546],{"class":311},[173,4598,4599],{"class":175,"line":189},[173,4600,186],{"emptyLinePlaceholder":185},[173,4602,4603,4605,4607,4609,4611],{"class":175,"line":195},[173,4604,297],{"class":296},[173,4606,300],{"class":296},[173,4608,304],{"class":303},[173,4610,308],{"class":307},[173,4612,312],{"class":311},[173,4614,4615,4617,4619,4621,4624,4626],{"class":175,"line":201},[173,4616,460],{"class":317},[173,4618,321],{"class":311},[173,4620,324],{"class":311},[173,4622,4623],{"class":327},"handler1",[173,4625,331],{"class":311},[173,4627,334],{"class":311},[173,4629,4630,4632,4634,4637],{"class":175,"line":207},[173,4631,572],{"class":317},[173,4633,321],{"class":311},[173,4635,4636],{"class":307}," [sharedTool]",[173,4638,334],{"class":311},[173,4640,4641,4643],{"class":175,"line":213},[173,4642,361],{"class":311},[173,4644,364],{"class":307},[162,4646,4649],{"className":286,"code":4647,"filename":4648,"language":289,"meta":168,"style":168},"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",[170,4650,4651,4669,4687,4691,4703,4718,4728],{"__ignoreMap":168},[173,4652,4653,4655,4657,4659,4661,4663,4665,4667],{"class":175,"line":176},[173,4654,520],{"class":296},[173,4656,523],{"class":311},[173,4658,4567],{"class":307},[173,4660,535],{"class":311},[173,4662,538],{"class":296},[173,4664,324],{"class":311},[173,4666,4576],{"class":327},[173,4668,546],{"class":311},[173,4670,4671,4673,4675,4677,4679,4681,4683,4685],{"class":175,"line":182},[173,4672,520],{"class":296},[173,4674,523],{"class":311},[173,4676,304],{"class":307},[173,4678,535],{"class":311},[173,4680,538],{"class":296},[173,4682,324],{"class":311},[173,4684,648],{"class":327},[173,4686,546],{"class":311},[173,4688,4689],{"class":175,"line":189},[173,4690,186],{"emptyLinePlaceholder":185},[173,4692,4693,4695,4697,4699,4701],{"class":175,"line":195},[173,4694,297],{"class":296},[173,4696,300],{"class":296},[173,4698,304],{"class":303},[173,4700,308],{"class":307},[173,4702,312],{"class":311},[173,4704,4705,4707,4709,4711,4714,4716],{"class":175,"line":201},[173,4706,460],{"class":317},[173,4708,321],{"class":311},[173,4710,324],{"class":311},[173,4712,4713],{"class":327},"handler2",[173,4715,331],{"class":311},[173,4717,334],{"class":311},[173,4719,4720,4722,4724,4726],{"class":175,"line":207},[173,4721,572],{"class":317},[173,4723,321],{"class":311},[173,4725,4636],{"class":307},[173,4727,334],{"class":311},[173,4729,4730,4732],{"class":175,"line":213},[173,4731,361],{"class":311},[173,4733,364],{"class":307},[145,4735,4736],{"id":4736},"文件组织",[150,4738,4739,4740,4742],{},"在 ",[170,4741,268],{}," 目录中组织处理器文件：",[162,4744,4747],{"className":4745,"code":4746,"language":3243},[3441],"server\u002F\n└── mcp\u002F\n    ├── index.ts              # Default handler override (optional)\n    ├── migration.ts          # Custom handler\n    ├── api-handler.ts        # Custom handler\n    ├── admin.ts              # Custom handler\n    ├── shared-tools.ts       # Shared tool definitions\n    ├── tools\u002F\n    │   └── # Tools for default handler\n    ├── resources\u002F\n    │   └── # Resources for default handler\n    └── prompts\u002F\n        └── # Prompts for default handler\n",[170,4748,4746],{"__ignoreMap":168},[413,4750,4751,4753],{"color":1702,"icon":129},[170,4752,282],{}," 文件比较特殊——它会覆盖默认处理器的配置，而不是创建一个新的自定义处理器。",[145,4755,4756],{"id":4756},"最佳实践",[4758,4759,4760,4766,4772,4778,4784],"ol",{},[247,4761,4762,4765],{},[154,4763,4764],{},"使用描述性名称","：确保处理器名称清晰且具体",[247,4767,4768,4771],{},[154,4769,4770],{},"分组相关功能","：将相关的工具\u002F资源放在一起",[247,4773,4774,4777],{},[154,4775,4776],{},"为处理器添加版本","：使用语义化版本控制处理器版本",[247,4779,4780,4783],{},[154,4781,4782],{},"编写处理器文档","：添加注释说明每个处理器的作用",[247,4785,4786,4789],{},[154,4787,4788],{},"保持处理器职责单一","：每个处理器应有明确且单一的职责",[145,4791,4792],{"id":4792},"下一步",[244,4794,4795,4800,4805,4810,4815,4820],{},[247,4796,4797,4799],{},[408,4798,1718],{"href":107}," - 使用 LLM 生成的 JavaScript 编排工具",[247,4801,4802,4804],{},[408,4803,76],{"href":77}," - 添加身份验证和日志记录",[247,4806,4807,4809],{},[408,4808,101],{"href":102}," - 有条件地注册定义",[247,4811,4812,4814],{},[408,4813,20],{"href":21}," - 配置默认处理器",[247,4816,4817,4819],{},[408,4818,46],{"href":47}," - 为您的处理器创建工具",[247,4821,4822,4824],{},[408,4823,111],{"href":127}," - 查看更多处理器示例",[4826,4827,4828],"style",{},"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 .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 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 .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 .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html pre.shiki code .sfNiH, html code.shiki .sfNiH{--shiki-light:#FF5370;--shiki-default:#FF9CAC;--shiki-dark:#FF9CAC}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}",{"title":168,"searchDepth":182,"depth":182,"links":4830},[4831,4832,4835,4836,4837,4857,4858,4859,4860,4861,4866,4867,4868,4869],{"id":147,"depth":182,"text":148},{"id":258,"depth":182,"text":258,"children":4833},[4834],{"id":273,"depth":189,"text":273},{"id":593,"depth":182,"text":593},{"id":950,"depth":182,"text":950},{"id":1238,"depth":182,"text":1238,"children":4838},[4839,4841,4843,4845,4847,4849,4851,4853,4855],{"id":1241,"depth":189,"text":4840},"name（必填）",{"id":1319,"depth":189,"text":4842},"version（可选）",{"id":1401,"depth":189,"text":4844},"route（可选）",{"id":1502,"depth":189,"text":4846},"browserRedirect（可选）",{"id":1586,"depth":189,"text":4848},"middleware（可选）",{"id":1709,"depth":189,"text":4850},"experimental_codeMode（可选）",{"id":1836,"depth":189,"text":4852},"tools（可选）",{"id":2200,"depth":189,"text":4854},"resources（可选）",{"id":2334,"depth":189,"text":4856},"prompts（可选）",{"id":2468,"depth":182,"text":2468},{"id":3434,"depth":182,"text":3434},{"id":3596,"depth":182,"text":3596},{"id":3718,"depth":182,"text":3718},{"id":3835,"depth":182,"text":3835,"children":4862},[4863,4864,4865],{"id":3838,"depth":189,"text":3839},{"id":4007,"depth":189,"text":4008},{"id":4222,"depth":189,"text":4223},{"id":4388,"depth":182,"text":4388},{"id":4736,"depth":182,"text":4736},{"id":4756,"depth":182,"text":4756},{"id":4792,"depth":182,"text":4792},"创建具有专属工具、资源和提示词的自定义 MCP 端点。","md",null,{},{"icon":64},{"title":61,"description":4876},"使用 defineMcpHandler 创建自定义 MCP 端点，以便在单个应用中运行多个 MCP 服务器。","bolAJ27GgAeULPNq34_uH07kvoRFXDTQO-CID-3aPW8",[4879,4881],{"title":56,"path":57,"stem":58,"description":4880,"icon":59,"children":-1},"为 AI 助手创建可复用的提示词，支持可选参数。",{"title":71,"path":72,"stem":73,"description":4882,"icon":74,"children":-1},"自定义模块查找 MCP 定义的位置。",1775615721144]