tools/call 抵達真正的伺服器之前,透過你的
防火牆政策評估它。
本頁涵蓋那一件任務——連接並設定一筆伺服器
記錄。關於閘道的執行期行為與每次呼叫的裁決,請見
MCP 參考;至於更大的圖景,從
MCP 安全總覽開始。
註冊是一個主控台動作(
/api/workspace/firewall/*
路由以你的工作階段/存取權杖驗證,而非一個轉送
sk-orca-… 金鑰)。寫入需要 Developer+ 角色;任何成員皆可
列出伺服器。1. 如何連接一個 MCP 伺服器
在主控台中開啟 Firewall → MCP Servers 並新增一個伺服器,或直接 呼叫工作區 API。一筆註冊攜帶四件重要的事:name
每個工作區唯一。它會成為
<server>.<tool> 命名空間
前綴,所以在同一個工作區中重複的 name 會被拒絕並回傳
HTTP 409。endpoint
你的遠端 MCP 伺服器的 URL。留空以註冊
隨附的行程內伺服器,使它可見且可治理。
auth_mode
閘道如何向你的伺服器驗證:
none、bearer、
oauth 或 basic。credentials
模式特定的密鑰。在靜態時加密儲存並在
讀取時遮罩——它永不會抵達模型或客戶端。
enabled 起始,並在你停用它的那一刻
完全從閘道中被丟棄——那就是關閉開關,而一個停用的伺服器的
憑證永不會被解密。
2. 一個具體範例
用一個 bearer token 註冊一個遠端 GitHub MCP 伺服器。這是一個 與主控台等效的 REST 呼叫;欄位名稱正是表單 所寫入的。auth_mode:
bearer
bearer
{"token":"…"} —— 作為一個 bearer token 送往你的伺服器。oauth
oauth
{"access_token":"…"} —— 一個閘道作為 bearer 標頭傳送的靜態
存取權杖。自動的 client-credentials 交換尚未
支援;若沒有已儲存的 access_token,一次 oauth 模式的探測會失敗
而非以未驗證方式連接。basic
basic
{"username":"…","password":"…"}。none
none
一個空字串。不附加任何憑證。
3. 探測它的健康狀態
在你能針對一個伺服器的工具撰寫防火牆規則之前,你需要 知道它們可觸及且它們叫什麼。探測該伺服器—— 閘道會使用解密後的憑證執行一次 MCPinitialize + tools/list
握手、記錄可觸及性,並傳回所公告的工具:
status 會落入伺服器記錄並驅動健康指示器:
| status | 意義 |
|---|---|
ok | 可觸及;工具由閘道服務。 |
degraded | 可觸及,但握手是部分的。 |
down | 在上一次探測時無法觸及;該伺服器被略過。 |
down 伺服器會被排除在外,所以一次
暫時性的中斷會優雅地降級而非破壞派發。一次探測
無論結果如何都會傳回其結果——一次失敗的探測會作為
帶有 status: down 與一個被清洗過的原因的 200 回來,而非一個傳輸錯誤。
每一次註冊變更都會立即使閘道的每工作區工具
快取失效,所以一個新連接的、被停用的,或被重新探測的伺服器會在
下次連線時生效,而不是在一個快取窗口之後。
4. 連接之後
一旦一個伺服器已註冊且探測為ok,它的工具就受治理:
- 每次呼叫都會被評估。 每一次
tools/call在抵達你的伺服器之前, 都會在mcp表面上透過你的防火牆政策執行。既然你知道工具名稱, 就用tool_name_glob: github.*來限定範圍。 - 鎖定表面。 預設拒絕你未明確允許的工具—— 請見允許清單 MCP 工具。
- 治理它觸及何處。 撰寫一條 egress 規則,讓一個工具不能擷取 任意主機。
- 留意變更。 一個你信任的伺服器之後可能變更它的工具 定義;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+ | 註冊一個伺服器(name 重複時回傳 409)。 |
PUT /api/workspace/firewall/mcp_servers | Developer+ | 更新一個伺服器(id 在主體中)。 |
DELETE /api/workspace/firewall/mcp_servers/:id | Developer+ | 軟刪除;釋放 name。 |
POST /api/workspace/firewall/mcp_servers/:id/probe | Developer+ | 探測可觸及性 + 探索工具。 |
GET /api/v1/firewall/mcp_servers 讀取執行期註冊表(僅限已啟用的伺服器)。關於
如何驗證那一側,請見
驗證 MCP 閘道。
到底為什麼要透過 OrcaRouter 連接? 這樣就有一個地方能看見每一次工具
呼叫——一個連線、一個政策、一份受稽核的日誌,以及在派發時
注入的憑證,而非散落在各個代理設定中。閱讀
保護 AI 代理與
MCP 工具下毒威脅以了解
動機。
相關
MCP 安全總覽
完整的 MCP 治理模型,端到端。
防火牆:MCP 伺服器
閘道的執行期行為與每次呼叫的裁決。
驗證閘道
鑄造並限定範圍你的代理連接所用的權杖。
信任檢查清單
在你信任一個新伺服器之前需要驗證的一切。
