MCP基础
1765 字约 6 分钟
domain/aiai/mcp
2026-07-24
1. 核心结论
- MCP(Model Context Protocol)是 Anthropic 提出的开放协议,标准化 AI 应用与外部资源的连接
- MCP 采用 Client-Server 架构,Server 提供资源,Client 消费资源
- MCP 解决了 AI 应用碎片化问题,一套工具可以被多个 AI 应用使用
- MCP 支持三种基本操作:读取资源、调用工具、获取提示
- MCP 是构建可扩展 AI 应用生态的关键基础设施
2. 基础概念
MCP(Model Context Protocol):模型上下文协议,标准化 AI 应用与外部数据源的连接方式。
MCP Server:提供资源、工具和提示的服务端。
MCP Client:连接 Server 并消费资源的客户端。
Resource:Server 提供的数据源,如文件、数据库、API。
Tool:Server 提供的可执行操作。
Prompt:Server 提供的预定义提示模板。
Transport:Client 和 Server 之间的通信方式(stdio、HTTP)。
3. 工作原理
MCP 架构:
┌─────────────┐ ┌─────────────┐
│ AI App │ │ MCP Server │
│ (Host) │◄───────►│ (Resource) │
│ │ MCP │ │
│ - Claude │ Protocol│ - Files │
│ - Cursor │ │ - Database │
│ - Custom │ │ - API │
└─────────────┘ └─────────────┘核心交互流程:
- 初始化:
- Client 连接到 Server
- 交换能力信息
- 建立通信通道
- 资源发现:
- Client 查询 Server 可用资源
- Server 返回资源列表
- Client 选择需要的资源
- 资源读取:
- Client 请求读取资源
- Server 返回资源内容
- Client 将内容注入上下文
- 工具调用:
- Client 发现可用工具
- Client 调用工具并传参
- Server 执行并返回结果
- 提示使用:
- Client 获取预定义提示
- 填充参数
- 发送给 LLM
MCP 优势:
- 标准化:统一接口,减少重复开发
- 可扩展:新增 Server 无需修改 Client
- 安全:明确的权限边界
- 生态:共享工具和服务
4. 实战场景
- 本地文件访问:AI 应用读取本地文档
- 数据库查询:AI 应用查询数据库
- API 集成:连接外部 API 服务
- 开发工具:Git、终端、代码库访问
- 企业系统:CRM、ERP、知识库集成
5. 常见误区
- 认为 MCP 替代 RAG:MCP 是连接协议,RAG 是检索技术
- 忽视安全配置:Server 需要正确配置权限
- 过度依赖单一 Server:应该组合多个 Server
- 不理解传输层:stdio 和 HTTP 适用场景不同
- 忽视错误处理:Server 可能不可用或返回错误
6. 进阶方向
- MCP Server 开发
- 自定义 Transport
- MCP 安全策略
- MCP 与 Agent 集成
- MCP 生态工具
- MCP 性能优化
7. 推荐资料
- MCP Official Site - https://modelcontextprotocol.io/
- MCP Specification - https://modelcontextprotocol.io/specification
- MCP GitHub - https://github.com/modelcontextprotocol
- Anthropic MCP Docs - https://docs.anthropic.com/en/docs/agents/mcp
- MCP Server Examples - https://github.com/modelcontextprotocol/servers
8. 概念边界表
理解 MCP 需要明确它与相关概念的边界:
| 概念 | 核心职责 |
|---|---|
| MCP | 标准化模型应用与外部能力之间的连接 |
| API | 提供程序化业务接口 |
| Agent | 进行规划、推理、选择与执行 |
| Function Calling | 模型输出结构化工具调用意图 |
| 插件 | 某个平台定义的扩展机制 |
| RAG | 检索外部知识并注入上下文 |
| 工作流 | 按规则组织多个步骤和状态 |
MCP 可以承载 Tool 和 Resource,但并不自动提供规划、记忆、权限审批和业务事务能力。
9. MCP 与模型供应商的关系
MCP 是一个独立于任何模型供应商的开放协议。它不绑定特定模型,不依赖特定供应商的 SDK,也不假设底层使用哪个 LLM。
- 任何支持 MCP Client 的应用都可以连接 MCP Server,无论是 Claude、GPT、Gemini 还是开源模型
- MCP Server 只关心协议规范和传输层,不关心谁在调用
- 模型供应商可以提供 MCP 实现,但协议本身不属于任何供应商
这种设计确保了 MCP 生态的中立性和长期可持续性。
10. MCP 与 Agent 的关系
MCP 和 Agent 解决的是不同层次的问题:
| 维度 | MCP | Agent |
|---|---|---|
| 职责 | 提供能力(工具、资源) | 规划、决策、执行 |
| 关注点 | "能做什么" | "怎么做、做什么" |
| 主动性 | 被动响应调用 | 主动规划与推理 |
| 状态 | 无状态或有限状态 | 维护对话记忆和任务状态 |
简单理解:MCP 是 Agent 的"手和眼",Agent 是 MCP 的"大脑"。 MCP 提供工具和数据访问能力,Agent 决定何时调用哪个工具、如何组合结果、下一步做什么。
11. MCP 与普通 API 的关系
| 维度 | MCP | 普通 API |
|---|---|---|
| 定位 | 连接协议 | 业务接口 |
| 标准化程度 | 统一协议规范 | 各自定义格式 |
| 调用方式 | 模型原生理解 | 需要代码适配 |
| 发现机制 | 内置能力发现 | 需要文档说明 |
| 复用范围 | 跨应用共享 | 通常服务于特定系统 |
MCP 不替代 API,而是在 API 之上建立一层面向 AI 应用的标准化连接层。同一个 API 可以通过 MCP Server 暴露给多个 AI 应用,而不必为每个应用单独写集成代码。
12. MCP 的优势
- 标准化:统一接口规范,减少不同 AI 应用与外部能力之间的重复集成工作
- 可扩展:新增能力只需开发新的 MCP Server,Client 无需修改
- 安全:明确的权限边界,Server 控制可访问的资源和操作范围
- 生态:一套工具可以被多个 AI 应用复用,形成共享的工具生态
13. MCP 的限制
MCP 有明确的能力边界,它不提供以下能力:
- 不提供规划能力:MCP 只暴露工具,不决定调用顺序和策略
- 不提供记忆能力:MCP 不维护对话历史或长期记忆
- 不替代权限系统:MCP 定义连接边界,但实际的认证和授权仍由底层系统负责
- 不提供业务事务:MCP 不保证跨 Server 的事务一致性
这些限制不是缺陷,而是设计选择——MCP 专注于做好"连接"这一件事。
14. 适合和不适合使用 MCP 的场景
适合使用 MCP:
- 需要让多个 AI 应用访问同一组工具或数据源
- 希望工具能力跨应用复用,避免重复开发
- 需要标准化 AI 应用与外部系统的集成方式
- 构建可扩展的 AI 工具生态
不适合使用 MCP:
- 简单的单次调用,不需要标准化连接
- 需要复杂业务事务或跨系统一致性保证
- 纯粹的前后端通信(直接用 REST/GraphQL 更合适)
- 需要 Agent 级别的规划和推理能力(应使用 Agent 框架)