MCP 深度指南
"MCP 是 AI 应用的 USB-C 标准——一个通用的连接器,让工具和数据源能被任何模型使用。"
1. 问题定义:N×M 集成地狱
现代 AI 应用需要连接到 N 个数据源(GitHub、数据库、API)和 M 个模型提供商(Claude、GPT、Gemini)。如果没有标准化协议,每个提供商 × 数据源组合都需要定制集成——总计 N × M 个连接器。
Model Context Protocol (MCP) 通过一个通用标准解决了这个问题:
- 数据源提供商构建 一个 MCP Server 来暴露其数据
- AI 应用实现 一个 MCP Client 来消费任何兼容 Server 的数据
- 结果:N + M 个连接器 而非 N × M 个
Anthropic 于 2024 年 11 月开源了 MCP 规范。截至 2025 年初,主要采用者包括 Claude Desktop、Cursor、Zed IDE、Sourcegraph 和 Replit。
这种 "一次编写,到处运行" 的理念将模型提供商与工具构建者解耦,创建了一个标准化生态系统,开发 者构建一个 "Postgres MCP Server" 就能立即接入所有 MCP 兼容 AI 应用的用户群。
2. 架构拓扑与系统设计
MCP 的架构不同于传统 RESTful API 范式,采用专为对话 AI 的有状态、会话式特性设计的 Client-Host-Server 拓扑。
2.1 MCP 三角:Host、Client 和 Server 的动态关系
MCP 生态系统由三个不同角色定义,通常称为 "MCP 三角":
| 组件 | 角色 | 职责与描述 |
|---|---|---|
| MCP Host | 编排器 | 用户面对的应用程序,LLM 运行其中(Claude Desktop、Cursor、Zed IDE)。管理 UI、上下文聚合、安全策略和决策。 |
| MCP Client | 连接器 | Host 内部的协议实现。将 LLM 输出转换为 JSON-RPC 消息,管理与 Server 的 1:1 持久连接。 |
| MCP Server | 提供者 | 封装特定数据源的独立进程。暴露 Resources、Tools 和 Prompts;执行实际 API 调用。 |