跳转到主要内容
一个 MCP 智能体是一个有触达能力的智能体。它连接的每一个 Model Context Protocol 服务器都是一套新的工具、凭据和网络目的地,没有任何人审查过 ——而智能体可以在运行途中拉入一个新的。本配方展示把一个蔓生的 MCP 设置变成一个受治理设置的四个动作,全部在托管网关上:一个受审计的 单一 MCP 网关、技能隔离、egress 拒绝,以及加密的服务器认证。 你针对你的工作区,从控制台(或 REST API)配置全部内容。你的智能体 像以前一样继续讲 MCP。

1. 为何要保护一个 MCP 智能体

直接把一个智能体指向五个 MCP 服务器,你就有了五条信任边界、五个凭据 存储,以及零个共享的审计追踪。读取一条客户记录的那个 tools/call 和 运行一条 shell 命令的那个,在模型看来完全相同,而一个社区服务器在它 首次加载时可以悄悄请求 shell.exec 和一个外部网络范围。 修复办法是让 OrcaRouter 成为每一次调用都穿过的那个咽喉点。要端到端地 保护 mcp 智能体流量,你把所有 MCP 派发都通过防火墙的 MCP 网关 路由,这样每一次 tools/call 都在它 到达真实服务器之前被策略评估——同时技能被风险评分、egress 被治理、 凭据静态加密。
这是一个配方——它把现有功能缝合成一遍具体的加固过程。要看完整参考, 跟随链接进入 防火墙MCP 服务器技能

2. 从 Secure Agents 基线出发

在编写任何定制内容之前,先设定一个姿态。在控制台中打开 Firewall → Posture 并应用 balanced 自治级别(Developer 角色)。 在一个事务中,它审计工具调用并 flag PII,同时拒绝最具破坏性的动作 ——你在广泛执行之前先观察,并带一键撤销。 Events 和 Runs 信息流看起来对了, 就转到 tight:默认拒绝、破坏性 shell 被拒绝、SSRF 形态的 egress 被 拒绝,加上 PII Shield 和 Secrets Blocker 防护栏被执行。那个单一开关就是 本配方所构建于其上的底线。
更愿意平缓提升而不翻动整个工作区?把下面的规则编写进一条命名策略, 并打开它的 shadow mode——它评估并记录,但把每个执行性判定降级为 audit(原因前缀 [shadow] would …),直到你确信为止。参见 执行模式

3. 把每一次 tools/call 通过一个 MCP 网关路由

把每个 MCP 服务器注册一次;网关在单一连接下聚合它们的工具(命名空间为 <server>.<tool>),并把每一次 tools/call 通过防火墙引擎运行。 从控制台(或 REST API,Developer+)注册一个服务器:
curl https://api.orcarouter.ai/api/workspace/firewall/mcp_servers \
  -H "Authorization: Bearer <your-session-token>" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "github",
    "endpoint": "https://api.githubcopilot.com/mcp",
    "auth_mode": "bearer",
    "auth_json": "{\"token\":\"ghp_x\"}",
    "enabled": true
  }'
然后把你的 MCP 客户端指向网关——而不是上游服务器——使用一个专用的 firewall-gateway-scoped 密钥:
https://api.orcarouter.ai/api/v1/firewall/mcp
现在 github.create_issueshell.exec 在一个连接下并排显示,而每一次 派发都在它运行之前被评估。一个被拦截的调用作为一个工具错误firewall deny: …)返回给模型,而不是一次传输崩溃,因此智能体能 适应。
一个普通的中继密钥在网关路由 /api/v1/firewall/mcp 上会得到 403。 为 MCP 连接铸造一个专用的网关令牌(is_firewall_gateway);读取那个 网关密钥的明文需要 Admin+
在你能针对一个服务器的工具编写规则之前,先**探测(probe)**它以发现 它们的名字和 schema:
curl -X POST \
  https://api.orcarouter.ai/api/workspace/firewall/mcp_servers/42/probe \
  -H "Authorization: Bearer <your-session-token>"

4. 隔离智能体拉入的技能

MCP 网关治理调用;技能治理治理一个智能体加载的能力。每一个可安装 技能、自带 MCP 服务器或插件都被扫描进一个风险等级和一个叠加在每个 规则判定之上的执行模式:
模式运行时效果
allow由规则判定决定;技能不增加任何东西。
quarantine任何未到 deny 程度的判定都被挂起等待 pending_approval
block该技能的工具被强制拒绝。
对一个 MCP 智能体的要点:一个没人批准的能力不会被放行。当一个 智能体自行安装某个东西、且其工具首次穿越网关时,防火墙会自动检测它 并隔离它直到一个人审查它——即便它扫描结果干净。预先批准你信任的 服务器;让其余的落入审查队列。
在你了解你的智能体实际安装什么的同时保持 balanced/observe 开启, 然后把信任的技能晋级为 allow,让长尾保持隔离。参见 技能

5. 拒绝 SSRF 形态的 egress

一个被攻陷或被迷惑的 MCP 工具访问云元数据或一个内网主机,是经典的 外泄路径。两层覆盖它。 首先,网关在注册时以及每一个派发跳上,对照一个 SSRF 策略校验每一个 远程 MCP 端点及其解析出的拨号 IP——内网范围和云元数据地址被拒绝, 并重新检查以挫败 DNS 重绑定。这是内置的;你不配置它。 其次,tight 自治级别附带一个 SSRF egress 预设,它拒绝 fetch 形态的工具名——http_fetchweb_searchfetch_urlrequest,以及 它们的 <server>.* 命名空间形式——这样一个整个职责就是”去抓取这个 URL”的工具会在它拨号之前被阻止。 要按目的地治理工具能访问哪里,编写你自己的 egress 规则,带一个 host/CIDR 拒绝列表——那是钉住出站触达的执行面:
// firewall rule, egress stage — deny outbound to an internal range.
// egress_json is a JSON *string*: {"deny":[…],"allow":[…]} of hosts/CIDRs.
{
  "stage": "egress",
  "verdict": "deny",
  "egress_json": "{\"deny\":[\"10.0.0.0/8\",\"169.254.169.254\"]}"
}
没有预设附带 CIDR egress 规则——SSRF 预设匹配工具,而不是目的地。 当你需要目的地级别的控制时,自己编写 host/CIDR 拒绝列表。参见 egress 列表阻止外泄

6. 让服务器凭据保持加密

每个 MCP 服务器的 auth_json 都静态加密并在读取时掩码;网关在派发时 注入凭据,因此它们永远不会到达模型或客户端。支持的 auth_mode 值:
{ "token": "…" } —— 一个静态 bearer 令牌,作为 Authorization: Bearer 发送。
{ "client_id": "…", "client_secret": "…", "token_url": "…" } —— client-credentials OAuth;网关获取并刷新令牌。
{ "username": "…", "password": "…" } —— HTTP Basic 认证。
"" —— 一个未认证的服务器。默认值。
读取时密钥被掩码;在更新时把掩码原样回传以保留所存的值。来自上一次 探测 的服务器 statusok / degraded / down)会在你依赖它之前告诉你它是否可达。

7. 在请求上加一条内容防护栏

防火墙治理动作;把它和一条 防护栏 配对, 这样流经你 MCP 智能体的文本也被筛查。 Secrets Blocker 预设在模型——或任何工具——看到之前就捕捉请求中的凭据,而一条 PII Shield 在进入时掩码 标识符。二者都随 tight 自治级别一起开启,或通过 guardrail_id 把一条 命名防护栏附加到智能体的中继密钥。
防火墙的 sanitize 判定脱敏工具调用参数,绝不脱敏一个工具返回的 内容。用 Secrets Blocker 防护栏从请求中剥离密钥;用一条防火墙规则脱敏 一个智能体发出的参数。它们覆盖流程的不同部分。

8. 验证与观察

在你信任策略之前先确认它做你预期的事,然后盯着信息流:

测试一次工具调用

针对你的策略 dry-run 一个样本 tools/call,看到判定、匹配到的规则和 原因——什么都不派发,什么都不记录。

Discovered tools

工作区见过的每一个工具,标记 covered 或 gap——直接从真实 MCP 流量 编写规则。

Events & Runs

每一次派发、它的判定,以及它命中的执行面,按智能体运行汇总。

Anomaly feed

对照一个学习到的基线的速率/成本尖峰、重试循环和新型工具路径。

9. 接下来去哪里

MCP 工具投毒

隔离与 MCP 网关背后的威胁模型。

过度自主

为何默认拒绝和 HITL 对自治工具使用很重要。

自治智能体配方

端到端加固一个高自治智能体。

阻止外泄

深入锁定出站 egress。