[{"data":1,"prerenderedAt":610},["ShallowReactive",2],{"navigation_docs":3,"-resources-overview":282,"-resources-overview-surround":605},[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":71,"body":284,"description":588,"extension":589,"links":590,"meta":600,"navigation":601,"path":76,"seo":602,"stem":77,"__hash__":604},"docs\u002F3.resources\u002F0.overview.md",{"type":285,"value":286,"toc":580},"minimark",[287,292,301,348,363,375,379,382,467,472,483,488,499,502,508,543,548,551,574],[288,289,291],"h2",{"id":290},"什么是资源","什么是资源？",[293,294,295,296,300],"p",{},"资源是一种标准化方式，用于让 MCP 服务器向客户端暴露",[297,298,299],"strong",{},"只读数据","。它们提供上下文信息，帮助 AI 模型理解你的应用，例如文件、数据库模式、配置，或任何可通过 URI 访问的数据。",[302,303,306,309,339],"prompt",{":actions":304,"description":305,"icon":78},"[\"copy\",\"cursor\",\"windsurf\"]","为新的 MCP 资源生成脚手架",[293,307,308],{},"使用 @nuxtjs\u002Fmcp-toolkit 在我的 Nuxt 应用中创建一个新的 MCP 资源。",[310,311,312,316,319,322,330,333,336],"ul",{},[313,314,315],"li",{},"在 server\u002Fmcp\u002Fresources\u002F 中创建一个文件（例如 server\u002Fmcp\u002Fresources\u002Freadme.ts）",[313,317,318],{},"使用 defineMcpResource（自动导入）并提供描述",[313,320,321],{},"对于本地文件，使用 file 属性：file: 'README.md'（URI、MIME 类型和处理器会自动生成）",[313,323,324,325,329],{},"对于自定义数据，手动定义 uri 和 handler，返回 { contents: ",[326,327,328],"span",{},"{ uri, text, mimeType }"," }",[313,331,332],{},"对于动态资源，使用 @modelcontextprotocol\u002Fsdk\u002Fserver\u002Fmcp.js 中带有 URI 变量的 ResourceTemplate",[313,334,335],{},"name 和 title 会根据文件名自动生成",[313,337,338],{},"使用子目录自动推断分组（例如 resources\u002Fconfig\u002Fapp.ts → group: 'config'）",[293,340,341,342],{},"文档：",[343,344,345],"a",{"href":345,"rel":346},"https:\u002F\u002Fmcp-toolkit.nuxt.dev\u002Fresources\u002Foverview",[347],"nofollow",[349,350,352,355,356,358,359,362],"callout",{"color":351,"icon":272},"primary",[297,353,354],{},"关键概念","：不同于由 AI 直接调用以执行操作的 ",[343,357,41],{"href":47},"，资源是",[297,360,361],{},"应用驱动","的。主机应用（而不是 AI）决定何时以及如何获取资源内容并将其包含到对话中。",[293,364,365,366,370,371,374],{},"每个资源都通过一个 URI 唯一标识（例如 ",[367,368,369],"code",{},"file:\u002F\u002F\u002Fproject\u002FREADME.md"," 或 ",[367,372,373],{},"api:\u002F\u002Fusers\u002F123","）。",[288,376,378],{"id":377},"资源-vs-工具","资源 vs 工具",[293,380,381],{},"理解资源和工具之间的区别至关重要：",[383,384,385,399],"table",{},[386,387,388],"thead",{},[389,390,391,395,397],"tr",{},[392,393,394],"th",{},"方面",[392,396,71],{},[392,398,41],{},[400,401,402,416,429,442,455],"tbody",{},[389,403,404,410,413],{},[405,406,407],"td",{},[297,408,409],{},"目的",[405,411,412],{},"提供上下文和数据",[405,414,415],{},"执行操作",[389,417,418,423,426],{},[405,419,420],{},[297,421,422],{},"调用方式",[405,424,425],{},"应用驱动（由用户或应用选择）",[405,427,428],{},"AI 驱动（由模型决定是否调用）",[389,430,431,436,439],{},[405,432,433],{},[297,434,435],{},"性质",[405,437,438],{},"只读数据访问",[405,440,441],{},"可以读取并修改状态",[389,443,444,449,452],{},[405,445,446],{},[297,447,448],{},"控制",[405,450,451],{},"由用户\u002F应用控制包含哪些内容",[405,453,454],{},"由 AI 决定何时使用",[389,456,457,461,464],{},[405,458,459],{},[297,460,254],{},[405,462,463],{},"文件、配置、数据库模式、日志",[405,465,466],{},"发送邮件、创建文件、查询 API",[293,468,469],{},[297,470,471],{},"何时使用资源：",[310,473,474,477,480],{},[313,475,476],{},"暴露项目文件或文档",[313,478,479],{},"共享数据库模式或配置",[313,481,482],{},"将日志或系统信息作为上下文提供",[293,484,485],{},[297,486,487],{},"何时使用工具：",[310,489,490,493,496],{},[313,491,492],{},"执行会修改状态的操作",[313,494,495],{},"运行应由 AI 决定触发的操作",[313,497,498],{},"与外部 API 或服务交互",[288,500,501],{"id":501},"资源如何使用",[293,503,504,505,507],{},"资源遵循",[297,506,361],{},"模型。典型流程如下：",[509,510,511,521,527,537],"ol",{},[313,512,513,516,517,520],{},[297,514,515],{},"发现","——主机应用调用 ",[367,518,519],{},"resources\u002Flist"," 来发现可用资源。",[313,522,523,526],{},[297,524,525],{},"选择","——主机在 UI（树状视图、搜索、列表）中展示资源，用户（或应用逻辑）选择要包含的资源。",[313,528,529,532,533,536],{},[297,530,531],{},"读取","——主机通过 ",[367,534,535],{},"resources\u002Fread"," 获取所选 URI。",[313,538,539,542],{},[297,540,541],{},"上下文注入","——主机将内容作为上下文注入到 AI 对话中。",[349,544,547],{"color":545,"icon":546},"info","i-lucide-info","AI 模型永远不会直接请求资源。始终是应用根据用户选择、启发式规则或自动上下文检测来决定包含哪些资源。",[288,549,550],{"id":550},"进一步了解",[552,553,554,560,563,570],"card-group",{},[555,556,559],"card",{"color":557,"icon":277,"title":558,"to":275},"neutral","文件操作示例","以优雅的错误处理将本地文件作为 MCP 资源读取。",[555,561,562],{"color":557,"icon":49,"title":41,"to":47},"将资源与操作结合起来——工具由 AI 驱动，资源由应用驱动。",[555,564,565,566,569],{"color":557,"icon":242,"title":239,"to":240},"使用 ",[367,567,568],{},"enabled"," 守卫对匿名客户端隐藏资源。",[555,571,573],{"color":557,"icon":213,"title":572,"to":211},"列表定义","从你自己的服务器路由中读取已发现的目录。",[293,575,576,577,579],{},"如果你是 Nuxt 中 MCP 的新手，请从 ",[343,578,41],{"href":47}," 开始——资源与工具相辅相成，但遵循不同的发现模型。",{"title":581,"searchDepth":582,"depth":582,"links":583},"",2,[584,585,586,587],{"id":290,"depth":582,"text":291},{"id":377,"depth":582,"text":378},{"id":501,"depth":582,"text":501},{"id":550,"depth":582,"text":550},"将只读数据源作为 MCP 资源暴露，为 AI 模型提供上下文。","md",[591,594,596,598],{"label":592,"icon":83,"to":81,"color":557,"variant":593},"静态与结构","subtle",{"label":595,"icon":88,"to":86,"color":557,"variant":593},"模板与处理器",{"label":597,"icon":93,"to":91,"color":557,"variant":593},"元数据与内容",{"label":599,"icon":98,"to":96,"color":557,"variant":593},"组织",{},{"title":46,"icon":78},{"title":71,"description":603},"创建 MCP 资源，以静态或动态 URI 暴露只读数据源。","36sV8ZMoK4w32pfFNkGUmreywiOtPQuWUpm2uBM-9H4",[606,608],{"title":66,"path":67,"stem":68,"description":607,"icon":69,"children":-1},"工具的分组和标签、目录布局、类型安全以及启用守卫。",{"title":80,"path":81,"stem":82,"description":609,"icon":83,"children":-1},"基于文件的资源、命名，以及 defineMcpResource 的结构。",1778659577270]