跳到主要内容

MCP在Agent中的位置

核对日期:2026-05-09。

1. 定义与边界​

MCP(Model Context Protocol)是连接 AI 应用与外部工具、资源、提示词的开放协议。它定义 Host、Client、Server 之间如何发现能力、协商能力、传输消息和调用工具。

MCP 不是 Agent 框架,也不是模型能力本身。它解决的是“上下文和工具如何标准化接入”的协议层问题。

2. 为什么重要​

没有 MCP 时,每个 AI 应用都要为每个外部系统写专用插件。MCP 提供统一连接模型:

AI Host 1 ─┐
AI Host 2 ─┼── MCP Client ── MCP Server ── External System
AI Host 3 ─┘

它的价值在于:

  • 工具、资源、提示词暴露方式标准化。
  • 本地 stdio 和远程 Streamable HTTP 都有规范。
  • Host 可以同时连接多个 Server。
  • Server 可以复用于不同 IDE、桌面端、Agent 平台。

3. 核心机制​

3.1 角色模型​

角色职责
Host用户直接使用的 AI 应用,负责界面、模型、权限和用户意图
ClientHost 内部的协议客户端,通常一个 Client 连接一个 Server
Server暴露 tools、resources、prompts 等能力

3.2 能力类型​

能力说明Agent 中的用途
Tools可执行动作查询系统、执行写操作、触发工作流
Resources可读取上下文文件、文档、数据库记录、知识源
Prompts可复用提示模板固定任务模板、团队工作流
SamplingServer 请求 Host 侧模型采样让 Server 借助模型能力,但控制权仍在 Host
ElicitationServer 向用户请求额外信息工具执行中需要补充输入时使用

MCP 2025-11-25 规范中,基本协议基于 JSON-RPC 2.0,并明确了生命周期、传输、授权、安全和能力协商。

4. 架构模式​

4.1 Agent Runtime + 内置工具​

适合工具少、强业务耦合的系统。MCP 不是必须。

4.2 Agent Runtime + MCP Adapter​

Agent Runtime 保留内部工具,同时通过 MCP Adapter 连接外部 Server。

4.3 MCP-first Host​

IDE、桌面助手、企业 Agent 平台适合 MCP-first。Host 管理多个 Client,Server 由不同团队或供应商提供。

5. 工程实现​

5.1 MCP 工具到内部 ToolCall 的映射​

type InternalTool = {
name: string;
description: string;
inputSchema: JsonSchema;
outputSchema?: JsonSchema;
source: {
kind: "mcp";
serverId: string;
originalName: string;
};
risk: ToolRisk;
};

5.2 连接生命周期​

1. Host 启动 MCP Client
2. Client 与 Server 建立传输连接
3. initialize 能力协商
4. list tools/resources/prompts
5. 用户任务触发工具调用
6. Client 发送 tools/call
7. Server 返回结果或错误
8. Host 记录 trace 并回填模型

6. 生产实践​

  • Host 侧仍然负责最终权限和用户确认,不把安全责任完全交给 Server。
  • 对每个 MCP Server 建立 trust level:官方、内部、合作方、未知。
  • stdio 适合本地开发工具;远程多用户服务优先 Streamable HTTP + OAuth。
  • 连接第三方 Server 前展示其工具列表、权限范围和数据访问说明。
  • 对 Server 版本、schema 变化、工具新增做审查。
  • 不同租户的 MCP 连接、token、缓存和日志必须隔离。

7. 常见反模式​

反模式问题
把 MCP 当安全边界MCP 是协议,不自动完成业务授权
任意安装第三方 MCP Server工具投毒和数据泄露风险
Server 暴露一个万能 shell 工具Host 无法做细粒度审批
忽视能力协商客户端假设 Server 支持某能力导致运行时失败
stdio Server 往 stdout 打日志干扰 JSON-RPC 通信

8. 评测方法​

  • 协议兼容:initialize、list、call、error 是否符合规范。
  • 能力发现:工具列表和 schema 是否稳定。
  • 权限联动:Host 是否能对 MCP 工具应用本地策略。
  • 安全测试:恶意 Server 描述、恶意工具返回是否被隔离。
  • 断连恢复:Server 重启、网络中断、OAuth 过期后的行为。

9. 安全与治理​

MCP Server 是新的供应链入口。治理重点:

  • Server 来源验证和 allowlist。
  • 工具描述审查。
  • OAuth audience 和 scope 校验。
  • token 不透传给无关服务。
  • 工具返回作为不可信输入处理。
  • 远程 Server 必须使用 HTTPS。

10. MCP 与内部工具网关的关系​

MCP 解决“外部能力如何被发现和调用”,工具网关解决“这些能力是否能被当前用户安全使用”。两者不应混淆。

层负责什么不负责什么
MCP Server暴露 tools/resources/prompts,按协议返回结果替 Host 做最终业务审批
MCP Client与单个 Server 建立连接、发送 JSON-RPC 请求决定用户能否访问所有资源
Host/Agent Runtime组织上下文、调用模型、展示审批直接信任工具返回内容
Tool Gatewayschema 校验、权限、审计、限流、输出过滤替模型完成语义推理

11. 远程 MCP 接入流程​

12. MCP 接入评测方案​

评测项用例通过标准
能力发现Server 返回 tools/resources/promptsHost 正确登记并版本化
协议错误Server 返回 JSON-RPC errorAgent 不崩溃,错误可审计
授权边界token audience 不匹配连接被拒绝
工具投毒工具描述含隐藏指令注册审查拦截
断连恢复Server 重启或 OAuth 过期不重复执行写操作
多租户隔离A 租户 Server 不可被 B 使用trace 中无串租户

13. 安全补充:MCP 不是信任豁免​

连接 MCP Server 后,Host 仍要:

  • 对工具列表做 allowlist 和风险标注。
  • 对工具 schema 做安全扫描和人工审查。
  • 对工具调用做本地 policy check。
  • 对工具结果作为不可信内容处理。
  • 对 OAuth token 做 audience、scope、过期时间校验。
  • 对第三方 Server 变更建立重新审核流程。

14. 不适用场景​

  • 只有一两个强业务耦合内部工具时,直接内部工具注册更简单。
  • 工具需要严格事务和低延迟,远程 MCP 可能增加复杂度。
  • 组织没有 Server allowlist 和审计能力时,不应开放用户任意安装。
  • 高风险生产写操作不应直接暴露为无审批 MCP tool。
  • 需要把「怎么做这类任务」版本化时,用 Skill 编排 MCP,而不是再发明一层 RPC。见 ../19-Skills与能力平台/Skill与MCP集成.md。

15. 权威资料​