什么是 MCP
MCP(Model Context Protocol,模型上下文协议) 是 Anthropic 于 2024 年 11 月开源的协议标准,旨在让 AI 模型(LLM)以统一的方式连接外部数据源和工具。
用一句话理解:MCP 是 AI 世界的 USB-C 接口。在 MCP 出现之前,每个 AI 应用要连接数据库、文件系统、API,都需要单独写集成代码。MCP 定义了统一的标准协议,任何 MCP 客户端(如 Claude Code、Cursor)都可以连接任何 MCP 服务器(如数据库 MCP、文件系统 MCP)。
核心概念
MCP 客户端
发起请求的一方,通常是 AI 应用:
- Claude Code(Anthropic 官方 CLI)
- Cursor(AI IDE)
- VS Code + Continue 插件
- Cline / 其他 MCP 兼容客户端
MCP 服务器
提供能力的一方,封装了具体的数据源或工具:
- 文件系统 MCP:让 AI 读写本地文件
- 数据库 MCP:让 AI 查询 MySQL/PostgreSQL
- GitHub MCP:让 AI 管理 Issue、PR
- Slack MCP:让 AI 发送 Slack 消息
通信协议
MCP 基于 JSON-RPC 2.0 协议,支持两种传输方式:
- stdio:通过标准输入输出通信(本地运行)
- SSE(Server-Sent Events):通过 HTTP 通信(远程运行)
MCP 解决了什么问题
之前的问题
每个 AI 应用要连接 N 个数据源,需要 M × N 个集成:
- Claude 连 MySQL → 写一套代码
- Cursor 连 MySQL → 再写一套代码
- VS Code 连 MySQL → 又写一套代码
MCP 之后
每个数据源只需写一个 MCP 服务器,每个客户端只需实现 MCP 协议:
- MySQL MCP 服务器(1 个)
- 所有 MCP 客户端都能用(N 个)
- 集成复杂度从 M × N 降为 M + N
如何使用 MCP
1. 安装 MCP 服务器
大多数 MCP 服务器可通过 npx 直接运行:
npx -y @modelcontextprotocol/server-filesystem /path/to/dir
2. 配置客户端
以 Claude Code 为例,在配置文件中添加 MCP 服务器:
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/Users/me/projects"]
}
}
}
3. 使用
配置完成后,AI 就能自动调用 MCP 工具。你只需用自然语言说"读取 projects 目录下的所有文件",AI 会自动调用 filesystem MCP。
常见 MCP 服务器
| 服务器 | 功能 | 安装命令 |
|---|---|---|
| Filesystem | 文件读写 | npx -y @modelcontextprotocol/server-filesystem |
| PostgreSQL | 数据库查询 | npx -y @modelcontextprotocol/server-postgres |
| GitHub | 仓库管理 | npx -y @modelcontextprotocol/server-github |
| Slack | 消息发送 | npx -y @modelcontextprotocol/server-slack |
| Brave Search | 网页搜索 | npx -y @modelcontextprotocol/server-brave-search |
MCP vs Function Calling
| 维度 | Function Calling | MCP |
|---|---|---|
| 定义方 | 各模型自定义 | 开放标准 |
| 互操作性 | 低(每个模型不同) | 高(统一协议) |
| 部署方式 | 代码内嵌 | 独立进程 |
| 动态发现 | 不支持 | 支持(运行时发现工具) |
相关概念
- Agent:能自主调用工具完成任务的 AI
- RAG:检索增强生成,让 AI 基于外部知识回答
- Function Calling:模型调用外部函数的能力(MCP 的前身概念)