MCP协议技术概述:连接AI Agent与外部世界的桥梁
前言
MCP(Model Context Protocol)是 Anthropic 推出的一个开放协议,用于标准化 AI 模型与外部工具/数据源之间的通信。通过 MCP,可以让 AI Agent 安全、规范地调用外部系统能力。
本文将系统介绍 MCP 的核心原理、交互机制及部署模式。
MCP协议核心原理
整体架构
MCP 协议定义了 AI 客户端(Agent)与 MCP Server 之间的通信规范,MCP Server 再与实际的业务系统进行交互:
工作机制
MCP 协议的工作流程包含以下几个关键阶段:
| 阶段 | 说明 |
|---|---|
| 工具注册 | MCP Server 启动时向客户端声明自己提供哪些工具(tools)、资源(resources)、提示词(prompts) |
| 消息格式 | 使用 JSON-RPC 2.0 协议进行通信 |
| 调用流程 | Agent 识别用户意图 → 选择合适的 MCP 工具 → 发送调用请求 → MCP Server 执行业务逻辑 → 返回结果 |
Agent与MCP的交互机制
能力发现流程
Agent 需要"知道"当前有哪些 tools 可用、参数定义等信息,这个过程在 MCP 协议的初始化和能力发现阶段 完成:
整个流程可以分为三个阶段:
- 初始化握手:Agent 与 MCP Server 建立连接,双方交换能力信息和协议版本
- 工具发现:Agent 通过
tools/list请求获取 MCP Server 提供的所有工具信息 - 实际调用:Agent 根据用户意图选择合适的工具,发起调用请求
tools/list返回的信息结构
MCP Server 在响应 tools/list 时,返回的核心字段:
| 字段 | 说明 |
|---|---|
| name | 工具唯一标识,如 create_order |
| description | 工具功能描述,LLM 用此判断何时调用 |
| inputSchema | JSON Schema 格式的参数定义(类型、必填、描述等) |
Agent 获取这些信息后,会将其注入到 LLM 的上下文中,使 LLM 能够:
- 了解有哪些工具可用
- 理解每个工具的用途
- 知道调用时需要传递什么参数
传输协议:stdio与SSE
MCP Server 与客户端之间支持两种传输层协议。
stdio(Standard Input/Output)
stdio 模式通过进程的标准输入输出进行通信:
| 特性 | 说明 |
|---|---|
| 通信方式 | 通过进程的标准输入(stdin)和标准输出(stdout) |
| 部署位置 | 必须在本地运行 |
| 启动方式 | 客户端直接启动 MCP Server 进程 |
| 连接模式 | 一对一,每个客户端启动独立进程 |
| 典型场景 | 本地开发、桌面应用、私有部署 |
SSE(Server-Sent Events)
SSE 模式基于 HTTP 协议,支持远程部署:
| 特性 | 说明 |
|---|---|
| 通信方式 | 基于 HTTP 的服务端推送技术 |
| 部署位置 | 可以在远程服务器上 |
| 启动方式 | 独立部署为 HTTP 服务 |
| 连接模式 | 一对多,可服务多个客户端 |
| 典型场景 | 云端部署、SaaS 服务、对外开放 |
架构设计方案
方案一:stdio模式
用户将 MCP Server 部署在本地,配置业务系统的凭证与业务系统进行通信,底层是 HTTP 请求,鉴权取决于业务系统的鉴权体系。
特点:
- 用户需要在本地安装 MCP Server
- 业务凭证配置在用户本地
- MCP Server 内部用 HTTP 调用业务系统 API
- 鉴权由业务系统完成
方案二:SSE模式
将 MCP Server 部署在服务器上,客户端和 MCP Server 之间可以加一层网关,通过 API 秘钥进行鉴权。
特点:
- MCP Server 部署在业务系统服务器上(云端)
- 用户不需要本地安装,只需配置连接地址
- 可以在前面加网关统一鉴权(API Key 方式)
- 更适合 SaaS 化、多租户场景
两种模式对比分析
| 维度 | stdio 模式 | SSE 模式 |
|---|---|---|
| 部署复杂度 | 用户需本地安装 | 用户零安装 |
| 凭证管理 | 散落在各用户本地 | 集中管理 |
| 安全性 | 凭证在用户侧,有泄露风险 | 可通过网关统一管控 |
| 更新维护 | 需用户主动更新 | 服务端更新即可 |
| 网络要求 | 本地进程通信,无延迟 | 依赖网络,有一定延迟 |
| 可观测性 | 难以统一监控 | 可集中监控、审计 |
| 扩展性 | 受限于用户本地资源 | 可弹性扩容 |
| 适合场景 | 开发测试、私有部署 | 生产环境、对外服务 |
总结
MCP 协议为 AI Agent 与外部系统的交互提供了标准化的解决方案:
- 协议层面:使用 JSON-RPC 2.0 规范通信格式,定义了初始化、工具发现、工具调用等标准流程
- 传输层面:支持 stdio 和 SSE 两种模式,分别适用于本地部署和云端部署场景
- 架构层面:MCP Server 作为中间层,解耦了 Agent 与业务系统,使工具能力可以被多个 Agent 复用
随着 AI Agent 技术的发展,MCP 协议正在成为工具调用的行业标准,为构建丰富的 AI 应用生态奠定基础。