Edgegap

offiziell

Stelle Multiplayer-Spielserver direkt aus deinem Coding-Agenten bereit. Zehn Tools, die einen Unity-, Unreal- oder Godot-Dedicated-Server vom Container-Image zu verbundenen Spielern führen.

Was kann man mit Edgegap MCP machen?

  • Spielserver aus einem Container-Image bereitstellen — Bitten Sie den Assistenten, Ihr Container-Image mit CPU-, Speicher- und Port-Einstellungen zu registrieren und es dann in der Nähe bestimmter Spieler zu starten.
  • Bereitstellungsstatus und Verbindungsdetails verfolgen — Lassen Sie den Assistenten abfragen, bis Ihre Bereitstellung bereit ist, und die Verbindungsadresse zurückgeben, oder prüfen Sie Status und Protokolle für eine laufende Instanz.
  • Anwendungsversionen verwalten — Bitten Sie den Assistenten, vorhandene Apps und Versionen aufzulisten oder eine neue Version aus den Einstellungen einer funktionierenden Version zu erstellen, um Doppelarbeit zu vermeiden.
  • Bereitstellungen ordnungsgemäß beenden — Weisen Sie den Assistenten an, eine bestimmte Bereitstellung anhand der Anfrage-ID zu beenden, wobei ein sauberes Herunterfahrsignal gesendet wird, anstatt sie zwangsweise zu beenden.
  • Verwaiste Server finden und bereinigen — Bitten Sie den Assistenten, alle Bereitstellungen aus früheren Sitzungen aufzulisten, damit Sie ungenutzte Instanzen identifizieren und stoppen können.

Gehosteter MCP-Server

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

Installiert in Claude Code, Codex, Cursor und mehr

Dokumentation

edgegap-mcp

Ein MCP-Server für Edgegap, der es einem Coding-Agenten ermöglicht, einen Entwickler von „Ich habe einen Game-Server-Container" zu „Spieler sind damit verbunden" zu bringen, ohne dass der Entwickler die API-Referenz lesen muss.

Zehn Tools, handverlesen. Nicht aus dem OpenAPI-Spec generiert – siehe Scope für die Begründung.

Installation

Zwei Möglichkeiten, es auszuführen. Wählen Sie basierend darauf, wie wichtig Ihnen ist, wohin Ihr Token geht – siehe Wohin Ihr Token geht.

Remote-Endpunkt

Gehostet von Edgegap als Cloudflare Worker. Nichts zu installieren.

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

Funktioniert auch als benutzerdefinierter Connector in claude.ai: Fügen Sie https://mcp.edgegap.dev/mcp hinzu und liefern Sie dasselbe Token.

Lokal

Läuft auf Ihrem eigenen Rechner, gestartet von Ihrem Editor. Eine Zeile in Ihrer MCP-Client-Konfiguration, nichts zu klonen, nichts zu bauen.

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

Funktioniert in Claude Code, Cursor, Codex und VS Code. In der Produktion eine Version festlegen (@edgegap/mcp@0.1.5), anstatt auf „latest" zu schweben.

Im offiziellen MCP-Registry als dev.edgegap/mcp registriert.

Node-Version: Der lokale Server benötigt Node 18+. Das Bereitstellen einer eigenen Kopie des Cloudflare Workers benötigt Node 22+, da wrangler dies erfordert.

Wohin Ihr Token geht

Dies unterscheidet sich je nach Modus, und der Unterschied ist der Grund, warum beide Modi existieren.

Lokal. Der Server läuft als Prozess auf Ihrem eigenen Computer. Der erste Tool-Aufruf fragt Sie nach einem Token, zeigt, was es autorisiert, und erfordert eine ausdrückliche Bestätigung, bevor es akzeptiert wird. Wo dieses Token dann lebt, erschöpfend:

  • eine Variable im Speicher dieses Prozesses, für die Lebensdauer Ihrer Editor-Sitzung

Das ist die gesamte Liste. Nicht auf der Festplatte. Nicht in einer Konfigurationsdatei. Nicht in Protokollen. Nicht auf einem Edgegap-Server – das Einzige, was an Edgegap gesendet wird, ist der API-Aufruf selbst, genau als hätten Sie curl ausgeführt. Das Schließen Ihres Editors entzieht diesem Server den Zugriff vollständig.

Remote. Ihr Token wird bei jeder Anfrage an mcp.edgegap.dev gesendet und von dort an die Edgegap-API weitergeleitet. Es durchläuft Infrastruktur, die Edgegap betreibt. Der Worker hält es für die Lebensdauer der Anfrage und speichert es nicht, aber das ist eine „wir speichern es nicht"-Aussage und keine „wir sehen es nie"-Aussage. Die beiden sind unterschiedlich, und nur der lokale Modus ermöglicht die zweite.

Generieren Sie ein Token unter https://app.edgegap.com/user-settings?tab=tokens.

Im lokalen Modus hat das Setzen von EDGEGAP_API_TOKEN Vorrang vor der Eingabeaufforderung, für CI und für Clients, die keine Eingabeaufforderungen anzeigen können. Übergeben Sie kein Token als Befehlszeilenargument – Argumente sind für andere Prozesse über ps sichtbar, und der Server warnt, wenn er eines erkennt.

Welches verwenden. Remote für einen ersten Versuch, eine Demo oder eine überwachte Sitzung, bei der Einrichtungsaufwand wichtiger ist als die Verwahrung. Lokal für alles Unbeaufsichtigte, alles in einer Organisation mit einem Live-Spiel und alles, bei dem Sie nicht unnötig Vertrauen ausdehnen möchten. Die unten beschriebenen Schutzmaßnahmen existieren nur im lokalen Modus.

Lesen Sie dies, bevor Sie einen Agenten verbinden

Das Edgegap-API-Token kann nicht eingeschränkt werden. Ein Token autorisiert jede Anwendung, jede Version, jede laufende Bereitstellung und Ihre Nutzung in der gesamten Organisation. Es gibt kein Nur-Bereitstellungs-Token und kein Pro-Anwendungs-Token.

Konsequenzen, über die man sich bewusst sein sollte:

  • Ein Agent, der dieses Token hält, kann Produktionsbereitstellungen stoppen, nicht nur die Testbereitstellungen, die er erstellt hat.
  • Prompt-Injection, die den Agenten erreicht – aus einer Repo-Datei, einem Issue, einer abgerufenen Seite – erreicht auch das Token.
  • Alles, was der Agent protokolliert, ausgibt oder an einen Modell-Anbieter sendet, ist ein Ort, an dem das Token landen könnte. Dieser Server protokolliert es nicht, kann aber nicht kontrollieren, was der Rest des Agenten tut.
  • Am Remote-Endpunkt wird dasselbe uneingeschränkte Token zusätzlich bei jedem Aufruf vom Edgegap-Worker verarbeitet.

Empfohlene Einrichtung, in absteigender Reihenfolge der Vorsicht:

SituationEinrichtung
Unbeaufsichtigter oder autonomer AgentLokaler Modus. Separate Nicht-Produktions-Organisation, plus EDGEGAP_READ_ONLY=1
Überwachter Agent, Live-Spiel in der OrganisationLokaler Modus. EDGEGAP_APP_ALLOWLIST auf die bearbeitete App beschränkt, plus EDGEGAP_MAX_DURATION_MINUTES. Lesen Sie zuerst Scope der Zulassungsliste – bereits laufende Bereitstellungen sind nicht abgedeckt
Solo-Entwickler, keine ProduktionslastBeide Modi. Standardeinstellungen sind in Ordnung; Token bei Abschluss widerrufen

Die Zulassungsliste und das Nur-Lese-Flag werden im lokalen Server durchgesetzt, was bedeutet, dass sie vor einem Agenten schützen, der einen Fehler macht, nicht vor einem, der kompromittiert wurde, um die API direkt aufzurufen. Sie verengen den Schadensradius; sie entfernen ihn nicht.

Scope der Zulassungsliste

EDGEGAP_APP_ALLOWLIST wird von den vier Tools durchgesetzt, die einen Anwendungsnamen annehmen: edgegap_create_app, edgegap_list_app_versions, edgegap_create_app_version und edgegap_deploy.

Es wird nicht von den fünf Tools durchgesetzt, die auf request_id basieren: edgegap_get_deployment, edgegap_wait_for_deployment, edgegap_list_deployments, edgegap_stop_deployment und edgegap_get_deployment_logs. Ein Agent, der mit einer festgelegten Zulassungsliste läuft, kann jede Bereitstellung in der Organisation auflisten und dann jede davon inspizieren, Protokolle lesen oder stoppen – einschließlich Bereitstellungen, die zu Anwendungen außerhalb der Liste gehören.

Die Zulassungsliste begrenzt also, was ein Agent erstellen und bereitstellen kann, nicht, was er berühren kann, sobald es läuft. Das ist enger, als frühere Versionen dieses Dokuments implizierten.

Für eine stärkere Garantie heute verwenden Sie EDGEGAP_READ_ONLY=1, das die fünf mutierenden Tools überhaupt nicht registriert, oder richten Sie den Agenten auf eine separate Nicht-Produktions-Organisation aus. Beide sind von dieser Lücke nicht betroffen.

Gemeldet von Syed Anas Mohiuddin, September 2026.

Umgebungsvariablen

Diese konfigurieren den lokalen Server. Am Remote-Endpunkt werden sie von Edgegap festgelegt und können nicht pro Entwickler geändert werden – wenn Sie eine davon benötigen, führen Sie lokal aus.

VariableStandardZweck
EDGEGAP_API_TOKEN(abgefragt)API-Token. Optional – weglassen und der Entwickler wird bei der ersten Verwendung gefragt. Das token -Präfix wird für Sie hinzugefügt.
EDGEGAP_READ_ONLY0Auf 1 setzen und die fünf mutierenden Tools werden nie registriert. Der Agent kann sie nicht sehen, also kann er nicht dazu überredet werden, sie aufzurufen.
EDGEGAP_APP_ALLOWLIST(leer)Kommagetrennte Anwendungsnamen. Wenn gesetzt, weigern sich die vier anwendungsschlüsselbasierten Tools, etwas anderes zu berühren. Begrenzt nicht die fünf request_id-basierten Tools – siehe Scope der Zulassungsliste.
EDGEGAP_MAX_DURATION_MINUTES60Obergrenze für max_duration, das der Agent auf einer Version setzen darf. Begrenzt außer Kontrolle geratene Kosten durch einen unbeaufsichtigten Agenten.
EDGEGAP_TIMEOUT_MS30000HTTP-Timeout pro Anfrage.

Tools

Zehn Tools, aufgelistet in der Reihenfolge, in der sie entlang des goldenen Pfads fallen. Dieselben zehn in beiden Modi.

ToolMutierendWofür es ist
edgegap_list_appsOrientieren, bevor Sie etwas tun. Verhindert doppelte Anwendungen.
edgegap_create_appContainer für Versionen erstellen.
edgegap_list_app_versionsEine bereitstellbare Version finden oder Einstellungen von einer funktionierenden kopieren.
edgegap_create_app_versionEin Container-Image mit CPU, Speicher und Ports registrieren.
edgegap_deployEine Instanz in der Nähe bestimmter Spieler starten.
edgegap_get_deploymentEinzelner Statusabruf.
edgegap_wait_for_deploymentMit Backoff auf Bereitschaft pollen, dann die Verbindungsadresse zurückgeben.
edgegap_list_deploymentsVerwaiste Server aus früheren Sitzungen finden.
edgegap_stop_deploymentGraceful SIGTERM, eine Bereitstellung nach der anderen.
edgegap_get_deployment_logsContainerausgabe und Absturz-Exit-Code nach einem Fehler.

Designentscheidungen

Kuratiert, nicht generiert. Die Edgegap-API hat ungefähr sechzig Operationen. Das automatische Generieren eines Tools pro Operation legt alle sechzig Beschreibungen bei jeder Runde in den Kontext des Agenten und verschlechtert messbar die Tool-Auswahl. Diese zehn decken den Pfad ab, der einen neuen Entwickler konvertiert.

wait_for_deployment ist ein Tool, keine Schleife. Sich selbst überlassen, ruft ein Agent einen Status-Endpunkt in einer engen Schleife auf, verbrennt Runden und gibt früh auf. Das Falten des Pollings und Backoffs in einen Aufruf entfernt den häufigsten Fehler bei agentengesteuerten Bereitstellungen.

Fehler sind für Selbstkorrektur geschrieben. Ein 424 kommt zurück und sagt, dass das Image nicht gezogen werden konnte und welche Felder zu überprüfen sind. Ein 422 sagt, andere Koordinaten zu versuchen oder die Ressourcenanfrage zu senken. Der Agent kann darauf reagieren, ohne einen Umweg über den Menschen zu machen.

Lokale Validierung vor der Leitung. Das Speicher-zu-CPU-Verhältnis und die fehlende Spielerposition werden hier erfasst, anstatt als undurchsichtiger 400 aufzutauchen.

Bulk-Operationen sind bewusst abwesend. stop nimmt ein request_id. Es gibt kein Bulk-Stop-Tool, weil ein Agent mit einem Filterausdruck und einem Bug eine Produktionsflotte stoppen kann.

Sowohl ein gehosteter Endpunkt als auch ein lokales Paket. Der gehostete Endpunkt entfernt jeden Schritt zwischen dem Finden dieses Servers und dem Aufrufen eines Tools, was die Stelle ist, an der die meisten Entwickler abbrechen. Das lokale Paket ist der einzige Weg, den Server auszuführen, ohne die Verwahrung eines uneingeschränkten Tokens auf einen Dritten, einschließlich uns, auszudehnen. Keiner dominiert den anderen, also werden beide ausgeliefert. Siehe worker/DECISION.md für die längere Version.

Scope

Absichtlich nicht exponiert: Matchmaking, Relays, private Flotten, Smart-Flotten, Endpunktspeicher, ACL/Whitelist-Einträge, Bereitstellungs-Tags, Metriken, Container-Registry-Verwaltung, DNS-Konfiguration.

Dies sind echte Fähigkeiten, aber sie gehören zu Studios, die bereits auf der Plattform operieren, nicht zu einem Entwickler, der seinen ersten Server bereitstellt. Sie hinzuzufügen würde den Konvertierungspfad gegen Oberfläche eintauschen.

Bekannte Einschränkung: überhaupt nach dem Token zu fragen

Dies gilt für den lokalen Modus, in dem das Token durch Elicitation gesammelt wird, anstatt aus der Konfiguration gelesen zu werden.

Die MCP-Spezifikation besagt, dass Server Elicitation nicht verwenden sollten, um sensible Daten zu sammeln, und ein API-Token ist sensibel. Dieser Server tut es trotzdem, weil das Verlangen eines Tokens in einer Konfigurationsdatei, bevor etwas funktioniert, der größte Abfall im Onboarding-Trichter ist, und der ganze Sinn des Servers ist es, Einrichtungsfriction zu entfernen.

Das ist ein bewusster Kompromiss und kein Muster zum Kopieren. Was es verteidigbar macht, ist die Reihe von Minderungen in src/auth.ts – Nur-Speicher-Speicherung, Klartext-Offenlegung, erforderliche Bestätigung, Schwärzung aus allen Ausgaben und die Umgebungsvariable, die immer gewinnt, wenn vorhanden. Das Entfernen einer davon bricht den Kompromiss.

Die echte Lösung liegt auf Edgegaps Seite und würde beide Modi verbessern: eingeschränkte, widerrufbare, nur für Bereitstellung gedachte Anmeldeinformationen, ausgestellt über OAuth, anstatt als Geheimnis eingefügt. Bis diese existieren, ist die interaktive Eingabeaufforderung ein Workaround und wird im Code als solcher gekennzeichnet.

Entwicklung

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

Keine davon macht Netzwerkaufrufe. elicit.mjs stellt sicher, dass die Eingabeaufforderung den organisationsweiten Scope angibt, dass die Bestätigung erforderlich ist, dass das Token nie in der Tool-Ausgabe erscheint und dass das Ablehnen eine Stopp-und-Melde-Nachricht erzeugt, anstatt eine Wiederholungsschleife.