Edgegap

官方

從你的編碼代理部署多人遊戲伺服器。十個工具,可將Unity、Unreal或Godot的專用伺服器從容器映像帶到已連接的玩家。

你可以用 Edgegap MCP 做什麼?

  • 從容器映像部署遊戲伺服器 — 請助理以 CPU、記憶體和連接埠設定註冊您的容器映像,然後在特定玩家附近啟動它。
  • 追蹤部署狀態與連線資訊 — 讓助理持續輪詢直到部署就緒,並回傳連線位址,或檢查執行中執行個體的狀態與日誌。
  • 管理應用程式版本 — 請助理列出現有的應用程式與版本,或從現有可用的設定建立新版本,以避免重複設定。
  • 優雅地停止部署 — 指示助理依請求 ID 終止特定部署,傳送乾淨的關閉訊號,而非強制終止。
  • 尋找並清理孤立的伺服器 — 請助理列出先前工作階段的所有部署,以便您識別並停止未使用的執行個體。

託管 MCP 伺服器

npx add-mcp 'https://mcp.edgegap.dev/mcp'

可安裝到 Claude Code、Codex、Cursor 等客戶端

文件

edgegap-mcp

一個用於 Edgegap 的 MCP 伺服器,讓程式設計代理程式能將開發者從「我有一個遊戲伺服器容器」帶到「玩家已連線」,而無需開發者閱讀 API 參考文件。

十個精心挑選的工具。並非從 OpenAPI 規格自動生成——原因請見 Scope

安裝

有兩種執行方式。根據您對 token 去向的在意程度來選擇——請見 Where your token goes

遠端端點

由 Edgegap 以 Cloudflare Worker 託管。無需安裝任何東西。

{
  "mcpServers": {
    "edgegap": {
      "type": "http",
      "url": "https://mcp.edgegap.dev/mcp",
      "headers": { "Authorization": "token YOUR_API_TOKEN" }
    }
  }
}

也可作為 claude.ai 中的自訂連接器使用:新增 https://mcp.edgegap.dev/mcp 並提供相同的 token。

本機

在您自己的機器上執行,由您的編輯器啟動。在 MCP 用戶端設定中只需一行,無需複製任何東西,無需建置任何東西。

{
  "mcpServers": {
    "edgegap": {
      "command": "npx",
      "args": ["-y", "@edgegap/mcp"]
    }
  }
}

適用於 Claude Code、Cursor、Codex 和 VS Code。在生產環境中鎖定版本(@edgegap/mcp@0.1.5),而不是浮動在最新版。

已在官方 MCP 註冊表中註冊為 dev.edgegap/mcp

Node 版本: 本機伺服器需要 Node 18+。自行部署 Cloudflare Worker 的副本需要 Node 22+,因為 wrangler 需要它。

您的 token 去向

這因模式而異,而這個差異正是兩種模式存在的原因。

本機。 伺服器作為您自己電腦上的一個程序執行。第一次工具呼叫會要求您提供 token,顯示它所授權的內容,並在接受之前要求明確確認。該 token 之後的存放位置,詳盡列出:

  • 該程序記憶體中的一個變數,在您的編輯器工作階段期間有效

這就是完整清單。不在磁碟上。不在設定檔中。不在日誌中。不在任何 Edgegap 伺服器上——唯一發送給 Edgegap 的是 API 呼叫本身,完全如同您執行了 curl。關閉編輯器會完全撤銷此伺服器的存取權。

遠端。 您的 token 在每次請求時發送到 mcp.edgegap.dev,並從那裡轉發到 Edgegap API。它會經過 Edgegap 營運的基礎設施。Worker 在請求期間持有它,不會持久化,但這是「我們不儲存它」的主張,而非「我們永遠看不到它」的主張。兩者不同,只有本機模式能做到第二種。

https://app.edgegap.com/user-settings?tab=tokens 生成 token。

在本機模式中,設定 EDGEGAP_API_TOKEN 優先於提示,適用於 CI 和無法顯示提示的用戶端。不要將 token 作為命令列參數傳遞——參數可透過 ps 被其他程序看到,伺服器若偵測到會發出警告。

該用哪個。 遠端適合首次嘗試、示範,或設定摩擦比保管權更重要的受監督工作階段。本機適合任何無人值守、任何組織中有營運中遊戲,以及任何您寧可不延伸不必要信任的情況。以下描述的防護措施僅存在於本機模式。

連接代理程式前請先閱讀

Edgegap API token 無法設定範圍。 一個 token 授權所有應用程式、所有版本、所有執行中的部署,以及您在整個組織中的使用量。沒有僅限部署的 token,也沒有每個應用程式的 token。

值得深思的後果:

  • 持有此 token 的代理程式可以停止生產部署,而不只是它建立的測試部署。
  • 注入代理程式的提示注入——來自 repo 檔案、issue、抓取的頁面——也會觸及 token。
  • 代理程式記錄、回顯或發送給模型提供者的任何內容,都是 token 可能出現的地方。此伺服器不會記錄它,但無法控制代理程式其餘部分的行為。
  • 在遠端端點上,同一個無範圍 token 在每次呼叫時還會由 Edgegap 的 worker 處理。

建議的設定,依謹慎程度遞減:

情境設定
無人值守或自主代理程式本機模式。獨立的非生產組織,加上 EDGEGAP_READ_ONLY=1
受監督代理程式,組織中有營運中遊戲本機模式。EDGEGAP_APP_ALLOWLIST 範圍限定在正在處理的應用程式,加上 EDGEGAP_MAX_DURATION_MINUTES。先閱讀 Scope of the allowlist——已執行中的部署不在涵蓋範圍內
獨立開發者,無生產負載任一模式皆可。預設值即可;完成後撤銷 token

允許清單和唯讀旗標在本機伺服器中強制執行,這意味著它們保護的是犯錯的代理程式,而不是已被入侵而直接呼叫 API 的代理程式。它們縮小爆炸半徑;但不會消除它。

允許清單的範圍

EDGEGAP_APP_ALLOWLIST 由四個接受應用程式名稱的工具強制執行:edgegap_create_appedgegap_list_app_versionsedgegap_create_app_versionedgegap_deploy

由五個以 request_id 為鍵的工具強制執行:edgegap_get_deploymentedgegap_wait_for_deploymentedgegap_list_deploymentsedgegap_stop_deploymentedgegap_get_deployment_logs。設定允許清單執行的代理程式可以列出組織中的每個部署,然後檢查、讀取日誌或停止其中任何一個——包括屬於清單外應用程式的部署。

因此,允許清單限制的是代理程式可以建立和部署到的範圍,而不是執行後可以觸及的範圍。這比本文件早期版本所暗示的更窄。

若要獲得更強的保證,請使用 EDGEGAP_READ_ONLY=1,它完全不註冊五個變更工具,或將代理程式指向獨立的非生產組織。兩者都不受此缺口影響。

由 Syed Anas Mohiuddin 回報,2026 年 9 月。

環境變數

這些設定本機伺服器。在遠端端點上,它們由 Edgegap 設定,無法由每個開發者更改——如果您需要其中任何一個,請在本機執行。

變數預設值用途
EDGEGAP_API_TOKEN(提示)API token。可選——省略時開發者會在首次使用時被詢問。token 前綴會自動為您加上。
EDGEGAP_READ_ONLY0設為 1 時,五個變更工具永遠不會被註冊。代理程式看不到它們,因此不會被說服去呼叫它們。
EDGEGAP_APP_ALLOWLIST(空)逗號分隔的應用程式名稱。設定時,四個以應用程式為鍵的工具拒絕觸及其他任何東西。限制五個以 request_id 為鍵的工具——請見 Scope of the allowlist
EDGEGAP_MAX_DURATION_MINUTES60代理程式可在版本上設定的 max_duration 上限。限制無人值守代理程式的失控成本。
EDGEGAP_TIMEOUT_MS30000每次請求的 HTTP 逾時。

工具

十個工具,按黃金路徑的順序列出。兩種模式中都是相同的十個。

工具變更用途
edgegap_list_apps在執行任何操作前先定位。防止重複的應用程式。
edgegap_create_app為版本建立容器。
edgegap_list_app_versions尋找可部署的版本,或從運作中的版本複製設定。
edgegap_create_app_version以 CPU、記憶體和連接埠註冊容器映像。
edgegap_deploy在指定玩家附近啟動一個實例。
edgegap_get_deployment單一狀態讀取。
edgegap_wait_for_deployment以退避方式輪詢至就緒,然後回傳連線位址。
edgegap_list_deployments從先前工作階段尋找孤兒伺服器。
edgegap_stop_deployment優雅的 SIGTERM,一次一個部署。
edgegap_get_deployment_logs失敗後的容器輸出和崩潰退出碼。

設計決策

精心策劃,而非生成。 Edgegap API 大約有六十個操作。為每個操作自動生成一個工具,會將全部六十個描述在每一輪都放入代理程式的上下文中,並可測量地降低工具選擇品質。這十個涵蓋了轉換新開發者的路徑。

wait_for_deployment 是一個工具,不是一個迴圈。 讓代理程式自行處理時,它會在緊密迴圈中呼叫狀態端點,浪費回合,並過早放棄。將輪詢和退避摺疊到一次呼叫中,消除了代理驅動部署中最常見的失敗。

錯誤是為自我修正而寫的。 424 回來說映像無法拉取,以及應檢查哪些欄位。422 說嘗試不同的座標或降低資源請求。代理程式可以根據這些採取行動,而無需往返人類。

在連線前進行本機驗證。 記憶體與 CPU 的比例以及缺少的玩家位置在這裡被捕捉,而不是以不透明的 400 呈現。

刻意不提供批次操作。 stop 接受一個 request_id。沒有批次停止工具,因為帶有篩選表達式和 bug 的代理程式可以停止生產艦隊。

同時提供託管端點和本機套件。 託管端點移除了從找到此伺服器到呼叫工具之間的每一步,而這正是大多數開發者放棄的地方。本機套件是唯一能在不將無範圍 token 的保管權延伸給第三方(包括我們)的情況下執行伺服器的方式。兩者都不優於對方,所以兩者都提供。請見 worker/DECISION.md 以取得更詳細的版本。

範圍

刻意不公開:配對、中繼、私人艦隊、智慧艦隊、端點儲存、ACL/白名單條目、部署標籤、指標、容器註冊表管理、DNS 設定。

這些是實際的功能,但它們屬於已在平台上營運的工作室,而不是部署第一個伺服器的開發者。加入它們會用表面積換取轉換路徑。

已知限制:要求 token

這適用於本機模式,其中 token 是透過引導收集,而非從設定讀取。

MCP 規範說伺服器不應使用引導來收集敏感資料,而 API token 是敏感的。此伺服器仍然這樣做,因為在一切運作之前要求在設定檔中提供 token,是入門漏斗中最大的流失點,而此伺服器的全部意義就在於移除設定摩擦。

這是一個刻意的取捨,而非可複製的模式。讓它站得住腳的是 src/auth.ts 中的一系列緩解措施——僅記憶體儲存、白話揭露、必要確認、從所有輸出中編輯,以及環境變數在存在時永遠優先。移除其中任何一個都會破壞這個取捨。

真正的修復在 Edgegap 端,且會改善兩種模式:有範圍、可撤銷、僅部署的憑證,透過 OAuth 發行,而非作為秘密貼上。在這些存在之前,互動式提示是一個權宜之計,並在程式碼中如此標示。

開發

npm run typecheck
node smoke.mjs      # handshake, tool registration, read-only mode
node guards.mjs     # local validation and allowlist enforcement
node elicit.mjs     # token prompt: accept, refuse acknowledgement, decline, no support

這些都不會進行網路呼叫。elicit.mjs 斷言提示陳述了組織範圍、確認是必要的、token 永遠不會出現在工具輸出中,以及拒絕會產生停止並回報的訊息,而非重試迴圈。