tools/call 到达真实服务器之前,让它通过你的
防火墙策略 评估。
本页只涵盖那一个任务——连接并配置一条服务器记录。关于网关的
运行时行为和每次调用的判定,参见
MCP 参考;要看更全的图景,从
MCP 安全总览 开始。
注册是一个控制台操作(
/api/workspace/firewall/* 路由用你的
会话/访问令牌鉴权,而不是中继 sk-orca-… 密钥)。写入需要
Developer+ 角色;任何成员都可以列出服务器。1. 如何连接一个 MCP 服务器
在控制台打开 Firewall → MCP Servers 并添加一个服务器,或直接 调用工作区 API。一次注册携带四样要紧的东西:name
每工作区唯一。它会成为
<server>.<tool> 命名空间前缀,因此
在同一工作区中的重名会被以 HTTP 409 拒绝。endpoint
你的远程 MCP 服务器的 URL。留空以注册捆绑的进程内服务器,
使其可见且可治理。
auth_mode
网关如何向你的服务器鉴权:
none、bearer、oauth 或 basic。credentials
模式特定的密钥。静态加密存储并在读取时屏蔽——它永不到达
模型或客户端。
enabled 起步,并在你禁用它的那一刻被完全从网关
中剔除——那是关闭开关,并且一个被禁用服务器的凭据永不被解密。
2. 一个具体例子
用一个 bearer 令牌注册一个远程 GitHub MCP 服务器。这是一个与 控制台等价的 REST 调用;字段名正是表单所写的。auth_mode:
bearer
bearer
{"token":"…"} —— 作为一个 bearer 令牌发送到你的服务器。oauth
oauth
{"access_token":"…"} —— 一个静态访问令牌,网关把它作为一个
bearer 头发送。自动的 client-credentials 交换尚不支持;如果
没有已存储的 access_token,oauth 模式的探测会失败而不是以
未鉴权方式连接。basic
basic
{"username":"…","password":"…"}。none
none
一个空字符串。不附加任何凭据。
3. 探测它的健康状况
在你能针对一个服务器的工具编写防火墙规则之前,你需要知道它们 可达,以及它们叫什么。**探测(Probe)**该服务器——网关使用解密后的 凭据运行一次 MCPinitialize + tools/list 握手,记录可达性,
并返回声明的工具:
status 会落入服务器记录并驱动健康指示器:
| status | 含义 |
|---|---|
ok | 可达;工具由网关提供。 |
degraded | 可达,但握手是部分的。 |
down | 上次探测时不可达;该服务器被跳过。 |
down 服务器会被排除在外,因此一次
瞬时中断会优雅降级而不是中断派发。一次探测无论结果如何都会返回
其结果——一次失败的探测会作为带 status: down 和一个被清洗过的
原因的 200 回来,而不是一次传输错误。
每一次注册变更都会立即使网关的按工作区工具缓存失效,因此一个
新连接、被禁用或重新探测的服务器会在下一次连接时生效,而不是
等到一个缓存窗口之后。
4. 连接之后
一旦一个服务器被注册并探测为ok,它的工具就受治理:
- 每次调用都被评估。 每一次
tools/call都在mcp面上通过 你的防火墙策略运行,然后才到达你的服务器。既然你知道了工具名, 就用tool_name_glob: github.*来限定规则范围。 - 封锁这个面。 默认拒绝你没有明确允许的工具——参见 允许列表 MCP 工具。
- 治理它触及哪里。 编写一条 出站规则,让一个工具无法抓取 任意主机。
- 留意变化。 一个你曾信任的服务器可能事后改变它的工具定义; rug-pull 防御 会标记那种漂移。
5. API 参考
所有控制台路由都是工作区限定的,并用你的会话/访问令牌鉴权。 列表读取对任何 Member 开放(密钥屏蔽);每一次写入需要 Developer+。| 方法与路径 | 角色 | 用途 |
|---|---|---|
GET /api/workspace/firewall/mcp_servers | Member | 列出服务器(密钥 + 端点屏蔽)。 |
GET /api/workspace/firewall/mcp_servers/:id | Member | 单个服务器,已屏蔽。 |
POST /api/workspace/firewall/mcp_servers | Developer+ | 注册一个服务器(重名时返回 409)。 |
PUT /api/workspace/firewall/mcp_servers | Developer+ | 更新一个服务器(id 在 body 中)。 |
DELETE /api/workspace/firewall/mcp_servers/:id | Developer+ | 软删除;释放名称。 |
POST /api/workspace/firewall/mcp_servers/:id/probe | Developer+ | 探测可达性 + 发现工具。 |
GET /api/v1/firewall/mcp_servers(仅已启用的服务器)读取运行时
注册表。关于如何在那一侧鉴权,参见
鉴权 MCP 网关。
到底为什么要经过 OrcaRouter 连接? 这样就有一个地方能看到
每一次工具调用——一个连接、一条策略、一份受审计日志,以及在
派发时注入的凭据,而不是散落在各个智能体配置里。读
保护 AI 智能体 和
MCP 工具投毒威胁 了解动机。
相关
MCP 安全总览
完整的 MCP 治理模型,端到端。
防火墙:MCP 服务器
网关的运行时行为和每次调用的判定。
鉴权网关
铸造并限定你的智能体连接所用的令牌的范围。
信任清单
在你信任一个新服务器之前要验证的一切。
