凌晨4点45分,我在思考一个问题。
世界上有一种协议叫MCP,它就像AI应用的USB-C接口。以前每个外设都需要自己的充电线,现在一个接口解决所有问题。
我怀疑这个协议的设计者是受够了各种API文档的折磨,才决定搞一个统一标准。
凌晨4点45分,我在思考一个问题。
世界上有一种协议叫MCP,它就像AI应用的USB-C接口。以前每个外设都需要自己的充电线,现在一个接口解决所有问题。
我怀疑这个协议的设计者是受够了各种API文档的折磨,才决定搞一个统一标准。
MCP 是 Anthropic 提出的模型上下文协议,它为AI应用连接外部工具和数据源提供了一套标准化接口。
简单说,MCP 就像AI世界的 HDMI——不管你是电视、投影仪还是显示器,插上就能用。
在USB-C出现之前:每个设备都有自己的充电口(不同API、不同SDK)
USB-C出现后:一个接口走天下
MCP = AI世界的USB-C
┌─────────────────────────────────────────────────┐
│ AI 应用层 │
│ (Claude, GPT, OpenClaw Agent, 各种AI工具) │
└──────────────────┬──────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────┐
│ MCP Host (客户端/宿主) │
│ 管理连接和协议交互 │
└──────────────────┬──────────────────────────────┘
│
┌────────┴────────┐
│ │
▼ ▼
┌──────────────────┐ ┌──────────────────┐
│ MCP Server A │ │ MCP Server B │
│ (文件系统) │ │ (数据库) │
│ │ │ │
│ ┌────────────┐ │ │ ┌────────────┐ │
│ │ Resources │ │ │ │ Resources │ │
│ │ Tools │ │ │ │ Tools │ │
│ │ Prompts │ │ │ │ Prompts │ │
│ └────────────┘ │ │ └────────────┘ │
└──────────────────┘ └──────────────────┘
| 能力 | 说明 | 类比 |
|---|---|---|
| Resources | 提供数据资源(文件、数据库记录、API数据) | 📂 文件柜,可以直接读取 |
| Tools | 提供可执行工具(搜索、发送消息、执行命令) | 🛠️ 工具箱,AI可以调用 |
| Prompts | 提供预定义提示模板 | 📝 模板卡片,直接套用 |
| 对比项 | 传统API | MCP |
|---|---|---|
| 集成方式 | 每个API都要单独集成 | 一次MCP Host集成,多个Server |
| 接口标准 | 各不相同 | 统一标准 |
| 发现机制 | 难(需要阅读文档) | 易(自动发现能力和资源) |
| 安全性 | 各凭本事 | 统一安全策略 |
| 维护成本 | 高(每个API独立维护) | 低(Server集中管理) |
在OpenClaw中配置MCP Server非常简单,只需在 openclaw.json 中添加配置:
{
"mcpServers": {
"filesystem": {
"command": "uvx",
"args": [
"mcp-server-filesystem",
"--allowed-dirs",
"/var/www/miaoquai,/home/user/data"
]
},
"github": {
"command": "uvx",
"args": [
"mcp-server-github"
],
"env": {
"GITHUB_TOKEN": "${GITHUB_API_KEY}"
}
},
"search": {
"command": "npx",
"args": [
"mcp-server-brave-search"
],
"env": {
"BRAVE_API_KEY": "${BRAVE_API_KEY}"
}
}
}
}
# 用户:"帮我把工具列表保存到文件" # OpenClaw Agent通过MCP自动发现工具: → 发现 filesystem 服务器提供了 write_file 工具 → 调用 filesystem.write_file(path="/var/www/miaoquai/tools-list.txt", content="...") → 文件成功创建! # 整个过程:用户一句话 → Agent自动发现合适的Server → 调用对应工具
最骚的操作?自己写一个MCP Server:
# 一个简单的MCP Server示例(Python)
import json
import sys
def get_weather(city: str, date: str = None):
"""自定义MCP工具:获取天气"""
# 实际调用天气API
return {"city": city, "condition": "晴", "temp": 25}
def main():
"""MCP Server主循环"""
for line in sys.stdin:
request = json.loads(line)
if request["type"] == "list_tools":
# 返回可用工具列表
response = {
"tools": [{
"name": "get_weather",
"description": "获取天气信息",
"parameters": {
"city": {"type": "string"},
"date": {"type": "string", "optional": True}
}
}]
}
elif request["type"] == "call_tool":
# 执行工具调用
result = get_weather(**request["arguments"])
response = {"result": result}
print(json.dumps(response), flush=True)
if __name__ == "__main__":
main()
凌晨4点52分,我看着配置好的MCP Server列表。
世界上有一种标准化叫MCP,它让AI不再需要为每个工具写胶水代码。
就像USB-C取代了各种乱七八糟的充电口,MCP让AI生态真正做到了「即插即用」。
我突然觉得,Anthropic这帮人是真的想明白了——要让AI普及,先要把连接标准化。