← 返回题目列表

MCP 的架构是什么?它在 AI Agent 系统中解决了什么问题?

高频 中等 第 11 / 25 题 更新于 2026/07/25
MCPModel Context ProtocolAgent 工具JSON-RPC

简化版

MCP(Model Context Protocol)是连接 AI 应用与外部上下文能力的开放协议,采用 Host、Client、Server 三层架构,用 JSON-RPC 消息 + 能力协商通信。它统一了工具、资源、提示等能力的发现与调用方式——相当于「AI 工具界的 USB 接口」,让同一个 Server 被多个兼容 Host 复用。但它不负责自动信任 Server,也不替应用完成授权、隔离、用户确认——安全仍由 Host、执行层、用户授权负责。

详细版

  • Host:面向用户的 AI 应用,负责模型编排、权限、安全策略、用户同意;为每个连接的 Server 创建一个 Client;
  • Client:运行在 Host 内,与一个 Server 建立有状态一对一会话
  • Server:暴露特定能力,可本地或远程。

初始化阶段双方协商协议版本和能力,只能用已声明且协商成功的功能。Server 暴露三类原语:Tools(模型选择调用)、Resources(应用决定如何纳入上下文)、Prompts(用户显式选择)。

完整版教学

一、三层角色(一张图看清)

        ┌──────────────── Host(AI 应用)──────────────┐
        │  管理:用户体验、模型、权限、同意流程、多连接   │
        │   ┌─Client A─┐   ┌─Client B─┐   ┌─Client C─┐  │
        └───┤          ├───┤          ├───┤          ├──┘
            │  一对一   │   │  一对一   │   │  一对一   │
         ┌──┴───┐   ┌──┴───┐   ┌──┴───┐
         │Server│   │Server│   │Server│   (文件/数据库/API…,本地或远程)
         └──────┘   └──────┘   └──────┘

安全边界以 Host 为中心:Server 不应看到其他 Server 的完整会话,Host 也不应无条件把全部对话发给每个 Server。

二、协议如何启动(能力协商)

连接建立 → 初始化:协商协议版本 + 客户端能力 + 服务端能力
        → 正常操作(用 JSON-RPC 2.0 的请求/响应/通知)
        → 结束时关闭会话

关键认知:客户端必须根据协商结果调用功能——不能”看到某个方法名就假设 Server 支持”。具体传输方式可因实现和协议版本而异。

三、三类 Server 原语(是交互控制,不是安全等级)

原语谁选择使用典型用途
Tools模型在上下文中选择查询或执行动作
Resources应用决定如何读取/展示文件、数据库记录等上下文
Prompts用户主动选择可复用模板

重要澄清:这三类体现的是”交互控制方式”,不是”安全等级”——任何一类内容都可能包含错误或恶意数据。

四、MCP 到底解决什么

没有 MCP:M 个 AI 应用 × N 个数据源/工具 = M×N 个专有适配层(重复造轮子)
有了 MCP:每个应用实现一次 MCP 客户端,每个工具实现一次 MCP Server = M+N
        → 同一个 Server 被多个兼容 Host 复用,客户端和服务端可独立演进

它解决的是互操作问题(怎么连接、发现、调用、返回结果的标准化),不保证工具质量、业务事务、模型正确选择——这些仍要各自负责。

五、安全责任仍在 Host(最关键)

MCP 统一了「怎么连」,但没接管「安全」:

第三方 Server 的【工具描述】可能诱导模型(提示注入)
Server 的【返回内容】可能携带间接 Prompt Injection
→ Host 必须:展示即将使用的 Server 与高风险动作、身份认证、最小权限、
             参数校验、人工确认、来源管理、隔离、审计
敏感凭证由受控运行时保管,不进入模型上下文

记忆钩子:MCP 统一”怎么连接和调用”,安全仍由 Host、执行层、用户授权共同负责——协议不等于信任。

六、常见误区与追问

  • 误区:MCP 让工具自动可信/安全。 它只标准化互操作,Server 描述和返回值都要按不可信输入处理。
  • 误区:Tools/Resources/Prompts 是安全等级。 是交互控制方式,任何一类都可能含恶意数据。
  • 误区:看到方法名就能调用。 必须先能力协商成功,不能假设 Server 支持某功能。
  • 误区:MCP 保证工具质量和事务。 它只解决连接/发现/调用的互操作,质量和事务各自负责。
  • 误区:把凭证放进上下文让 Server 用。 敏感凭证由受控运行时保管,不进模型上下文。
  • 追问:MCP 三层角色是什么? Host(AI 应用,管权限/同意/多连接)、Client(Host 内,与一个 Server 一对一会话)、Server(暴露工具/资源/提示)。
  • 追问:MCP 解决什么问题? 把 M×N 个专有适配层降为 M+N,标准化能力的发现和调用,Server 可被多 Host 复用。
  • 追问:MCP 的安全责任在谁? Host——展示动作、认证、最小权限、参数校验、人工确认、隔离审计;第三方 Server 描述和返回值都不可信。

七、加强记忆

MCP 记「AI 工具的 USB 接口 + Host 管多个一对一 Client-Server 会话」:三层架构(Host 管权限/同意/编排、Client 一对一有状态会话、Server 暴露 Tools/Resources/Prompts),用 JSON-RPC + 能力协商,把 M×N 适配层降为 M+N。核心认知钉死:它统一”怎么连接和调用”(互操作),但不接管安全——Server 描述和返回值都按不可信处理,授权/隔离/确认/审计仍由 Host 和执行层负责,凭证不进上下文。三类原语是交互控制不是安全等级。