Skip to content

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
Claude Code ── 定制集成 ── GitHub
Claude Code ── 定制集成 ── 数据库
Claude Code ── 定制集成 ── 文件系统
Cursor ── 定制集成 ── GitHub
Cursor ── 定制集成 ── 数据库
M × N 个定制集成
✅ 有 MCP
Claude Code ── MCP Client ──┐
Cursor ── MCP Client ──────┤
Windsurf ── MCP Client ───┘
MCP Server (GitHub) / 数据库 / 文件系统
M + N 个标准接口

MCP 的架构

MCP 采用 Client-Host-Server 三层模型:

🖥 Host(宿主) —— Claude Desktop / VS Code / Cursor
MCP Client 1 1:1 连接
MCP Client 2 1:1 连接
📂 文件系统 Server
🐙 GitHub Server
🗄 数据库 Server
  • Host:运行 AI 应用的程序(Claude Desktop、VS Code、Cursor 等)
  • Client:Host 内部与 Server 通信的客户端,每个 Client 与一个 Server 保持 1:1 连接
  • Server:提供能力的程序,每个 Server 独立运行,提供工具、资源或提示词模板

MCP 提供三种能力

📄
Resources
像 GET 请求——暴露数据
应用控制
file:///README.md → 项目文档
db:///users/schema → 表结构
api:///weather/bj → 天气数据
📝
Prompts
像函数定义——提示词模板
用户控制
code_review → 审查模板
参数:language、focus
bug_report → Bug 模板
🔧
Tools
像 POST 请求——模型调用动作
模型控制
search_code → 搜索代码
run_query → 执行查询
create_issue → 创建 Issue

这三种能力中最重要的是 Tools——它直接决定了 Agent 能做什么。


实战:配置 MCP Server

小李想让 Agent 能访问 GitHub。他需要配置 GitHub MCP Server。

Claude Code 中的配置

在 Claude Code 的配置文件中添加 MCP Server:

json
{
  "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 访问指定目录的文件
githubGitHub APIPR、Issue、代码搜索
postgresPostgreSQL 数据库查询数据库
gitGit 操作查看历史、分支、差异
brave-searchWeb 搜索互联网搜索
google-maps地图服务地理位置查询
puppeteer浏览器自动化网页截图、爬取

社区还有数千个 MCP Server,覆盖数据库、云服务、通信工具、开发工具等。


MCP 与 Agent 的关系

MCP 解决的是 Agent 的工具接入层问题。回到 Agent 的四大核心组件:

系统提示词定义角色和边界
工具★ MCP 在这里
记忆上下文管理和检索
决策循环驱动迭代执行

没有 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.03v2Elicitation(用户表单)、结构化工具输出、资源订阅
2025.06v3Streamable HTTP 传输(替代 SSE)
2025.11v4OAuth 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 协作的模式与挑战。

下一节:多 Agent 协作 →