学习中心/Claude Code/MCP 外部工具集成
高级

MCP 外部工具集成

通过 Model Context Protocol 连接数据库、浏览器、API 等外部工具,扩展 Claude Code 能力

Anthropic30 min

学习笔记

MCP 外部工具集成

MCP(Model Context Protocol)是 Anthropic 推出的 AI 工具集成开放标准。通过 MCP,Claude Code 可以连接数据库、浏览器、第三方 API、SaaS 服务等外部工具,突破"只能读写本地文件和运行命令"的限制。

你将学到

  • MCP 的架构和工作原理
  • 三种传输方式(stdio、SSE、HTTP)
  • 添加和管理 MCP 服务器
  • 配置作用域(本地、项目、用户)
  • 实用 MCP 服务器推荐

适合谁

  • 需要 Claude Code 连接外部工具的高级用户
  • 想要构建自定义 MCP 服务器的开发者
  • 团队中负责工具链配置的工程师

1. MCP 是什么

MCP 是一个开放标准协议,定义了 AI 工具与外部数据源/工具之间的通信方式。

传统做法是为每个外部工具写自定义集成代码。MCP 的思路是:所有工具实现同一个协议(MCP 服务器),所有 AI 工具用同一种方式(MCP 客户端)连接。

Claude Code (MCP Client)
    ├── Database MCP Server → PostgreSQL / MySQL
    ├── Browser MCP Server → Puppeteer / Playwright
    ├── API MCP Server → GitHub / Jira / Slack
    └── Custom MCP Server → 你的内部工具

2. 三种传输方式

传输方式 通信方式 适用场景
stdio 本地进程,标准输入/输出 本地工具、CLI 程序
SSE Server-Sent Events 远程服务、实时推送
HTTP HTTP 请求/响应 远程 API、SaaS 集成

3. 添加 MCP 服务器

stdio 传输(本地工具)

claude mcp add --transport stdio <name> -- <command> [args...]

# 示例:Airtable
claude mcp add --transport stdio \
  --env AIRTABLE_API_KEY=YOUR_KEY \
  airtable -- npx -y airtable-mcp-server

SSE 传输(远程服务)

claude mcp add --transport sse <name> <url>

# 示例:Asana
claude mcp add --transport sse asana https://mcp.asana.com/sse

# 带认证头
claude mcp add --transport sse private-api https://api.company.com/sse \
  --header "X-API-Key: your-key"

HTTP 传输(远程 API)

claude mcp add --transport http <name> <url>

# 示例:Notion
claude mcp add --transport http notion https://mcp.notion.com/mcp

# 带 Bearer Token
claude mcp add --transport http secure-api https://api.example.com/mcp \
  --header "Authorization: Bearer your-token"

4. 配置作用域

MCP 服务器可以配置在不同的作用域:

# 本地作用域(默认)— 只在当前机器生效
claude mcp add --scope local stripe -- npx stripe-mcp

# 项目作用域 — 通过 Git 共享,团队成员都能用
claude mcp add --scope project paypal -- npx paypal-mcp

# 用户作用域 — 你个人所有项目都能用
claude mcp add --scope user hubspot -- npx hubspot-mcp
作用域 配置文件位置 适用场景
local .claude/settings.local.json 个人本地开发
project .claude/settings.json 团队共享
user ~/.claude/settings.json 个人全局

5. JSON 配置方式

除了 CLI,也可以直接编辑配置文件。在 .claude/settings.json 中:

{
  "mcpServers": {
    "database": {
      "command": "npx",
      "args": ["-y", "@anthropic-ai/mcp-server-postgres"],
      "env": {
        "DATABASE_URL": "${DATABASE_URL}"
      }
    },
    "browser": {
      "command": "npx",
      "args": ["-y", "@anthropic-ai/mcp-server-puppeteer"]
    },
    "api-server": {
      "type": "http",
      "url": "${API_BASE_URL:-https://api.example.com}/mcp",
      "headers": {
        "Authorization": "Bearer ${API_KEY}"
      }
    }
  }
}

环境变量展开

配置中支持环境变量:

  • ${VAR_NAME} — 引用环境变量
  • ${VAR_NAME:-default} — 带默认值

6. 管理 MCP 服务器

查看状态

在 Claude Code 会话中输入:

/mcp

查看所有已配置的 MCP 服务器和连接状态。

CLI 管理命令

# 列出所有 MCP 服务器
claude mcp list

# 查看指定服务器详情
claude mcp get <name>

# 删除 MCP 服务器
claude mcp remove <name>

使用 MCP 提供的斜杠命令

部分 MCP 服务器会暴露 prompt(斜杠命令):

/mcp__servername__promptname

7. 实用 MCP 服务器推荐

MCP 服务器 能力 用途
Puppeteer 浏览器自动化 截图、填表、爬取页面
PostgreSQL / MySQL 数据库查询 查询数据、了解 schema
GitHub GitHub API 管理 Issues、PRs、Actions
Slack Slack 消息 发送通知、搜索消息
Notion Notion API 读写文档、管理数据库
Jira Jira API 管理工单、查看看板
Linear Linear API 管理项目和工单
Sentry 错误追踪 查看和分析错误

查看完整列表:MCP Servers on GitHub


8. 安全考量

信任模型

  • 本地 MCP 服务器(stdio)在你的机器上运行,具有完全的本地访问权限
  • 远程 MCP 服务器(SSE/HTTP)通过网络通信,需要信任远程端
  • 项目级配置(.claude/settings.json)会被所有克隆仓库的人使用——不要在其中硬编码密钥

最佳安全实践

  • API Key 和密钥通过环境变量传递,不要写在配置文件中
  • 使用 --env 传递敏感信息:
claude mcp add --transport stdio --env API_KEY=$MY_SECRET myserver -- npx my-mcp
  • 审查项目级 MCP 配置(.claude/settings.json)中的第三方服务器
  • 定期检查 MCP 服务器连接状态

小结

  • MCP 是 AI 工具集成的开放标准,让 Claude Code 连接外部世界
  • 三种传输方式:stdio(本地)、SSE(实时远程)、HTTP(远程 API)
  • claude mcp add 快速添加,用 /mcp 查看状态
  • 配置有三个作用域:local(个人)、project(团队共享)、user(全局)
  • 密钥通过环境变量传递,不硬编码到配置文件

延伸阅读

内容来源:Anthropic 官方文档