mcp-protocol.mdx 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. ---
  2. title: "MCP 协议 - 开放的工具生态扩展"
  3. description: "深入解析 Claude Code 的 MCP(Model Context Protocol)集成:通过标准协议对接数据库、API 和自定义服务,突破内置工具的能力边界。"
  4. keywords: ["MCP", "Model Context Protocol", "工具扩展", "外部集成", "API 对接"]
  5. ---
  6. {/* 本章目标:解释 MCP 协议如何扩展 AI 的能力边界 */}
  7. ## 内置工具的局限
  8. Claude Code 内置了 50+ 工具,覆盖了通用的软件开发需求。但每个团队都有特殊需求:
  9. - 连接内部数据库查询数据
  10. - 调用公司内部 API
  11. - 操作特定的 DevOps 工具
  12. - 访问私有的知识库
  13. 不可能把所有人的需求都内置进去。
  14. ## MCP:一个标准的"插头"
  15. **Model Context Protocol**(模型上下文协议)是 Anthropic 提出的开放标准,定义了 AI 与外部工具之间的通信方式。
  16. <Frame caption="MCP 连接架构——AI 的 USB 接口">
  17. <img src="/docs/images/mcp-architecture.png" alt="MCP 连接架构图" />
  18. </Frame>
  19. 类比:USB 是电脑连接外设的标准接口。MCP 是 AI 连接外部能力的标准接口。
  20. ## 工作原理
  21. <Steps>
  22. <Step title="启动 MCP Server">
  23. 开发者编写一个 MCP Server,暴露自定义工具(比如"查询数据库"、"发送 Slack 消息")
  24. </Step>
  25. <Step title="Claude Code 连接">
  26. 在配置文件中声明要连接的 MCP Server
  27. </Step>
  28. <Step title="工具自动发现">
  29. 连接后,MCP Server 提供的工具自动出现在 AI 的可用工具列表中
  30. </Step>
  31. <Step title="透明调用">
  32. AI 像使用内置工具一样使用 MCP 工具——无需知道底层实现
  33. </Step>
  34. </Steps>
  35. ## 三种连接方式
  36. | 方式 | 适用场景 |
  37. |------|---------|
  38. | **stdio** | MCP Server 作为子进程运行,通过标准输入/输出通信。最简单 |
  39. | **SSE** | 通过 HTTP Server-Sent Events 通信。适合远程服务 |
  40. | **StreamableHTTP** | 基于 HTTP 流的双向通信。适合复杂的交互场景 |
  41. ## 权限一视同仁
  42. MCP 提供的工具和内置工具一样受权限系统管控:
  43. - 需要用户确认才能调用
  44. - 可以设置 allow/deny 规则
  45. - 支持沙箱限制
  46. 这确保了第三方工具不会绕过安全边界。
  47. ## 实际例子
  48. ```json
  49. // settings.json 中的 MCP 配置
  50. {
  51. "mcpServers": {
  52. "my-database": {
  53. "command": "npx",
  54. "args": ["@my-org/db-mcp-server"],
  55. "env": { "DB_URL": "postgres://..." }
  56. }
  57. }
  58. }
  59. ```
  60. 配置后,AI 就多了"查询数据库"这个能力——用自然语言描述需求,AI 自动生成查询并执行。