"2024年11月,Anthropic 发布了 MCP。那一天,AI Agent 的世界终于有了'USB接口'——一个所有模型都能通用的工具标准。我花了3秒钟理解这个概念,然后花了3天去消化它的影响。"
MCP(Model Context Protocol,模型上下文协议)是由 Anthropic 在 2024 年 11 月推出的一个开放标准协议,用于标准化 AI 模型与外部数据源、工具之间的通信方式。
它的目标是解决一个核心问题:每个 AI 应用都要为每个工具写一套定制化的集成代码。MCP 把这个混乱的局面统一成了一套标准协议——就像 USB 统一了硬件接口一样。
┌─────────────┐ │ ChatGPT │──→ 自定义插件 API ├─────────────┤ │ Claude │──→ 自定义 Tools API ├─────────────┤ │ Copilot │──→ 自定义 Extensions API ├─────────────┤ │ 本地 LLM │──→ 自定义 Function Call └─────────────┘ 每个模型 × 每个工具 = N×M 个集成要开发 🔥
┌─────────────┐ │ ChatGPT │──┐ ├─────────────┤ │ │ Claude │──┼──→ MCP Server(标准协议)──→ 任何数据源/工具 ├─────────────┤ │ │ Copilot │──┤ ├─────────────┤ │ │ 本地 LLM │──┘ └─────────────┘ 写一次 MCP Server,所有客户端通用 ✅
MCP 采用 客户端-服务器(Client-Server)架构:
| 组件 | 角色 | 类比 |
|---|---|---|
| MCP Host | 宿主应用(如 Claude Desktop、OpenClaw) | 电脑主机 |
| MCP Client | 内嵌在 Host 中,负责与 Server 通信 | USB 控制器 |
| MCP Server | 提供工具/资源/提示词的服务 | USB 设备 |
| 能力 | 说明 | 举例 |
|---|---|---|
| Tools(工具) | 模型可以调用的函数 | 搜索数据库、发送邮件、执行代码 |
| Resources(资源) | 应用/用户提供的上下文数据 | 文件内容、数据库记录、API响应 |
| Prompts(提示词) | 预定义的提示词模板 | 代码审查模板、报告生成模板 |
MCP 支持两种传输方式:
# MCP 通信示例(JSON-RPC 2.0 格式)
# 1. 客户端初始化连接
Client → Server: {
"jsonrpc": "2.0",
"id": 1,
"method": "initialize",
"params": {
"protocolVersion": "2024-11-05",
"capabilities": {},
"clientInfo": { "name": "openclaw", "version": "1.0.0" }
}
}
# 2. Server 返回能力声明
Server → Client: {
"jsonrpc": "2.0",
"id": 1,
"result": {
"protocolVersion": "2024-11-05",
"capabilities": {
"tools": { "listChanged": true },
"resources": { "subscribe": true }
},
"serverInfo": { "name": "my-mcp-server", "version": "1.0.0" }
}
}
# 3. 客户端请求工具列表
Client → Server: {
"jsonrpc": "2.0",
"id": 2,
"method": "tools/list"
}
# 4. Server 返回可用工具
Server → Client: {
"jsonrpc": "2.0",
"id": 2,
"result": {
"tools": [
{
"name": "search_database",
"description": "搜索公司内部数据库",
"inputSchema": {
"type": "object",
"properties": {
"query": { "type": "string", "description": "搜索关键词" }
},
"required": ["query"]
}
}
]
}
}
# 5. 客户端调用工具
Client → Server: {
"jsonrpc": "2.0",
"id": 3,
"method": "tools/call",
"params": {
"name": "search_database",
"arguments": { "query": "Q1 销售数据" }
}
}
OpenClaw 深度集成了 MCP 协议,可以无缝连接任何 MCP 兼容的工具服务器。
# OpenClaw 配置文件 (config.yaml)
{
"mcpServers": {
# 本地 stdio 类型
"filesystem": {
"command": "npx",
"args": ["-y", "@anthropic/mcp-filesystem", "/workspace"]
},
# 远程 SSE 类型
"remote-tools": {
"url": "https://my-mcp-server.example.com/sse",
"headers": {
"Authorization": "Bearer ${MCP_API_KEY}"
}
},
# 自定义工具服务器
"my-tools": {
"command": "node",
"args": ["./my-mcp-server/index.js"],
"env": {
"API_KEY": "${MY_API_KEY}"
}
}
}
}
配置完成后,MCP Server 提供的工具会自动注册到 OpenClaw 的工具列表中。Agent 可以像使用内置工具一样调用 MCP 工具:
# Agent 自动识别并调用 MCP 工具
用户: "帮我搜索公司数据库里Q1的销售报告"
Agent 思考: 用户需要搜索数据库,我应该使用 search_database 工具
Agent 调用: mcp:filesystem:search_database({ query: "Q1 销售数据" })
工具返回: [{ id: "RPT-001", title: "2026 Q1 销售报告", date: "2026-03-31" }]
Agent 回复: "找到了一份 Q1 销售报告(RPT-001),要打开查看详情吗?"
使用官方 SDK 可以快速创建 MCP Server:
// 使用 TypeScript SDK 创建 MCP Server
import { McpServer } from "@anthropic/mcp-server-sdk";
const server = new McpServer({
name: "my-awesome-tools",
version: "1.0.0"
});
// 注册工具
server.tool(
"calculate_roi",
"计算投资回报率",
{
investment: { type: "number", description: "投资金额" },
return: { type: "number", description: "回报金额" }
},
async ({ investment, return: ret }) => {
const roi = ((ret - investment) / investment * 100).toFixed(2);
return {
content: [{
type: "text",
text: `投资回报率:${roi}%`
}]
};
}
);
// 注册资源
server.resource(
"company-data",
"data://company/info",
async (uri) => ({
contents: [{
uri: uri.href,
mimeType: "application/json",
text: JSON.stringify({ name: "妙趣AI", founded: 2024 })
}]
})
);
// 注册提示词模板
server.prompt(
"code-review",
"代码审查模板",
{ language: { type: "string", description: "编程语言" } },
async ({ language }) => ({
messages: [{
role: "user",
content: `请审查以下 ${language} 代码,关注:\n1. 安全性问题\n2. 性能优化\n3. 代码规范\n\n代码:\n{{code}}`
}]
})
);
截至 2026 年初,MCP 生态已经蓬勃发展:
| 类别 | 热门 Server |
|---|---|
| 文件系统 | @anthropic/mcp-filesystem |
| 数据库 | mcp-postgres, mcp-sqlite |
| Web 浏览 | mcp-puppeteer, mcp-playwright |
| 代码开发 | mcp-github, mcp-gitlab |
| 搜索引擎 | mcp-brave-search, mcp-tavily |
| API 调用 | mcp-fetch, mcp-openapi |
| 企业工具 | mcp-slack, mcp-notion, mcp-google-drive |
| 对比维度 | MCP | OpenAI Function Calling | LangChain Tools |
|---|---|---|---|
| 标准化程度 | ✅ 开放标准 | ⚠️ 厂商私有 | ⚠️ 框架绑定 |
| 跨模型兼容 | ✅ 任意支持 MCP 的客户端 | ❌ 仅 OpenAI | ⚠️ 仅 LangChain |
| 双向通信 | ✅ 支持资源订阅和通知 | ❌ 仅请求-响应 | ❌ 仅请求-响应 |
| 部署方式 | ✅ 本地/远程都支持 | ⚠️ 通常为 API 调用 | ⚠️ 需嵌入 Python/JS |
MCP 是 AI 工具生态的"USB 标准"。它让工具开发者只需写一次集成代码,就能被所有支持 MCP 的 AI 应用使用。对于 OpenClaw 用户来说,MCP 意味着无限的扩展能力——你可以连接任何符合标准的工具服务器,让 Agent 能力无上限。
© 2026 妙趣AI | miaoquai.com - 让AI变得妙趣横生