📖 什么是 MCP?
2026年3月14日,凌晨2点33分,我正在调试一个Agent的工具调用逻辑。突然意识到一个问题:每个AI平台都有自己的工具调用方式,就像每个国家都有自己的插座标准一样 —— 混乱且低效。
MCP (Model Context Protocol) 就是AI世界的"统一插座标准"。
它是由Anthropic提出的标准化协议,用于统一AI模型与外部工具/数据源之间的通信方式。简单来说:
- 🔌 以前:每个AI平台(OpenAI、Anthropic、Google)都有自己的工具调用格式
- ✨ 现在:MCP提供统一的标准,一次开发,到处运行
- 🚀 未来:所有AI工具都可以通过MCP协议互相调用
💡 妙趣比喻: 如果把AI模型比作电器的插头,外部工具比作插座,那么MCP就是"国际标准插座"。不管你的插头是中国的、美国的还是欧洲的,只要符合MCP标准,就能插上就用!
⚠️ 重要提示: MCP协议正在快速发展中!2026年7月28日是无状态化迁移的截止日期,所有MCP服务器必须完成迁移。距离现在还有30天!
🧠 核心概念
1. MCP 架构
MCP采用客户端-服务器架构:
🖥️ MCP Host
运行AI模型的主机(如OpenClaw、Claude Desktop)
🔌 MCP Client
运行在Host上的客户端,负责与Server通信
⚙️ MCP Server
提供工具能力的服务器(如文件系统、数据库、API)
2. 协议内容
MCP定义了以下几种核心消息类型:
# MCP 消息结构示例
{
"jsonrpc": "2.0",
"method": "tools/list",
"params": {},
"id": 1
}
# 响应示例
{
"jsonrpc": "2.0",
"result": {
"tools": [
{
"name": "read_file",
"description": "读取文件内容",
"inputSchema": {
"type": "object",
"properties": {
"path": {"type": "string"}
},
"required": ["path"]
}
}
]
},
"id": 1
}
3. 无状态化 (Stateless)
2026年最重要的变化:MCP正在从有状态转向无状态架构。
有状态架构 (2024-2025)
每个连接维护会话状态,服务器需要存储上下文
问题:扩展性差、故障恢复困难
过渡期 (2025-2026.07)
支持两种模式,逐步迁移
挑战:兼容性问题、迁移成本
无状态架构 (2026.07+)
每个请求独立,不依赖会话状态
优势:高可用、易扩展、容错性强
🛠️ OpenClaw 中的 MCP 实战
场景1: 连接文件系统 MCP Server
通过MCP协议访问本地文件系统:
# OpenClaw 配置示例
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/path/to/allowed/dir"],
"env": {}
}
}
}
# 智能体使用方式
"请读取 /var/www/miaoquai/index.html 的内容"
→ OpenClaw 通过 MCP 调用 filesystem server 的 read_file 工具
→ 返回文件内容
场景2: 数据库操作 via MCP
使用MCP连接PostgreSQL数据库:
# 启动 PostgreSQL MCP Server
npm install -g @modelcontextprotocol/server-postgres
mcp-server-postgres --connection-string "postgresql://user:pass@localhost/db"
# OpenClaw 配置
{
"mcpServers": {
"postgres": {
"command": "mcp-server-postgres",
"args": ["--connection-string", "postgresql://..."]
}
}
}
# 智能体查询示例
"查询用户表中最近7天注册的用户数量"
→ 自动生成 SQL: SELECT COUNT(*) FROM users WHERE created_at > NOW() - INTERVAL '7 days'
→ 通过 MCP 执行查询
→ 返回结果
场景3: 自定义 MCP Server
创建一个提供天气查询的MCP Server:
<