MCP 协议概览
MCP(Model Context Protocol) 是 Anthropic 推出的开放协议,用于连接 AI 模型与外部数据源、工具和服务。通过统一的接口,模型可以发现、读取、调用各类能力,而无需为每个数据源编写专用适配器。
协议层
MCP 定义了一套 JSON-RPC 2.0 风格的消息格式,包括:
- 初始化:客户端与 Server 交换能力列表(支持的 Resources、Tools、Prompts)
- 请求-响应:List、Read、Call 等操作的标准格式
- 通知:Server 可主动推送资源变更等事件
传输层(Transport)
- stdio:通过标准输入输出与子进程通信,适合本地 MCP Server(如文件系统、数据库)
- SSE over HTTP:Server 作为 HTTP 服务暴露,客户端通过 Server-Sent Events 接收消息,适合远程部署
- WebSocket:双向通信,适合需要实时推送的场景
Resources(资源)
Resources 是模型可读取的上下文:
- URI 规范:如
file:///path/to/doc、db://schema/table - List:列出可用资源
- Read:按 URI 读取内容,支持文本、Base64 等格式
- 订阅:部分实现支持资源变更通知
Tools(工具)
Tools 是模型可调用的操作:
- List:列出工具名称、描述、参数 schema
- Call:传入参数执行,返回结果
- 权限:Server 可对工具做权限控制,客户端需声明所需能力
Prompts(提示词)
Prompts 是 Server 提供的可复用提示模板:
- List:列出可用 Prompt 名称与描述
- Get:获取 Prompt 内容及参数
- 客户端可将获取的 Prompt 填入变量后,作为系统或用户消息发给模型
架构优势
- 标准化:一次实现,多客户端复用(Claude Desktop、Cursor、自定义 App)
- 安全:Server 控制暴露范围,可做权限与审计
- 可组合:多个 MCP Server 可同时连接,模型按需选择
小结
理解 MCP 的协议、传输、Resources、Tools 和 Prompts,是构建可扩展 AI 应用的基础。MCP 将「模型」与「上下文与工具」解耦,为 Skill、插件、Agent 等提供了统一的集成方式。