跳转至正文
Kevin Ren
返回

MCP 协议 (Model Context Protocol)

MCP 协议 (Model Context Protocol)

MCP 是 Anthropic 于 2024 年 11 月开源的 AI 模型与外部工具/数据的标准化连接协议,被称为”AI 的 USB-C”。它解决了从 M×N 碎片化集成到 M+N 标准化连接的范式转变。


一、为什么需要 MCP?

1.1 大模型的根本限制

大模型本质上是一个封闭系统——它能”说”但不能”做”。无法获取训练集之外的信息,无法执行文本输出之外的操作。这是 AI Agent 落地的根本瓶颈:不论模型多聪明,不能连接现实世界的业务系统和数据,用处就极其有限。

1.2 MCP 之前是怎么做的?

方案问题
RAG + 向量数据库前 Agent 时代的做法,只能做检索增强,不能做工具调用
大模型插件(如 GPT-4 Plugins)OpenAI 私有协议,不开放
Function Call / Tool UseAgent 开发者必须在内部定义和实现每个 Tool,形成封闭系统

Function Call 方式的核心问题是:每次新增一个功能,必须由 Agent 开发者在代码中定义并实现一个新 Tool。M 个 AI 模型对接 N 个工具 → M×N 种适配方案。无法形成开放的生态。


二、MCP 是什么?

2.1 一句话定义

MCP 是一个开放的、标准化的协议,用单一协议取代碎片化的集成,让 AI 系统能够以统一方式访问数据源和工具。

类比:MCP 之于 AI 工具连接,如同 USB-C 之于设备连接——一根线走天下。

2.2 两个最大价值

  1. 开放系统:Agent 应用通过接入 MCP 变成开放系统——外部信息可以进来,物理上隔离的各种服务也能进入大模型上下文
  2. 关注点分离:功能提供方只需按协议暴露服务,Agent 应用只需知道它能按协议访问哪些服务——两者解耦

2.3 架构角色

MCP 架构中有三个严格区分的角色:

┌─────────────────┐     JSON-RPC 2.0      ┌─────────────────┐
│   MCP Client    │ ◄──────────────────► │   MCP Server    │
│   (协议客户端)    │   Streamable HTTP     │   (功能提供方)    │
└────────┬────────┘    or stdio            └─────────────────┘

    ┌────┴────┐
    │MCP Host │  ← AI 应用(Claude Desktop、OpenClaw 等)
    │(应用程序) │     内部集成 MCP Client
    └─────────┘

2.4 三类能力

能力用途
Tools外部函数调用(查询数据库、发送消息、操作文件)
Resources数据源访问(文件内容、API 响应)
Prompts提示模板(预定义的交互模式)

三、MCP 的关键时间线

时间事件
2024.11Anthropic 开源 MCP
2025.03发布 spec 2025-03-26,Streamable HTTP 取代 SSE 成为推荐传输
2025.12捐赠给 Linux 基金会(Agentic AI Foundation),从公司项目升级为行业标准
2026 初9700 万+ 月 SDK 下载量,10000+ 活跃 MCP Server

四、MCP vs Skills:能力扩展的两层

MCP 和 Agent Skills 是分层协作关系,不是替代关系。这是理解 Agent 架构的关键区分:

维度MCPSkills
层次工具层(连接外部世界)知识层(教 Agent 怎么做)
连接方式运行时动态连接(Client-Server)静态文件系统加载
协议JSON-RPC 2.0 over Streamable HTTP文件目录 + YAML + Markdown
状态有状态(会话连接)无状态(按需读取)
开发成本需写 Server 代码只需写 Markdown 文件
类比USB-C 接口操作手册 / SOP

MCP 是”递给你一把锤子”,Skills 是”教你怎么用这把锤子钉钉子”。

MCP 解决”能够连接”的问题,Skills 解决”知道如何使用”的问题。MCP 适合动态数据和工具连接,Skills 适合静态知识和流程规范——之前很多开发者用 MCP Server 传递静态知识(编码规范、部署流程),这些事 Skills 更合适。


五、企业级 MCP 最佳实践

5.1 MCP 的定位

在企业 Agent 架构中,MCP 是连接层——标准化接入外部系统,同时负责身份认证和审计治理。

5.2 关键原则

  1. 不要做成 REST API 镜像:不要把每个 REST 端点暴露为一个独立 Tool(导致上下文膨胀、模型选择困难)→ 应面向任务封装聚合工具,或实现”先检索再调用”缩小工具集
  2. 连接即治理:MCP 适合必须连接远程业务系统且有身份/权限/审计要求的场景
  3. 与 CLI 互补:MCP 管远程连接治理,CLI 管本地高效执行,两者覆盖不同场景

5.3 未来趋势:Skills over MCP

未来 MCP Server 可能不仅暴露工具,还通过 skills/list 分发配套的 Skill,实现:MCP 向下连接系统/数据,向上交付”技能”


六、MCP 在协议栈中的位置

Skills(知识层:教怎么做)

Agent(推理层:决定做什么)

MCP(工具层:连接外部系统)── 纵向集成
A2A(协作层:Agent 间委派)── 横向协作

Runtime(运行层:OpenClaw / Claude Code)

MCP 是纵向的——一个 Agent 连接多个工具。A2A 是横向的——多个 Agent 之间互相协作。两者组合被类比为 AI 领域的”TCP/IP 时刻”。


七、常见反模式

反模式正确做法
把每个 REST 端点暴露为独立 Tool面向任务封装聚合工具
用 MCP Server 传递静态知识静态知识用 Skills,MCP 只做动态连接
在无需远程连接时上 MCP本地操作优先用 CLI,MCP 仅用于必须远程的场景
MCP 和 Skills 互斥选择两者分层协作,不是替代关系


分享文章: