3.3 给 Agent 装手——MCP 协议与工具集成
小李的 Agent 能读文件、改代码、跑测试。但有一天他需要 Agent 访问 GitHub 上的 Pull Request,Agent 说:「我没有这个工具。」
Agent 没有手,它只能用你给它的工具。而MCP 协议,就是给 Agent 装手的通用接口。
MCP 是什么
Model Context Protocol (MCP) 是 Anthropic 在 2024 年 11 月发布的开放标准,2025 年移交 Linux Foundation 管理。
一句话理解:MCP 是 AI 的 USB-C 接口。
就像 USB-C 统一了设备充电和传输的方式,MCP 统一了 AI 模型与外部系统的连接方式:
MCP 的架构
MCP 采用 Client-Host-Server 三层模型:
- Host:运行 AI 应用的程序(Claude Desktop、VS Code、Cursor 等)
- Client:Host 内部与 Server 通信的客户端,每个 Client 与一个 Server 保持 1:1 连接
- Server:提供能力的程序,每个 Server 独立运行,提供工具、资源或提示词模板
MCP 提供三种能力
db:///users/schema → 表结构
api:///weather/bj → 天气数据
参数:language、focus
bug_report → Bug 模板
run_query → 执行查询
create_issue → 创建 Issue
这三种能力中最重要的是 Tools——它直接决定了 Agent 能做什么。
实战:配置 MCP Server
小李想让 Agent 能访问 GitHub。他需要配置 GitHub MCP Server。
Claude Code 中的配置
在 Claude Code 的配置文件中添加 MCP Server:
{
"mcpServers": {
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_xxxx"
}
}
}
}配置完成后,Agent 就有了 GitHub 的能力:
小李:查看我的仓库中最近 7 天的 PR
Agent:(调用 GitHub MCP Server 的工具)
→ 调用 list_pull_requests → 找到 5 个 PR
→ 调用 get_pull_request → 获取每个 PR 的详情
→ 返回汇总Cursor 中的配置
在 Cursor 设置中:Settings → MCP → 添加 Server 配置,格式相同。
Windsurf 中的配置
Windsurf 内置了常用 MCP Server,也可以从 Marketplace 安装新的。
7 个官方 MCP Server
Anthropic 提供了 7 个常用的官方 MCP Server:
| Server | 功能 | 用途 |
|---|---|---|
| filesystem | 读写文件 | 让 Agent 访问指定目录的文件 |
| github | GitHub API | PR、Issue、代码搜索 |
| postgres | PostgreSQL 数据库 | 查询数据库 |
| git | Git 操作 | 查看历史、分支、差异 |
| brave-search | Web 搜索 | 互联网搜索 |
| google-maps | 地图服务 | 地理位置查询 |
| puppeteer | 浏览器自动化 | 网页截图、爬取 |
社区还有数千个 MCP Server,覆盖数据库、云服务、通信工具、开发工具等。
MCP 与 Agent 的关系
MCP 解决的是 Agent 的工具接入层问题。回到 Agent 的四大核心组件:
没有 MCP 之前:每个工具都需要定制集成,接入成本高,维护困难。
有了 MCP 之后:每个工具实现一次 MCP Server,任何支持 MCP 的 Agent 都能直接使用。
为什么 MCP 放在 Agent 课程里?
因为 MCP 是 Agent 连接外部世界的标准方式。Agent 的「手」就是工具,而 MCP 是「手的接口标准」。不理解 MCP,就无法理解现代 Agent 的工具生态。
MCP 的安全模型
给 Agent 装手,也要防止它乱来。MCP 有四条安全原则:
| 原则 | 说明 |
|---|---|
| 用户同意 | Agent 使用工具前需要用户授权 |
| 数据隐私 | Server 只能访问被授权的数据 |
| 工具安全 | 工具调用有权限边界和审计日志 |
| 采样控制 | Server 不能随意让 Agent 执行 LLM 推理 |
安全提示
配置 MCP Server 时,只连接你需要的。不要一口气接入所有可用的 Server——每个 Server 都是潜在的攻击面。一个数据库 Server 配置不当,Agent 可能会执行破坏性的 SQL。
MCP 版本演进
| 版本 | 时间 | 关键变化 |
|---|---|---|
| 2024.11 | 初始发布 | 基础协议定义、stdio 传输 |
| 2025.03 | v2 | Elicitation(用户表单)、结构化工具输出、资源订阅 |
| 2025.06 | v3 | Streamable HTTP 传输(替代 SSE) |
| 2025.11 | v4 | OAuth 2.1 授权流程(草案) |
本节核心要点
- MCP 是 AI 的 USB-C——统一 AI 与外部系统的连接方式
- MCP 三层架构:Host(宿主)→ Client(客户端)→ Server(服务端)
- MCP 提供三种能力:Resources(数据)、Prompts(模板)、Tools(工具)
- 配置 MCP Server 后,Agent 获得对应工具的能力
- 安全原则:用户同意、数据隐私、工具安全、采样控制
- 只连接需要的 Server,不要过度暴露
思考题:如果让你给自己的项目设计一个 MCP Server,你会让它提供哪些 Tools?哪些操作必须设置权限?
下一节预告:一个 Agent 不够用?多个 Agent 怎么协作?分工、沟通、协调——多 Agent 协作的模式与挑战。