[{"data":1,"prerenderedAt":1458},["ShallowReactive",2],{"navigation_docs":3,"-advanced-custom-paths":139,"-advanced-custom-paths-surround":1453},[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":71,"body":141,"description":1445,"extension":1446,"links":1447,"meta":1448,"navigation":1449,"path":72,"seo":1450,"stem":73,"__hash__":1452},"docs\u002F3.advanced\u002F1.custom-paths.md",{"type":142,"value":143,"toc":1430},"minimark",[144,148,152,163,166,173,282,285,291,295,302,307,495,499,673,676,681,757,764,768,771,777,780,927,931,934,1121,1124,1154,1158,1161,1284,1287,1290,1302,1367,1370,1403,1406,1426],[145,146,147],"h2",{"id":147},"默认路径结构",[149,150,151],"p",{},"默认情况下，模块会在以下位置查找定义：",[153,154,159],"pre",{"className":155,"code":157,"language":158},[156],"language-text","server\u002F\n└── mcp\u002F\n    ├── tools\u002F\n    │   └── # 工具定义\n    ├── resources\u002F\n    │   └── # 资源定义\n    └── prompts\u002F\n        └── # 提示词定义\n","text",[160,161,157],"code",{"__ignoreMap":162},"",[145,164,165],{"id":165},"更改基础目录",[149,167,168,169,172],{},"使用 ",[160,170,171],{},"dir"," 配置选项更改基础目录：",[153,174,179],{"className":175,"code":176,"filename":177,"language":178,"meta":162,"style":162},"language-typescript shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","export default defineNuxtConfig({\n  modules: ['@nuxtjs\u002Fmcp-toolkit'],\n  mcp: {\n    dir: 'my-mcp', \u002F\u002F 在 server\u002Fmy-mcp\u002F 中查找，而不是 server\u002Fmcp\u002F\n  },\n})\n","nuxt.config.ts","typescript",[160,180,181,205,233,244,267,273],{"__ignoreMap":162},[182,183,186,190,193,197,201],"span",{"class":184,"line":185},"line",1,[182,187,189],{"class":188},"s7zQu","export",[182,191,192],{"class":188}," default",[182,194,196],{"class":195},"s2Zo4"," defineNuxtConfig",[182,198,200],{"class":199},"sTEyZ","(",[182,202,204],{"class":203},"sMK4o","{\n",[182,206,208,212,215,218,221,225,227,230],{"class":184,"line":207},2,[182,209,211],{"class":210},"swJcz","  modules",[182,213,214],{"class":203},":",[182,216,217],{"class":199}," [",[182,219,220],{"class":203},"'",[182,222,224],{"class":223},"sfazB","@nuxtjs\u002Fmcp-toolkit",[182,226,220],{"class":203},[182,228,229],{"class":199},"]",[182,231,232],{"class":203},",\n",[182,234,236,239,241],{"class":184,"line":235},3,[182,237,238],{"class":210},"  mcp",[182,240,214],{"class":203},[182,242,243],{"class":203}," {\n",[182,245,247,250,252,255,258,260,263],{"class":184,"line":246},4,[182,248,249],{"class":210},"    dir",[182,251,214],{"class":203},[182,253,254],{"class":203}," '",[182,256,257],{"class":223},"my-mcp",[182,259,220],{"class":203},[182,261,262],{"class":203},",",[182,264,266],{"class":265},"sHwdD"," \u002F\u002F 在 server\u002Fmy-mcp\u002F 中查找，而不是 server\u002Fmcp\u002F\n",[182,268,270],{"class":184,"line":269},5,[182,271,272],{"class":203},"  },\n",[182,274,276,279],{"class":184,"line":275},6,[182,277,278],{"class":203},"}",[182,280,281],{"class":199},")\n",[149,283,284],{},"这将在以下位置查找定义：",[153,286,289],{"className":287,"code":288,"language":158},[156],"server\u002F\n└── my-mcp\u002F\n    ├── tools\u002F\n    │   └── # 工具定义\n    ├── resources\u002F\n    │   └── # 资源定义\n    └── prompts\u002F\n        └── # 提示词定义\n",[160,290,288],{"__ignoreMap":162},[145,292,294],{"id":293},"使用-hook-扩展路径","使用 Hook 扩展路径",[149,296,297,298,301],{},"对于更高级的用例，可以使用 ",[160,299,300],{},"mcp:definitions:paths"," hook 来添加需要扫描的额外目录。当你希望在多个模块或层之间共享定义时，这非常有用。",[303,304,306],"h3",{"id":305},"在-nuxtconfigts-中使用-hook","在 nuxt.config.ts 中使用 Hook",[153,308,310],{"className":175,"code":309,"filename":177,"language":178,"meta":162,"style":162},"export default defineNuxtConfig({\n  modules: ['@nuxtjs\u002Fmcp-toolkit'],\n  hooks: {\n    'mcp:definitions:paths'(paths) {\n      \u002F\u002F 添加工具的额外路径\n      paths.tools.push('shared\u002Ftools')\n\n      \u002F\u002F 添加资源的额外路径\n      paths.resources.push('shared\u002Fresources')\n\n      \u002F\u002F 添加提示词的额外路径\n      paths.prompts.push('shared\u002Fprompts')\n    },\n  },\n})\n",[160,311,312,324,342,351,371,376,403,410,416,441,446,452,477,483,488],{"__ignoreMap":162},[182,313,314,316,318,320,322],{"class":184,"line":185},[182,315,189],{"class":188},[182,317,192],{"class":188},[182,319,196],{"class":195},[182,321,200],{"class":199},[182,323,204],{"class":203},[182,325,326,328,330,332,334,336,338,340],{"class":184,"line":207},[182,327,211],{"class":210},[182,329,214],{"class":203},[182,331,217],{"class":199},[182,333,220],{"class":203},[182,335,224],{"class":223},[182,337,220],{"class":203},[182,339,229],{"class":199},[182,341,232],{"class":203},[182,343,344,347,349],{"class":184,"line":235},[182,345,346],{"class":210},"  hooks",[182,348,214],{"class":203},[182,350,243],{"class":203},[182,352,353,356,358,360,362,366,369],{"class":184,"line":246},[182,354,355],{"class":203},"    '",[182,357,300],{"class":223},[182,359,220],{"class":203},[182,361,200],{"class":203},[182,363,365],{"class":364},"sHdIc","paths",[182,367,368],{"class":203},")",[182,370,243],{"class":203},[182,372,373],{"class":184,"line":269},[182,374,375],{"class":265},"      \u002F\u002F 添加工具的额外路径\n",[182,377,378,381,384,387,389,392,394,396,399,401],{"class":184,"line":275},[182,379,380],{"class":199},"      paths",[182,382,383],{"class":203},".",[182,385,386],{"class":199},"tools",[182,388,383],{"class":203},[182,390,391],{"class":195},"push",[182,393,200],{"class":210},[182,395,220],{"class":203},[182,397,398],{"class":223},"shared\u002Ftools",[182,400,220],{"class":203},[182,402,281],{"class":210},[182,404,406],{"class":184,"line":405},7,[182,407,409],{"emptyLinePlaceholder":408},true,"\n",[182,411,413],{"class":184,"line":412},8,[182,414,415],{"class":265},"      \u002F\u002F 添加资源的额外路径\n",[182,417,419,421,423,426,428,430,432,434,437,439],{"class":184,"line":418},9,[182,420,380],{"class":199},[182,422,383],{"class":203},[182,424,425],{"class":199},"resources",[182,427,383],{"class":203},[182,429,391],{"class":195},[182,431,200],{"class":210},[182,433,220],{"class":203},[182,435,436],{"class":223},"shared\u002Fresources",[182,438,220],{"class":203},[182,440,281],{"class":210},[182,442,444],{"class":184,"line":443},10,[182,445,409],{"emptyLinePlaceholder":408},[182,447,449],{"class":184,"line":448},11,[182,450,451],{"class":265},"      \u002F\u002F 添加提示词的额外路径\n",[182,453,455,457,459,462,464,466,468,470,473,475],{"class":184,"line":454},12,[182,456,380],{"class":199},[182,458,383],{"class":203},[182,460,461],{"class":199},"prompts",[182,463,383],{"class":203},[182,465,391],{"class":195},[182,467,200],{"class":210},[182,469,220],{"class":203},[182,471,472],{"class":223},"shared\u002Fprompts",[182,474,220],{"class":203},[182,476,281],{"class":210},[182,478,480],{"class":184,"line":479},13,[182,481,482],{"class":203},"    },\n",[182,484,486],{"class":184,"line":485},14,[182,487,272],{"class":203},[182,489,491,493],{"class":184,"line":490},15,[182,492,278],{"class":203},[182,494,281],{"class":199},[303,496,498],{"id":497},"在自定义模块中使用-hook","在自定义模块中使用 Hook",[153,500,503],{"className":175,"code":501,"filename":502,"language":178,"meta":162,"style":162},"export default defineNuxtModule({\n  setup(options, nuxt) {\n    nuxt.hook('mcp:definitions:paths', (paths) => {\n      \u002F\u002F 添加工具的额外路径\n      paths.tools.push('shared\u002Ftools')\n\n      \u002F\u002F 添加资源的额外路径\n      paths.resources.push('shared\u002Fresources')\n\n      \u002F\u002F 添加提示词的额外路径\n      paths.prompts.push('shared\u002Fprompts')\n    })\n  },\n})\n","my-module.ts",[160,504,505,518,537,570,574,596,600,604,626,630,634,656,663,667],{"__ignoreMap":162},[182,506,507,509,511,514,516],{"class":184,"line":185},[182,508,189],{"class":188},[182,510,192],{"class":188},[182,512,513],{"class":195}," defineNuxtModule",[182,515,200],{"class":199},[182,517,204],{"class":203},[182,519,520,523,525,528,530,533,535],{"class":184,"line":207},[182,521,522],{"class":210},"  setup",[182,524,200],{"class":203},[182,526,527],{"class":364},"options",[182,529,262],{"class":203},[182,531,532],{"class":364}," nuxt",[182,534,368],{"class":203},[182,536,243],{"class":203},[182,538,539,542,544,547,549,551,553,555,557,560,562,564,568],{"class":184,"line":235},[182,540,541],{"class":199},"    nuxt",[182,543,383],{"class":203},[182,545,546],{"class":195},"hook",[182,548,200],{"class":210},[182,550,220],{"class":203},[182,552,300],{"class":223},[182,554,220],{"class":203},[182,556,262],{"class":203},[182,558,559],{"class":203}," (",[182,561,365],{"class":364},[182,563,368],{"class":203},[182,565,567],{"class":566},"spNyl"," =>",[182,569,243],{"class":203},[182,571,572],{"class":184,"line":246},[182,573,375],{"class":265},[182,575,576,578,580,582,584,586,588,590,592,594],{"class":184,"line":269},[182,577,380],{"class":199},[182,579,383],{"class":203},[182,581,386],{"class":199},[182,583,383],{"class":203},[182,585,391],{"class":195},[182,587,200],{"class":210},[182,589,220],{"class":203},[182,591,398],{"class":223},[182,593,220],{"class":203},[182,595,281],{"class":210},[182,597,598],{"class":184,"line":275},[182,599,409],{"emptyLinePlaceholder":408},[182,601,602],{"class":184,"line":405},[182,603,415],{"class":265},[182,605,606,608,610,612,614,616,618,620,622,624],{"class":184,"line":412},[182,607,380],{"class":199},[182,609,383],{"class":203},[182,611,425],{"class":199},[182,613,383],{"class":203},[182,615,391],{"class":195},[182,617,200],{"class":210},[182,619,220],{"class":203},[182,621,436],{"class":223},[182,623,220],{"class":203},[182,625,281],{"class":210},[182,627,628],{"class":184,"line":418},[182,629,409],{"emptyLinePlaceholder":408},[182,631,632],{"class":184,"line":443},[182,633,451],{"class":265},[182,635,636,638,640,642,644,646,648,650,652,654],{"class":184,"line":448},[182,637,380],{"class":199},[182,639,383],{"class":203},[182,641,461],{"class":199},[182,643,383],{"class":203},[182,645,391],{"class":195},[182,647,200],{"class":210},[182,649,220],{"class":203},[182,651,472],{"class":223},[182,653,220],{"class":203},[182,655,281],{"class":210},[182,657,658,661],{"class":184,"line":454},[182,659,660],{"class":203},"    }",[182,662,281],{"class":210},[182,664,665],{"class":184,"line":479},[182,666,272],{"class":203},[182,668,669,671],{"class":184,"line":485},[182,670,278],{"class":203},[182,672,281],{"class":199},[145,674,675],{"id":675},"路径结构",[149,677,678,680],{},[160,679,365],{}," 对象具有以下结构：",[153,682,684],{"className":175,"code":683,"language":178,"meta":162,"style":162},"{\n  tools: string[]      \u002F\u002F 工具目录路径数组\n  resources: string[]  \u002F\u002F 资源目录路径数组\n  prompts: string[]    \u002F\u002F 提示词目录路径数组\n  handlers: string[]   \u002F\u002F 处理器目录路径数组\n}\n",[160,685,686,690,707,722,737,752],{"__ignoreMap":162},[182,687,688],{"class":184,"line":185},[182,689,204],{"class":203},[182,691,692,696,698,701,704],{"class":184,"line":207},[182,693,695],{"class":694},"sBMFI","  tools",[182,697,214],{"class":203},[182,699,700],{"class":199}," string",[182,702,703],{"class":210},"[]      ",[182,705,706],{"class":265},"\u002F\u002F 工具目录路径数组\n",[182,708,709,712,714,716,719],{"class":184,"line":235},[182,710,711],{"class":694},"  resources",[182,713,214],{"class":203},[182,715,700],{"class":199},[182,717,718],{"class":210},"[]  ",[182,720,721],{"class":265},"\u002F\u002F 资源目录路径数组\n",[182,723,724,727,729,731,734],{"class":184,"line":246},[182,725,726],{"class":694},"  prompts",[182,728,214],{"class":203},[182,730,700],{"class":199},[182,732,733],{"class":210},"[]    ",[182,735,736],{"class":265},"\u002F\u002F 提示词目录路径数组\n",[182,738,739,742,744,746,749],{"class":184,"line":269},[182,740,741],{"class":694},"  handlers",[182,743,214],{"class":203},[182,745,700],{"class":199},[182,747,748],{"class":210},"[]   ",[182,750,751],{"class":265},"\u002F\u002F 处理器目录路径数组\n",[182,753,754],{"class":184,"line":275},[182,755,756],{"class":203},"}\n",[149,758,759,760,763],{},"所有路径均相对于每个 Nuxt 层的 ",[160,761,762],{},"server\u002F"," 目录。",[145,765,767],{"id":766},"示例共享定义","示例：共享定义",[149,769,770],{},"在多个 Nuxt 层之间共享定义：",[153,772,775],{"className":773,"code":774,"language":158},[156],"project\u002F\n├── shared\u002F\n│   ├── tools\u002F\n│   │   └── common-tool.ts\n│   └── resources\u002F\n│       └── common-resource.ts\n└── apps\u002F\n    ├── web\u002F\n    │   └── server\u002F\n    │       └── mcp\u002F\n    │           └── tools\u002F\n    │               └── web-tool.ts\n    └── api\u002F\n        └── server\u002F\n            └── mcp\u002F\n                └── tools\u002F\n                    └── api-tool.ts\n",[160,776,774],{"__ignoreMap":162},[149,778,779],{},"配置 hook 以包含共享定义：",[153,781,783],{"className":175,"code":782,"filename":177,"language":178,"meta":162,"style":162},"export default defineNuxtConfig({\n  modules: ['@nuxtjs\u002Fmcp-toolkit'],\n  hooks: {\n    'mcp:definitions:paths'(paths) {\n      \u002F\u002F 包含来自项目根目录的共享工具\n      paths.tools.push('..\u002F..\u002Fshared\u002Ftools')\n      paths.resources.push('..\u002F..\u002Fshared\u002Fresources')\n      paths.prompts.push('..\u002F..\u002Fshared\u002Fprompts')\n    },\n  },\n})\n",[160,784,785,797,815,823,839,844,867,890,913,917,921],{"__ignoreMap":162},[182,786,787,789,791,793,795],{"class":184,"line":185},[182,788,189],{"class":188},[182,790,192],{"class":188},[182,792,196],{"class":195},[182,794,200],{"class":199},[182,796,204],{"class":203},[182,798,799,801,803,805,807,809,811,813],{"class":184,"line":207},[182,800,211],{"class":210},[182,802,214],{"class":203},[182,804,217],{"class":199},[182,806,220],{"class":203},[182,808,224],{"class":223},[182,810,220],{"class":203},[182,812,229],{"class":199},[182,814,232],{"class":203},[182,816,817,819,821],{"class":184,"line":235},[182,818,346],{"class":210},[182,820,214],{"class":203},[182,822,243],{"class":203},[182,824,825,827,829,831,833,835,837],{"class":184,"line":246},[182,826,355],{"class":203},[182,828,300],{"class":223},[182,830,220],{"class":203},[182,832,200],{"class":203},[182,834,365],{"class":364},[182,836,368],{"class":203},[182,838,243],{"class":203},[182,840,841],{"class":184,"line":269},[182,842,843],{"class":265},"      \u002F\u002F 包含来自项目根目录的共享工具\n",[182,845,846,848,850,852,854,856,858,860,863,865],{"class":184,"line":275},[182,847,380],{"class":199},[182,849,383],{"class":203},[182,851,386],{"class":199},[182,853,383],{"class":203},[182,855,391],{"class":195},[182,857,200],{"class":210},[182,859,220],{"class":203},[182,861,862],{"class":223},"..\u002F..\u002Fshared\u002Ftools",[182,864,220],{"class":203},[182,866,281],{"class":210},[182,868,869,871,873,875,877,879,881,883,886,888],{"class":184,"line":405},[182,870,380],{"class":199},[182,872,383],{"class":203},[182,874,425],{"class":199},[182,876,383],{"class":203},[182,878,391],{"class":195},[182,880,200],{"class":210},[182,882,220],{"class":203},[182,884,885],{"class":223},"..\u002F..\u002Fshared\u002Fresources",[182,887,220],{"class":203},[182,889,281],{"class":210},[182,891,892,894,896,898,900,902,904,906,909,911],{"class":184,"line":412},[182,893,380],{"class":199},[182,895,383],{"class":203},[182,897,461],{"class":199},[182,899,383],{"class":203},[182,901,391],{"class":195},[182,903,200],{"class":210},[182,905,220],{"class":203},[182,907,908],{"class":223},"..\u002F..\u002Fshared\u002Fprompts",[182,910,220],{"class":203},[182,912,281],{"class":210},[182,914,915],{"class":184,"line":418},[182,916,482],{"class":203},[182,918,919],{"class":184,"line":443},[182,920,272],{"class":203},[182,922,923,925],{"class":184,"line":448},[182,924,278],{"class":203},[182,926,281],{"class":199},[145,928,930],{"id":929},"示例多个源目录","示例：多个源目录",[149,932,933],{},"扫描多个目录以查找定义：",[153,935,937],{"className":175,"code":936,"filename":177,"language":178,"meta":162,"style":162},"export default defineNuxtConfig({\n  modules: ['@nuxtjs\u002Fmcp-toolkit'],\n  mcp: {\n    dir: 'mcp', \u002F\u002F 默认目录\n  },\n  hooks: {\n    'mcp:definitions:paths'(paths) {\n      \u002F\u002F 添加额外的工具目录\n      paths.tools.push('legacy-tools')\n      paths.tools.push('new-tools')\n\n      \u002F\u002F 添加额外的资源目录\n      paths.resources.push('external-resources')\n    },\n  },\n})\n",[160,938,939,951,969,977,995,999,1007,1023,1028,1051,1074,1078,1083,1106,1110,1114],{"__ignoreMap":162},[182,940,941,943,945,947,949],{"class":184,"line":185},[182,942,189],{"class":188},[182,944,192],{"class":188},[182,946,196],{"class":195},[182,948,200],{"class":199},[182,950,204],{"class":203},[182,952,953,955,957,959,961,963,965,967],{"class":184,"line":207},[182,954,211],{"class":210},[182,956,214],{"class":203},[182,958,217],{"class":199},[182,960,220],{"class":203},[182,962,224],{"class":223},[182,964,220],{"class":203},[182,966,229],{"class":199},[182,968,232],{"class":203},[182,970,971,973,975],{"class":184,"line":235},[182,972,238],{"class":210},[182,974,214],{"class":203},[182,976,243],{"class":203},[182,978,979,981,983,985,988,990,992],{"class":184,"line":246},[182,980,249],{"class":210},[182,982,214],{"class":203},[182,984,254],{"class":203},[182,986,987],{"class":223},"mcp",[182,989,220],{"class":203},[182,991,262],{"class":203},[182,993,994],{"class":265}," \u002F\u002F 默认目录\n",[182,996,997],{"class":184,"line":269},[182,998,272],{"class":203},[182,1000,1001,1003,1005],{"class":184,"line":275},[182,1002,346],{"class":210},[182,1004,214],{"class":203},[182,1006,243],{"class":203},[182,1008,1009,1011,1013,1015,1017,1019,1021],{"class":184,"line":405},[182,1010,355],{"class":203},[182,1012,300],{"class":223},[182,1014,220],{"class":203},[182,1016,200],{"class":203},[182,1018,365],{"class":364},[182,1020,368],{"class":203},[182,1022,243],{"class":203},[182,1024,1025],{"class":184,"line":412},[182,1026,1027],{"class":265},"      \u002F\u002F 添加额外的工具目录\n",[182,1029,1030,1032,1034,1036,1038,1040,1042,1044,1047,1049],{"class":184,"line":418},[182,1031,380],{"class":199},[182,1033,383],{"class":203},[182,1035,386],{"class":199},[182,1037,383],{"class":203},[182,1039,391],{"class":195},[182,1041,200],{"class":210},[182,1043,220],{"class":203},[182,1045,1046],{"class":223},"legacy-tools",[182,1048,220],{"class":203},[182,1050,281],{"class":210},[182,1052,1053,1055,1057,1059,1061,1063,1065,1067,1070,1072],{"class":184,"line":443},[182,1054,380],{"class":199},[182,1056,383],{"class":203},[182,1058,386],{"class":199},[182,1060,383],{"class":203},[182,1062,391],{"class":195},[182,1064,200],{"class":210},[182,1066,220],{"class":203},[182,1068,1069],{"class":223},"new-tools",[182,1071,220],{"class":203},[182,1073,281],{"class":210},[182,1075,1076],{"class":184,"line":448},[182,1077,409],{"emptyLinePlaceholder":408},[182,1079,1080],{"class":184,"line":454},[182,1081,1082],{"class":265},"      \u002F\u002F 添加额外的资源目录\n",[182,1084,1085,1087,1089,1091,1093,1095,1097,1099,1102,1104],{"class":184,"line":479},[182,1086,380],{"class":199},[182,1088,383],{"class":203},[182,1090,425],{"class":199},[182,1092,383],{"class":203},[182,1094,391],{"class":195},[182,1096,200],{"class":210},[182,1098,220],{"class":203},[182,1100,1101],{"class":223},"external-resources",[182,1103,220],{"class":203},[182,1105,281],{"class":210},[182,1107,1108],{"class":184,"line":485},[182,1109,482],{"class":203},[182,1111,1112],{"class":184,"line":490},[182,1113,272],{"class":203},[182,1115,1117,1119],{"class":184,"line":1116},16,[182,1118,278],{"class":203},[182,1120,281],{"class":199},[149,1122,1123],{},"这将扫描：",[1125,1126,1127,1134,1139,1144,1149],"ul",{},[1128,1129,1130,1133],"li",{},[160,1131,1132],{},"server\u002Fmcp\u002Ftools\u002F","（默认）",[1128,1135,1136],{},[160,1137,1138],{},"server\u002Flegacy-tools\u002F",[1128,1140,1141],{},[160,1142,1143],{},"server\u002Fnew-tools\u002F",[1128,1145,1146,1133],{},[160,1147,1148],{},"server\u002Fmcp\u002Fresources\u002F",[1128,1150,1151],{},[160,1152,1153],{},"server\u002Fexternal-resources\u002F",[145,1155,1157],{"id":1156},"示例特定层的路径","示例：特定层的路径",[149,1159,1160],{},"在 Nuxt 层设置中，按层配置路径：",[153,1162,1165],{"className":175,"code":1163,"filename":1164,"language":178,"meta":162,"style":162},"export default defineNuxtConfig({\n  modules: ['@nuxtjs\u002Fmcp-toolkit'],\n  hooks: {\n    'mcp:definitions:paths'(paths) {\n      \u002F\u002F 仅包含特定于 API 的工具\n      paths.tools = ['api\u002Ftools']\n      paths.resources = ['api\u002Fresources']\n    },\n  },\n})\n","layers\u002Fapi\u002Fnuxt.config.ts",[160,1166,1167,1179,1197,1205,1221,1226,1249,1270,1274,1278],{"__ignoreMap":162},[182,1168,1169,1171,1173,1175,1177],{"class":184,"line":185},[182,1170,189],{"class":188},[182,1172,192],{"class":188},[182,1174,196],{"class":195},[182,1176,200],{"class":199},[182,1178,204],{"class":203},[182,1180,1181,1183,1185,1187,1189,1191,1193,1195],{"class":184,"line":207},[182,1182,211],{"class":210},[182,1184,214],{"class":203},[182,1186,217],{"class":199},[182,1188,220],{"class":203},[182,1190,224],{"class":223},[182,1192,220],{"class":203},[182,1194,229],{"class":199},[182,1196,232],{"class":203},[182,1198,1199,1201,1203],{"class":184,"line":235},[182,1200,346],{"class":210},[182,1202,214],{"class":203},[182,1204,243],{"class":203},[182,1206,1207,1209,1211,1213,1215,1217,1219],{"class":184,"line":246},[182,1208,355],{"class":203},[182,1210,300],{"class":223},[182,1212,220],{"class":203},[182,1214,200],{"class":203},[182,1216,365],{"class":364},[182,1218,368],{"class":203},[182,1220,243],{"class":203},[182,1222,1223],{"class":184,"line":269},[182,1224,1225],{"class":265},"      \u002F\u002F 仅包含特定于 API 的工具\n",[182,1227,1228,1230,1232,1234,1237,1239,1241,1244,1246],{"class":184,"line":275},[182,1229,380],{"class":199},[182,1231,383],{"class":203},[182,1233,386],{"class":199},[182,1235,1236],{"class":203}," =",[182,1238,217],{"class":210},[182,1240,220],{"class":203},[182,1242,1243],{"class":223},"api\u002Ftools",[182,1245,220],{"class":203},[182,1247,1248],{"class":210},"]\n",[182,1250,1251,1253,1255,1257,1259,1261,1263,1266,1268],{"class":184,"line":405},[182,1252,380],{"class":199},[182,1254,383],{"class":203},[182,1256,425],{"class":199},[182,1258,1236],{"class":203},[182,1260,217],{"class":210},[182,1262,220],{"class":203},[182,1264,1265],{"class":223},"api\u002Fresources",[182,1267,220],{"class":203},[182,1269,1248],{"class":210},[182,1271,1272],{"class":184,"line":412},[182,1273,482],{"class":203},[182,1275,1276],{"class":184,"line":418},[182,1277,272],{"class":203},[182,1279,1280,1282],{"class":184,"line":443},[182,1281,278],{"class":203},[182,1283,281],{"class":199},[145,1285,1286],{"id":1286},"路径解析",[149,1288,1289],{},"路径相对于以下位置进行解析：",[1291,1292,1293,1299],"ol",{},[1128,1294,1295,1296,1298],{},"当前 Nuxt 层的 ",[160,1297,762],{}," 目录",[1128,1300,1301],{},"项目根目录（用于绝对路径）",[153,1303,1305],{"className":175,"code":1304,"language":178,"meta":162,"style":162},"\u002F\u002F 相对于 server\u002F\npaths.tools.push('custom\u002Ftools')\n\n\u002F\u002F 从项目根目录开始的绝对路径\npaths.tools.push('\u002Fabsolute\u002Fpath\u002Fto\u002Ftools')\n",[160,1306,1307,1312,1335,1339,1344],{"__ignoreMap":162},[182,1308,1309],{"class":184,"line":185},[182,1310,1311],{"class":265},"\u002F\u002F 相对于 server\u002F\n",[182,1313,1314,1316,1318,1320,1322,1324,1326,1328,1331,1333],{"class":184,"line":207},[182,1315,365],{"class":199},[182,1317,383],{"class":203},[182,1319,386],{"class":199},[182,1321,383],{"class":203},[182,1323,391],{"class":195},[182,1325,200],{"class":199},[182,1327,220],{"class":203},[182,1329,1330],{"class":223},"custom\u002Ftools",[182,1332,220],{"class":203},[182,1334,281],{"class":199},[182,1336,1337],{"class":184,"line":235},[182,1338,409],{"emptyLinePlaceholder":408},[182,1340,1341],{"class":184,"line":246},[182,1342,1343],{"class":265},"\u002F\u002F 从项目根目录开始的绝对路径\n",[182,1345,1346,1348,1350,1352,1354,1356,1358,1360,1363,1365],{"class":184,"line":269},[182,1347,365],{"class":199},[182,1349,383],{"class":203},[182,1351,386],{"class":199},[182,1353,383],{"class":203},[182,1355,391],{"class":195},[182,1357,200],{"class":199},[182,1359,220],{"class":203},[182,1361,1362],{"class":223},"\u002Fabsolute\u002Fpath\u002Fto\u002Ftools",[182,1364,220],{"class":203},[182,1366,281],{"class":199},[145,1368,1369],{"id":1369},"最佳实践",[1291,1371,1372,1379,1385,1391,1397],{},[1128,1373,1374,1378],{},[1375,1376,1377],"strong",{},"使用描述性的目录名称","：明确每个目录包含的内容",[1128,1380,1381,1384],{},[1375,1382,1383],{},"保持路径有序","：将相关的定义分组在一起",[1128,1386,1387,1390],{},[1375,1388,1389],{},"记录自定义路径","：添加注释说明为何使用自定义路径",[1128,1392,1393,1396],{},[1375,1394,1395],{},"测试路径解析","：确保路径在所有环境中都能正确解析",[1128,1398,1399,1402],{},[1375,1400,1401],{},"考虑层结构","：在复杂的多应用设置中使用层",[145,1404,1405],{"id":1405},"下一步",[1125,1407,1408,1415,1421],{},[1128,1409,1410,1414],{},[1411,1412,1413],"a",{"href":62},"处理器"," - 创建多个 MCP 端点",[1128,1416,1417,1420],{},[1411,1418,1419],{"href":87},"Hooks"," - 了解更多关于 Hook 的信息",[1128,1422,1423,1425],{},[1411,1424,20],{"href":21}," - 配置模块",[1427,1428,1429],"style",{},"html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html 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 .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 .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 .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}",{"title":162,"searchDepth":207,"depth":207,"links":1431},[1432,1433,1434,1438,1439,1440,1441,1442,1443,1444],{"id":147,"depth":207,"text":147},{"id":165,"depth":207,"text":165},{"id":293,"depth":207,"text":294,"children":1435},[1436,1437],{"id":305,"depth":235,"text":306},{"id":497,"depth":235,"text":498},{"id":675,"depth":207,"text":675},{"id":766,"depth":207,"text":767},{"id":929,"depth":207,"text":930},{"id":1156,"depth":207,"text":1157},{"id":1286,"depth":207,"text":1286},{"id":1369,"depth":207,"text":1369},{"id":1405,"depth":207,"text":1405},"自定义模块查找 MCP 定义的位置。","md",null,{},{"icon":74},{"title":71,"description":1451},"自定义 MCP 定义的目录结构。","XpI1xRqLVK63GpKAddEd7Fyolht-lhjNdyuCgJX7ock",[1454,1456],{"title":61,"path":62,"stem":63,"description":1455,"icon":64,"children":-1},"创建具有专属工具、资源和提示词的自定义 MCP 端点。",{"title":76,"path":77,"stem":78,"description":1457,"icon":79,"children":-1},"拦截 MCP 请求以添加身份验证、日志记录、分析等功能。",1775615723509]