AI小栈AI小栈
首页
  • 模块概览
  • Transformer 与注意力机制
  • 主流大模型对比
  • Prompt Engineering
  • Token 与成本核算
  • Function Calling
  • 模块概览
  • Agent 范式
  • 多 Agent 协作
  • 记忆系统
  • 规划与推理
  • 安全与可控性
  • 模块概览
  • LangChain / LangGraph
  • Claude Agent SDK
  • OpenAI Agents SDK
  • AutoGen / CrewAI
  • Dify / Coze
  • MCP 协议
  • 模块概览
  • RAG 工程化
  • 工具设计与封装
  • 流式输出与 UX
  • 可观测性
  • 部署与成本优化
  • 测试与评估
  • 模块概览
  • 智能编程助手
  • 知识库问答 Agent
  • 数据分析 Agent
  • 多模态 Agent
  • 运维 Agent
  • 从0到1构建
  • 模块概览
  • 论文解读
  • 开源项目追踪
  • MCP 生态
  • Agent 商业化
  • 职业路径
  • 模块概览
  • 技术面试实战
  • Agent 面试题解析
  • 项目经验包装
  • 流程与心态准备
首页
  • 模块概览
  • Transformer 与注意力机制
  • 主流大模型对比
  • Prompt Engineering
  • Token 与成本核算
  • Function Calling
  • 模块概览
  • Agent 范式
  • 多 Agent 协作
  • 记忆系统
  • 规划与推理
  • 安全与可控性
  • 模块概览
  • LangChain / LangGraph
  • Claude Agent SDK
  • OpenAI Agents SDK
  • AutoGen / CrewAI
  • Dify / Coze
  • MCP 协议
  • 模块概览
  • RAG 工程化
  • 工具设计与封装
  • 流式输出与 UX
  • 可观测性
  • 部署与成本优化
  • 测试与评估
  • 模块概览
  • 智能编程助手
  • 知识库问答 Agent
  • 数据分析 Agent
  • 多模态 Agent
  • 运维 Agent
  • 从0到1构建
  • 模块概览
  • 论文解读
  • 开源项目追踪
  • MCP 生态
  • Agent 商业化
  • 职业路径
  • 模块概览
  • 技术面试实战
  • Agent 面试题解析
  • 项目经验包装
  • 流程与心态准备
  • Agent 开发框架

    • 模块概览
    • LangChain 与 LangGraph
    • Claude Agent SDK 与 Anthropic API
    • OpenAI Agents SDK
    • AutoGen 与 CrewAI
    • Dify 与 Coze 低代码 Agent 平台
    • MCP 协议详解
    • 大模型 Skill 系统

MCP 协议详解

MCP Client-Server 架构

Model Context Protocol(MCP)是 Anthropic 在 2024 年底发布的开放协议,旨在为大模型与外部工具、数据源之间的交互建立统一标准。如果把 Agent 框架比作汽车的发动机和传动系统,MCP 就是标准化的轮胎接口——不管什么品牌的车,都可以安装标准规格的轮胎。MCP 解决的核心问题是工具生态的碎片化:每个 Agent 框架有自己的工具定义格式,每个工具提供方需要为每个框架做适配,这种 N×M 的适配成本严重阻碍了 Agent 生态的发展。

工具标准化

MCP 的标准化覆盖了三个层面:

工具描述标准化

每个 MCP 工具使用统一的 JSON Schema 格式描述:

  • name:工具的唯一标识符,采用蛇形命名法(如 search_documents)
  • description:工具功能的人类可读描述,供模型理解工具用途
  • inputSchema:工具输入参数的 JSON Schema 定义,包括参数类型、必填项、枚举值等约束

这种描述格式与 OpenAI 函数调用和 Anthropic 工具使用的 schema 格式兼容,使得同一个工具描述可以被不同模型直接使用,无需为每个模型单独编写适配代码。

工具调用标准化

MCP 规定了工具调用的交互协议:

  1. Client(Agent 框架侧)发送 tools/call 请求,包含工具名称和参数
  2. Server(工具提供侧)执行工具逻辑,返回结构化结果
  3. 结果可以是文本内容、图片、嵌入资源等类型

调用过程基于 JSON-RPC 2.0 协议,保证了请求-响应的格式一致性。错误处理也有统一规范——Server 返回标准错误码和错误消息,Client 可以据此做统一异常处理。

资源与提示标准化

除了工具调用,MCP 还标准化了两种额外能力:

  • Resources:Server 提供的可检索数据资源(文件、数据库记录、API 数据等),Client 可以按 URI 请求获取,作为模型上下文的补充。
  • Prompts:Server 提供的预置提示模板,Client 可以请求特定场景的提示词,减少重复的提示工程工作。

这两个能力让 MCP 不只是"工具调用协议",而是更完整的"模型上下文供给协议"——工具、数据、提示词三种上下文都有标准化的获取方式。

Server/Client 架构

MCP 采用经典的 Client/Server 架构,但角色定义与传统的 HTTP 服务不同:

MCP Server

Server 是工具与数据的提供方,它可以是一个长期运行的服务进程,也可以是一个按需启动的命令行工具。Server 的职责:

  • 声明自己提供的工具列表和描述
  • 声明自己提供的资源列表和 URI 模式
  • 声明自己提供的提示模板列表
  • 响应 Client 的工具调用请求,执行逻辑并返回结果
  • 响应 Client 的资源读取请求,返回数据内容

Server 的实现语言不限——Python、TypeScript、Java、Go 都有官方或社区的 SDK 支持。一个 Server 可以只提供单个工具(如天气查询),也可以提供一组相关工具(如数据库操作的完整套件)。

MCP Client

Client 是工具与数据的消费方,通常嵌入在 Agent 框架或应用中。Client 的职责:

  • 连接一个或多个 MCP Server
  • 请求 Server 的能力列表(工具、资源、提示)
  • 在 Agent 执行过程中,根据模型决策调用对应 Server 的工具
  • 管理连接状态、错误恢复和并发请求

Client 的关键设计是多 Server 并行连接——一个 Agent 可以同时连接数据库 Server、文件系统 Server、搜索 Server 等,将所有 Server 提供的工具统一呈现给模型,模型根据任务需要自主选择调用哪个 Server 的哪个工具。

传输协议

MCP 支持两种传输机制:

  • stdio:通过标准输入输出通信,适用于同一进程内的 Server(如命令行工具型的 Server)。Client 启动 Server 子进程,通过 stdin/stdout 交换 JSON-RPC 消息。
  • SSE(Server-Sent Events):基于 HTTP 的远程通信,适用于独立部署的 Server 服务。Client 通过 HTTP POST 发送请求,通过 SSE 接收响应和通知。

stdio 模式适合本地工具和轻量集成,SSE 模式适合远程服务和分布式部署。两种模式使用相同的 JSON-RPC 消息格式,只是传输通道不同。

生态现状

MCP 的生态在发布后迅速增长:

  • 官方 SDK:Anthropic 提供了 Python 和 TypeScript 的 Server/Client SDK,降低了实现门槛。
  • 社区 Server:GitHub、Slack、数据库、文件系统、搜索引擎等常用工具已有开源的 MCP Server 实现,开发者可以直接复用而非从零构建。
  • 框架集成:Claude Agent SDK、LangChain、OpenAI Agents SDK 等主流框架都已支持或正在集成 MCP Client 能力,Agent 可以自动发现和使用 MCP Server 提供的工具。
  • 平台支持:Dify、Coze 等低代码平台也开始接入 MCP 工具生态,扩大了低代码平台的工具选择范围。

根据 MCP 官方仓库的统计,社区贡献的 Server 实现已覆盖数十个常用服务和工具类别,增长速度持续加快。

为什么 MCP 重要?

MCP 的重要性不仅在于技术层面的标准化,更在于它正在改变 Agent 生态的协作模式:

  • 降低工具开发成本:工具提供方只需实现一个 MCP Server,所有支持 MCP 的 Agent 框架和模型都能使用,消除了为每个框架单独适配的重复工作。
  • 降低 Agent 构建成本:Agent 开发者不再需要为每个工具编写适配代码,MCP Client 自动发现和调用 Server 工具,工具接入从"编码实现"变为"配置连接"。
  • 促进工具生态繁荣:标准化的接口降低了工具共享的门槛,开发者可以发布 MCP Server 供社区使用,工具生态从封闭走向开放。
  • 提升 Agent 能力上限:丰富的工具生态意味着 Agent 可以接入更多外部能力,从简单的文本问答进化为真正能操作世界的智能助手。
  • 为模型竞争解耦工具层:不同模型的工具调用格式差异被 MCP 协议屏蔽,开发者可以自由切换模型而不必重做工具集成。

MCP 的愿景是成为 Agent 生态的基础协议层——类似 HTTP 对 Web 生态的角色。如果这个愿景实现,Agent 开发者将不再被某个框架或模型厂商的工具生态锁定,而是可以在统一标准下自由组合模型、框架和工具,真正实现"模型是大脑、框架是骨架、MCP 是神经"的分层架构。

本章小结

MCP 协议的三层标准化:

  1. 传输层:stdio / SSE 两种通信方式
  2. 协议层:Tools、Resources、Prompts 三类接口规范
  3. 应用层:Client 发现与调用 Server 提供的标准化能力

核心价值:将工具集成从 N×M 适配降低为 N+M 适配,促进工具生态繁荣。


📖 延伸阅读

  1. MCP 官方文档 —— 协议规范与快速入门
  2. MCP GitHub —— 官方实现与示例 Server
  3. Anthropic MCP 公告 —— 协议发布官方博客
  4. MCP Server 生态 —— 社区贡献的 MCP Server 列表
Prev
Dify 与 Coze 低代码 Agent 平台
Next
大模型 Skill 系统