[{"data":1,"prerenderedAt":1224},["ShallowReactive",2],{"navigation_docs":3,"-resources-static-and-structure":282,"-resources-static-and-structure-surround":1219},[4,40,70,99,122,156,189,253],{"title":5,"path":6,"stem":7,"children":8,"page":39},"入门指南","\u002Fgetting-started","1.getting-started",[9,14,19,24,29,34],{"title":10,"path":11,"stem":12,"icon":13},"简介","\u002Fgetting-started\u002Fintroduction","1.getting-started\u002F1.introduction","i-lucide-book-open",{"title":15,"path":16,"stem":17,"icon":18},"安装","\u002Fgetting-started\u002Finstallation","1.getting-started\u002F2.installation","i-lucide-download",{"title":20,"path":21,"stem":22,"icon":23},"配置","\u002Fgetting-started\u002Fconfiguration","1.getting-started\u002F3.configuration","i-lucide-settings",{"title":25,"path":26,"stem":27,"icon":28},"Inspector","\u002Fgetting-started\u002Finspector","1.getting-started\u002F4.inspector","i-lucide-circuit-board",{"title":30,"path":31,"stem":32,"icon":33},"Connection","\u002Fgetting-started\u002Fconnection","1.getting-started\u002F5.connection","i-lucide-plug",{"title":35,"path":36,"stem":37,"icon":38},"Agent Skills","\u002Fgetting-started\u002Fagent-skills","1.getting-started\u002F6.agent-skills","i-lucide-sparkles",false,{"title":41,"path":42,"stem":43,"children":44,"page":39},"工具","\u002Ftools","2.tools",[45,50,55,60,65],{"title":46,"path":47,"stem":48,"icon":49},"概览","\u002Ftools\u002Foverview","2.tools\u002F0.overview","i-lucide-wrench",{"title":51,"path":52,"stem":53,"icon":54},"Schema, handler & returns","\u002Ftools\u002Fschema-handler","2.tools\u002F1.schema-handler","i-lucide-braces",{"title":56,"path":57,"stem":58,"icon":59},"注释与输入示例","\u002Ftools\u002Fannotations","2.tools\u002F2.annotations","i-lucide-badge-info",{"title":61,"path":62,"stem":63,"icon":64},"错误与缓存","\u002Ftools\u002Ferrors-caching","2.tools\u002F3.errors-caching","i-lucide-shield",{"title":66,"path":67,"stem":68,"icon":69},"分组、文件与动态注册","\u002Ftools\u002Fgroups-organization","2.tools\u002F4.groups-organization","i-lucide-tags",{"title":71,"path":72,"stem":73,"children":74,"page":39},"资源","\u002Fresources","3.resources",[75,79,84,89,94],{"title":46,"path":76,"stem":77,"icon":78},"\u002Fresources\u002Foverview","3.resources\u002F0.overview","i-lucide-package",{"title":80,"path":81,"stem":82,"icon":83},"静态资源与结构","\u002Fresources\u002Fstatic-and-structure","3.resources\u002F1.static-and-structure","i-lucide-file-stack",{"title":85,"path":86,"stem":87,"icon":88},"模板与处理程序","\u002Fresources\u002Ftemplates-and-handlers","3.resources\u002F2.templates-and-handlers","i-lucide-git-branch",{"title":90,"path":91,"stem":92,"icon":93},"元数据、内容与错误","\u002Fresources\u002Fcontent-metadata-errors","3.resources\u002F3.content-metadata-errors","i-lucide-layers",{"title":95,"path":96,"stem":97,"icon":98},"分组与组织","\u002Fresources\u002Forganization","3.resources\u002F4.organization","i-lucide-folder-tree",{"title":100,"path":101,"stem":102,"children":103,"page":39},"提示词","\u002Fprompts","4.prompts",[104,108,113,117],{"title":46,"path":105,"stem":106,"icon":107},"\u002Fprompts\u002Foverview","4.prompts\u002F0.overview","i-lucide-message-square",{"title":109,"path":110,"stem":111,"icon":112},"编写与结构","\u002Fprompts\u002Fauthoring","4.prompts\u002F1.authoring","i-lucide-pen-line",{"title":114,"path":115,"stem":116,"icon":93},"输入、处理器与消息","\u002Fprompts\u002Finput-handler-messages","4.prompts\u002F2.input-handler-messages",{"title":118,"path":119,"stem":120,"icon":121},"模式与高级用法","\u002Fprompts\u002Fpatterns-advanced","4.prompts\u002F3.patterns-advanced","i-lucide-line-chart",{"title":123,"path":124,"stem":125,"children":126,"page":39},"处理器","\u002Fhandlers","5.handlers",[127,131,136,141,146,151],{"title":46,"path":128,"stem":129,"icon":130},"\u002Fhandlers\u002Foverview","5.handlers\u002F0.overview","i-lucide-server",{"title":132,"path":133,"stem":134,"icon":135},"默认与自定义处理器","\u002Fhandlers\u002Fdefault-and-custom","5.handlers\u002F1.default-and-custom","i-lucide-toggle-left",{"title":137,"path":138,"stem":139,"icon":140},"结构与选项","\u002Fhandlers\u002Fstructure-and-options","5.handlers\u002F2.structure-and-options","i-lucide-sliders-horizontal",{"title":142,"path":143,"stem":144,"icon":145},"示例与路由","\u002Fhandlers\u002Fexamples-routing","5.handlers\u002F3.examples-routing","i-lucide-route",{"title":147,"path":148,"stem":149,"icon":150},"分享与实践","\u002Fhandlers\u002Fsharing-practices","5.handlers\u002F4.sharing-practices","i-lucide-share-2",{"title":152,"path":153,"stem":154,"icon":155},"多处理器组织","\u002Fhandlers\u002Forganization","5.handlers\u002F5.organization","i-lucide-network",{"title":157,"path":158,"stem":159,"children":160,"page":39},"应用","\u002Fapps","6.apps",[161,165,170,175,179,184],{"title":46,"path":162,"stem":163,"icon":164},"\u002Fapps\u002Foverview","6.apps\u002F0.overview","i-lucide-app-window",{"title":166,"path":167,"stem":168,"icon":169},"编写与 defineMcpApp","\u002Fapps\u002Fauthoring","6.apps\u002F1.authoring","i-lucide-code-2",{"title":171,"path":172,"stem":173,"icon":174},"useMcpApp() 桥接","\u002Fapps\u002Fuse-mcp-app","6.apps\u002F2.use-mcp-app","i-lucide-message-circle",{"title":176,"path":177,"stem":178,"icon":64},"CSP 与构建流水线","\u002Fapps\u002Fcsp-and-wiring","6.apps\u002F3.csp-and-wiring",{"title":180,"path":181,"stem":182,"icon":183},"测试与发布","\u002Fapps\u002Ftesting-publishing","6.apps\u002F4.testing-publishing","i-lucide-rocket",{"title":185,"path":186,"stem":187,"icon":188},"模式与限制","\u002Fapps\u002Fpatterns-reference","6.apps\u002F5.patterns-reference","i-lucide-book-marked",{"title":190,"path":191,"stem":192,"children":193,"page":39},"进阶主题","\u002Fadvanced","7.advanced",[194,199,204,209,214,218,223,228,233,238,243,248],{"title":195,"path":196,"stem":197,"icon":198},"自定义路径","\u002Fadvanced\u002Fcustom-paths","7.advanced\u002F1.custom-paths","i-lucide-folder",{"title":200,"path":201,"stem":202,"icon":203},"日志","\u002Fadvanced\u002Flogging","7.advanced\u002F10.logging","i-lucide-scroll-text",{"title":205,"path":206,"stem":207,"icon":208},"MCP Apps 内部机制","\u002Fadvanced\u002Fmcp-apps-internals","7.advanced\u002F11.mcp-apps-internals","i-lucide-cog",{"title":210,"path":211,"stem":212,"icon":213},"列出定义","\u002Fadvanced\u002Flisting-definitions","7.advanced\u002F12.listing-definitions","i-lucide-list",{"title":215,"path":216,"stem":217,"icon":64},"Middleware","\u002Fadvanced\u002Fmiddleware","7.advanced\u002F2.middleware",{"title":219,"path":220,"stem":221,"icon":222},"TypeScript","\u002Fadvanced\u002Ftypescript","7.advanced\u002F3.typescript","i-lucide-type",{"title":224,"path":225,"stem":226,"icon":227},"Hooks","\u002Fadvanced\u002Fhooks","7.advanced\u002F4.hooks","i-lucide-webhook",{"title":229,"path":230,"stem":231,"icon":232},"MCP 评估","\u002Fadvanced\u002Fevals","7.advanced\u002F5.evals","i-lucide-flask-conical",{"title":234,"path":235,"stem":236,"icon":237},"会话","\u002Fadvanced\u002Fsessions","7.advanced\u002F6.sessions","i-lucide-database",{"title":239,"path":240,"stem":241,"icon":242},"动态定义","\u002Fadvanced\u002Fdynamic-definitions","7.advanced\u002F7.dynamic-definitions","i-lucide-toggle-right",{"title":244,"path":245,"stem":246,"icon":247},"代码模式 (Code Mode)","\u002Fadvanced\u002Fcode-mode","7.advanced\u002F8.code-mode","i-lucide-code",{"title":249,"path":250,"stem":251,"icon":252},"启发式询问","\u002Fadvanced\u002Felicitation","7.advanced\u002F9.elicitation","i-lucide-message-square-quote",{"title":254,"path":255,"stem":256,"children":257,"page":39},"示例","\u002Fexamples","8.examples",[258,263,268,273,278],{"title":259,"path":260,"stem":261,"icon":262},"身份验证","\u002Fexamples\u002Fauthentication","8.examples\u002F1.authentication","i-lucide-shield-check",{"title":264,"path":265,"stem":266,"icon":267},"API 集成","\u002Fexamples\u002Fapi-integration","8.examples\u002F2.api-integration","i-lucide-globe",{"title":269,"path":270,"stem":271,"icon":272},"常见模式","\u002Fexamples\u002Fcommon-patterns","8.examples\u002F3.common-patterns","i-lucide-lightbulb",{"title":274,"path":275,"stem":276,"icon":277},"文件操作","\u002Fexamples\u002Ffile-operations","8.examples\u002F4.file-operations","i-lucide-file",{"title":279,"path":280,"stem":281,"icon":107},"提示词示例","\u002Fexamples\u002Fprompt-examples","8.examples\u002F5.prompt-examples",{"id":283,"title":80,"body":284,"description":1210,"extension":1211,"links":1212,"meta":1213,"navigation":1214,"path":81,"seo":1215,"stem":82,"__hash__":1218},"docs\u002F3.resources\u002F1.static-and-structure.md",{"type":285,"value":286,"toc":1202},"minimark",[287,291,295,299,307,444,447,476,479,489,848,851,861,934,941,959,968,971,974,1198],[288,289,290],"h2",{"id":290},"静态资源",[292,293,294],"p",{},"静态资源具有固定的 URI，不会改变。",[296,297,298],"h3",{"id":298},"简单文件资源",[292,300,301,302,306],{},"暴露本地文件最简单的方法是使用 ",[303,304,305],"code",{},"file"," 属性。这会自动处理 URI 生成、MIME 类型检测和文件读取。",[308,309,315],"pre",{"className":310,"code":311,"filename":312,"language":313,"meta":314,"style":314},"language-typescript shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import { defineMcpResource } from '@nuxtjs\u002Fmcp-toolkit\u002Fserver'\n\nexport default defineMcpResource({\n  name: 'readme',\n  description: '项目 README 文件',\n  file: 'README.md', \u002F\u002F 相对于项目根目录\n})\n","server\u002Fmcp\u002Fresources\u002Freadme.ts","typescript","",[303,316,317,350,357,375,396,413,435],{"__ignoreMap":314},[318,319,322,326,330,334,337,340,343,347],"span",{"class":320,"line":321},"line",1,[318,323,325],{"class":324},"s7zQu","import",[318,327,329],{"class":328},"sMK4o"," {",[318,331,333],{"class":332},"sTEyZ"," defineMcpResource",[318,335,336],{"class":328}," }",[318,338,339],{"class":324}," from",[318,341,342],{"class":328}," '",[318,344,346],{"class":345},"sfazB","@nuxtjs\u002Fmcp-toolkit\u002Fserver",[318,348,349],{"class":328},"'\n",[318,351,353],{"class":320,"line":352},2,[318,354,356],{"emptyLinePlaceholder":355},true,"\n",[318,358,360,363,366,369,372],{"class":320,"line":359},3,[318,361,362],{"class":324},"export",[318,364,365],{"class":324}," default",[318,367,333],{"class":368},"s2Zo4",[318,370,371],{"class":332},"(",[318,373,374],{"class":328},"{\n",[318,376,378,382,385,387,390,393],{"class":320,"line":377},4,[318,379,381],{"class":380},"swJcz","  name",[318,383,384],{"class":328},":",[318,386,342],{"class":328},[318,388,389],{"class":345},"readme",[318,391,392],{"class":328},"'",[318,394,395],{"class":328},",\n",[318,397,399,402,404,406,409,411],{"class":320,"line":398},5,[318,400,401],{"class":380},"  description",[318,403,384],{"class":328},[318,405,342],{"class":328},[318,407,408],{"class":345},"项目 README 文件",[318,410,392],{"class":328},[318,412,395],{"class":328},[318,414,416,419,421,423,426,428,431],{"class":320,"line":415},6,[318,417,418],{"class":380},"  file",[318,420,384],{"class":328},[318,422,342],{"class":328},[318,424,425],{"class":345},"README.md",[318,427,392],{"class":328},[318,429,430],{"class":328},",",[318,432,434],{"class":433},"sHwdD"," \u002F\u002F 相对于项目根目录\n",[318,436,438,441],{"class":320,"line":437},7,[318,439,440],{"class":328},"}",[318,442,443],{"class":332},")\n",[292,445,446],{},"这将生成：",[448,449,450,461,466],"ul",{},[451,452,453,457,458],"li",{},[454,455,456],"strong",{},"URI","：",[303,459,460],{},"file:\u002F\u002F\u002Fpath\u002Fto\u002Fproject\u002FREADME.md",[451,462,463,465],{},[454,464,123],{},"：自动读取文件内容",[451,467,468,471,472,475],{},[454,469,470],{},"MIME 类型","：自动检测（例如，",[303,473,474],{},"text\u002Fmarkdown","）",[296,477,478],{"id":478},"自定义静态资源",[292,480,481,482,485,486,457],{},"如需更多控制，你可以手动定义 ",[303,483,484],{},"uri"," 和 ",[303,487,488],{},"handler",[308,490,493],{"className":310,"code":491,"filename":492,"language":313,"meta":314,"style":314},"import { readFile } from 'node:fs\u002Fpromises'\nimport { fileURLToPath } from 'node:url'\nimport { defineMcpResource } from '@nuxtjs\u002Fmcp-toolkit\u002Fserver'\n\nexport default defineMcpResource({\n  name: 'custom-readme',\n  title: 'README',\n  description: '项目 README 文件',\n  uri: 'file:\u002F\u002F\u002FREADME.md',\n  metadata: {\n    mimeType: 'text\u002Fmarkdown',\n  },\n  handler: async (uri: URL) => {\n    const filePath = fileURLToPath(uri)\n    const content = await readFile(filePath, 'utf-8')\n    return {\n      contents: [{\n        uri: uri.toString(),\n        mimeType: 'text\u002Fmarkdown',\n        text: content,\n      }],\n    }\n  },\n})\n","server\u002Fmcp\u002Fresources\u002Fcustom-readme.ts",[303,494,495,515,535,553,557,569,584,600,615,632,643,659,665,697,717,748,756,769,791,807,819,830,836,841],{"__ignoreMap":314},[318,496,497,499,501,504,506,508,510,513],{"class":320,"line":321},[318,498,325],{"class":324},[318,500,329],{"class":328},[318,502,503],{"class":332}," readFile",[318,505,336],{"class":328},[318,507,339],{"class":324},[318,509,342],{"class":328},[318,511,512],{"class":345},"node:fs\u002Fpromises",[318,514,349],{"class":328},[318,516,517,519,521,524,526,528,530,533],{"class":320,"line":352},[318,518,325],{"class":324},[318,520,329],{"class":328},[318,522,523],{"class":332}," fileURLToPath",[318,525,336],{"class":328},[318,527,339],{"class":324},[318,529,342],{"class":328},[318,531,532],{"class":345},"node:url",[318,534,349],{"class":328},[318,536,537,539,541,543,545,547,549,551],{"class":320,"line":359},[318,538,325],{"class":324},[318,540,329],{"class":328},[318,542,333],{"class":332},[318,544,336],{"class":328},[318,546,339],{"class":324},[318,548,342],{"class":328},[318,550,346],{"class":345},[318,552,349],{"class":328},[318,554,555],{"class":320,"line":377},[318,556,356],{"emptyLinePlaceholder":355},[318,558,559,561,563,565,567],{"class":320,"line":398},[318,560,362],{"class":324},[318,562,365],{"class":324},[318,564,333],{"class":368},[318,566,371],{"class":332},[318,568,374],{"class":328},[318,570,571,573,575,577,580,582],{"class":320,"line":415},[318,572,381],{"class":380},[318,574,384],{"class":328},[318,576,342],{"class":328},[318,578,579],{"class":345},"custom-readme",[318,581,392],{"class":328},[318,583,395],{"class":328},[318,585,586,589,591,593,596,598],{"class":320,"line":437},[318,587,588],{"class":380},"  title",[318,590,384],{"class":328},[318,592,342],{"class":328},[318,594,595],{"class":345},"README",[318,597,392],{"class":328},[318,599,395],{"class":328},[318,601,603,605,607,609,611,613],{"class":320,"line":602},8,[318,604,401],{"class":380},[318,606,384],{"class":328},[318,608,342],{"class":328},[318,610,408],{"class":345},[318,612,392],{"class":328},[318,614,395],{"class":328},[318,616,618,621,623,625,628,630],{"class":320,"line":617},9,[318,619,620],{"class":380},"  uri",[318,622,384],{"class":328},[318,624,342],{"class":328},[318,626,627],{"class":345},"file:\u002F\u002F\u002FREADME.md",[318,629,392],{"class":328},[318,631,395],{"class":328},[318,633,635,638,640],{"class":320,"line":634},10,[318,636,637],{"class":380},"  metadata",[318,639,384],{"class":328},[318,641,642],{"class":328}," {\n",[318,644,646,649,651,653,655,657],{"class":320,"line":645},11,[318,647,648],{"class":380},"    mimeType",[318,650,384],{"class":328},[318,652,342],{"class":328},[318,654,474],{"class":345},[318,656,392],{"class":328},[318,658,395],{"class":328},[318,660,662],{"class":320,"line":661},12,[318,663,664],{"class":328},"  },\n",[318,666,668,671,673,677,680,683,685,689,692,695],{"class":320,"line":667},13,[318,669,670],{"class":368},"  handler",[318,672,384],{"class":328},[318,674,676],{"class":675},"spNyl"," async",[318,678,679],{"class":328}," (",[318,681,484],{"class":682},"sHdIc",[318,684,384],{"class":328},[318,686,688],{"class":687},"sBMFI"," URL",[318,690,691],{"class":328},")",[318,693,694],{"class":675}," =>",[318,696,642],{"class":328},[318,698,700,703,706,709,711,713,715],{"class":320,"line":699},14,[318,701,702],{"class":675},"    const",[318,704,705],{"class":332}," filePath",[318,707,708],{"class":328}," =",[318,710,523],{"class":368},[318,712,371],{"class":380},[318,714,484],{"class":332},[318,716,443],{"class":380},[318,718,720,722,725,727,730,732,734,737,739,741,744,746],{"class":320,"line":719},15,[318,721,702],{"class":675},[318,723,724],{"class":332}," content",[318,726,708],{"class":328},[318,728,729],{"class":324}," await",[318,731,503],{"class":368},[318,733,371],{"class":380},[318,735,736],{"class":332},"filePath",[318,738,430],{"class":328},[318,740,342],{"class":328},[318,742,743],{"class":345},"utf-8",[318,745,392],{"class":328},[318,747,443],{"class":380},[318,749,751,754],{"class":320,"line":750},16,[318,752,753],{"class":324},"    return",[318,755,642],{"class":328},[318,757,759,762,764,767],{"class":320,"line":758},17,[318,760,761],{"class":380},"      contents",[318,763,384],{"class":328},[318,765,766],{"class":380}," [",[318,768,374],{"class":328},[318,770,772,775,777,780,783,786,789],{"class":320,"line":771},18,[318,773,774],{"class":380},"        uri",[318,776,384],{"class":328},[318,778,779],{"class":332}," uri",[318,781,782],{"class":328},".",[318,784,785],{"class":368},"toString",[318,787,788],{"class":380},"()",[318,790,395],{"class":328},[318,792,794,797,799,801,803,805],{"class":320,"line":793},19,[318,795,796],{"class":380},"        mimeType",[318,798,384],{"class":328},[318,800,342],{"class":328},[318,802,474],{"class":345},[318,804,392],{"class":328},[318,806,395],{"class":328},[318,808,810,813,815,817],{"class":320,"line":809},20,[318,811,812],{"class":380},"        text",[318,814,384],{"class":328},[318,816,724],{"class":332},[318,818,395],{"class":328},[318,820,822,825,828],{"class":320,"line":821},21,[318,823,824],{"class":328},"      }",[318,826,827],{"class":380},"]",[318,829,395],{"class":328},[318,831,833],{"class":320,"line":832},22,[318,834,835],{"class":328},"    }\n",[318,837,839],{"class":320,"line":838},23,[318,840,664],{"class":328},[318,842,844,846],{"class":320,"line":843},24,[318,845,440],{"class":328},[318,847,443],{"class":332},[288,849,850],{"id":850},"自动生成的名称和标题",[292,852,853,854,485,857,860],{},"你可以省略 ",[303,855,856],{},"name",[303,858,859],{},"title","——它们会根据文件名自动生成：",[308,862,865],{"className":310,"code":863,"filename":864,"language":313,"meta":314,"style":314},"import { defineMcpResource } from '@nuxtjs\u002Fmcp-toolkit\u002Fserver'\n\nexport default defineMcpResource({\n  \u002F\u002F name 和 title 会根据文件名自动生成：\n  \u002F\u002F name: 'project-readme'\n  \u002F\u002F title: 'Project Readme'\n  file: 'README.md'\n})\n","server\u002Fmcp\u002Fresources\u002Fproject-readme.ts",[303,866,867,885,889,901,906,911,916,928],{"__ignoreMap":314},[318,868,869,871,873,875,877,879,881,883],{"class":320,"line":321},[318,870,325],{"class":324},[318,872,329],{"class":328},[318,874,333],{"class":332},[318,876,336],{"class":328},[318,878,339],{"class":324},[318,880,342],{"class":328},[318,882,346],{"class":345},[318,884,349],{"class":328},[318,886,887],{"class":320,"line":352},[318,888,356],{"emptyLinePlaceholder":355},[318,890,891,893,895,897,899],{"class":320,"line":359},[318,892,362],{"class":324},[318,894,365],{"class":324},[318,896,333],{"class":368},[318,898,371],{"class":332},[318,900,374],{"class":328},[318,902,903],{"class":320,"line":377},[318,904,905],{"class":433},"  \u002F\u002F name 和 title 会根据文件名自动生成：\n",[318,907,908],{"class":320,"line":398},[318,909,910],{"class":433},"  \u002F\u002F name: 'project-readme'\n",[318,912,913],{"class":320,"line":415},[318,914,915],{"class":433},"  \u002F\u002F title: 'Project Readme'\n",[318,917,918,920,922,924,926],{"class":320,"line":437},[318,919,418],{"class":380},[318,921,384],{"class":328},[318,923,342],{"class":328},[318,925,425],{"class":345},[318,927,349],{"class":328},[318,929,930,932],{"class":320,"line":602},[318,931,440],{"class":328},[318,933,443],{"class":332},[292,935,936,937,940],{},"文件名 ",[303,938,939],{},"project-readme.ts"," 会自动变为：",[448,942,943,951],{},[451,944,945,457,947,950],{},[303,946,856],{},[303,948,949],{},"project-readme","（kebab-case）",[451,952,953,457,955,958],{},[303,954,859],{},[303,956,957],{},"Project Readme","（title case）",[292,960,961,962,964,965,967],{},"你仍然可以显式提供 ",[303,963,856],{}," 或 ",[303,966,859],{}," 来覆盖自动生成的值。",[288,969,970],{"id":970},"资源结构",[292,972,973],{},"一个资源定义由以下部分组成：",[975,976,977,1070],"code-group",{},[308,978,981],{"className":310,"code":979,"filename":980,"language":313,"meta":314,"style":314},"import { defineMcpResource } from '@nuxtjs\u002Fmcp-toolkit\u002Fserver'\n\nexport default defineMcpResource({\n  name: 'resource-name',\n  file: 'path\u002Fto\u002Ffile.txt', \u002F\u002F 本地文件路径\n  metadata: { ... }\n})\n","File Resource",[303,982,983,1001,1005,1017,1032,1050,1064],{"__ignoreMap":314},[318,984,985,987,989,991,993,995,997,999],{"class":320,"line":321},[318,986,325],{"class":324},[318,988,329],{"class":328},[318,990,333],{"class":332},[318,992,336],{"class":328},[318,994,339],{"class":324},[318,996,342],{"class":328},[318,998,346],{"class":345},[318,1000,349],{"class":328},[318,1002,1003],{"class":320,"line":352},[318,1004,356],{"emptyLinePlaceholder":355},[318,1006,1007,1009,1011,1013,1015],{"class":320,"line":359},[318,1008,362],{"class":324},[318,1010,365],{"class":324},[318,1012,333],{"class":368},[318,1014,371],{"class":332},[318,1016,374],{"class":328},[318,1018,1019,1021,1023,1025,1028,1030],{"class":320,"line":377},[318,1020,381],{"class":380},[318,1022,384],{"class":328},[318,1024,342],{"class":328},[318,1026,1027],{"class":345},"resource-name",[318,1029,392],{"class":328},[318,1031,395],{"class":328},[318,1033,1034,1036,1038,1040,1043,1045,1047],{"class":320,"line":398},[318,1035,418],{"class":380},[318,1037,384],{"class":328},[318,1039,342],{"class":328},[318,1041,1042],{"class":345},"path\u002Fto\u002Ffile.txt",[318,1044,392],{"class":328},[318,1046,430],{"class":328},[318,1048,1049],{"class":433}," \u002F\u002F 本地文件路径\n",[318,1051,1052,1054,1056,1058,1061],{"class":320,"line":415},[318,1053,637],{"class":380},[318,1055,384],{"class":328},[318,1057,329],{"class":328},[318,1059,1060],{"class":328}," ...",[318,1062,1063],{"class":328}," }\n",[318,1065,1066,1068],{"class":320,"line":437},[318,1067,440],{"class":328},[318,1069,443],{"class":332},[308,1071,1074],{"className":310,"code":1072,"filename":1073,"language":313,"meta":314,"style":314},"import { defineMcpResource } from '@nuxtjs\u002Fmcp-toolkit\u002Fserver'\n\nexport default defineMcpResource({\n  name: 'resource-name',  \u002F\u002F 唯一标识符\n  uri: 'uri:\u002F\u002F...',      \u002F\u002F 静态 URI 或 ResourceTemplate\n  handler: async (uri) => { \u002F\u002F 处理函数\n    return { contents: [...] }\n  },\n})\n","Custom Resource",[303,1075,1076,1094,1098,1110,1127,1145,1166,1188,1192],{"__ignoreMap":314},[318,1077,1078,1080,1082,1084,1086,1088,1090,1092],{"class":320,"line":321},[318,1079,325],{"class":324},[318,1081,329],{"class":328},[318,1083,333],{"class":332},[318,1085,336],{"class":328},[318,1087,339],{"class":324},[318,1089,342],{"class":328},[318,1091,346],{"class":345},[318,1093,349],{"class":328},[318,1095,1096],{"class":320,"line":352},[318,1097,356],{"emptyLinePlaceholder":355},[318,1099,1100,1102,1104,1106,1108],{"class":320,"line":359},[318,1101,362],{"class":324},[318,1103,365],{"class":324},[318,1105,333],{"class":368},[318,1107,371],{"class":332},[318,1109,374],{"class":328},[318,1111,1112,1114,1116,1118,1120,1122,1124],{"class":320,"line":377},[318,1113,381],{"class":380},[318,1115,384],{"class":328},[318,1117,342],{"class":328},[318,1119,1027],{"class":345},[318,1121,392],{"class":328},[318,1123,430],{"class":328},[318,1125,1126],{"class":433},"  \u002F\u002F 唯一标识符\n",[318,1128,1129,1131,1133,1135,1138,1140,1142],{"class":320,"line":398},[318,1130,620],{"class":380},[318,1132,384],{"class":328},[318,1134,342],{"class":328},[318,1136,1137],{"class":345},"uri:\u002F\u002F...",[318,1139,392],{"class":328},[318,1141,430],{"class":328},[318,1143,1144],{"class":433},"      \u002F\u002F 静态 URI 或 ResourceTemplate\n",[318,1146,1147,1149,1151,1153,1155,1157,1159,1161,1163],{"class":320,"line":415},[318,1148,670],{"class":368},[318,1150,384],{"class":328},[318,1152,676],{"class":675},[318,1154,679],{"class":328},[318,1156,484],{"class":682},[318,1158,691],{"class":328},[318,1160,694],{"class":675},[318,1162,329],{"class":328},[318,1164,1165],{"class":433}," \u002F\u002F 处理函数\n",[318,1167,1168,1170,1172,1175,1177,1179,1182,1185],{"class":320,"line":437},[318,1169,753],{"class":324},[318,1171,329],{"class":328},[318,1173,1174],{"class":380}," contents",[318,1176,384],{"class":328},[318,1178,766],{"class":380},[318,1180,1181],{"class":328},"...",[318,1183,1184],{"class":380},"] ",[318,1186,1187],{"class":328},"}\n",[318,1189,1190],{"class":320,"line":602},[318,1191,664],{"class":328},[318,1193,1194,1196],{"class":320,"line":617},[318,1195,440],{"class":328},[318,1197,443],{"class":332},[1199,1200,1201],"style",{},"html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .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 .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 .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}",{"title":314,"searchDepth":352,"depth":352,"links":1203},[1204,1208,1209],{"id":290,"depth":352,"text":290,"children":1205},[1206,1207],{"id":298,"depth":359,"text":298},{"id":478,"depth":359,"text":478},{"id":850,"depth":352,"text":850},{"id":970,"depth":352,"text":970},"基于文件的资源、命名，以及 defineMcpResource 的结构。","md",null,{},{"icon":83},{"title":1216,"description":1217},"资源 — 静态与结构","简单文件资源、自定义静态处理器、自动生成的名称，以及资源结构。","vTpMEG2U7Sb763Y3P2n4d1Pz84Y5jCZ3ro6SJR362zE",[1220,1222],{"title":46,"path":76,"stem":77,"description":1221,"icon":78,"children":-1},"将只读数据源作为 MCP 资源暴露，为 AI 模型提供上下文。",{"title":85,"path":86,"stem":87,"description":1223,"icon":88,"children":-1},"ResourceTemplate URI、变量和资源处理程序函数。",1778659580652]