跳到主要内容

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。

15. 权威资料