MCP 网关架构详解:Agent 规模化之后缺的那层控制平面

快速回答

MCP 网关是位于 AI Agent 与 MCP 服务器之间的控制平面:它终结 Agent 的 MCP 连接,把 tool call 路由到正确的服务器,并在调用发生的地方施加鉴权、策略、身份透传和审计。没有它,每个 Agent 直连每个服务器,每个服务器自己管自己的安全;有了它,控制集中到一处,且对 Agent 透明。

为什么直接连接撑不住

一个 Agent 连一个 MCP 服务器,直连没问题。组织里几十个 Agent、几十个服务器、几百条连接时,图变成这样:

Figure 1:左——每个 Agent 直连每个服务器,没有集中控制;右——网关把连接收拢成一层可治理的控制平面

每条直连都各自处理自己的认证、各自的 scope、各自的日志。没有共享的身份概念,没有集中审计,没有共享策略。MCP 规范本身给了传输和工具发现,但组织级的控制留在连接的两端各自发明。

MCP 实际做了什么(以及没做什么)

MCP 是 JSON-RPC 协议,客户端与服务器之间双向消息——工具调用、资源读取、提示词模板都走这套消息:

Figure 2:MCP 的 JSON-RPC 消息——initialize、tools/list、tools/call 等,规范管协议不管治理

规范定义了传输(stdio、SSE、streamable HTTP)、能力协商、三种原语(tools、resources、prompts)。它没有定义的:跨服务器的统一身份、集中策略执行、审计日志、配额管理、工具级访问控制。这些正是网关的活。

网关具体做什么

四件事,一件都不虚:

  1. 发现与控制:所有服务器注册到一处,Agent 面对一个端点而不是 N 个端点;
  2. 路由:按工具名、服务器、租户把 tool call 分发到正确的后端;
  3. 认证:网关终结 Agent 的连接(验证其 JWT/OIDC token),用服务器自己的凭据连接后端——服务间用 client credentials,代表用户时用 on-behalf-of 流;
  4. 策略执行:哪个 Agent 能看哪些工具、调用频率、哪些服务器需要人审批准,都在网关层决定。

Figure 3:网关把 tool call 路由到正确的后端服务器,控制集中在一处

身份透传:这条链最容易断

没有网关时,用户身份到 Agent 这一站就断了——Agent 用自己的凭据连服务器,服务器不知道是哪个用户触发的调用。有网关时,链完整:用户身份进 Agent,Agent 带 JWT/OIDC token 到网关,网关验证后以 on-behalf-of 语义把身份传递到服务器,审计日志里记录的是谁触发了调用,而不只是哪个 Agent。

Figure 4:身份沿"用户 → Agent → 网关 → 服务器"完整传递,审计能追到人

工具切片与审计

网关可以按调用方过滤 tools/list 响应——同一个服务器,不同 Agent 看到不同的工具集。这不只是便利功能,是最基础的权限边界:一个只该读工单的 Agent,不应该在 tools/list 里看到 delete_record。

审计同理。直连模式下日志散在各服务器、格式不一、留存不一;网关把 tool call 统一记录——哪个 Agent、哪个用户、哪个工具、什么参数、什么结果——一份集中、可查询的记录。

网关、MCP 服务器、API 网关:三个东西

MCP 服务器 MCP 网关 API 网关
位置 最上游(后端) Agent 与服务器之间 客户端与服务之间
协议 MCP(JSON-RPC) MCP HTTP/REST/gRPC
管什么 工具、资源、提示词 跨服务器的控制 跨服务的控制
谁调用它 Agent/客户端 Agent/客户端 应用/客户端

Figure 5:三者的位置与职责边界——网关不替代服务器,它在服务器之上加控制

安全:直连模式最容易漏的三件事

  1. 工具投毒:服务器上的工具描述会被模型直接读取,恶意或过期的描述能操纵 Agent 行为——网关集中审查工具注册,让”哪个服务器暴露了什么”可审计;
  2. 提示词注入到执行:注入的 prompt 变成 tool call 时,没有网关的组织里,鉴权发生在每个服务器各自实现的地方(如果实现了的话);网关把认证和策略集中到调用点;
  3. 凭据扩散:直连模式下每个 Agent 都要持有每个服务器的凭据,网关把凭据收拢到一处管理,Agent 只需证明自己的身份。

Figure 6:JWT/OAuth 的 on-behalf-of 流——网关验证 Agent token,以用户身份换取后端访问

什么时候需要网关

三个信号,出现任何一个就该有了:多 Agent(两个以上 Agent 用同一批服务器)、多租户(不同团队/客户需要不同的工具可见性)、合规(审计日志、数据驻留、审批流)。一个 Agent 连一个服务器、没有合规要求,直连就行——网关是控制平面,不是必需品,是规模问题。

小夏点评

  1. “约 10ms 延迟、单 vCPU 350+ RPS”这组数字值得记住:它说明治理层的运行成本几乎可以忽略——大多数组织现在不是”付不起治理的钱”,而是还没意识到自己已经在为无治理付钱(散落的凭据、缺失的审计、失控的工具权限)。
  2. 工具投毒是 MCP 生态特有的攻击面:工具描述直接进模型上下文,等于把”用户输入”放在了特权位置——集中审查工具注册这件事,早做比晚做便宜。
  3. 给国内团队的启示:国内 Agent 落地普遍从”单 Agent 单工具”起步,跳过了治理层的建设窗口期——等 Agent 数量和团队数量都上来再补网关,身份链已经断了、凭据已经散了,补录审计比新建审计难得多。

参考链接

您可能还喜欢...

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注