Skip to content
雲里
里雾

06 MCP——AI 世界的 USB 接口

claude code guide AI 更新于 2026/3/26

原文:Connect Claude Code to tools via MCP

什么是 MCP

Model Context Protocol(模型上下文协议)是一个开放标准,让 AI Agent 连接外部工具和数据源。就像 USB 让任何设备可以连接任何电脑一样,MCP 让任何支持 MCP 的 AI 客户端即插即用地使用外部工具。

类比:MCP 像是一套标准化的 API 接口规范。就像 REST API 和 GraphQL 都是让客户端与服务端通信的协议一样,MCP 定义了 AI 和外部工具之间的通信协议。

核心架构

你的 Claude Code 会话
  ├── 内置工具(Read, Edit, Bash...)
  └── MCP 连接
       ├── GitHub Server → 创建 PR、查看 Issue
       ├── Slack Server  → 发消息、读频道
       ├── DB Server     → 查询数据库
       └── 自定义 Server → 你的任何工具

MCP Server 提供三种东西:

  1. Tools:Agent 可以调用的函数(如 create_issue
  2. Resources:Agent 可以读取的数据(如 github:repos/owner/repo/issues
  3. Prompts:预定义的提示模板

添加 MCP Server

命令行方式

# stdio 类型(本地进程)
claude mcp add github -- npx -y @anthropic/mcp-github

# HTTP/SSE 类型(远程服务)
claude mcp add my-server --transport http --url https://example.com/mcp

配置文件方式(.mcp.json)

{
  "mcpServers": {
    "github": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "@anthropic/mcp-github"]
    },
    "my-api": {
      "type": "http",
      "url": "https://example.com/mcp"
    }
  }
}

作用域与优先级

作用域配置位置优先级
本地(当前项目).mcp.json最高
项目(团队共享).mcp.json
用户(所有项目)~/.claude/.mcp.json

同名 Server:本地覆盖项目覆盖用户。

上下文成本警告

MCP 的一个重要陷阱:所有已连接 Server 的工具定义都会在每次请求中占用上下文

Tool Search 机制:默认启用,MCP 工具最多占用 10% 上下文,剩余的延迟加载。

使用 MCP Resources

@ 语法直接引用 MCP 资源:

Show me the data from @github:repos/owner/repo/issues

最佳实践

  1. 只连接当前需要的 Server:不用的断开(减少上下文开销)
  2. /mcp 监控开销:知道每个 Server 花了多少 token
  3. 优先用 CLI 工具而非 MCP:如果 gh CLI 能完成,比 GitHub MCP Server 更省上下文
  4. SubAgent 限定 MCP:在 SubAgent 的 mcpServers 字段中限定特定 Server

知识检测

概念理解题

  1. MCP 被比作”AI 世界的 USB 接口”——这个类比的准确之处和不准确之处分别是什么?

  2. 为什么文档建议”优先用 CLI 工具而非 MCP”?这两种方式在上下文成本上有什么区别?

  3. MCP Server 提供 Tools、Resources、Prompts 三种东西。它们各自的作用是什么?

应用题

  1. 你的团队用 Jira 管理需求,用 Figma 做设计。你会怎么配置 MCP 来让 Claude 能直接从 Jira 拉需求、从 Figma 拉设计稿?

  2. 你发现连接了 5 个 MCP Server 后,Claude 的响应变慢了。怎么排查和优化?

迁移思考题

  1. OpenClaw 也支持 MCP Server。两者在配置方式上有什么异同?OpenClaw 的 workspace 概念如何影响 MCP 的作用域?

参见

参考答案

1. USB 类比的准确与不准确

准确之处:标准化协议(任何 MCP Server 可以连接任何 MCP 客户端)、即插即用(配置好就能用)。不准确之处:USB 是物理连接几乎无成本,MCP 连接有 token 成本(工具定义占上下文);USB 设备被动响应,MCP Server 可以主动推送 Resources;USB 即插即拔,MCP 连接可能静默断开。

2. 优先 CLI 而非 MCP 的原因

当 Claude 用 gh CLI 创建 PR 时,只需一条 Bash 命令——上下文中只有 Bash 工具的定义(几十 token)。如果用 GitHub MCP Server,所有 GitHub API 工具的定义(可能几千 token)都要常驻上下文。CLI 是”按需使用”,MCP 是”始终占位”。如果你只偶尔用 GitHub 功能,CLI 更划算。

3. Tools / Resources / Prompts

Tools:Agent 可以调用的函数(如 create_issuequery_database),是 MCP 最核心的能力。Resources:Agent 可以读取的数据源(如 github:repos/owner/repo/issues),用 @ 语法引用,类似 RESTful API 的 GET 端点。Prompts:预定义的提示模板,MCP Server 提供的”推荐用法”,目前使用较少。

4. Jira + Figma 配置

安装 Jira MCP Server 和 Figma MCP Server(从 marketplace 或 npm),在 .mcp.json 中配置。然后创建一个 Skill 文档你的 Jira 项目结构和 Figma 设计规范,让 Claude 知道如何有效使用这些工具。这就是 “MCP 提供能力,Skill 提供知识” 的经典组合。

5. 连接 5 个 Server 后变慢

(1) /mcp 查看每个 Server 的 token 开销 (2) 断开当前不需要的 Server (3) 检查是否有 Server 注册了过多工具(一个 Server 注册 50 个工具是不合理的)(4) 启用 Tool Search(默认开启,限制 MCP 工具只占 10% 上下文)(5) 考虑把不常用的 Server 配置从 .mcp.json 移到只在需要时手动连接。

6. OpenClaw 的 MCP 异同

两者都支持 MCP 标准。OpenClaw 的配置在 openclaw.json 中(而非 .mcp.json),作用域跟随 Agent workspace。OpenClaw 还有更多内置工具(browser、exec、web-fetch 等),减少了对外部 MCP Server 的依赖。Claude Code 更依赖 MCP 来获取外部能力。