第 19 期 | 什么是 MCP?它为什么是 AI Agent 的"USB 接口"

更新于 2026/4/5

🎯 学习目标

学完本期你将理解:

  1. Model Context Protocol (MCP) 的核心概念和设计理念
  2. MCP 与传统 REST API、SDK 的根本区别
  3. 为什么说 MCP 是 AI Agent 生态的"USB 标准"
  4. Anthropic 的开放生态布局和商业逻辑

📖 核心概念讲解

19.1 为什么需要 MCP?

AI Agent 面对的工具连接困境:

  没有 MCP 的世界:

  Claude ──┬──► GitHub API (需要 Token + REST)
           ├──► Jira API (需要 OAuth + GraphQL)
           ├──► Slack API (需要 WebSocket + Bot Token)
           ├──► Database (需要 Connection String + SQL)
           └──► ... N 个工具,N 种协议

  每个工具都要:
    ❌ 单独的认证方式
    ❌ 单独的数据格式
    ❌ 单独的调用协议
    ❌ 单独的错误处理

  这就像 2000 年以前每个设备都有不同的接口:
    打印机用 LPT 口,鼠标用 PS/2,
    相机用 FireWire,手机用各种奇怪的接口...

19.2 MCP = AI 世界的 USB

有了 MCP 的世界:

  Claude ──► MCP (统一协议) ──┬──► GitHub
                               ├──► Jira
                               ├──► Slack
                               ├──► Database
                               └──► 任何工具

  MCP 提供:
    ✅ 统一的工具描述格式 (Tool Schema)
    ✅ 统一的调用协议 (JSON-RPC)
    ✅ 统一的认证机制
    ✅ 统一的错误处理
    ✅ 即插即用 (Plug & Play)

  USB 类比:
  ┌────────────────────────────────────────────────┐
  │  USB 标准:                                     │
  │  定义了电气规范、传输协议、设备类型,           │
  │  任何设备只要符合 USB 规范就能即插即用          │
  │                                                │
  │  MCP 标准:                                     │
  │  定义了工具描述、调用协议、资源类型,           │
  │  任何服务只要实现 MCP Server 就能被 Agent 调用  │
  └────────────────────────────────────────────────┘

19.3 MCP 的三层架构

╭──────────────────────────────────────────────╮
│             MCP 三层架构                     │
│                                              │
│  ┌──────────┐  ┌──────────┐  ┌──────────┐  │
│  │ MCP Host │  │ MCP Host │  │ MCP Host │  │
│  │(Claude   │  │(Cursor   │  │(自建App) │  │
│  │ Code)    │  │  IDE)    │  │          │  │
│  └────┬─────┘  └────┬─────┘  └────┬─────┘  │
│       │              │              │        │
│       ▼              ▼              ▼        │
│  ┌──────────────────────────────────────┐   │
│  │         MCP Client (SDK)             │   │
│  │  统一的工具发现、调用、结果解析      │   │
│  └─────────────┬────────────────────────┘   │
│                │                             │
│       ┌────────┼────────┐                   │
│       ▼        ▼        ▼                   │
│  ┌────────┐┌────────┐┌────────┐            │
│  │MCP     ││MCP     ││MCP     │            │
│  │Server  ││Server  ││Server  │            │
│  │(GitHub)││(Slack) ││(DB)   │            │
│  └────────┘└────────┘└────────┘            │
│                                              │
╰──────────────────────────────────────────────╯

Host: 运行 AI 模型的应用 (Claude Code, Cursor...)
Client: MCP SDK,处理协议通信
Server: 具体工具的 MCP 适配器

19.4 MCP 的四种核心能力

1. Tools (工具)
   让 Agent 执行操作: 创建文件、发送消息、查询数据
   类似: USB 设备的"写入"能力

2. Resources (资源)
   让 Agent 读取数据: 文件内容、数据库记录、API 响应
   类似: USB 设备的"读取"能力

3. Prompts (提示模板)
   预定义的交互模式: "代码审查模板"、"Bug 报告模板"
   类似: USB 设备的"驱动程序"

4. Sampling (采样请求)
   MCP Server 主动请求 AI 进行推理
   类似: USB 设备的"中断请求"

💻 模拟 Claude TUI 交互

场景:查看已安装的 MCP 服务

> 我想知道 Claude Code 已经连接了哪些 MCP 服务

╭─ Claude ─────────────────────────────────────────────╮
│                                                      │
│  🔍 Tool: Read → ~/.claude/settings.json            │
│                                                      │
│  当前已配置的 MCP Servers:                           │
│                                                      │
│  ╭──────────────────────────────────────────╮        │
│  │  MCP Server      │ 状态   │ 工具数量    │        │
│  │─────────────────│───────│────────────│        │
│  │  @anthropic/mcp  │ ✅ 在线│ 12 个工具  │        │
│  │  github-mcp      │ ✅ 在线│ 8 个工具   │        │
│  │  postgres-mcp    │ ❌ 离线│ -          │        │
│  │  slack-mcp       │ ✅ 在线│ 5 个工具   │        │
│  ╰──────────────────────────────────────────╯        │
│                                                      │
│  📋 GitHub MCP 可用工具:                             │
│  - github_create_issue (创建 Issue)                  │
│  - github_create_pr (创建 Pull Request)             │
│  - github_list_repos (列出仓库)                     │
│  - github_search_code (搜索代码)                    │
│  - github_read_file (读取文件)                      │
│  - github_add_comment (添加评论)                    │
│  - github_merge_pr (合并 PR)                        │
│  - github_list_issues (列出 Issues)                 │
│                                                      │
│  要使用这些工具,直接在对话中描述你想做的事,       │
│  我会自动选择合适的 MCP 工具来执行。                │
│                                                      │
╰──────────────────────────────────────────────────────╯

场景:理解 MCP 与直接 API 调用的区别

> MCP 和直接用 curl 调用 API 有什么区别?

╭─ Claude ─────────────────────────────────────────────╮
│                                                      │
│  对比一下同样的操作:                                 │
│                                                      │
│  ❌ 直接 API 调用:                                   │
│  curl -X POST https://api.github.com/repos/...       │
│    -H "Authorization: Bearer ghp_xxxx"               │
│    -H "Content-Type: application/json"               │
│    -d '{"title":"Bug fix","body":"..."}'             │
│  → 需要你管理 Token、URL、格式                      │
│  → 每个 API 的格式都不同                            │
│                                                      │
│  ✅ MCP 调用:                                        │
│  "在 my-repo 创建一个 Issue,                        │
│   标题是 Bug fix"                                    │
│  → 我自动调用 github_create_issue 工具              │
│  → Token 和格式由 MCP Server 处理                   │
│  → 你只需说人话                                     │
│                                                      │
│  核心区别:                                           │
│  API: 你适应机器的协议                               │
│  MCP: 机器适应你的语言                               │
│                                                      │
╰──────────────────────────────────────────────────────╯

💻 代码演示

# ✅ 查看 Claude Code 的 MCP 设置
cat ~/.claude/settings.json

# ✅ 在 settings.json 中配置 MCP Server
{
  "mcpServers": {
    "github": {
      "command": "npx",
      "args": ["-y", "@anthropic-ai/mcp-server-github"],
      "env": {
        "GITHUB_TOKEN": "ghp_your_token_here"
      }
    }
  }
}

# ✅ 项目级 MCP 配置 (.mcp.json)
# 放在项目根目录,仅在该项目中生效
{
  "mcpServers": {
    "postgres": {
      "command": "npx",
      "args": ["-y", "@anthropic-ai/mcp-server-postgres",
               "postgresql://localhost:5432/mydb"]
    }
  }
}

🔧 MCP 生态一览

MCP Server 提供方 核心功能
GitHub Anthropic PR/Issue/代码搜索
Postgres Anthropic SQL 查询与管理
Slack 社区 消息读写、频道管理
Jira/Linear 社区 工单创建与状态管理
Google Drive 社区 文档读写
Notion 社区 页面管理
Playwright 社区 浏览器自动化
Excalidraw 社区 绘图

📝 本期要点回顾

  1. MCP 是 AI Agent 的 "USB 标准" — 统一工具连接协议
  2. Host / Client / Server 三层架构实现即插即用
  3. 四种核心能力: Tools、Resources、Prompts、Sampling
  4. MCP 配置分为 全局 (~/.claude/settings.json) 和 项目级 (.mcp.json)
  5. Anthropic 的目标是建立 开放生态,让所有 AI Agent 共享工具

🔗 参考资料