Skip to content
返回 AI 编程

MCP 资源与提示

在工具之外暴露只读资源与可复用提示模板。

MCP 开发高级

为什么

MCP 于 2024 年 11 月发布;到 2025 年 12 月已有超过 9700 万月 SDK 下载量,到 2026 年 9 月 npm SDK 单包月下载量达约 2.04 亿(9 个月增长 5 倍),已发布服务器超 1 万个。工具用于动作;资源用于只读上下文(schema、配置),提示用于可复用模板。

三者并用使服务器地道:AI 浏览资源、调用工具、实例化提示,而非全塞进工具描述。

何时使用

当 AI 应浏览数据(表 schema、开工单)加资源。可复用工作流(调查事件)加提示。工具已覆盖则跳过。

如何做

1. 资源:uri 方案 + handler 返回小文本/JSON(<4KB)。 2. 提示:name + arguments + handler 返回提示字符串。 3. 在服务器能力中注册两者。 4. 客户端列出资源/提示;AI 按需读取/实例化。 5. 资源载荷保持小;更大数据分页。

示例

// 资源:AI 可浏览的 db schema server.setRequestHandler("resources/list", async () => ({ resources: [{ uri: "schema://db/tables", name: "DB 表", mimeType: "application/json" }], })); server.setRequestHandler("resources/read", async (req) => { if (req.params.uri === "schema://db/tables") return { contents: [{ uri: req.params.uri, text: JSON.stringify(await db.schema()) }] }; }); // 提示:可复用事件工作流 server.setRequestHandler("prompts/get", async (req) => { if (req.params.name === "investigate-incident") return { messages: [{ role: "user", content: { type: "text", text: `调查事件 ${req.params.arguments.id}` } }] }; });

常见问题

  • ⚠Error: Cannot find module '@modelcontextprotocol/sdk' → 运行 `npm install @modelcontextprotocol/sdk zod`;SDK 需 Node.js 18+。
  • ⚠"Error: transport closed" / 服务器未被客户端列出 → 确认两侧 stdio/HTTP 传输匹配;检查 `npx @modelcontextprotocol/inspector` 输出。
  • ⚠工具调用返回 `{"error": "Invalid params"}` → 用 zod 校验输入 schema;常见原因是缺必填字段或类型错误。

最佳实践

  • ✓资源保持只读且小(<4KB)。
  • ✓带参数的多步工作流用提示。
  • ✓用具体指标衡量结果(节省时间、缺陷率、测试覆盖率),使实践可被论证和改进。

常见问题解答

什么是MCP 资源与提示?

在工具之外暴露只读资源与可复用提示模板。 它可帮助开发者快速理解 MCP 资源与提示 的核心价值与适用场景。

如何开始使用MCP 资源与提示?

开始使用 MCP 资源与提示,建议先掌握以下要点:资源:uri 方案 + handler 返回小文本/JSON(<4KB)。

MCP 资源与提示 的常见误区有哪些?

使用 MCP 资源与提示 时常遇到的问题包括:Error: Cannot find module '@modelcontextprotocol/sdk' → 运行 `npm install @modelcontextprotocol/sdk zod`;SDK 需 Node.js 18+。;"Error: transport closed" / 服务器未被客户端列出 → 确认两侧 stdio/HTTP 传输匹配;检查 `npx @modelcontextprotocol/inspector` 输出。;工具调用返回 `{"error": "Invalid params"}` → 用 zod 校验输入 schema;常见原因是缺必填字段或类型错误。。

MCP 资源与提示 的最佳实践是什么?

MCP 资源与提示 的最佳实践包括:资源保持只读且小(<4KB)。;带参数的多步工作流用提示。;用具体指标衡量结果(节省时间、缺陷率、测试覆盖率),使实践可被论证和改进。。

如何深入学习MCP 资源与提示?

从官方文档入手,再在 GitHub 上搜索真实示例;先在小实验仓库验证模式,再应用到生产代码。