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?

  • Dockerfile schreiben — Lass deinen Agenten ein Dockerfile für einen Unity-, Unreal-, Godot- oder anderen Server-Build mit Headless-Flags und passenden Ports erstellen.
  • Vor dem Build validieren — Prüfe ein vorhandenes Dockerfile, Ports, Ressourcen und Image-Tag auf Probleme wie ARM-Images oder Server, die an localhost gebunden sind.
  • Einen dedizierten Server bereitstellen — Registriere ein Image als App-Version, wähle einen Standort, stelle den Server in der Nähe der Spieler bereit und rufe die Server-IP und Ports ab.
  • Eine fehlgeschlagene Bereitstellung diagnostizieren — Lies Container-Logs, Absturzdaten und CPU-/Speicher-Metriken, um herauszufinden, warum ein Server fehlgeschlagen ist oder abgestürzt ist.
  • Eine Relay-Sitzung einrichten — Erstelle ein Relay für Host-Client-Spiele und rufe die Relay-Adresse sowie das Autorisierungstoken jedes Spielers ab.

Gehosteter MCP-Server

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

Installiert in Claude Code, Codex, Cursor und mehr

Dokumentation

Edgegap MCP Server

Verbinde KI-Coding-Agenten über unseren MCP-Server mit Edgegap. Dein Agent kann einen Headless-Server-Build bis zu dem Punkt bringen, an dem sich Spieler verbinden können: die Dockerfile schreiben oder prüfen, das Image in deine private Edgegap-Registry übertragen, einen autoritativen Dedicated Server in der Nähe der Spieler bereitstellen und bei Problemen Logs auslesen.

Install in Cursor Install in VS Code

👉 Unterstützte Funktionen

[!TIP] Verwendest du Unity, Unreal Engine oder Godot? Unsere Anleitungen und Plugins für Unity, Unreal Engine und Godot sind für diese Engines weiterhin der schnellste Weg. Der MCP-Server funktioniert parallel dazu und eigenständig mit jeder Engine.

Verwende unseren MCP-Server, wenn du:

  • Deinen Game-Server containerisierst – dein Agent schreibt eine Dockerfile für deinen Build (oder prüft deine vorhandene) anhand bewährter Methoden, überträgt das Image in unsere private Container-Registry und entfernt ungenutzte alte Image-Tags, um Registry-Kapazität freizugeben.
  • Einen Dedicated Server bereitstellst – App-Versionen erstellen und aktualisieren, verfügbare Standorte prüfen, Server in der Nähe deiner Spieler bereitstellen und die Server-IP mit Ports abrufen, um die Clientverbindung zu testen.
  • Eine CI/CD-Pipeline aufbaust – deine Bereitstellungen und den Abbau über ein Build-System testen.
  • Ein Problem mit einem Game-Server behebst – App-Versionen und Bereitstellungsstatus prüfen, Container-Logs und CPU-/Speicherauslastung auslesen oder eine fehlgeschlagene Bereitstellung reproduzieren.
  • Client-Host- und Peer-to-Peer-Spiele betreibst – Relay-Sitzungen erstellen, die NAT-Traversal ermöglichen und Verbindungsblockierungen vermeiden. Lies vor deiner Entscheidung Orchestration Models und Dedicated Servers or Relays?.

[!WARNING] Nicht im Umfang enthalten / vom MCP nicht unterstützt: Erstellen einer ausführbaren Linux-Serverdatei; Erstellen, Starten oder Stoppen eines Matchmakers (lade die generierte Konfiguration im Dashboard hoch); Serverbrowser; Lobbys; verwaltete Cluster; private Flotten oder Abrechnung.

[!NOTE] Wenn du Hilfe brauchst, kontaktiere uns bitte über Discord. Für Support zu Live-Spielen nutze unser Ticketsystem.

⚖️ Dedicated Servers oder Relays?

Edgegap kann dein Multiplayer-Spiel auf zwei Arten hosten. Wir empfehlen Dedicated Server, ebenso wie unser MCP-Server: Dein Agent verwendet standardmäßig einen Dedicated Server und greift nur dann auf ein Relay zurück, wenn du dich für ein Host-Client-Setup entschieden hast.

Dedicated Server (empfohlen)Relay
Was Edgegap ausführtDeinen Headless-Server-Build in der Nähe der SpielerNur eine Weiterleitung des Datenverkehrs, kein Spielcode
Wer das Spiel ausführtDer ServerDas Spiel eines Spielers (des Hosts)
CheatingViel schwieriger, der Server hat die AutoritätDer Host kann alles ändern
FairnessJeder Spieler verbindet sich direkt mit dem ServerDer Host hat keine Latenz, alle anderen durchlaufen zwei Hops
Wenn der Host gehtDas Match läuft weiterDas Match endet, sofern dein Spiel keine Host-Migration unterstützt
Leistung begrenzt durchDie zugewiesene CPU und der Speicher des ServersDen PC und den Upload des Heim-Internetanschlusses des Hosts
Du brauchstEinen Server-Build in einem Container-ImageNetcode, der als Listen-Server (Host-Client) eingerichtet ist

[!NOTE] Noch kein Server-Image? Das ist kein Grund, Relays zu wählen. Dein Agent kann mit edgegap_generate_dockerfile die Dockerfile für deinen Build schreiben. Weitere Informationen zu Relays findest du unter Distributed Relay.

🚀 Installation

Die Installation des MCP-Servers ist ganz einfach:

  1. Installiere den MCP-Server für gängige Agenten oder über eine benutzerdefinierte Integration.
  2. Generiere ein API-Token und stelle es deinem Agenten zur Verwendung mit unserem MCP-Server bereit.

Generiere deine geheimen Tokens für die Edgegap API und zeige sie an unter Dashboard - User Settings / Tokens.

Füge dein geheimes Token jeder API-Anfrage als HTTP-Header hinzu (einschließlich des Worts token):

Authorization: token xxxxxxxx-e458-4592-b607-c2c28afd8b62

[!CAUTION] Integriere Edgegap-API-Endpunkte nicht in einen Game-Client, da dein API-Token uneingeschränkten Zugriff auf dein Konto ermöglicht. Informationen zu sicheren, clientseitigen API-Endpunkten und Funktionen findest du unter Integration.

[!TIP] Falls deine geheimen Tokens kompromittiert oder offengelegt werden, lösche sie und erstelle sie im Dashboard neu.

Das Token gilt für die gesamte Organisation und kann nicht auf eine einzelne Anwendung beschränkt werden. Lies DESIGN.md, bevor du es einem unbeaufsichtigten Agenten gibst.

Gängige Agenten

Installiere den Edgegap MCP-Server in deiner bevorzugten agentischen IDE über die Schaltflächen Cursor oder VS Code oben auf dieser Seite und füge dann dein Token zum Header Authorization hinzu.

Claude Code

claude mcp add --transport http edgegap https://mcp.edgegap.dev/mcp \
  -H "Authorization: token xxxxxxxx-e458-4592-b607-c2c28afd8b62" --scope user

ChatGPT Codex

Codex liest das Token aus einer Umgebungsvariable und sendet es als Authorization: Bearer <token>, was der gehostete Endpunkt akzeptiert. In ~/.codex/config.toml:

[mcp_servers.edgegap]
url = "https://mcp.edgegap.dev/mcp"
bearer_token_env_var = "EDGEGAP_API_TOKEN"

Lege anschließend EDGEGAP_API_TOKEN in der Umgebung, aus der Codex gestartet wird, auf dein Token fest.

Claude Desktop und claude.ai

Benutzerdefinierte Connectors in claude.ai und Claude Desktop können keinen Header Authorization senden. Daher erhält der gehostete Endpunkt dein Token nicht von ihnen: Der Connector wird als verbunden angezeigt, aber jeder Tool-Aufruf schlägt fehl. Verwende stattdessen den lokalen Server.

Öffne in Claude Desktop Settings → Developer → Edit Config und füge den lokalen Server zu claude_desktop_config.json hinzu:

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

Lass das Token weg, dann wirst du bei der ersten Verwendung danach gefragt. claude.ai im Browser kann keinen lokalen Server ausführen und daher Edgegap MCP erst verwenden, wenn der gehostete Endpunkt OAuth unterstützt.

Cursor

Die Schaltfläche Cursor oben auf dieser Seite installiert den Server. Um ihn manuell einzurichten, füge Folgendes zu ~/.cursor/mcp.json hinzu (oder zu .cursor/mcp.json in einem Projekt):

{
  "mcpServers": {
    "edgegap": {
      "url": "https://mcp.edgegap.dev/mcp",
      "headers": { "Authorization": "token xxxxxxxx-e458-4592-b607-c2c28afd8b62" }
    }
  }
}

VS Code (Copilot-Agentmodus)

Die Schaltfläche VS Code oben auf dieser Seite installiert den Server. Um ihn manuell einzurichten, füge Folgendes zu .vscode/mcp.json hinzu (VS Code verwendet servers, nicht mcpServers):

{
  "servers": {
    "edgegap": {
      "type": "http",
      "url": "https://mcp.edgegap.dev/mcp",
      "headers": { "Authorization": "token xxxxxxxx-e458-4592-b607-c2c28afd8b62" }
    }
  }
}

Windsurf

Führe in ~/.codeium/windsurf/mcp_config.json den lokalen Server aus, der mit jedem Client funktioniert, der MCP-Server als Befehle startet:

{
  "mcpServers": {
    "edgegap": {
      "command": "npx",
      "args": ["-y", "@edgegap/mcp"],
      "env": { "EDGEGAP_API_TOKEN": "xxxxxxxx-e458-4592-b607-c2c28afd8b62" }
    }
  }
}

mcp.json

Die meisten agentischen IDEs unterstützen auch die Integration durch Einfügen einer JSON-Konfiguration:

{
    "mcpServers": {
        "Edgegap": {
            "type": "http",
            "url": "https://mcp.edgegap.dev/mcp",
            "headers": {
                "Authorization": "token xxxxxxxx-e458-4592-b607-c2c28afd8b62"
            }
        }
    }
}

Benutzerdefinierte Integration

Installiere den gehosteten Edgegap MCP-Server in der virtualisierten Umgebung deines Agenten (niemals in deinem Projekt!):

Node mit dem npx-Paket mcp-remote

{
  "command": "npx",
  "args": ["-y", "mcp-remote", "https://mcp.edgegap.dev/mcp", "--transport", "http-only"]
}

Python mit dem uvx-Paket mcp-proxy

{
  "command": "uvx",
  "args": ["mcp-proxy", "--transport", "streamablehttp", "https://mcp.edgegap.dev/mcp"]
}

Installation mit einem Klick (Claude Desktop)

Lade edgegap-mcp.mcpb herunter und öffne die Datei: Claude Desktop installiert den lokalen Server als Erweiterung und fragt nach deinem API-Token, das sicher im Betriebssystem gespeichert wird. In den Einstellungen der Erweiterung kannst du außerdem den Nur-Lese-Modus, die Zulassungsliste für Anwendungen, die maximale Laufzeitbegrenzung und die Bereitstellungsobergrenze festlegen (die unten aufgeführten Variablen). Jede Version enthält das aus dem Code dieser Version erstellte Bundle. Jede andere App, die MCPB-Bundles installiert, funktioniert genauso.

Lokaler Server

Um dein API-Token auf deinem eigenen Rechner zu behalten, führe stattdessen den Server lokal aus. Lass das Token weg, dann fragt dein Agent bei der ersten Verwendung danach und behält es nur für diese Sitzung im Arbeitsspeicher:

{
  "mcpServers": {
    "Edgegap": {
      "command": "npx",
      "args": ["-y", "@edgegap/mcp"],
      "env": { "EDGEGAP_API_TOKEN": "xxxxxxxx-e458-4592-b607-c2c28afd8b62" }
    }
  }
}

Erfordert Node 18+. Lege in der Produktion eine Version fest (@edgegap/mcp@0.15.4), statt die neueste Version zu verwenden. In der offiziellen MCP-Registry registriert als dev.edgegap/mcp.

Der lokale Server kann außerdem einschränken, was ein Agent tun darf. Diese Variablen haben keine Auswirkungen auf den gehosteten Endpunkt unter mcp.edgegap.dev:

VariableStandardwertZweck
EDGEGAP_API_TOKEN(wird abgefragt)API-Token. Optional: Lass es weg, dann wirst du bei der ersten Verwendung danach gefragt. Das Präfix token wird automatisch hinzugefügt. Niemals als Befehlszeilenargument übergeben.
EDGEGAP_READ_ONLY0Auf 1 setzen: Die Tools, die Änderungen vornehmen (in Tools mit ● markiert), werden nicht registriert, sodass der Agent nicht dazu gebracht werden kann, sie aufzurufen.
EDGEGAP_APP_ALLOWLIST(leer)Durch Kommas getrennte Anwendungsnamen. Beschränkt, welche Anwendungen der Agent erstellen und für welche er Bereitstellungen vornehmen kann. Lesezugriffe (Auflisten von Apps und Versionen) sind nicht beschränkt; ebenso wenig der Zugriff auf bereits laufende Bereitstellungen. Siehe DESIGN.md.
EDGEGAP_MAX_DURATION_MINUTES60Obergrenze für max_duration, die der Agent für eine Version festlegen darf. edgegap_deploy lehnt außerdem eine Version ab, deren max_duration darüber liegt oder unbegrenzt ist, sofern der Agent nicht nach deiner Zustimmung allow_long_running: true übergibt.
EDGEGAP_MAX_AGENT_DEPLOYMENTS5edgegap_deploy lehnt Bereitstellungen ab, solange diese Anzahl von Bereitstellungen mit dem Tag edgegap-mcp läuft. 0 deaktiviert die Obergrenze.
EDGEGAP_MAX_DEPLOYS_PER_RUN20Anzahl der Serverprozesse, die Bereitstellungen starten dürfen, einschließlich fehlgeschlagener. Starte den Server neu, um den Zähler zurückzusetzen. 0 deaktiviert die Begrenzung.
EDGEGAP_STOP_OWN_ONLY0Auf 1 setzen: edgegap_stop_deployment stoppt dann nur Bereitstellungen mit dem Tag edgegap-mcp, sodass ein Agent keine Server stoppen kann, die er nicht gestartet hat.
EDGEGAP_ENABLE_SKILLS_UPDATE0Auf 1 setzen, damit edgegap_update_skills npx skills@1.7.4 update oder claude plugin update mit apply: true ausführen kann. Andernfalls werden dir diese Befehle zur Ausführung angezeigt. Manuell kopierte Skills werden in jedem Fall durch die Version aus dem Bundle ersetzt. Die Updater erhalten nur Pfad-, Home-, Temp-, Locale-, Proxy- und npm-Einstellungen, niemals EDGEGAP_*-Variablen oder Variablen mit Namen wie Token, Secret, Password oder Key.
EDGEGAP_TIMEOUT_MS30000HTTP-Timeout pro Anfrage.
EDGEGAP_SKILLS_CHECKonAuf off setzen, damit die Skill-Tools nicht die neueste Skill-Version von GitHub abrufen.

Windows

Der lokale Server läuft unter Windows mit Node.js 18 oder neuer. CI führt den Build und die stdio-Tests unter Windows aus.

  • Viele Windows-MCP-Clients können npx nicht direkt starten, da es sich um ein .cmd-Skript handelt. Starte es über cmd /c: "command": "cmd", "args": ["/c", "npx", "-y", "@edgegap/mcp"]. In Claude Code: claude mcp add Edgegap --env EDGEGAP_API_TOKEN=<token> -- cmd /c npx -y @edgegap/mcp.
  • Gib in PowerShell npx.cmd statt npx ein, um den Server manuell zu starten: Eine neue Windows-Installation blockiert das npx-PowerShell-Skript („Die Ausführung von Skripts ist auf diesem System deaktiviert“).
  • Beim ersten Start wird das Paket heruntergeladen, was eine Weile dauern kann. Spätere Starts sind schnell.
  • edgegap_update_skills findet Skills, die in %USERPROFILE% installiert sind, genauso wie unter macOS und Linux.

📚 Skills

Der Server enthält die Edgegap-Agent-Skills: getestete Schritt-für-Schritt-Abläufe, um ein Multiplayer-Spiel online zu bringen, mit Vorlagen (Dockerfiles, Matchmaker-Konfigurationen, Unity-C#- und Unreal-C++-Einfügungen) und bekannten Fallstricken. Jeder mit Edgegap MCP verbundene Agent erhält sie ohne separate Installation und ohne Token und wird angewiesen, vor der Arbeit an einem Spielprojekt den passenden Skill zu laden.

SkillFür
edgegapHier starten bei Fragen zu einer Engine außer Unity oder Unreal Engine oder zu Plattformen. Verweist auf die übrigen Skills.
edgegap-unityUnity von Anfang bis Ende: Server-Build, Matchmaker, Client, End-to-End-Test.
edgegap-ngoUnity mit Netcode for GameObjects von Anfang bis Ende: Serverstart und automatisches Beenden, Find-Match-Panel, Boss-Room-Adapter, Matchmaker.
edgegap-fishnetUnity mit FishNet von Anfang bis Ende: Headless-Server, Bayou/WebGL, Matchmaker, End-to-End-Test.
edgegap-purrnetUnity mit PurrNet von Anfang bis Ende: dedizierter Server, Verbindungs-Panel, Matchmaker, End-to-End-Test.
edgegap-fusionUnity mit Photon Fusion 2 von Anfang bis Ende: IL2CPP-Linux-Server, Server an 0.0.0.0 gebunden, Edgegap-Bereitstellung, BR200-Kit.
edgegap-fusion-simplefpsPhotons Simple-FPS-Beispiel auf dedizierten Edgegap-Servern.
edgegap-godotGodot 4 mit einem dedizierten Godot-Server: Headless-Export, ENet oder WebSocket, Matchmaker.
edgegap-colyseusColyseus-Server auf Edgegap, direkt oder über den Matchmaker.
edgegap-nakamaNakama als Backend, das Edgegap-Server für seine Matches startet.
edgegap-playfabPlayFab Matchmaking mit Edgegap-Servern.
edgegap-threejsThree.js und andere Browserspiele mit eigenem Node.js-Server.
edgegap-matchmakingMatchmaking-Design für jede Engine: Zuständigkeit, Profile, Gruppen, Regionsauswahl, Backfill, Matchmaker von Drittanbietern.
edgegap-manusMit Manus erstellte Browserspiele: Backend-Matchmaking, Steam-Anmeldung, signierte Beitrittstokens, Node-WebSocket-Server.
edgegap-unrealUnreal Engine von Anfang bis Ende: Engine aus dem Quellcode, Linux-Server, Matchmaker, End-to-End-Test.
edgegap-eos-voiceVoice-Chat für ein Unreal-Spiel auf Edgegap mit EOS Voice: serverseitige Raum-Tokens, Match- und Teamräume.
edgegap-server-designDesign autoritativer Server und Bereitstellungslebenszyklus.
edgegap-containerizeContainer-Vertrag, Dockerfiles, Registries, App-Versionen.
edgegap-local-testingParitätstests auf deinem Rechner, danach eine Smoke-Test-Bereitstellung.
edgegap-troubleshootPull-Fehler, Absturzschleifen, Speichermangel, Clients, die keine Verbindung herstellen können.
edgegap-deployments-apiBackend-Code, der Server bereitstellt: Webhooks, Bereinigung, Nakama, PlayFab, UGS, EOS.
edgegap-launchCheckliste für den Start, Rollouts, Caching, Kostenkontrolle.

Sie werden auf drei Arten bereitgestellt, damit jeder MCP-Client darauf zugreifen kann:

  • Tools: edgegap_list_skills und edgegap_get_skill, das den SKILL.md eines Skills oder eines seiner Referenzdokumente oder Vorlagen mit file lädt.
  • Prompts: deploy-game-server („Meinen Gameserver auf Edgegap bereitstellen“) ist der richtige Einstieg: Der Prompt ermittelt Engine und Netcode, lädt den passenden Skill und führt durch den empfohlenen Ablauf, einschließlich Bereinigung. Außerdem gibt es einen Prompt pro Skill, benannt nach dem jeweiligen Skill. In Claude Code werden sie als Slash-Befehle angezeigt, z. B. /mcp__edgegap__deploy-game-server.
  • Ressourcen: Der SKILL.md jedes Skills ist unter edgegap-skill://<skill>/SKILL.md aufgeführt; alle anderen Dateien werden über die Vorlage edgegap-skill://{skill}/{+path} gelesen, z. B. edgegap-skill://edgegap-unity/references/deploy.md.

Jede Version enthält die Skills aus dem in scripts/skills-pin.txt festgelegten Commit; edgegap_context meldet, welches Paket geladen ist. edgegap_list_skills ruft außerdem die neueste Paketversion von GitHub ab (eine Versionsnummer, eine Stunde lang zwischengespeichert; EDGEGAP_SKILLS_CHECK=off deaktiviert dies) und meldet, wenn eine neuere Version verfügbar ist. edgegap_get_skill fügt denselben Hinweis unter der Überschrift eines Skills hinzu.

Installierte Skills aktuell halten. Wenn du die Skills auch in deinem Agent installiert hast (das Claude-Code-Plugin edgegap@edgegap, npx skills add edgegap/llm-agent-skills oder in ~/.claude/skills kopierte Ordner), vergleicht edgegap_update_skills jeden Skill mit der neuesten Version auf GitHub. Auf dem lokalen Server findet es diese Installationen selbst; mit apply: true führt es npx skills update (nur Edgegap-Skills) oder claude plugin update aus und ersetzt manuell kopierte Skills durch die in dieser Version enthaltenen Dateien. Dabei bleiben von dir hinzugefügte Dateien erhalten, Symlinks und Git-Checkouts werden nicht verändert. Skill-Texte werden niemals heruntergeladen. Der gehostete Server kann nicht auf deine Festplatte zugreifen: Übergib die geladenen Versionen in installed_versions, und er meldet, welche veraltet sind und wie du sie aktualisieren kannst.

🧰 Tools

Dein Agent wählt anhand deiner Anfrage das passende Tool aus. Du musst die Tools nicht benennen, aber es ist hilfreich zu wissen, welche verfügbar sind. Mit ● markierte Tools ändern etwas in deinem Konto, erfordern dry_run und sind ausgeblendet, wenn EDGEGAP_READ_ONLY=1.

ToolFunktion
edgegap_contextZeigt an, mit welcher API dieser Server kommuniziert, welche Version er hat, ob er lokal oder gehostet ist und welche Schutzmaßnahmen gelten. Kein API-Aufruf; das Token wird niemals angezeigt.

Vor deiner ersten Bereitstellung

ToolFunktion
edgegap_generate_dockerfileErstellt ein Dockerfile für deinen Server-Build: Build-Ordner, Server-Binärdatei oder Startskript, Ports und Startargumente, mit den passenden Headless-Flags (Unity -batchmode -nographics, Godot --headless), einem Nicht-Root-Benutzer für Unreal und passenden Ports. Listet alle Annahmen auf, damit dein Agent sie bestätigen kann. Funktioniert mit Unity, Unreal Engine, Godot und jeder anderen Engine.
edgegap_validate_server_configPrüft ein vorhandenes Dockerfile, Ports, Ressourcen und Image-Tag vor dem Build. Erkennt ARM- oder Windows-Images (Edgegap führt linux/amd64 aus), als Root laufende Unreal-Server, fehlendes Unity--batchmode -nographics, an localhost gebundene Server, Ports, die nicht zum Netcode-Transport passen, und das latest-Tag.
edgegap_get_registry_credentials ●Gibt Zugangsdaten für deine private Edgegap-Container-Registry sowie die genauen docker login-, Build- und Push-Befehle zurück. Edgegap stellt diese nur über das Quick-Start-Token der Unity-/Unreal-Plugins bereit. Bei einem regulären API-Token weist es deinen Agent an, dich stattdessen nach den Anmeldedaten von der Dashboard-Seite Container Registry zu fragen.
edgegap_list_registry_tagsBestätigt, dass dein Image-Push angekommen ist, bevor du es registrierst. Benötigt nur den Image-Namen, z. B. my-game-server: Das Projekt wird anhand deines Tokens ermittelt.
edgegap_delete_registry_tag ●Löscht ein einzelnes Tag und das Image, auf das es verweist, um alte Builds zu bereinigen. Pro Aufruf genau ein Tag; latest, Platzhalter und Listen werden abgelehnt.

Dedizierte Server (empfohlen)

ToolFunktion
edgegap_list_appsListet deine Anwendungen auf.
edgegap_create_app ●Erstellt eine Anwendung.
edgegap_update_app ●Aktiviert oder deaktiviert eine Anwendung für neue Bereitstellungen.
edgegap_list_app_versionsListet Versionen mit Image, Ressourcen, Ports (mit TLS Upgrade) und Angabe, ob eine Registry-Anmeldung eingerichtet ist.
edgegap_get_app_versionLiest eine Version vollständig aus: Image, Ressourcen, Ports, maximale Laufzeit, Image-Caching, Neustartrichtlinie und Namen der Umgebungsvariablen (niemals deren Werte).
edgegap_create_app_version ●Registriert ein Container-Image als bereitstellbare Version. Unterstützt TLS Upgrade für WS- und HTTP-Ports, das Browser-Clients (WebGL) für wss:// benötigen.
edgegap_update_app_version ●Ändert eine vorhandene Version: neues Image-Tag, Aktivierung/Deaktivierung, CPU und Arbeitsspeicher (beides zusammen), maximale Laufzeit, Registry-Anmeldung, Image-Caching (force_cache), Kulanzzeitraum beim Herunterfahren, Ports, Umgebungsvariablen und den Endpoint Storage, in dem die Logs gespeichert werden. Nur die übergebenen Felder werden geändert, aber ports und env ersetzen die gesamte Liste. Laufende Bereitstellungen behalten die alten Einstellungen.
edgegap_delete_app_version ●Löscht eine einzelne Version, um Testversionen zu bereinigen. Wird abgelehnt, solange eine Bereitstellung dieser Version läuft. Das Registry-Image bleibt erhalten.
edgegap_delete_app ●Löscht eine Anwendung und ihre Versionen. Wird abgelehnt, solange eine ihrer Bereitstellungen läuft oder sie mehr Versionen als max_versions hat (Standardwert 0).
edgegap_list_locationsListet die Städte auf, in denen Edgegap bereitstellt, oder bei Angabe einer Version nur die Städte, in denen gerade Kapazität verfügbar ist.
edgegap_list_ping_beaconsListet die Ping-Beacons auf, anhand derer Spiel-Clients ihre Latenz zu den einzelnen Regionen messen.
edgegap_deploy ●Stellt einen autoritativen dedizierten Server in der Nähe deiner Spieler bereit. Wird immer mit edgegap-mcp markiert und meldet, wann Edgegap ihn stoppt. Optional: CPU und Arbeitsspeicher nur für diese Bereitstellung, Webhooks, die Edgegap aufruft, wenn der Server bereit ist, fehlschlägt oder beendet wird, require_cached_locations für schnellere Starts und private_host_ids, um ihn zuerst auf deiner privaten Flotte bereitzustellen.
edgegap_list_fleet_hostsListet die Hosts einer deiner privaten Flotten mit Status und Standort auf, um Bereitstellungen auf ihnen vorzunehmen.
edgegap_wait_for_deploymentWartet, bis der Server bereit ist, und gibt die Verbindungsadresse zurück.
edgegap_get_deploymentLiest den Status einer Bereitstellung aus.
edgegap_list_deploymentsListet laufende Bereitstellungen, gefiltert nach Anwendung, Version, Status, Tags und mehr und nach Alter sortiert. Findet Server, die noch laufen; only_agent_deployments: true listet alle Bereitstellungen auf, die ein Agent gestartet hat. Siehe Bereitstellungen filtern.
edgegap_get_deployment_logsLiest Container-Logs und Absturzdaten aus, solange die Bereitstellung läuft. Nach dem Stoppen bleiben Logs nur erhalten, wenn Endpoint Storage eingerichtet wurde.
edgegap_get_deployment_metricsFasst CPU-Auslastung, CPU-Drosselung, Arbeitsspeicher- und Netzwerknutzung zusammen (aktuell, durchschnittlich, Spitzenwert), um eine Version zu dimensionieren oder einen Absturz zu untersuchen.
edgegap_stop_deployment ●Stoppt eine einzelne Bereitstellung anhand ihrer exakten Request-ID. Kein Massenstopp.
edgegap_tag_deployment ●Fügt einer laufenden Bereitstellung Tags hinzu oder entfernt sie, z. B. um ein Match zu kennzeichnen. Das Tag edgegap-mcp bleibt erhalten.
edgegap_report_deployment ●Meldet eine Bereitstellung mit Angabe eines Grundes an Edgegap, etwa für das Moderations-Backend eines Studios. Die Bereitstellung läuft weiter.

Logs und Dateien (Endpoint Storage)

Container-Logs verschwinden mit der Bereitstellung, sofern sie nicht in deinen eigenen S3-kompatiblen Bucket exportiert werden.

ToolFunktion
edgegap_list_endpoint_storageListet deine Endpoint-Storage-Buckets und deren Pull-Profile auf. Geheime Schlüssel werden niemals zurückgegeben.
edgegap_create_endpoint_storage ●Registriert einen Bucket (AWS S3, Cloudflare R2, DigitalOcean Spaces …) für den Log-Export. Setze endpoint_storage für eine Version, um den Export zu aktivieren. Der geheime Schlüssel wird niemals zurückgegeben.
edgegap_create_pull_profile ●Kopiert beim Start eine Datei oder einen Ordner aus dem Bucket in den Container (Karten, Konfigurationen, große Assets).
edgegap_link_pull_profile ●Verknüpft ein Pull-Profil mit einer Version oder hebt die Verknüpfung auf.
edgegap_delete_pull_profile ●Löscht ein einzelnes Pull-Profil. Der Bucket und seine Dateien bleiben erhalten.
edgegap_delete_endpoint_storage ●Löscht einen einzelnen Endpoint Storage. Wird abgelehnt, solange Pull-Profile vorhanden sind, es sei denn, max_pull_profiles erlaubt deren Löschung. Der Bucket und seine Logs bleiben erhalten.

Relays (nur Host-Client-Spiele)

Ein Relay ist kein Gameserver: Es leitet Datenverkehr weiter, während das Spiel eines Spielers das Match hostet. Siehe Dedizierte Server oder Relays?.

ToolFunktion
edgegap_create_relay_session ●Erstellt eine Relay-Sitzung für deine Spieler und gibt die Relay-Adresse sowie das Autorisierungstoken jedes Spielers zurück.
edgegap_get_relay_sessionLiest eine Relay-Sitzung aus.
edgegap_list_relay_sessionsListet offene Relay-Sitzungen auf, um noch laufende Sitzungen zu finden. Keine Autorisierungstokens.
edgegap_authorize_relay_user ●Fügt einen Spieler hinzu, der später beitritt.
edgegap_revoke_relay_user ●Entfernt einen Spieler aus einer Relay-Sitzung.
edgegap_delete_relay_session ●Schließt eine Relay-Sitzung.

[!WARNING] Für Bereitstellungen und Relay-Sitzungen fallen Gebühren an, solange sie laufen. Bitte deinen Agent, Testbereitstellungen zu stoppen und Test-Relay-Sitzungen zu löschen, wenn er fertig ist.

Beispiel-Prompts

  • „Erstelle ein Dockerfile für meinen Unity-Server-Build, pushe es und stelle dann einen Server in meiner Nähe bereit.“
  • „Prüfe mein Dockerfile für Edgegap und behebe alle Probleme.“
  • „Meine Bereitstellung ist fehlgeschlagen. Lies die Logs und sag mir, warum.“
  • „Wie viel CPU und Arbeitsspeicher hat mein letztes Match verbraucht? Dimensioniere meine Version entsprechend.“
  • „Mein Spiel verwendet Host-Client-Netzwerk. Richte ein Edgegap-Relay für zwei Spieler ein.“

🛡️ Schutzmaßnahmen

Dein API-Token kann alles in deiner Organisation tun. Deshalb setzt der Server eigene Grenzen dafür, was ein Agent damit tun kann. Sie gelten sowohl für den lokalen Server als auch für den gehosteten Endpunkt.

SchutzmaßnahmeWirkung
ProbelaufJedes Tool, das etwas ändert, akzeptiert dry_run: true: Es gibt die genaue Methode, den Host, den Pfad und den Body zurück, wobei der Token, Registry-Tokens und Env-Werte maskiert werden, und sendet nichts. Lokale Prüfungen werden weiterhin ausgeführt.
Kein Token in ContainernEin Deploy oder eine Version wird abgelehnt, ohne etwas zu senden, wenn dein API-Token im Namen oder Wert einer Env-Variablen, in einem Tag oder in einer Webhook-URL vorkommt. Env-Werte werden niemals zurückgegeben.
Agent-TagJedes Deployment erhält das Tag edgegap-mcp, auch wenn der Agent eigene Tags übergibt. edgegap_list_deployments mit only_agent_deployments: true findet sie alle.
Automatischer StoppBei jedem Deploy wird angegeben, wann Edgegap es stoppt: anhand von max_duration der Version, begrenzt auf EDGEGAP_MAX_DURATION_MINUTES (Standardwert 60) für vom Agent erstellte Versionen. Edgegap hat kein Zeitlimit pro Deployment. Daher wird das Deploy einer Version abgelehnt, deren max_duration über diesem Grenzwert liegt oder unbegrenzt ist (bei einer anderswo erstellten Version beträgt der Standardwert 1440 Minuten), es sei denn, der Agent übergibt allow_long_running: true. Der Agent wird angewiesen, dies nur zu tun, nachdem er dich gefragt hat.
Deploys pro AusführungDer lokale Server sendet pro Prozess höchstens EDGEGAP_MAX_DEPLOYS_PER_RUN Deploys (Standardwert 20), einschließlich fehlgeschlagener, da ein abgelehntes Deploy trotzdem ein Deployment erstellen kann. Wenn die API ein Deploy ablehnt, aber trotzdem eines erstellt, wird es in der Fehlermeldung benannt, damit der Agent es stoppen kann.
Keine veränderlichen Image-Tagsedgegap_create_app_version lehnt latest (unabhängig von Groß- und Kleinschreibung), ein leeres Tag oder ein von Docker abgelehntes Tag ab, ohne etwas zu senden: Edgegap speichert Images anhand des Tags zwischen, sodass ein erneut gepushtes Tag einen veralteten Build deployen kann. Auch das Deploy einer vorhandenen Version auf latest wird abgelehnt, ebenso die Anforderung von Registry-Push-Befehlen für latest.
Prüfung der Image-ReferenzEin docker_image, das zugleich einen Registry-Host, ein Tag oder einen Digest enthält (z. B. registry.edgegap.com/proj/server:v2), wird abgelehnt. Die Fehlermeldung nennt die korrekte Aufteilung in docker_repository / docker_image / docker_tag. edgegap_validate_server_config kennzeichnet dieselben Fälle.
Deployment-Obergrenzeedgegap_deploy wird abgelehnt, wenn bereits EDGEGAP_MAX_AGENT_DEPLOYMENTS (Standardwert 5) Deployments mit dem Tag edgegap-mcp laufen, damit ein Agent in einer Schleife nicht immer mehr kostenpflichtige Server startet. Die Ablehnung erklärt, wie sie aufgelistet und gestoppt werden können.
Verborgene geheime Env-VariablenEnv-Variablen, deren Namen auf Geheimnisse hindeuten (TOKEN, SECRET, PASSWORD, API_KEY, CREDENTIAL, AUTH …), werden mit is_hidden gesendet, damit das Dashboard ihre Werte nicht im Klartext anzeigt.
Striktes Stoppenedgegap_stop_deployment stoppt ein Deployment anhand seiner exakten Request-ID. Leere IDs, Platzhalter und Listen werden abgelehnt. Es gibt kein Massenstoppen. Mit EDGEGAP_STOP_OWN_ONLY=1 werden nur Deployments mit dem Tag edgegap-mcp gestoppt.
Vorsichtiges Löschenedgegap_delete_app_version und edgegap_delete_app akzeptieren jeweils einen exakten Namen und werden abgelehnt, solange ein Deployment davon läuft. Eine Anwendung mit Versionen wird nur gelöscht, wenn max_versions diese abdeckt.
Webhook- und Bucket-URLsDeploy-Webhooks und Endpoint-Storage-Endpunkte müssen https-URLs ohne Zugangsdaten sein und werden abgelehnt, wenn sie dein API-Token enthalten.
Host in jedem ErgebnisJedes Ergebnis beginnt mit dem API-Host, z. B. [api.edgegap.com] oder [custom · host], wenn EDGEGAP_BASE_URL auf einen anderen Host verweist. Eine Basis-URL mit api.edgegap.com muss exakt https://api.edgegap.com lauten, andernfalls verweigert der Server den Start.
SchwärzungDer Token wird aus jeder Fehlermeldung entfernt, bevor sie den Agent erreicht.

Der Server weist sich bei jedem API-Aufruf mit User-Agent: edgegap-mcp/<version> (<MCP client name>) aus.

Nutzungsanalysen. Der lokale Server und das selbst gehostete Docker-Image senden nichts außer den API-Aufrufen selbst. Der gehostete Endpunkt unter mcp.edgegap.dev verwendet PostHog MCP Analytics (@posthog/mcp) und sendet Nutzungsereignisse an das PostHog von Edgegap: welcher MCP-Client verbunden war, welches Tool, welcher Prompt oder welche Skill-Ressource verwendet wurde, die Namen (nicht die Werte) der übergebenen Argumente, ob ein Aufruf erfolgreich war, sein Fehlercode, die Phase, in der er fehlgeschlagen ist, und den Status der Edgegap-API, wie lange er gedauert hat, ob es sich um einen Probelauf handelte, einige Angaben zum Aufruf (wie das Warten auf ein Deployment endete, ein Validierungsergebnis, welcher Skill geladen wurde), welcher Schritt des Golden Path erreicht wurde, außerdem die Serverversion und den Ländercode von Cloudflare. Bei einem fehlgeschlagenen Aufruf werden außerdem die Fehlermeldung nach Entfernung deines Tokens, die Werte der von dir übergebenen Argumente sowie alles, was wie Zugangsdaten, eine IP-Adresse oder eine ID aussieht, auf 300 Zeichen gekürzt, gesendet. Deployment-IDs werden nur als schlüsselgebundener Hash gesendet. Es werden ausschließlich ausdrücklich benannte Metadateneigenschaften durchgelassen. Dein Token, die Werte von Tool-Argumenten (IP-Adressen, Env-Variablen, Anwendungs- oder Image-Namen) und Ergebnisse werden niemals gesendet; GeoIP ist deaktiviert. Den Tools werden keine Parameter hinzugefügt. Ereignisse eines Tokens werden unter einem schlüsselgebundenen, nicht umkehrbaren Hash dieses Tokens gruppiert. Die vollständige Liste steht in docs/analytics.md. Um dich abzumelden, sende den Header X-Edgegap-Telemetry: off (oder DNT: 1) oder verwende den lokalen Server.

🚨 Fehlerbehebung

Sieh dir häufige Fehlercodes an und erfahre, wie du deine Integration freischaltest.

401 Unauthorized

Deine MCP-Integration fügt den Authorization-Header höchstwahrscheinlich nicht korrekt hinzu.

Tool Call Failed

Deinem Client fehlt ein Edgegap-Token. Das tritt bei benutzerdefinierten Connectors von claude.ai und Claude Desktop auf, die keinen Header Authorization senden können. Die Alternative findest du unter Claude Desktop und claude.ai.

[!WARNING] Dies ist eine bekannte Einschränkung, die in naher Zukunft behoben wird. Bleib auf dem Laufenden!

403 Forbidden

Deine MCP-Integration verwendet wahrscheinlich den Vorlagen-Token oder einen gelöschten Token. Bitte überprüfe, ob der von deiner Integration verwendete Token exakt mit dem im Dashboard angezeigten Token übereinstimmt.

424 Image Could Not Be Pulled

Edgegap konnte dein Container-Image nicht abrufen. Überprüfe das Repository, den Image-Namen und das Tag und stelle sicher, dass das Tag gepusht wurde (bitte deinen Agenten, die Registry-Tags aufzulisten). Bei Images in der Edgegap-Registry muss der Image-Name dein Projekt enthalten, z. B. my-project/my-game-server.

Registry Credentials Unavailable

Edgegap stellt Registry-Zugangsdaten nur für den Quick-Start-Token bereit, den die Unity- und Unreal-Plugins verwenden. Mit einem regulären API-Token kann dein Agent sie daher nicht abrufen und fragt dich stattdessen danach. Kopiere Project, Username und Token aus dem Dashboard unter Container Registry oder pushe zu einer anderen Registry, aus der Edgegap Images abrufen kann (Docker Hub, GitHub, AWS ECR, GCP, GitLab). Siehe Externe Registries.

"status": "empty" oder "not_configured"

Kein Fehler. Eine leere Liste (noch keine Anwendungen, keine laufenden Deployments, noch nie ein Image gepusht) oder eine Funktion, die diese Organisation nicht eingerichtet hat (Relays, eine Registry, auf die dieser Token nicht zugreifen kann), wird als normales Ergebnis mit status und einem next_step zurückgegeben. Dein Agent sollte den nächsten Schritt ausführen, statt es erneut zu versuchen.

Noch kein Token

Die Skills (edgegap_list_skills, edgegap_get_skill), edgegap_context, edgegap_generate_dockerfile und edgegap_validate_server_config funktionieren ohne Token, sodass ein Agent zuerst den Server-Build vorbereiten kann. Erstelle ein Konto unter app.edgegap.com und einen Token unter User Settings → Tokens. edgegap_context mit check_token: true zeigt an, ob ein Token für die Sitzung vorhanden und gültig ist, und zeigt seine letzten vier Zeichen an, damit du ihn auf dieser Seite findest.

Läuft lokal, aber nicht auf Edgegap

Bitte deinen Agenten, deine Serverkonfiguration zu validieren oder eine neue Dockerfile zu erstellen. Die häufigsten Ursachen sind ein auf Apple Silicon erstelltes Image ohne docker build --platform linux/amd64, ein Server, der an einem anderen Port lauscht als dem, den die Version freigibt, oder ein als TCP konfigurierter UDP-Transport.

Andere API-Fehler

Mögliche Fehlerantworten für einzelne API-Endpunkte findest du in unserer API-Referenz.

[!NOTE] Wenn du Hilfe brauchst, kontaktiere uns bitte über Discord. Support für Live-Spiele erhältst du über unser Ticketsystem.

🛠️ Selbst hosten

Der gehostete Endpunkt unter mcp.edgegap.dev läuft als Cloudflare Worker (siehe worker/INSTALL.md). Um denselben zustandslosen HTTP-Server auf deiner eigenen Infrastruktur auszuführen, verwende das Docker-Image:

docker build -t edgegap-mcp .
docker run --rm -p 8080:8080 edgegap-mcp

Clients verbinden sich mit http://<host>:8080/mcp und übergeben ihren eigenen Header Authorization, genauso wie bei der Verbindung mit dem gehosteten Endpunkt. Das Image enthält keine Zugangsdaten, und /health antwortet auch ohne Token. PORT, HOST, EDGEGAP_READ_ONLY, EDGEGAP_APP_ALLOWLIST, EDGEGAP_MAX_DURATION_MINUTES, EDGEGAP_MAX_AGENT_DEPLOYMENTS und EDGEGAP_STOP_OWN_ONLY gelten; übergib jeden davon mit -e NAME=value. Übergib niemals einen API-Token an den Container: Jeder Client sendet seinen eigenen bei jeder Anfrage. Lies worker/DECISION.md, bevor du ihn außerhalb eines privaten Netzwerks verfügbar machst.

Vorgefertigte Images für linux/amd64 und linux/arm64 werden unter ghcr.io/edgegap/llm-mcp-server (und für bestehende Setups unter dem alten Namen ghcr.io/edgegap/edgegap-mcp) veröffentlicht. Bei jedem Push zu main erhalten sie die Tags main und sha-<commit>, außerdem das Versions-Tag bei v*-Tags:

docker run --rm -p 8080:8080 ghcr.io/edgegap/llm-mcp-server:main

Entwicklung

Unter CONTRIBUTING.md findest du die Prüfungen, die eine Änderung bestehen muss, unter CHANGELOG.md die Änderungen jeder Version und unter SECURITY.md Informationen zum Melden einer Sicherheitslücke.

npm ci
npm run build
npm test                  # mock-API tests; none reach Edgegap
npm run typecheck:worker

So aktualisierst du die gebündelten Skills auf den neuesten Commit von llm-agent-skills und veröffentlichst anschließend wie gewohnt:

npm run sync-skills -- --ref main
npm run check-skills      # exit 1 if src/skills.generated.ts differs from the pin
TestPrüft
test/unit.test.mjsUnit-Tests für Tag-, Image-, Geheimnisnamen-, URL- und Schwärzungsregeln
test/package.mjsPaketierung: ein bin, Laufzeitabhängigkeiten, Versionen in step
test/skills.mjsSkills über MCP: Tools, Prompts, Ressourcen, Pfadsicherheit, Bundle entspricht dem Pin
test/smoke.mjsHandshake, Tool-Registrierung, schreibgeschützter Modus
test/guards.mjsLokale Validierung und Durchsetzung der Allowlist
test/elicit.mjsToken-Abfrage: akzeptieren, Bestätigung ablehnen, ablehnen, keine Unterstützung
test/newtools.mjsValidator-, Dockerfile-Generator-, Registry-, Deployment-, Relay- und Matchmaker-Tools gegen eine lokale Mock-API
test/http.mjsSelbst gehosteter HTTP-Server: Discovery ohne Token, Tokens pro Anfrage, fremde Zugangsdaten
test/spec.mjsJeder vom Server gesendete Endpunkt und jedes Request-Body-Feld ist in spec/ enthalten (Schreib-Tools werden per Probelauf geprüft)
test/snapshot.mjsTool-Namen, Beschreibungen, Schemas und Anweisungen stimmen mit test/tools.snapshot.json überein; npm run snapshot:update nach einer absichtlichen Änderung
test/live-check.mjsNicht in npm test. Wird mit einem Token einer Nicht-Produktionsorganisation gegen die echte API ausgeführt

Designentscheidungen, das Sicherheitsmodell und bewusst nicht berücksichtigte Bereiche findest du in DESIGN.md.