MCP 协议
Model Context Protocol(MCP,模型上下文协议)是一个开放标准,定义了 AI 模型如何安全地连接外部工具、数据源和服务。如果把 AI 模型比作大脑,MCP 就是让大脑能"伸手"去拿数据库、文件系统和 API 的那套神经系统。
为什么需要 MCP
在 MCP 出现之前,每个 AI 应用与外部工具的集成都是"手写"的。开发者为 ChatGPT 写一套插件接口,为 Claude 再写另一套,为本地部署的开源模型又写一套——这就像每个设备都需要自己的充电器。
MCP 的目标是成为 AI 领域的 USB-C:一个统一的标准,一次接入,到处可用。
| 问题 | MCP 之前的方案 | MCP 的方案 |
|---|---|---|
| 集成方式 | 每个 AI 平台定制开发 | 统一协议,一次对接 |
| 维护成本 | 多个版本并行,同步困难 | 单点维护,自动兼容 |
| 安全模型 | 各自实现,质量参差 | 标准化权限控制 |
| 扩展性 | 每加一个工具都要改代码 | 动态发现,即插即用 |
MCP 如何工作
MCP 采用经典的 客户端-服务器(client-server) 架构:
┌─────────────────────────────────────────┐
│ AI 主机 (Host) │
│ ┌──────────────────────────────────┐ │
│ │ AI 模型 (Claude) │ │
│ └──────────┬───────────────────────┘ │
│ │ MCP 协议 │
│ ┌──────────▼───────────────────────┐ │
│ │ MCP 客户端 (Client) │ │
│ └──────────┬───────────────────────┘ │
└──────────────┼──────────────────────────┘
│ JSON-RPC over stdio/SSE
┌──────────┼──────────┐
│ │ │
┌───▼───┐ ┌───▼───┐ ┌───▼───┐
│ MCP │ │ MCP │ │ MCP │
│ 服务端 │ │ 服务端 │ │ 服务端 │
│(文件) │ │(数据库)│ │(API) │
└───────┘ └───────┘ └───────┘三个核心概念
MCP 定义了三种基本能力,供 AI 模型与服务端交互:
Resources(资源):服务端暴露的数据,类似于"可读文件"。AI 可以通过 MCP 读取文件内容、查询数据库记录、获取 API 返回结果。资源有唯一的 URI 标识,支持订阅和变更通知。
Tools(工具):服务端暴露的可执行操作,类似于"可调用函数"。AI 可以根据需要调用工具来写入数据、发送消息、触发工作流。工具需要明确的参数定义,AI 会自动生成参数值。
Prompts(提示模板):服务端暴露的预设提示模板,类似于"可复用的指令片段"。用户或 AI 可以加载这些模板来快速启动特定任务,比如"代码审查"或"生成周报"。
通信方式
MCP 支持两种传输层:
- stdio:客户端通过标准输入/输出与本地启动的服务端进程通信,适合本地开发工具
- SSE(Server-Sent Events):通过 HTTP 连接实现远程通信,适合云端服务和分布式部署
谁在支持 MCP
MCP 由 Anthropic 发起并开源,但它的设计目标是成为行业标准。目前已有广泛的生态支持:
- AI 平台:Claude Desktop、Claude Code 原生支持 MCP;OpenAI 也已宣布支持
- 开发工具:VS Code、JetBrains IDE、Zed 等编辑器正在集成 MCP
- SaaS 服务:GitHub、Slack、Notion、Google Drive、Postgres、Supabase 等提供了官方 MCP 服务端
- 框架与 SDK:Python、TypeScript、Java、Go 等语言的 MCP SDK 均已发布
一个简单的例子
假设你有一个本地 SQLite 数据库,想用 Claude 查询它。传统方式需要写 Python 脚本、处理输入输出、管理会话。用 MCP,你只需启动一个 MCP 服务端:
{
"mcpServers": {
"sqlite": {
"command": "uvx",
"args": ["mcp-server-sqlite", "--db-path", "./data.db"]
}
}
}Claude 会自动发现这个服务端提供的 tools(如 read_query、execute_query),并在需要时调用它们——就像这些工具是 Claude 原生能力的一部分。
对开发者的意义
MCP 改变了 AI 集成的游戏规则。对开发者而言,这意味着:
- 一次开发,多处运行:写一个 MCP 服务端,所有支持 MCP 的 AI 都能用
- 关注业务逻辑:不用再操心 AI 平台的集成细节
- 渐进式增强:可以先暴露一个工具,再逐步增加,AI 会自动适应
- 安全可控:每个工具的权限和资源范围清晰定义,避免 AI 越权操作
MCP 是 AI 生态走向标准化的关键一步。就像 HTTP 让 Web 成为可能一样,MCP 正在为 AI 驱动的自动化世界铺设基础设施。