Model Context Protocol(MCP),即“模型上下文协议”,是一个开源且开放的标准框架,旨在为大型语言模型(LLMs)及其衍生的AI智能体提供一种标准化的接口机制,从而实现与外部系统、数据源和工具的无缝集成。
核心价值MCP 的设计初衷是解决当前 LLM 应用生态中普遍存在的“碎片化”问题。通过统一交互范式,它带来了以下关键优势:
- 标准化接入:让 LLM 或 AI Agent 能够以一致的方式连接数据库、文件系统、Web API、网络爬虫等各类外部资源,实时获取所需上下文。
- 双向实时交互:不仅支持 LLM 向外部系统发出指令并执行操作,还能动态接收来自外部系统的更新,即时刷新模型上下文。
- 厂商中立性:开发者可灵活切换不同 LLM 提供商(如 OpenAI、Anthropic、Claude 等),无需重写底层集成逻辑。
- 数据安全可控:所有敏感数据可在用户自有基础设施内处理,避免上传至第三方平台,保障隐私与合规。
MCP 采用经典的客户端-服务器(Client-Server)架构,主要由三类角色构成:
- MCP Hosts:发起请求的应用程序,例如 Claude 桌面客户端、IDE 插件或 AI 工作流引擎。
- MCP Clients:嵌入在 Host 中的协议客户端,负责与 MCP Server 建立一对一连接。
- MCP Servers:轻量级服务端程序,通过 MCP 协议暴露特定能力,如提供工具、资源或提示模板。
数据层:基于 JSON-RPC 2.0 的通信协议
MCP 的底层通信建立在 JSON-RPC 2.0 之上,定义了客户端与服务端之间的交互语义和消息格式。该层包含三大核心功能模块:
-
生命周期管理
负责连接的建立、能力协商(Capability Negotiation)以及优雅关闭,确保双方在兼容的协议版本和功能集下运行。 -
核心原语(Primitives)
定义了可共享的上下文类型与可执行的操作范围,具体包括:- Tools(工具):可被 LLM 调用的函数,如读写文件、调用 REST API、执行 SQL 查询等。
- Resources(资源):提供上下文信息的数据源,如配置文件内容、数据库记录、实时传感器数据等。
- Prompts(提示模板):可复用的提示词结构,用于引导模型行为,例如系统角色设定或多轮对话示例。
每类原语均配套标准方法:
*/list(发现可用项)、*/get(获取详情),以及对 Tools 的tools/call(执行调用)。这种动态发现机制使得服务端能力可随运行时环境变化而更新。 - 实用扩展特性
- 通知(Notifications):服务端可主动推送变更事件(如新工具上线),客户端无需轮询。
- 进度跟踪(Progress Tracking):支持长时间运行任务的状态反馈,提升用户体验。
客户端侧原语(Client-Side Primitives)
除被动响应外,MCP 还赋予服务端主动与客户端或用户交互的能力:
- 采样(Sampling):服务端可通过
sampling/complete请求客户端调用其绑定的 LLM 进行文本生成,避免在服务端嵌入模型 SDK。 - 引导(Elicitation):当需要用户确认或补充信息时,服务端可发起
elicitation/request,由 Host 弹出交互界面。 - 日志(Logging):用于调试与监控,服务端可向客户端发送结构化日志消息。
MCP 支持多种传输机制,以满足不同部署需求:
1. Stdio Transport(标准输入输出)
- 定义:利用进程间标准输入/输出流进行本地通信。
- 适用场景:本地开发、桌面应用(如 Claude 访问本地文件系统)。
- 优势:
- 零网络依赖,配置简单;
- 数据仅在本机流转,安全性高;
- 低延迟、高性能。
- 局限:
- 仅支持单客户端连接;
- 无法跨机器或分布式部署。
2. Streamable HTTP Transport(流式 HTTP)
- 定义:基于 HTTP POST 发送请求,并可选使用 Server-Sent Events(SSE)实现服务端推送。
- 适用场景:远程 MCP 服务(如接入高德地图、天气 API 等云服务)。
- 优势:
- 支持无状态部署,易于水平扩展;
- 与现有 Web 基础设施(API 网关、CDN、负载均衡)天然兼容;
- 可按需启用流式响应,适用于长文本生成或实时进度反馈;
- 支持 OAuth、API Key 等标准认证方式。
- 注意:虽然早期 MCP 曾明确支持 SSE,但当前官方文档已将其归入“Streamable HTTP”的一部分,SSE 正逐步被弃用。
总结SSE 与 Streamable HTTP 的关键区别:
- Streamable HTTP 不再要求独立的
/sse端点,所有客户端请求统一通过/messages发送;- 服务端可在响应中将任意请求“升级”为流式连接,用于推送通知或采样结果;
- 可选引入会话 ID(Session ID)以维护跨请求的状态,兼顾无状态与有状态需求。
MCP 通过标准化的协议设计,打通了 LLM 与现实世界之间的“最后一公里”。它不仅提升了 AI 应用的灵活性与可维护性,还为构建安全、高效、可扩展的智能系统奠定了坚实基础。随着生态的成熟,MCP 有望成为 LLM 时代的新一代“通用适配器”。
如需进一步精简、扩展某一部分,或转换为技术白皮书、产品介绍、演讲稿等风格,也可以告诉我!