🔌 MCP (Model Context Protocol) 是什么?——AI应用的USB-C接口

📅 更新时间:2026年5月24日 凌晨4点45分
🏷️ 分类:AI协议 · MCP · 工具生态
⏱️ 阅读时间:约7分钟
🎭 风格:王家卫式开场 + 周星驰式脑洞

凌晨4点45分,我在思考一个问题。

世界上有一种协议叫MCP,它就像AI应用的USB-C接口。以前每个外设都需要自己的充电线,现在一个接口解决所有问题。

我怀疑这个协议的设计者是受够了各种API文档的折磨,才决定搞一个统一标准。

📚 什么是 MCP(Model Context Protocol)?

MCP 是 Anthropic 提出的模型上下文协议,它为AI应用连接外部工具和数据源提供了一套标准化接口

简单说,MCP 就像AI世界的 HDMI——不管你是电视、投影仪还是显示器,插上就能用。

🔌

USB-C 比喻

在USB-C出现之前:每个设备都有自己的充电口(不同API、不同SDK)

USB-C出现后:一个接口走天下

MCP = AI世界的USB-C

🧠 核心原理:MCP架构

┌─────────────────────────────────────────────────┐
│                   AI 应用层                      │
│   (Claude, GPT, OpenClaw Agent, 各种AI工具)      │
└──────────────────┬──────────────────────────────┘
                   │
                   ▼
┌─────────────────────────────────────────────────┐
│           MCP Host (客户端/宿主)                  │
│           管理连接和协议交互                       │
└──────────────────┬──────────────────────────────┘
                   │
          ┌────────┴────────┐
          │                 │
          ▼                 ▼
┌──────────────────┐  ┌──────────────────┐
│   MCP Server A   │  │   MCP Server B   │
│   (文件系统)      │  │   (数据库)        │
│                  │  │                  │
│  ┌────────────┐  │  │  ┌────────────┐  │
│  │ Resources  │  │  │  │ Resources  │  │
│  │ Tools      │  │  │  │ Tools      │  │
│  │ Prompts    │  │  │  │ Prompts    │  │
│  └────────────┘  │  │  └────────────┘  │
└──────────────────┘  └──────────────────┘

MCP的三大核心能力

能力 说明 类比
Resources 提供数据资源(文件、数据库记录、API数据) 📂 文件柜,可以直接读取
Tools 提供可执行工具(搜索、发送消息、执行命令) 🛠️ 工具箱,AI可以调用
Prompts 提供预定义提示模板 📝 模板卡片,直接套用

⚙️ MCP vs 传统API

对比项 传统API MCP
集成方式 每个API都要单独集成 一次MCP Host集成,多个Server
接口标准 各不相同 统一标准
发现机制 难(需要阅读文档) 易(自动发现能力和资源)
安全性 各凭本事 统一安全策略
维护成本 高(每个API独立维护) 低(Server集中管理)

💻 OpenClaw 实战:配置MCP Server

场景:为OpenClaw Agent添加文件系统访问能力

在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}"
      }
    }
  }
}

使用MCP的Agent对话

# 用户:"帮我把工具列表保存到文件"

# OpenClaw Agent通过MCP自动发现工具:
→ 发现 filesystem 服务器提供了 write_file 工具
→ 调用 filesystem.write_file(path="/var/www/miaoquai/tools-list.txt", content="...")
→ 文件成功创建!

# 整个过程:用户一句话 → Agent自动发现合适的Server → 调用对应工具

🎯 最佳实践 & 踩坑提醒

✅ 推荐做法:
❌ 常见坑:

🚀 进阶玩法:自建MCP 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普及,先要把连接标准化。

🔗 相关资源

MCP Model Context Protocol AI协议 OpenClaw 工具生态 妙趣AI