三、MCP:打通外部世界
3.1 为什么需要 MCP
前面讲的 CLAUDE.md 和 Skills 都是 ” 知识 “—— 本质是 Markdown 文本,Agent 读了之后更聪明,但它还是只能 ” 说 ” 不能 ” 做 “。
没有 MCP 之前:
- Agent 只能操作本地文件
- 想查数据库?手动复制粘贴
- 想发 Slack 通知?自己写脚本
- 想操作 GitHub PR?通过网页手动点
有了 MCP 之后:
- Agent 直接查询数据库
- Agent 直接发 Slack 消息
- Agent 直接操作 GitHub PR
- 统一协议,一次配置,处处可用
3.2 它是什么
MCP( Model Context Protocol )是一个标准化协议,让 Agent 能连接外部工具和数据源。
Anthropic 官方指南里有一个很好的比喻:MCP 是专业厨房,Skills 是菜谱。厨房里有各种工具、食材、设备( MCP 提供的能力 ),但光有厨房不够,你还需要菜谱告诉你怎么把这些东西组合成一道菜( Skills 定义的流程 )。
3.3 USB-C 比喻:统一接口
MCP 出现之前,每个 AI 工具要连接外部服务都得单独写适配器。假设有 N 个 Agent 和 M 个工具,就需要 N × M 种集成方式。
MCP 的思路跟 USB-C 一样——定义一个统一接口。每个工具只要实现 MCP 协议,任何支持 MCP 的 Agent 都能直接调用。N + M 就够了。
没有 MCP: 有了 MCP:
Agent A ──┬── Slack Agent A ──┐
Agent A ──┼── GitHub │
Agent B ──┼── Slack Agent B ──┼── MCP ──┬── Slack
Agent B ──┼── GitHub │ ├── GitHub
Agent C ──┼── Slack Agent C ──┘ ├── DB
Agent C ──┘── GitHub └── Figma
( 6 种集成 ) ( 3 + 4 = 7 个接口,但可任意组合 )
3.4 配置示例
在 Claude Code 中,通过 settings.json 配置连接 MCP Server:
{
"mcpServers": {
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"]
},
"postgres": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-postgres", "postgresql://localhost:5432/mydb"]
},
"slack": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-slack"]
}
}
}
配置之后,Agent 就能:
- 通过 GitHub MCP 读取 PR、提交 Review Comments、创建 Issue
- 通过 Postgres MCP 查询数据库、分析数据
- 通过 Slack MCP 发送消息通知团队
你不需要写任何胶水代码。
3.5 常用 MCP Servers
| MCP Server | 功能 | 使用场景 |
|---|---|---|
| github | PR 操作、Issue 管理、代码搜索 | 自动化代码审查、项目管理 |
| slack | 发送消息、读取频道 | 团队通知、状态更新 |
| postgres | 数据库查询 | 数据分析、生成报告 |
| filesystem | 高级文件操作 | 批量文件处理 |
| puppeteer | 浏览器自动化 | Web 抓取、UI 测试 |
| google-drive | 文件上传下载 | 文档管理 |
更多 MCP Servers:modelcontextprotocol.io
3.6 MCP vs Skill:互补关系
| 维度 | MCP | Skill |
|---|---|---|
| 它是什么 | 连接外部服务的协议 | 知识、工作流和参考材料 |
| 提供 | 工具和数据访问 | 知识、工作流和参考材料 |
| 示例 | Slack 集成、数据库查询 | 代码审查清单、部署工作流 |
它们解决不同的问题,可以很好地协同工作:
- MCP 给予 Claude 与外部系统交互的能力。没有 MCP,Claude 无法查询你的数据库或发布到 Slack。
- Skill 给予 Claude 关于如何有效使用这些工具的知识。Skill 可能包括你团队的数据库架构和查询模式,或带有你团队消息格式规则的
/post-to-slack工作流。
例子:
- MCP server 将 Claude 连接到你的数据库
- Skill 教导 Claude 你的数据模型、常见查询模式以及用于不同任务的表
3.7 注意事项
✅ 按需接入,不要一次连 20 个 Server( 占用上下文 )
✅ 权限最小化,只给 Agent 必要的访问权限
✅ 优先使用官方或社区维护的 MCP Server
❌ 不要不用 MCP,直接让 Agent 跑 shell 命令操作外部服务( 不安全、不可控 )
检查连接状态:/mcp
这个命令可以查看:
- 哪些 MCP Servers 已连接
- 每个 Server 的 token 成本
- 连接状态是否正常
3.8 核心定位
MCP 是能力扩展层。
四者的关系可以这样理解:
- CLAUDE.md 告诉 Agent ” 这是什么项目 “( 上下文 )
- Skills 告诉 Agent ” 怎么做 “( 流程 )
- MCP 让 Agent ” 能动手 “( 能力 )
- Hooks 让固定流程 ” 自动执行 “( 自动化 )