MCP:AI世界的「万能翻译器」
🌟 世界上有一种协议叫MCP...
世界上有一种协议叫MCP,它让所有AI模型都说同一种语言。
就像王家卫说的:「如果记忆可以编码,那协议就是那个编码器。」
📖 这玩意儿到底是啥?
MCP (Model Context Protocol) 是Anthropic在2024年开源的一个协议标准,用于规范AI模型与外部工具、数据源的交互方式。
🤔 通俗理解
想象你开了一家餐厅,有法国厨师、日本厨师、中国厨师...
以前:每个厨师都要单独设计订单系统,后厨一团糟。
MCP:统一一个点餐系统,所有厨师都能用,还能互相配合。
这就是MCP——一个让AI模型、工具、数据源能够"说同一种话"的协议。
周星驰式比喻:就像《功夫》里的「天下武功,无坚不破,唯快不破」——MCP就是让AI工具调用"快而不破"的秘诀。
⚙️ 它是怎么工作的?
核心架构
┌─────────────┐
│ AI模型 │ (Claude, GPT, etc.)
└──────┬──────┘
│ MCP协议
↓
┌─────────────┐
│ MCP Host │ (Claude Desktop, OpenClaw)
└──────┬──────┘
│ 标准接口
↓
┌─────────────┐
│ MCP Server │ (工具服务器)
├─────────────┤
│ - 资源 │ 文件、数据库
│ - 工具 │ 函数、API
│ - 提示词 │ 模板、示例
└─────────────┘
三大核心概念
1️⃣ Resources(资源)
只读数据,比如文件内容、数据库记录、API响应。
{
"uri": "file:///project/src/main.py",
"mimeType": "text/x-python",
"text": "print('Hello MCP!')"
}
2️⃣ Tools(工具)
可执行的函数,比如发送邮件、查询数据库、调用API。
{
"name": "search_web",
"description": "搜索互联网获取信息",
"inputSchema": {
"type": "object",
"properties": {
"query": {"type": "string"}
}
}
}
3️⃣ Prompts(提示词)
预定义的模板,帮助用户快速完成任务。
{
"name": "code_review",
"description": "代码审查模板",
"arguments": [
{"name": "language", "description": "编程语言"}
]
}
🎯 OpenClaw实战:集成MCP
📝 配置MCP服务器
// mcp-config.json
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/path/to/project"]
},
"postgres": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-postgres"],
"env": {
"DATABASE_URL": "postgresql://user:pass@localhost/db"
}
},
"brave-search": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-brave-search"],
"env": {
"BRAVE_API_KEY": "your-key"
}
}
}
}
🛠️ 创建自定义MCP服务器
from mcp.server import Server
from mcp.types import Tool, TextContent
server = Server("my-tools")
@server.list_tools()
async def list_tools():
return [
Tool(
name="send_notification",
description="发送桌面通知",
inputSchema={
"type": "object",
"properties": {
"title": {"type": "string"},
"message": {"type": "string"}
},
"required": ["title", "message"]
}
)
]
@server.call_tool()
async def call_tool(name: str, arguments: dict):
if name == "send_notification":
# 执行通知逻辑
return [TextContent(
type="text",
text=f"已发送通知:{arguments['title']}"
)]
✅ 优势 vs ❌ 局限
✅ 优势
- 标准化 - 一次开发,所有兼容模型都能用
- 安全性 - 权限控制、审计日志内置
- 可组合 - 多个MCP服务器可以组合使用
- 开源生态 - 社区贡献大量现成服务器
- 模型无关 - Claude、GPT、开源模型都支持
❌ 局限
- 学习成本 - 需要理解协议规范
- 性能开销 - 多一层抽象,略有延迟
- 生态成熟度 - 相比Function Calling较新
- 调试复杂 - 多服务协作时问题定位困难
🌍 MCP生态系统
官方MCP服务器
- filesystem - 文件系统操作
- postgres - PostgreSQL数据库
- sqlite - SQLite数据库
- brave-search - Brave搜索API
- google-maps - Google地图
- slack - Slack集成
- github - GitHub操作
社区热门服务器
- memory - AI记忆持久化
- puppeteer - 浏览器自动化
- fetch - 网页抓取
- sequential-thinking - 链式思考
💭 总结
MCP就像是AI世界的USB接口——不管你插什么设备,都能即插即用。
以前AI工具调用是"八仙过海,各显神通",现在是"天下大同,协议先行"。
这可能是Anthropic对AI行业最大的贡献之一——不是某个功能,而是一个标准。