Claude Platform Docs
MessagesMCP 通道

MCP 通道參考

代理設定欄位、Tunnels REST API、憑證要求,以及設定元件。

代理設定

代理(proxy)會從 /etc/mcp-gateway/config.yaml(Compose)或已渲染的 ConfigMap(Helm,由 gateway.config.* 填入)讀取其設定。

欄位說明預設值
listen_addr要監聽的位址與連接埠。必填
log_level日誌詳細程度:debuginfowarnerrorinfo
shutdown_timeout在優雅關閉期間等待進行中請求的時間長度。30s
tunnel_domain指派給通道的基礎網域。設定後,路由查詢會從傳入的主機名稱中去除此後綴,因此 routes 的鍵可以是裸子網域(wiki)。若為空,routes 的鍵必須是完全相符的完整主機名稱。routes 的鍵為裸子網域時必填
tls.cert_file伺服器 TLS 憑證的路徑。必填
tls.key_file伺服器 TLS 私鑰的路徑。必填
routes子網域或完整主機名稱對應至上游 URL 的映射。請參閱路由比對必填
upstream.allowed_ips代理被允許連線的 IPv4 CIDR 範圍或單一位址。與 disable_ip_validation 互斥。RFC1918 私有範圍
upstream.disable_ip_validation完全停用上游 IP 驗證。與 allowed_ips 互斥。false
upstream.tls.ca_file用於驗證上游 TLS 的 CA 套件。
upstream.tls.include_system_cas同時信任系統 CA 套件以用於上游 TLS。false

對於 https:// 上游路由,請至少設定 upstream.tls.ca_fileupstream.tls.include_system_cas 其中之一;否則代理將沒有可用於上游憑證的信任錨點。

路由比對

routes 是一個扁平的字串映射(map[string]string),而非清單。代理會先以完全相符的方式查詢傳入的主機名稱,接著去除 tunnel_domain 後綴並比對剩餘的子網域。比對僅考慮主機名稱;請求路徑與查詢字串會原封不動地轉發至上游 MCP 伺服器

每個上游值必須嚴格為 scheme://host:port 格式。連接埠為必填。若包含路徑,將在載入設定時被拒絕,並顯示 invalid upstream (must be scheme://host:port)

Tunnels API

Tunnels REST API 位於 /v1/tunnels,支援建立、列出與封存通道、註冊 CA 憑證,以及揭示或輪替通道權杖。請參閱 Tunnels API 參考以取得所有端點、請求與回應結構描述,以及範例。

每個請求的必要標頭:

標頭
AuthorizationBearer <token>(經 WIF 交換的權杖)
anthropic-version2023-06-01
anthropic-betamcp-tunnels-2026-06-22

憑證要求

設定元件(setup component)會自動產生符合規範的憑證。這些要求僅適用於您透過自己的 PKI 簽發憑證的情況。

CA 憑證

使用 POST /v1/tunnels/{tunnel_id}/certificates 上傳。一個通道同時最多可持有兩個有效的 CA 憑證,以便進行零停機輪替。

  • PEM 編碼、單一憑證,最大 8 kB。
  • 具有 BasicConstraints 擴充欄位且為 CA:TRUE,並標記為 critical。
  • 具有 SubjectKeyIdentifier 擴充欄位。
  • KeyUsage 包含 keyCertSign
  • 在其有效期間內。
  • RSA 2048 位元或以上,或 ECDSA P-256 或以上,並使用 SHA-256 或更強的簽章。

伺服器憑證

由代理在內層 TLS 期間出示。

  • 由已註冊的 CA 直接簽署(無中繼憑證)。
  • 具有 AuthorityKeyIdentifier 擴充欄位,且與 CA 的 SubjectKeyIdentifier 相符。
  • Subject Alternative Name 包含符合 <route>.<tunnel-domain> 的 DNS 名稱。萬用字元 *.<tunnel-domain> 可涵蓋所有路由。
  • 若存在 ExtendedKeyUsage 擴充欄位,則其包含 serverAuth
  • 在其有效期間內。
  • RSA 2048 位元或以上,或 ECDSA P-256 或以上,並使用 SHA-256 或更強的簽章。

設定元件會產生一個有效期五年的 ECDSA P-256 CA,以及一個具有萬用字元 SAN、有效期 90 天的 RSA 4096 位元伺服器憑證。

設定元件

設定元件以 setup 二進位檔的形式隨附於 mcp-proxy 映像檔中。請使用 docker compose run --rm setup <subcommand>(Compose)執行,或依賴 chart 的 hooks 與 CronJobs(Helm)。

setup init

附加至現有通道(或在未提供通道 ID 時建立一個),接著產生 CA 與伺服器憑證、註冊 CA、擷取通道權杖,並將所有輸出寫入目的地。

旗標說明預設值
--api-urlClaude API 基礎 URL。亦可從 API_URL 讀取。必填
--tunnel-id要附加的通道 ID(tnl_...)。亦可從 TUNNEL_ID 讀取。省略時會建立新通道;重新執行時會重複使用已儲存於輸出中的通道 ID。無(建立通道)
--output輸出目的地:dir:/pathk8s-secret:NAME。Helm chart 會傳入 k8s-secret:<release>k8s-secret:mcp-tunnel(在 Kubernetes pod 中執行時自動偵測;否則為必填)
--cert-duration伺服器憑證有效期間。2160h(90 天)
--token-version變更偵測字串。新的值會在重新執行時觸發權杖輪替。Helm chart 與 Compose 範例皆傳入 1 作為初始值。

此命令透過 Workload Identity Federation 進行驗證。它會讀取 ANTHROPIC_FEDERATION_RULE_IDANTHROPIC_ORGANIZATION_IDANTHROPIC_WORKSPACE_ID(選填),以及 ANTHROPIC_IDENTITY_TOKEN_FILEANTHROPIC_IDENTITY_TOKEN 其中恰好一個。請參閱 WIF 參考以了解這些變數目前的語意;設定元件會從聯合規則推導出服務帳戶,因此不需要另外提供 ANTHROPIC_SERVICE_ACCOUNT_ID

setup renew-cert

簽發一張由已儲存的 CA 簽署的新伺服器憑證。不會進行任何 API 呼叫。

旗標說明預設值
--output輸出目的地:dir:/pathk8s-secret:NAME。Helm chart 會傳入 k8s-secret:<release>k8s-secret:mcp-tunnel(在 Kubernetes pod 中執行時自動偵測;否則為必填)
--cert-duration新憑證的有效期間。2160h(90 天)
--renew-before若現有憑證的剩餘有效期超過此時間長度,則略過更新。0(一律更新)

設定 --renew-before=720h 會使此命令在剩餘有效期超過 30 天時不執行任何動作,因此可安全地依固定排程執行。

Was this page helpful?