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 官方文档