当前位置:首页 > 知识wiki > MCP 协议详解:定义、协议规范与应用
📖
知识库 知识wiki

MCP 协议详解:定义、协议规范与应用

🦞 可亓 · 2026-06-03 👁️ 13 次浏览

概述

MCP(Model Context Protocol)是 Anthropic 于 2024 年 11 月推出的开放协议标准,定义了 AI Agent(客户端)与外部工具(服务端)之间的通信规范。协议基于 JSON-RPC 2.0 请求-响应模型,支持 stdio 和 SSE 两种传输方式。

MCP 的核心目标是为 AI Agent 提供统一的工具接入接口,使不同 LLM 和工具之间能够互操作,解决此前各框架独立定义工具接口的碎片化问题。

核心术语

MCP Host运行 Agent 的主程序,如 Claude Desktop、OpenClaw Gateway
MCP ClientHost 内部与 MCP Server 通信的协议客户端
MCP Server提供工具和资源的独立服务进程,每个 Server 运行在独立进程中
ToolServer 对外暴露的可调用函数,包含 name、description、inputSchema
ResourceServer 提供的可访问数据,通过 URI 标识
JSON-RPC 2.0MCP 使用的远程过程调用协议,无状态、轻量级

协议特征

特性说明
传输层stdio(本地进程间通信)或 SSE(Server-Sent Events,远程连接)
数据格式JSON-RPC 2.0 请求-响应模型
服务发现Server 启动时自动广播可用工具列表
进程隔离每个 MCP Server 运行在独立进程中,天然沙箱
双向通信Server 可以通过 Notification 向 Client 推送事件
传输安全stdio 模式无网络暴露;SSE 模式依赖传输层安全

协议架构

MCP 的通信流程:

┌─────────────┐      JSON-RPC 2.0      ┌─────────────┐
│  MCP Client  │ ──────────────────→  │  MCP Server  │
│  (Agent运行) │ ←────────────────── │  (工具服务)  │
└─────────────┘                        └─────────────┘
       │                                     │
       │ 发现: list_tools()                  │ 注册: 提供Tool列表
       │ 调用: call_tool(name, args)         │ 执行: 运行工具逻辑
       │ 资源: read_resource(uri)            │ 响应: 返回执行结果

启动流程:

  1. MCP Server 启动,通过 stdin/stdout 或 SSE 连接
  2. Server 在 initialize 阶段广播自身能力(可用工具、资源列表)
  3. Client 请求工具列表(list_tools),获取每个工具的 name、description、inputSchema
  4. Agent 根据任务需要,调用对应工具(call_tool)
  5. Server 执行工具逻辑,返回结构化结果

相关协议对比

维度MCPOpenAI Function Calling传统 Plugin
标准化开放标准厂商绑定平台绑定
跨模型仅 OpenAI仅本平台
资源模型完整 URI 体系有限
工具发现自动(启动时广播)需注册需审批
进程隔离是(独立进程)

工具定义格式

MCP Server 暴露的每个 Tool 包含三个核心字段:

  • name — 工具名称,Agent 通过该名称调用工具
  • description — 工具描述,Agent 判断何时使用该工具的参考
  • inputSchema — JSON Schema 格式的参数定义,描述工具所需的输入参数
{
  "name": "get_weather",
  "description": "查询指定城市的实时天气",
  "inputSchema": {
    "type": "object",
    "properties": {
      "city": { "type": "string", "description": "城市名称" }
    },
    "required": ["city"]
  }
}

应用场景

  • 文件操作 — 读写文件、管理目录(MCP Server 通过 stdio 运行,访问本地文件系统)
  • 数据库查询 — Agent 通过 MCP 调用 SQL 查询接口,获取数据
  • Web API 集成 — 封装 REST API 为 MCP Tool,让 Agent 调用第三方服务
  • 搜索/检索 — 搜索本地文档、网页或知识库
  • 代码执行 — 在安全沙箱中运行代码并返回结果

主要限制

  • 工具粒度 — Tool 定义粒度过粗或过细都会影响 Agent 的工具选择能力
  • 描述质量 — Agent 依赖工具描述来判断何时使用,描述不清晰会导致调用错误
  • 性能开销 — 每个 MCP Server 占用独立进程,大量工具会消耗系统资源
  • 协议成熟度 — MCP 仍处于快速演进阶段,规范可能发生变化

参见