MCP (Model Context Protocol)
Anthropic 推出的开放协议,让 AI 模型标准化地连接外部工具、数据源和 API,类似于 AI 的 USB-C 接口。
发布 2026-06-21更新 2026-09-27核实 2026-09-27什么是 MCP
MCP(Model Context Protocol)是 Anthropic 于 2024 年 11 月发布的开放协议,用于标准化 AI 模型与外部工具、数据源、API 之间的连接方式。
打个比方:MCP 之于 AI 模型,就像 USB-C 之于电子设备——一个统一接口,连什么都行。
解决什么问题
在 MCP 出现之前,每个 AI 工具要连接外部系统都需要单独开发集成:
- Cursor 想连数据库 → 写一套数据库适配
- Claude Code 想连 GitHub → 写一套 GitHub 适配
- Copilot 想连 Jira → 写一套 Jira 适配
结果是 N 个工具 × M 个数据源 = N×M 套适配代码。
MCP 把这变成 N+M:每个工具实现一次 MCP 客户端,每个数据源实现一次 MCP Server,就可以互相连接。
这是「协议分层」的常见受益模式:HTTP 让任意浏览器能访问任意网站,LSP 让任意编辑器能支持任意语言。MCP 在做的是同一件事,只不过对象从「网页 / 语言」换成「工具 / 数据源」。
工作原理
MCP 采用 Client-Server 架构:
AI 工具(Cursor / Claude Code)
↕ MCP 协议(JSON-RPC 2.0)
MCP Server(文件系统 / 数据库 / API)
↕
实际数据源
三种能力
每个 MCP Server 可以暴露三种能力:
- Tools(工具) — 模型可以调用的函数(查数据库、发邮件、读文件)
- Resources(资源) — 模型可以读取的数据(文件内容、API 响应)
- Prompts(提示词模板) — 预定义的提示词模板(代码审查模板、文档生成模板)
传输方式
- stdio — 本地进程通信(Claude Code 连本地 MCP Server,最常见)
- SSE / HTTP — 远程网络通信(Cursor 连远程托管的 MCP Server)
消息格式
底层是 JSON-RPC 2.0,对调试很友好。一次「列出可用工具」的握手大致是这样:
// Client → Server
{ "jsonrpc": "2.0", "id": 1, "method": "tools/list" }
// Server → Client
{
"jsonrpc": "2.0", "id": 1,
"result": {
"tools": [
{
"name": "query_db",
"description": "Run a read-only SQL query",
"inputSchema": {
"type": "object",
"properties": { "sql": { "type": "string" } },
"required": ["sql"]
}
}
]
}
}
随后模型决定调用某个工具,Client 再发 tools/call,Server 返回执行结果。inputSchema 是 JSON Schema,模型据此知道参数怎么传——这套机制和 function calling 同源,但把「函数定义」从「应用内硬编码」搬到了「Server 自我描述」。
实际应用
Cursor + MCP
Cursor 支持 MCP 后,可以:
- 直接读取本地数据库 schema
- 调用外部 API 获取实时数据
- 读取项目文档和设计稿
配置示例(.cursor/mcp.json):
{
"servers": {
"postgres": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-postgres", "postgresql://localhost/mydb"]
}
}
}
Claude Code + MCP
Claude Code 原生支持 MCP,通过 claude mcp add 命令添加 Server:
# 添加文件系统 MCP Server
claude mcp add filesystem -- npx -y @modelcontextprotocol/server-filesystem /path/to/project
# 添加 GitHub MCP Server
claude mcp add github -- npx -y @modelcontextprotocol/server-github
五分钟上手清单
第一次接入,建议按这个顺序,少踩坑:
- 挑一个无副作用的 Server 试水——
filesystem(只读模式)或sqlite(指向本地测试库)。不要拿github/postgres写库这种带破坏力的当 Hello World。 - 在客户端里确认握手成功——Cursor 设置页 / Claude Code
claude mcp list应能看到工具列表。看不到通常是command路径或args写错。 - 手动让模型调一次——例如「列出当前目录所有 .md 文件」,验证 stdio 通路工作。
- 加一个真实场景的 Server——比如你常用的笔记/数据库/Jira。
- 再考虑写自己的 Server——SDK 见 官方仓库,Python / TypeScript 都有,最小骨架不超过 50 行。
常见 MCP Server
| Server | 功能 |
|---|---|
| filesystem | 读写本地文件 |
| postgres | 查询 PostgreSQL 数据库 |
| sqlite | 查询 SQLite 数据库 |
| github | 操作 GitHub(PR/Issue/搜索) |
| gitlab | 操作 GitLab |
| slack | 发送 Slack 消息 |
| google-drive | 读取 Google Drive 文件 |
| puppeteer | 浏览器自动化 |
| memory | 知识图谱持久记忆 |
| sequential-thinking | 结构化推理 |
完整列表见 modelcontextprotocol.io/servers;社区聚合也可看 Smithery。
与 function calling 的区别
| 维度 | function calling | MCP |
|---|---|---|
| 定义方式 | 每个工具硬编码 | 标准化协议 |
| 跨工具复用 | 一次开发,处处可用 | |
| 运行时发现 | 预定义 | 动态发现 Server 能力 |
| 生态 | 各自为政 | 统一社区 |
| 底层机制 | 模型 API 直传 schema | 仍是 function calling,但 schema 来自 Server |
简而言之:MCP 没有取代 function calling,而是给「函数定义从哪儿来」加了一层标准化。模型那一端的协议(拿到 schema → 决定调哪个 → 传参 → 收结果)没变。
常见踩坑
- stdio Server 进程没退干净——客户端崩溃时子进程会变孤儿,下次启动连不上端口。Linux/macOS 用
ps aux | grep mcp清掉;Windows 任务管理器搜npx/node。 npx -y首次拉包慢,握手超时——预先在终端跑一次npx -y @modelcontextprotocol/server-foo --help把缓存暖好。- 路径含空格 / 中文——
server-filesystem早期版本对 Windows 路径处理粗糙,建议用全英文路径或链接。 - 凭据明文写在 mcp.json——
mcp.json经常被提交到 git,里面别直接写 DB 密码 / API Key。用环境变量或 Composio 这类托管 Auth 的中间层。 - 生产环境装社区 Server——MCP Server 拿到的是模型可调用权限,恶意 Server 可以让模型「自愿」泄漏数据。社区 Server 上生产前必须审代码,参考 MCP 1.0 发布日的观点。另需遵循规范「Security and Trust & Safety」一节的原则:工具描述等注解应视为不可信内容(除非来自可信 Server),调用任何工具前必须取得用户明确同意。
什么场景不该用 MCP
MCP 不是万能胶水,下面这些场景上 MCP 是给自己加复杂度:
- 只在一个应用内调用,永不复用——直接 function calling 更轻。
- 延迟敏感的同步调用——MCP 多了一层 stdio/HTTP 跳转,纳秒级场景别套。
- 大流量数据搬运——MCP 通信适合「指令 + 元数据」,搬几百 MB 文件应该走旁路(让模型拿到下载链接,而不是把字节流塞进 MCP 消息)。
- 多 Agent 互相协作——这是 A2A 的目标,不是 MCP。一句话区分:MCP 是 Agent ↔ 工具,A2A 是 Agent ↔ Agent。
生态现状
当前规范版本(2026-09-27 核对)
MCP 已改用「日期版本号」,不再用 1.0 / 2.0 这类序号。当前正式版规范为 2026-07-28(依据 modelcontextprotocol.io 官方规范页,其 schema 锚定为 schema/2026-07-28/schema.ts)。本站早期文章里「MCP 1.0」的写法是 2026 年中的旧口径,读到时请以日期版为准。
这一版的关键事实:
- 基础协议:JSON-RPC 2.0 报文;无状态、自包含的请求;按请求做能力协商(per-request capability negotiation)。
- 三个服务端能力:Resources(上下文与数据)、Prompts(模板化消息与工作流)、Tools(供模型执行的函数)。
- 一个客户端能力:Elicitation(服务端反向向用户请求补充信息)。
- 传输层:远程传输是 Streamable HTTP;旧的 HTTP+SSE 传输已被弃用(deprecated)。仍在用 SSE 的 Server 应规划迁移。
三个官方扩展(均 opt-in,需客户端与服务端同时支持并在初始化时协商)
| 扩展 | 作用 | 为什么重要 |
|---|---|---|
| Tasks | 长耗时操作的异步执行:轮询、中途追加输入、持久化句柄 | 让 MCP 能承载「跑几十分钟」的任务,而不只是一次工具调用 |
| Skills over MCP | 以结构化、可发现的方式承载 Agent 工作流指令 | 补齐「拿到工具和数据之后,按什么流程组合」这一层,见 Agent Skills 实战 |
| MCP Apps | 在对话内内联渲染交互式 UI(图表、表单、播放器) | 把 MCP 从「后端工具协议」推到「可交互界面协议」 |
对选型的影响:过去判「一个客户端支不支持 MCP」只需问一句;现在必须问**「支持哪个规范日期版本 + 哪些扩展」**——只支持核心协议、不支持 Tasks 的客户端,跑不了长任务 MCP Server。
工具支持
截至 2026 年中,MCP 已被以下工具支持:
- Claude Code / Claude Desktop(Anthropic)— 原生
- Cursor(AI IDE)— 原生
- Windsurf(AI IDE)— 原生
- Cline / Roo Code(CLI)— 原生
- Coze / Dify(Agent 平台)— 部分支持
- VS Code Copilot — 已支持
社区已有 200+ 个开源 MCP Server,覆盖数据库、云服务、开发工具、办公软件等场景。聚合与一键安装可看 Smithery 和 MCP Toolbox,权限/Auth 托管可看 Composio。
延伸阅读
- 协议层面对比:A2A(Agent-to-Agent Protocol)——Agent ↔ Agent 通信
- 基础概念:Function Calling——模型如何决定调用哪个工具
- 行业事件:Anthropic 推出 MCP 协议 1.0(2026-06,旧口径)
- 官方规范:MCP Specification(modelcontextprotocol.io,当前版 2026-07-28)
相关工具
Claude Desktop
Anthropic 官方桌面客户端——原生 MCP 支持 + 一键 .mcpb 扩展安装 + Connectors 面板
Composio
AI Agent 集成中间件——1000+ 工具 + 托管 OAuth + 框架无关 + MCP + 沙箱执行
MCP Toolbox
Google 出品的 MCP 数据库网关——42+ 数据源 + 声明式工具 + 连接池 + IAM + OpenTelemetry
Smithery
MCP server 注册中心——3300+ server + 一键安装 + 远程托管 + CLI + 多客户端
Cursor
AI 原生代码编辑器,Composer 多文件改写一时无两(现为 SpaceX 子公司)
相关模型
Cursor vs Aider:GUI IDE 还是 CLI?2026 对比
Cursor vs Aider 2026 选型对比:GUI IDE vs Git 原生 CLI,从 Composer vs Architect 双模型、Tab 补全、多模型 BYOK、价格计费、开源与否和适合人群判断,帮开发者选对。Cursor 是闭源 VS Code fork 月费 $20,Aider 是开源 Apache-2.0 CLI 自带 API key。
Alice vs Claude Desktop:全局快捷键买断 vs MCP 桌面旗舰(2026 实测选型)
Alice vs Claude Desktop 2026 选型对比:heyalice.app 桌面快捷键助手(BYO API + 一次买断) vs Anthropic 官方 MCP 桌面旗舰(Opus 推理 + .mcpb 扩展)。从定位、核心能力、模型支持、价格、国内可用性 6 个维度帮你选对桌面 AI Agent。
Augment Code vs Cursor:企业 AI 编程怎么选?Context Engine vs AI IDE 对比
Augment Code vs Cursor 2026 选型对比:Context Engine 全仓索引的企业 AI 平台 vs SpaceX 收购的 AI IDE 天花板,从形态、Context 覆盖、长任务、价格、合规、中文支持和适合人群 8 个维度判断,帮你选对企业 AI 编程工具。
AutoGLM vs Claude Desktop:国产桌面 Agent vs Anthropic 桌面旗舰(2026 实测选型)
AutoGLM 和 Claude Desktop 都是桌面 AI Agent,但一个是智谱开源 GUI Agent(操作手机 / 浏览器界面),一个是 Anthropic 官方 MCP 旗舰客户端。本文从定位、能力、价格、国内可用性帮你选对工具。
Cursor vs Claude Code:什么时候用哪个?(2026 实测选型)
Cursor 和 Claude Code 到底怎么选?一句话结论 + 决策树 + 价格实测 + 国内可用性对比。GUI 派选 Cursor,终端长任务派选 Claude Code,最优解其实是共存。
Claude Desktop vs Crush:桌面 GUI vs 终端 TUI(2026 实测选型)
Claude Desktop vs Crush 2026 选型对比:Anthropic 官方桌面 GUI 客户端(MCP 旗舰 + Claude Opus)vs Charmbracelet 开源终端 TUI Agent(多模型 + LSP + FSL-1.1-MIT)。从交互形态、模型、生态、价格、国内可用性帮你选对 AI Agent。