Edgegap MCP Server
OfficialThis MCP server lets an AI agent operate Edgegap game-server infrastructure end to end, from container image prep through deployment, troubleshooting, and cleanup.
Inspect server configuration, token status, and active guardrails.
Generate and validate Dockerfiles, ports, and resources for Unity, Unreal, Godot, or other engines.
Manage Edgegap registry credentials and image tags.
Create, inspect, update, and delete applications and app versions, including images, CPU/memory, ports, TLS, env vars, caching, restart policy, max duration, and Endpoint Storage.
Deploy authoritative dedicated servers near players, wait for readiness, get connection details, list/filter deployments, stop them, tag/report them, and read logs or CPU/memory/network metrics.
Configure Endpoint Storage buckets and pull profiles for log export and boot-time asset/config injection.
Create and manage relay sessions for host-client or peer-to-peer games.
Build matchmaker configuration JSON for dashboard upload.
List deployment locations, ping beacons, and private fleet hosts.
List, load, and update bundled Edgegap agent skills.
Rely on safety guardrails such as dry runs, read-only mode, app allowlists, deployment caps, no
latestimage tags, secret redaction, and auto-stop limits.
Generates and validates Dockerfiles for headless game server builds against Edgegap's requirements, checks images are linux/amd64, and provides registry credentials with the exact docker login, build and push commands to publish the image for deployment.
Supports Unity dedicated server builds: generates a Dockerfile with the correct Unity headless flags (-batchmode -nographics), default build paths and server binary names, and validates existing configs for missing batchmode/nographics flags and port mismatches.
Supports Unreal Engine dedicated server builds: generates a Dockerfile that runs the packaged LinuxServer folder, applies the non-root user Unreal requires, and validates existing configs for Unreal servers running as root.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Edgegap MCP Server Deploy my game server container on Edgegap near Frankfurt and give me the connection address."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Edgegap MCP Server
Connect AI coding agents to Edgegap through our MCP server. Your agent can take a headless server build all the way to players connecting: write or check the Dockerfile, push the image to your private Edgegap registry, deploy an authoritative dedicated server close to players, and read logs when something breaks.
👉 Supported Features
Using Unity, Unreal Engine, or Godot? Our Unity, Unreal Engine, and Godot guides and plugins remain the fastest path for those engines. The MCP server works alongside them, and on its own for any engine.
Use our MCP server when:
Containerizing your game server - your agent writes a Dockerfile for your build (or reviews the one you have) against best practices, pushes the image to our private container registry, and removes unused old image tags to reclaim registry capacity.
Deploying a dedicated server - create and update app versions, review available locations, deploy close to your players, and get server IP with ports to test client connection.
Building a CI/CD pipeline - test your deployments and teardown from a build system.
Troubleshooting a game server issue - inspect app versions and deployment status, read container logs and CPU/memory utilization, or reproduce a failed deployment.
Running client-host and peer-to-peer games - create relay sessions providing NAT punchthrough and avoid connection blocking. Review Orchestration Models and Dedicated Servers or Relays? before deciding.
Out of scope / not supported by MCP: building Linux server executable; creating, starting or stopping a matchmaker (upload the generated configuration in the dashboard); server browser; lobbies; managed clusters; private fleets; or billing.
If you need help,please reach out to us over Discord. For live games support see our ticketing system.
Related MCP server: MileHost MCP Server
⚖️ Dedicated Servers or Relays?
Edgegap can host your multiplayer game in two ways. We recommend dedicated servers, and so does our MCP server: your agent will default to a dedicated server and only use a relay when you've chosen a host-client setup.
Dedicated server (recommended) | Relay | |
What Edgegap runs | Your headless server build, close to players | A traffic forwarder only, no game code |
Who runs the game | The server | One player's game (the host) |
Cheating | Much harder, the server has authority | The host can change anything |
Fairness | Every player connects directly to the server | The host has no latency, everyone else goes through two hops |
When the host leaves | The match continues | The match ends, unless your game supports host migration |
Performance limited by | The server's allocated CPU and memory | The host's PC and home internet upload |
You need | A server build in a container image | Netcode built as a listen server (host-client) |
No server image yet? That's not a reason to choose relays. Your agent can write the Dockerfile for your build with edgegap_generate_dockerfile. Learn more about relays in Distributed Relay.
🚀 Installation
MCP server installation is very simple:
Install the MCP server for Popular Agents or with Custom Integration.
Generate and attach an API token for your agent to use with our MCP server.
Generate (and view) your secret tokens for Edgegap API in Dashboard - User Settings / Tokens.
Add your secret token with each API request as an HTTP header (include the word token):
Authorization: token xxxxxxxx-e458-4592-b607-c2c28afd8b62
Do not integrate Edgegap API endpoints in game client, as your API token provides unlimited access to your account. See Integration for secure client-facing API endpoints and functions.
In case your secret tokens are compromised or leaked, delete and re-create them from dashboard.
The token is organization-wide and cannot be scoped to one application. Read DESIGN.md before giving it to an unattended agent.
Popular Agents
Install Edgegap MCP server in your preferred agentic IDE with the Cursor or VS Code buttons at the top of this page, then add your token to the Authorization header.
Claude Code
claude mcp add --transport http edgegap https://mcp.edgegap.dev/mcp \
-H "Authorization: token xxxxxxxx-e458-4592-b607-c2c28afd8b62" --scope userChatGPT Codex
Codex reads the token from an environment variable and sends it as Authorization: Bearer <token>, which the hosted endpoint accepts. In ~/.codex/config.toml:
[mcp_servers.edgegap]
url = "https://mcp.edgegap.dev/mcp"
bearer_token_env_var = "EDGEGAP_API_TOKEN"Then set EDGEGAP_API_TOKEN to your token in the environment Codex starts from.
Claude Desktop and claude.ai
Custom connectors in claude.ai and Claude Desktop cannot send an Authorization header, so the hosted endpoint never receives your token from them: the connector shows as connected, but every tool call fails. Use the Local Server instead.
In Claude Desktop, open Settings → Developer → Edit Config and add the local server to claude_desktop_config.json:
{
"mcpServers": {
"edgegap": {
"command": "npx",
"args": ["-y", "@edgegap/mcp"]
}
}
}Leave the token out and you're asked for it on first use. claude.ai in the browser can't run a local server, so it can't use Edgegap MCP until the hosted endpoint supports OAuth.
Cursor
The Cursor button at the top of this page installs it; to do it by hand, add this to ~/.cursor/mcp.json (or .cursor/mcp.json in a project):
{
"mcpServers": {
"edgegap": {
"url": "https://mcp.edgegap.dev/mcp",
"headers": { "Authorization": "token xxxxxxxx-e458-4592-b607-c2c28afd8b62" }
}
}
}VS Code (Copilot agent mode)
The VS Code button at the top of this page installs it; to do it by hand, add this to .vscode/mcp.json (VS Code uses servers, not mcpServers):
{
"servers": {
"edgegap": {
"type": "http",
"url": "https://mcp.edgegap.dev/mcp",
"headers": { "Authorization": "token xxxxxxxx-e458-4592-b607-c2c28afd8b62" }
}
}
}Windsurf
In ~/.codeium/windsurf/mcp_config.json, run the Local Server, which works in every client that starts MCP servers as commands:
{
"mcpServers": {
"edgegap": {
"command": "npx",
"args": ["-y", "@edgegap/mcp"],
"env": { "EDGEGAP_API_TOKEN": "xxxxxxxx-e458-4592-b607-c2c28afd8b62" }
}
}
}mcp.json
Most agentic IDEs also support integration by pasting JSON configuration:
{
"mcpServers": {
"Edgegap": {
"type": "http",
"url": "https://mcp.edgegap.dev/mcp",
"headers": {
"Authorization": "token xxxxxxxx-e458-4592-b607-c2c28afd8b62"
}
}
}
}Custom Integration
Install remote Edgegap MCP server in your agent's virtualized environment (never in your project!):
Node, using the mcp-remote npx package
{
"command": "npx",
"args": ["-y", "mcp-remote", "https://mcp.edgegap.dev/mcp", "--transport", "http-only"]
}Python, using the mcp-proxy uvx package
{
"command": "uvx",
"args": ["mcp-proxy", "--transport", "streamablehttp", "https://mcp.edgegap.dev/mcp"]
}One-Click Install (Claude Desktop)
Download edgegap-mcp.mcpb and open it: Claude Desktop installs the local server as an extension and asks for your API token, which it keeps in the operating system's secure storage. The extension's settings also hold read-only mode, the application allowlist, the max duration ceiling and the deployment cap (the variables below). Each release attaches the bundle, built from that release's code. Any other app that installs MCPB bundles works the same way.
Local Server
To keep your API token on your own machine, run the server locally instead. Leave the token out and your agent asks you for it on first use, holding it in memory only for that session:
{
"mcpServers": {
"Edgegap": {
"command": "npx",
"args": ["-y", "@edgegap/mcp"],
"env": { "EDGEGAP_API_TOKEN": "xxxxxxxx-e458-4592-b607-c2c28afd8b62" }
}
}
}Needs Node 18+. Pin a version in production (@edgegap/mcp@0.17.2) rather than floating on latest. Registered in the official MCP registry as dev.edgegap/mcp.
The local server can also limit what an agent can do. These variables have no effect on the hosted endpoint at mcp.edgegap.dev:
Variable | Default | Purpose |
| (prompted) | API token. Optional: omit it and you're asked at first use. The |
|
| Set to |
| (empty) | Comma-separated application names. Limits what the agent can create and deploy into. Reading (listing apps and versions) is not limited, and neither is touching deployments once running. See DESIGN.md. |
|
| Ceiling on |
|
|
|
|
| Deploys one server process may send, failed ones included. Restart the server to reset it. |
|
| Set to |
|
| Set to |
|
| Per-request HTTP timeout. |
|
| Set to |
Windows
The local server runs on Windows with Node.js 18 or newer, and CI runs the build and the stdio tests on Windows.
Many Windows MCP clients cannot start
npxdirectly, because it is a.cmdscript. Start it throughcmd /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.In PowerShell, type
npx.cmdinstead ofnpxto run it by hand: a new Windows install blocks thenpxPowerShell script ("running scripts is disabled on this system").The first start downloads the package and can take a while; later starts are fast.
edgegap_update_skillsfinds skills installed in%USERPROFILE%, the same way as on macOS and Linux.
📚 Skills
The server includes the Edgegap agent skills: tested, step-by-step workflows for getting a multiplayer game online, with templates (Dockerfiles, matchmaker configs, Unity C# and Unreal C++ drop-ins) and known pitfalls. Any agent connected to Edgegap MCP gets them, with no separate install and no token needed, and is told to load the matching skill before working on a game project.
Skill | For |
| Start here for any engine other than Unity or Unreal Engine, or platform questions. Routes to the rest. |
| Unity end to end: server build, matchmaker, client, end-to-end test. |
| Unity with Netcode for GameObjects end to end: server start and self-stop, Find Match panel, Boss Room adapter, matchmaker. |
| Unity with FishNet end to end: headless server, Bayou/WebGL, matchmaker, end-to-end test. |
| Unity with PurrNet end to end: dedicated server, connect panel, matchmaker, end-to-end test. |
| Unity with Photon Fusion 2 end to end: IL2CPP Linux server, server bound to 0.0.0.0, Edgegap deployment, BR200 kit. |
| Photon's Simple FPS sample on Edgegap dedicated servers. |
| Godot 4 with a Godot dedicated server: headless export, ENet or WebSocket, matchmaker. |
| Colyseus servers on Edgegap, direct or through the matchmaker. |
| Nakama as the backend, starting Edgegap servers for its matches. |
| PlayFab Matchmaking with Edgegap servers. |
| Three.js and other browser games with their own Node.js server. |
| Matchmaking design for any engine: who owns it, profiles, parties, region selection, backfill, third-party matchmakers. |
| Browser games built with Manus: backend matchmaking, Steam sign-in, signed join tokens, Node WebSocket server. |
| Unreal Engine end to end: source engine, Linux server, matchmaker, end-to-end test. |
| Voice chat for an Unreal game on Edgegap with EOS Voice: server-side room tokens, match and team rooms. |
| Authoritative server design and the deployment lifecycle. |
| The container contract, Dockerfiles, registries, app versions. |
| Parity tests on your machine, then one smoke-test deployment. |
| Pull errors, crash loops, out-of-memory, clients that can't connect. |
| Backend code that deploys servers: webhooks, cleanup, Nakama, PlayFab, UGS, EOS. |
| Launch checklist, rollouts, caching, cost control. |
They're served three ways, so every MCP client can reach them:
Tools:
edgegap_list_skillsandedgegap_get_skill, which loads a skill'sSKILL.md, or one of its reference documents or templates withfile.Prompts:
deploy-game-server("Deploy my game server to Edgegap") is the place to start: it finds the engine and netcode, loads the matching skill and walks the golden path, cleanup included. There is also one prompt per skill, named after it. In Claude Code they show up as slash commands, e.g./mcp__edgegap__deploy-game-server.Resources: each skill's
SKILL.mdis listed, atedgegap-skill://<skill>/SKILL.md; every other file is read through theedgegap-skill://{skill}/{+path}template, e.g.edgegap-skill://edgegap-unity/references/deploy.md.
Each release bundles the skills at the commit pinned in scripts/skills-pin.txt; edgegap_context reports which pack is loaded. edgegap_list_skills also reads the latest pack version from GitHub (one version number, cached for an hour; EDGEGAP_SKILLS_CHECK=off turns it off) and says when a newer one is out, and edgegap_get_skill adds the same note under a skill's header.
Keeping installed skills current. If you also installed the skills in your agent (the Claude Code plugin edgegap@edgegap, npx skills add edgegap/llm-agent-skills, or folders copied into ~/.claude/skills), edgegap_update_skills compares each one with the latest on GitHub. On the local server it finds those installs itself; with apply: true it runs npx skills update (Edgegap skills only) or claude plugin update, and rewrites hand-copied skills from the files bundled in this release, keeping files you added and leaving symlinks and git checkouts alone. It never downloads skill text. The hosted server cannot see your disk: pass the versions you have loaded in installed_versions and it says which are behind and how to update them.
🧰 Tools
Your agent picks the right tool from your request. You don't need to name them, but knowing what's available helps you ask. Tools marked ● change something in your account, accept dry_run, and are hidden when EDGEGAP_READ_ONLY=1.
Tool | What it does |
| Shows which API this server talks to, its version, local or hosted, and the guardrails in force. No API call; never shows the token. |
Before Your First Deployment
Tool | What it does |
| Writes a Dockerfile for your server build: your build folder, server binary or start script, ports, and launch arguments, with the right headless flags (Unity |
| Checks an existing Dockerfile, ports, resources, and image tag before you build. Catches ARM or Windows images (Edgegap runs |
| Returns push credentials for your private Edgegap container registry, with the exact |
| Confirms your image push landed before you register it. Takes the image name only, e.g. |
| Deletes one tag, and the image it points to, to clean up old builds. One exact tag per call; |
Dedicated Servers (Recommended)
Tool | What it does |
| Lists your applications. |
| Creates an application. |
| Turns an application on or off for new deployments. |
| Lists versions with their image, resources, ports (with TLS Upgrade), and whether a registry login is set. |
| Reads one version in full: image, resources, ports, max duration, image caching, restart policy, and env var names (never values). |
| Registers a container image as a deployable version. Supports TLS Upgrade on WS and HTTP ports, which browser (WebGL) clients need for |
| Changes an existing version: a new image tag, on/off, CPU and memory (both together), max duration, registry login, image caching ( |
| Deletes one version, to clean up test versions. Refused while a deployment of it runs. The registry image is kept. |
| Deletes an application and its versions. Refused while any of its deployments runs, and while it has more versions than |
| Lists the cities Edgegap deploys to, or, for one version, only those with capacity right now. |
| Lists the ping beacons game clients measure their latency to each region against. |
| Deploys an authoritative dedicated server close to your players. Always tagged |
| Lists the hosts of one of your private fleets, with status and location, to deploy onto them. |
| Waits until the server is ready and returns the connection address. |
| Reads a deployment's status. |
| Lists running deployments, filtered by application, version, status, tags and more, and sorted by age. Finds servers left running; |
| Reads container logs and crash details while the deployment runs. After it stops, logs are only kept if Endpoint Storage was set up. |
| Summarises CPU, CPU throttling, memory and network use (latest, average, peak), to size a version or check a crash. |
| Stops one deployment, by its exact request ID. No bulk stop. |
| Adds or removes tags on a running deployment, e.g. to mark a match. The |
| Reports a deployment to Edgegap with a reason, for a studio's moderation backend. It keeps running. |
Logs and Files (Endpoint Storage)
Container logs disappear with the deployment unless they are exported to your own S3-compatible bucket.
Tool | What it does |
| Lists your Endpoint Storage buckets and their pull profiles. Secret keys are never returned. |
| Registers a bucket (AWS S3, Cloudflare R2, DigitalOcean Spaces…) for log export. Set |
| Copies a file or folder from the bucket into the container at boot (maps, configs, large assets). |
| Links a pull profile to a version, or unlinks it. |
| Deletes one pull profile. The bucket and its files stay. |
| Deletes one Endpoint Storage; refused while it has pull profiles unless |
Relays (Host-Client Games Only)
A relay is not a game server: it forwards traffic while one player's game hosts the match. See Dedicated Servers or Relays?.
Tool | What it does |
| Creates a relay session for your players and returns the relay address and each player's authorization token. |
| Reads a relay session. |
| Lists open relay sessions, to find ones left running. No authorization tokens. |
| Adds a player who joins later. |
| Removes one player from a relay session. |
| Closes a relay session. |
Deployments and relay sessions are billed while they run. Ask your agent to stop test deployments and delete test relay sessions when it's done.
Example Prompts
"Write a Dockerfile for my Unity server build, then push it and deploy a server near me."
"Check my Dockerfile for Edgegap and fix any problems."
"My deployment failed. Read the logs and tell me why."
"How much CPU and memory did my last match use? Size my version for it."
"My game uses host-client networking. Set up an Edgegap relay for two players."
🛡️ Guardrails
Your API token can do anything in your organization, so the server adds its own limits around what an agent does with it. They apply in both the local server and the hosted endpoint.
Guardrail | What it does |
Dry run | Every tool that changes something takes |
No token in containers | A deploy or version is refused, with nothing sent, if your API token appears in an env var name or value, a tag, or a webhook URL. Env values are never echoed back. |
Agent tag | Every deployment gets the |
Auto-stop | Every deploy reports when Edgegap will stop it: the version's |
Deploys per run | The local server sends at most |
No moving image tags |
|
Image reference check | A |
Deployment cap |
|
Hidden secret env vars | Env vars whose names look like secrets ( |
Strict stop |
|
Careful deletes |
|
Webhook and bucket URLs | Deploy webhooks and Endpoint Storage endpoints must be |
Host on every result | Every result starts with the API host, e.g. |
Redaction | The token is stripped from every error before it reaches the agent. |
The server identifies itself with User-Agent: edgegap-mcp/<version> (<MCP client name>) on every API call.
Usage analytics. The local server and the self-hosted Docker image send nothing beyond the API calls themselves. The hosted endpoint at mcp.edgegap.dev uses PostHog MCP Analytics (@posthog/mcp) and sends usage events to Edgegap's PostHog: which MCP client connected, which tool, prompt or skill resource was used, the names (not values) of the arguments passed, whether a call succeeded, its error code, the stage it failed at and the Edgegap API status, how long it took, whether it was a dry run, a few facts about the call (how a wait for a deployment ended, a validation result, which skill was loaded), which golden-path step was reached, plus the server version and Cloudflare's country code. On a failed call it also sends the error message, after removing your token, the values of the arguments you passed, and anything shaped like a credential, an IP address or an ID, cut to 300 characters. Deployment IDs are only sent as a keyed hash. Only named metadata properties are let through. It never sends your token, tool argument values (IP addresses, env vars, app or image names) or results, and GeoIP is off. It adds no parameters to the tools. Events from one token are grouped under a keyed, non-reversible hash of it. The full list is in docs/analytics.md. To opt out, send the header X-Edgegap-Telemetry: off (or DNT: 1), or use the local server.
🚨 Troubleshooting
Review common error codes and learn how to unlock your integration.
401 Unauthorized
Your MCP integration is most likely not including the Authorization header correctly.
Tool Call Failed
Your client is missing an Edgegap token. This happens with claude.ai and Claude Desktop custom connectors, which can't send an Authorization header. See Claude Desktop and claude.ai for the alternative.
This is a known limitation which will be resolved in the near term, stay tuned for updates!
403 Forbidden
Your MCP integration is likely using the template token or a deleted token. Please validate that the token value used by your integration matches exactly the token displayed in dashboard.
424 Image Could Not Be Pulled
Edgegap could not pull your container image. Check the repository, image name, and tag, and that the tag was pushed (ask your agent to list registry tags). For images in the Edgegap registry, the image name must include your project, e.g. my-project/my-game-server.
Registry Credentials Unavailable
Edgegap only gives registry credentials to the quick-start token the Unity and Unreal plugins use, so with a regular API token your agent can't retrieve them and asks you instead. Copy the Project, Username and Token from the dashboard under Container Registry, or push to another registry Edgegap can pull from (Docker Hub, GitHub, AWS ECR, GCP, GitLab). See External Registries.
"status": "empty" or "not_configured"
Not an error. A list with nothing in it (no applications yet, no deployments running, an image never pushed) or a feature this organization has not set up (relays, a registry this token cannot read) comes back as a normal result with status and a next_step. Your agent should do the next step instead of retrying.
No Token Yet
The skills (edgegap_list_skills, edgegap_get_skill), edgegap_context, edgegap_generate_dockerfile and edgegap_validate_server_config work without a token, so an agent can prepare the server build first. Create an account at app.edgegap.com and a token under User Settings → Tokens. edgegap_context with check_token: true says whether the session's token is present and accepted, and shows its last four characters so you can find it on that page.
Starts Locally but Not on Edgegap
Ask your agent to validate your server configuration, or to generate a new Dockerfile. The most common causes are an image built on Apple Silicon without docker build --platform linux/amd64, a server listening on a different port than the version exposes, or a UDP transport configured as TCP.
Other API Errors
Please consult our API Reference for possible error responses for individual API endpoints.
If you need help,please reach out to us over Discord. For live games support see our ticketing system.
🛠️ Self-Hosting
The hosted endpoint at mcp.edgegap.dev runs as a Cloudflare Worker (see worker/INSTALL.md). To run the same stateless HTTP server on your own infrastructure, use the Docker image:
docker build -t edgegap-mcp .
docker run --rm -p 8080:8080 edgegap-mcpClients connect to http://<host>:8080/mcp with their own Authorization header, the same way they connect to the hosted endpoint. The image holds no credential, and /health answers without one. PORT, HOST, EDGEGAP_READ_ONLY, EDGEGAP_APP_ALLOWLIST, EDGEGAP_MAX_DURATION_MINUTES, EDGEGAP_MAX_AGENT_DEPLOYMENTS and EDGEGAP_STOP_OWN_ONLY apply; pass each with -e NAME=value. Never pass an API token to the container: each client sends its own on every request. Read worker/DECISION.md before exposing it beyond a private network.
Prebuilt images for linux/amd64 and linux/arm64 are published to ghcr.io/edgegap/llm-mcp-server (and, for existing setups, the old name ghcr.io/edgegap/edgegap-mcp), tagged main and sha-<commit> on every push to main, plus the version on v* tags:
docker run --rm -p 8080:8080 ghcr.io/edgegap/llm-mcp-server:mainDevelopment
See CONTRIBUTING.md for the checks a change has to pass, CHANGELOG.md for what each version changed, and SECURITY.md to report a vulnerability.
npm ci
npm run build
npm test # mock-API tests; none reach Edgegap
npm run typecheck:workerTo update the bundled skills to the latest commit of llm-agent-skills, then release as usual:
npm run sync-skills -- --ref main
npm run check-skills # exit 1 if src/skills.generated.ts differs from the pinTest | Covers |
| Unit tests for the tag, image, secret-name, URL and redaction rules |
| Packaging: one |
| Skills over MCP: tools, prompts, resources, path safety, bundle matches the pin |
| Handshake, tool registration, read-only mode |
| Local validation and allowlist enforcement |
| Token prompt: accept, refuse acknowledgement, decline, no support |
| Validator, Dockerfile generator, registry, deployments, relay and matchmaker tools against a local mock API |
| Self-hosted HTTP server: discovery without a token, per-request tokens, foreign credentials |
| Every endpoint and request-body field the server sends is in |
| Tool names, descriptions, schemas and the instructions match |
| Not in |
Design decisions, the security model, and what's deliberately out of scope are in DESIGN.md.
Available Tools
43 toolsedgegap_authorize_relay_userAdd a player to a relay sessionAIdempotentInspect
Authorize one more player (by public IP) on an existing relay session, for a player joining after the session was created. Returns that player's authorization token.
Inputs: user_ip (required), session_id (required), dry_run.
edgegap_build_matchmaker_configBuild a basic matchmaker configurationARead-onlyIdempotentInspect
Generate a ready-to-upload Edgegap matchmaker JSON configuration with one profile: team count and size, optional latency rule, and optional expansions that relax the rules the longer a player waits. Checks the referenced application version exists and has ports. Edgegap has no API for creating a matchmaker, so this tool does NOT create one: save the returned config to a file (e.g. matchmaker-config.json) and have the developer upload it on the Matchmaker page of the dashboard. The matchmaker starts an authoritative dedicated server for each match, which is the recommended setup for multiplayer games.
Inputs: version (required), team_count (required), application (required), profile_name (required), +9 more.
edgegap_contextShow this Edgegap MCP server's configurationARead-onlyIdempotentInspect
Report which Edgegap API this server talks to, its version, whether it is the local or hosted server, and the guardrails in force: read-only mode, application allowlist, max_duration ceiling, the agent deployment cap, the tag forced onto every deployment, and which tools support dry_run. Also says whether this session has a usable token and, if not, why and how to fix it. Call it first when unsure what this session is allowed to do, before anything billable, or when tool calls fail with a token problem. Makes no API call unless check_token is true, and never shows the token.
Inputs: check_token. Returns: server, api_host, read_only, transport, +5 more
edgegap_create_appCreate an Edgegap applicationAInspect
Create a new application to hold game server versions. Only call this after edgegap_list_apps confirms no suitable application exists. Creating an application does not deploy anything — follow with edgegap_create_app_version.
Inputs: name (required), dry_run, is_active.
edgegap_create_app_versionCreate an application versionAInspect
Register a container image as a deployable version of an application. The image must already be pushed to a registry that Edgegap can pull from (see edgegap_get_registry_credentials and edgegap_list_registry_tags). Resource units: 1024 cpu units = 1 vCPU; memory_mb must be at least 256 and at most double the cpu units. Set verify_image true on the first version so a bad image fails here rather than at deploy time. Refused, with nothing sent, for the "latest" or an empty docker tag (use a build ID so deployments are reproducible) and for a docker_image that also holds a registry host or tag. Env vars named like secrets (TOKEN, SECRET, PASSWORD, API_KEY…) are hidden in the dashboard. Images on registry.edgegap.com need no registry login: leave registry_username and registry_token out and the version gets the organization's own registry login (registry_profile "Edgegap"). When copying an existing version, copy only non-secret settings: the API returns "This value is set and encrypted" for its registry login and secret env values, and that placeholder is refused here.
Inputs: name (required), ports (required), cpu_units (required), memory_mb (required), +12 more.
edgegap_create_endpoint_storageCreate an Endpoint Storage (S3 bucket for logs)AInspect
Register an S3-compatible bucket (AWS S3, Cloudflare R2, DigitalOcean Spaces, ...) as Endpoint Storage, so container logs are exported there when deployments end. The developer supplies the bucket, endpoint URL and an access key pair scoped to that bucket; never invent or reuse other credentials, and never pass the Edgegap API token. The secret key is sent once and never echoed back. Then set endpoint_storage on the version (edgegap_update_app_version) to turn log export on.
Inputs: name (required), bucket (required), endpoint (required), access_key_id (required), +4 more.
edgegap_create_pull_profileCreate a pull profile (copy bucket files into containers)AInspect
Create a pull profile under an Endpoint Storage: at boot, Edgegap copies a file or folder from the bucket into the container (maps, configs, large assets kept out of the image). It does nothing until linked to a version with edgegap_link_pull_profile. Avoid destination paths the image already uses.
Inputs: name (required), source (required), destination (required), source_type (required), +2 more.
edgegap_create_relay_sessionCreate a relay session (host-client games only)AInspect
A relay is NOT a game server and is not the recommended default — for a multiplayer match, deploy an authoritative dedicated server with edgegap_deploy instead. A relay only forwards traffic between players while one player's game acts as host and owns the game state: the host can cheat and has a latency advantage, the host's PC and connection cap the match, and the match ends if the host quits. Only use this when the developer has chosen peer-to-peer/host-client, or the netcode is already a listen server and a dedicated server is not an option; if that has not been established, ask first. Never pick it only because it needs no server image. Creates an Edgegap relay session for every player's public IP, host first, waits until it is ready, and returns the relay address plus per-player authorization tokens for the relay transport. Relay sessions are billed while open: delete test sessions with edgegap_delete_relay_session when finished.
Inputs: user_ips (required), dry_run, webhook_url, timeout_seconds, +1 more.
edgegap_delete_appDelete an application and all its versionsADestructiveIdempotentInspect
Delete one application and every version under it, to clean up a test application. Exactly one exact name; refused while any of its deployments is running, and refused when it has more versions than max_versions (default 0: delete its versions first with edgegap_delete_app_version, or raise max_versions after the developer agreed). Registry images are not touched. Cannot be undone.
Inputs: application (required), dry_run, max_versions.
edgegap_delete_app_versionDelete one application versionADestructiveIdempotentInspect
Delete one version of an application, to clean up test versions. Exactly one exact version name; refused while any deployment of that version is running. The container image stays in the registry (edgegap_delete_registry_tag removes it). Cannot be undone, so confirm with the developer when the version is not one this conversation created.
Inputs: version (required), application (required), dry_run.
edgegap_delete_endpoint_storageDelete an Endpoint StorageADestructiveIdempotentInspect
Delete one Endpoint Storage, to clean up a test one. Exactly one exact name; refused when it still has more pull profiles than max_pull_profiles (default 0: delete them first with edgegap_delete_pull_profile, or raise max_pull_profiles after the developer agreed). Versions that export logs to it stop doing so, so confirm with the developer when the storage is not one this conversation created. The bucket and the logs already in it are not touched. Cannot be undone.
Inputs: endpoint_storage (required), dry_run, max_pull_profiles.
edgegap_delete_pull_profileDelete a pull profileADestructiveIdempotentInspect
Delete one pull profile from an Endpoint Storage, to clean up a test profile. Exactly one exact name. Every version linked to it stops getting its files at boot (the API cannot list those links, so ask the developer when the profile is not one this conversation created). The bucket and its files are not touched. Cannot be undone.
Inputs: pull_profile (required), endpoint_storage (required), dry_run.
edgegap_delete_registry_tagDelete one image tag from the Edgegap registryADestructiveIdempotentInspect
Delete one tag, and the image it points to, from this organization's Edgegap container registry, to clean up old builds. Takes exactly one image name and one exact tag; wildcards, lists and "latest" are refused, and there is no bulk delete. A version that still uses the tag can no longer start deployments, so check edgegap_list_app_versions first. Cannot be undone.
Inputs: tag (required), image_name (required), dry_run.
edgegap_delete_relay_sessionDelete a relay sessionADestructiveIdempotentInspect
Close one relay session. Connected players lose their relay connection. Delete every session you created for testing before ending your task. Takes exactly one session_id; empty IDs, wildcards and lists are refused.
Inputs: session_id (required), dry_run.
edgegap_deployDeploy a game serverAInspect
Start one authoritative dedicated game server from an application version, placed near the players you specify. This is the recommended way to host a multiplayer match: the server owns the game state, so no player hosts it. Returns immediately with a request_id; the server is still starting and has no connection details yet. Follow this call with edgegap_wait_for_deployment to get the address players connect to. Always stop deployments you started for testing. Every deployment is tagged "edgegap-mcp" in addition to any tags you pass, so edgegap_list_deployments with only_agent_deployments: true finds them all. Runs until stopped or until the version's max_duration, which the result reports. Refused, with nothing sent, if the API token appears in an env var or tag, if the version uses the "latest" docker tag, or when too many agent deployments are already running (EDGEGAP_MAX_AGENT_DEPLOYMENTS, default 5): stop finished ones first. Also refused when the version's max_duration is unlimited or above EDGEGAP_MAX_DURATION_MINUTES, unless allow_long_running is true (ask the developer first), and on the local server after EDGEGAP_MAX_DEPLOYS_PER_RUN deploys (default 20). Env vars named like secrets are hidden in the dashboard. Optional: webhooks Edgegap calls when the server is ready, errors or ends (instead of polling), require_cached_locations for faster starts, and private_host_ids to place it on your private fleet first.
Inputs: users (required), version (required), application (required), env, +10 more. Returns: tags, status, warning, auto_stop, +4 more
edgegap_generate_dockerfileGenerate a game server DockerfileARead-onlyIdempotentInspect
Write a Dockerfile for this project's headless game server build, ready for Edgegap: linux/amd64 base, the build folder copied in, the binary made executable, the right headless flags (Unity -batchmode -nographics, Godot --headless), a non-root user where the engine needs it (Unreal refuses root), CRLF fixes for start scripts, and EXPOSE lines matching the ports. Call this when the project has no Dockerfile, before building anything. Look at the build output first so you can pass the real build folder, binary name and port; anything you omit is assumed and listed under assumptions, which you must confirm with the developer or the project files. Write the result to Dockerfile, then build. The output is checked against edgegap_validate_server_config before it is returned. Makes no API calls.
Inputs: engine (required), ports, netcode, base_image, +3 more.
edgegap_get_app_versionGet one application versionARead-onlyInspect
Read one version in full: image, resources, ports, max_duration, whether image caching (force_cache) and verify_image are on, restart policy, the Endpoint Storage its logs go to, and the names of its env vars (values are never shown). Use it before edgegap_update_app_version or edgegap_deploy to check what a version will do.
Inputs: version (required), application (required). Returns: env, name, image, ports, +15 more
edgegap_get_deploymentGet deployment statusARead-onlyInspect
Read the current status of one deployment, including connection address and ports once it is ready. For a deployment you just created, prefer edgegap_wait_for_deployment — it polls for you instead of making you call this in a loop.
Inputs: request_id (required). Returns: fqdn, error, ports, ready, +10 more
edgegap_get_deployment_logsGet container logs for a deploymentARead-onlyInspect
Retrieve stdout/stderr and crash output for a deployment. Call this whenever a deployment errors or a server exits unexpectedly — the crash exit code usually identifies the problem faster than redeploying does. Logs for stopped deployments are only retained if Endpoint Storage was configured on the version beforehand.
Inputs: request_id (required), max_characters.
edgegap_get_deployment_metricsGet CPU, memory and network use of a deploymentARead-onlyInspect
Summarise a deployment's resource use over time: CPU, CPU throttling, memory and network, each as latest, average and peak, with the API's own labels. Use it to size a version (cpu_units, memory_mb) from a real match, or to check whether a crash was memory or CPU starvation before redeploying. Defaults to the whole life of the deployment.
Inputs: request_id (required), step, end_time, start_time. Returns: cpu, note, memory, totals, +4 more
edgegap_get_registry_credentialsGet Edgegap container registry push credentialsAIdempotentInspect
Get the push login for this organization's private Edgegap container registry (registry.edgegap.com) and the exact docker login, build and push commands for your image. Use this when the server image is not in a registry yet. Edgegap only hands these credentials to the quick-start token the Unity/Unreal plugins use; with a regular API token this tool cannot fetch them and instead returns the steps to copy them from the dashboard's Container Registry page — ask the developer for them then, do not retry. When it does return a token, it is registry-scoped (push/pull images in this project), not the org API token: pass it to docker login via --password-stdin, never as a command-line argument, and do not write it into files. Call edgegap_validate_server_config before building. Any other registry Edgegap can pull from (Docker Hub, GHCR, ECR, GitLab) works too: then skip this tool and pass that registry and its pull login to edgegap_create_app_version.
Inputs: tag, image_name.
edgegap_get_relay_sessionGet a relay sessionARead-onlyInspect
Read one relay session: whether it is ready, the relay address and ports, and each authorized player with their authorization token. edgegap_create_relay_session already waits for readiness; use this to re-read a session or one created with wait_until_ready false.
Inputs: session_id (required).
edgegap_get_skillLoad an Edgegap agent skillARead-onlyIdempotentInspect
Load one Edgegap agent skill: its SKILL.md (the workflow to follow) by default, or one of its reference documents or templates with file. Load the skill that matches the project before acting (the server instructions and edgegap_list_skills say which; "edgegap" when unsure), then fetch the references and templates it points to as you reach them. No API call.
Inputs: skill (required), file.
edgegap_link_pull_profileLink or unlink a pull profile and a versionAIdempotentInspect
Link a pull profile to an application version, so its new deployments get the bucket files at boot, or unlink it (unlink: true). Running deployments are not changed.
Inputs: version (required), application (required), pull_profile (required), endpoint_storage (required), +2 more.
edgegap_list_appsList Edgegap applicationsARead-onlyInspect
List the applications in the Edgegap organization. Start here before creating or deploying anything, so you reuse an existing application instead of making a duplicate. An "application" groups versions of one game server.
Inputs: page, limit. Returns: total, showing, next_step, truncated, +1 more
edgegap_list_app_versionsList versions of an applicationARead-onlyInspect
List the versions under an application, with their container image, resources, ports (including whether TLS Upgrade is on, which browser/WebGL clients need for wss://) and whether a registry login is set for pulling the image. Use this to find the version name to deploy, to check a version is ready before deploying, or to copy the non-secret settings (image, resources, ports) of a working version when creating a new one. The registry login and secret env values are never readable: the API returns "This value is set and encrypted" for them, so get them from the dashboard's Container Registry page or the developer.
Inputs: application (required). Returns: total, showing, versions, next_step, +2 more
edgegap_list_deploymentsList running deploymentsARead-onlyInspect
List active deployments, optionally filtered and sorted. Use this to find deployments left running from earlier sessions before starting new ones — orphaned servers cost money. Filter by status, application, version, tags, request_id, created_at, fleet_name or host_name, e.g. [{field:"application",operator:"eq",value:"my-game"},{field:"status",operator:"eq",value:"ready"}]. Operators: eq and neq on every field except created_at (eq, gte, lte); in and nin with an array value on request_id, tags, application, version, fleet_name, host_name; ilike with % wildcards on fleet_name and host_name. At most one filter per field. Sort by created_at or available_session_sockets. To find every deployment an agent started through this server, pass only_agent_deployments: true (the same as filtering tags in ["edgegap-mcp", "mcp"]).
Inputs: limit, filters, order_by, only_agent_deployments. Returns: total, showing, next_step, truncated, +1 more
edgegap_list_endpoint_storageList Endpoint Storage and pull profilesARead-onlyInspect
List the organization's Endpoint Storage: S3-compatible buckets Edgegap exports container logs to when a deployment ends (so logs survive the deployment), and the pull profiles under each, which copy files from the bucket into a container at boot. Secret keys are never returned. A version uses a storage for logs through edgegap_create_app_version / edgegap_update_app_version endpoint_storage, and a pull profile through edgegap_link_pull_profile.
Inputs: no named parameters.
edgegap_list_fleet_hostsList the hosts of a private fleetARead-onlyInspect
List the hosts in one of the organization's private fleets (dedicated machines Edgegap manages for you), with status, IP and location. Only ACTIVE hosts accept deployments. Pass their host_id values to edgegap_deploy as private_host_ids to place a server on them first. Organizations without private fleets get an error from the API.
Inputs: fleet_name (required).
edgegap_list_locationsList where servers can runARead-onlyInspect
List the cities Edgegap can deploy to. Pass application and version to see only the locations with capacity for that version right now. Use it to pick geo_coordinates for edgegap_deploy when you have no player IPs, or to tell a developer where their players can be served from. For the ping beacons game clients use to measure latency, see edgegap_list_ping_beacons.
Inputs: page, limit, version, application. Returns: total, showing, messages, locations, +3 more
edgegap_list_ping_beaconsList ping beaconsARead-onlyInspect
List Edgegap's ping beacons: one host per region that a game client can ping (UDP or TCP) to measure its latency before matchmaking. The matchmaker's latency rules use these measurements. Read-only; the game client does the pinging, not this tool.
Inputs: page, limit. Returns: total, beacons
edgegap_list_registry_tagsList image tags in the Edgegap registryARead-onlyInspect
List the tags pushed for one image in this organization's Edgegap container registry, with push time and size. Call it after docker push to confirm the tag landed before edgegap_create_app_version, which otherwise fails later with an image-pull error. An image that was never pushed comes back as status "not_found" with no tags, not as an error. Only for registry.edgegap.com: images in Docker Hub, GHCR or another registry are not listed here.
Inputs: image_name (required), page, limit. Returns: note, tags, total, showing, +3 more
edgegap_list_relay_sessionsList relay sessionsARead-onlyInspect
List this organization's active relay sessions: id, status, readiness and player count. Relay sessions bill while open, so use this to find ones left over from earlier sessions and delete them with edgegap_delete_relay_session. Authorization tokens are not listed; read one session with edgegap_get_relay_session.
Inputs: no named parameters. Returns: total, showing, sessions, next_step, +1 more
edgegap_list_skillsList the Edgegap agent skillsARead-onlyIdempotentInspect
List the Edgegap agent skills: tested, step-by-step workflows for getting a multiplayer game online on Edgegap, with templates (Dockerfiles, matchmaker configs, Unity C# and Unreal C++ drop-ins) and known pitfalls. Each entry says which engine, netcode or backend it is for, and the server instructions map projects to skills. Before working on a game project, load the matching skill with edgegap_get_skill; "edgegap" covers any other engine and routes to the rest. Also says whether a newer skills pack is on GitHub (reads one version number, no Edgegap API call).
Inputs: no named parameters.
edgegap_report_deploymentReport a deployment to EdgegapAInspect
Report a problem with one deployment to Edgegap (the API's "Report a Deployment", meant for a studio's moderation backend), with a short reason and optional key/value details. It does not stop the deployment. Use it only when the developer asks to report a deployment; for a crash, read edgegap_get_deployment_logs first.
Inputs: reason (required), request_id (required), dry_run, metadata.
edgegap_revoke_relay_userRemove a player from a relay sessionADestructiveIdempotentInspect
Revoke one player's access to a relay session, by that player's authorization token (from edgegap_get_relay_session or edgegap_authorize_relay_user). The player loses the relay connection; the session and the other players stay.
Inputs: session_id (required), user_authorization_token (required), dry_run.
edgegap_stop_deploymentStop a deploymentADestructiveIdempotentInspect
Gracefully stop one deployment by request_id, sending SIGTERM to the container. Stop every deployment you started for testing before ending your task. This tool stops exactly one deployment, named by its exact request_id: empty IDs, wildcards and lists are refused, and bulk stop is deliberately not exposed.
Inputs: request_id (required), dry_run.
edgegap_tag_deploymentAdd or remove tags on a running deploymentAIdempotentInspect
Add tags to, or remove tags from, one running deployment, e.g. to mark the match it serves or that a test is done, so edgegap_list_deployments can filter on them. Tags are labels only: the game server does not see the change. The "edgegap-mcp" tag cannot be removed, since it is how agent deployments are found and cleaned up. Returns the tags now on the deployment.
Inputs: request_id (required), add, remove, dry_run.
edgegap_update_appTurn an application on or offAIdempotentInspect
Set whether an application accepts new deployments. Turning it off stops new deployments of every version under it; running deployments keep running. Use it to pause an application without deleting anything.
Inputs: is_active (required), application (required), dry_run.
edgegap_update_app_versionUpdate an application versionAIdempotentInspect
Change settings on an existing version instead of creating a new one: point it at a new image tag, turn it on or off, change max_duration, set the registry login (the API cannot add registry_profile "Edgegap" to an existing version: create a new version for that), turn on image caching (force_cache: Edgegap pre-loads the image so deployments start faster), set the restart policy, or set the shutdown grace period. Only the fields you pass change. Deployments already running keep their old settings; new deployments get the new ones. Same refusals as edgegap_create_app_version: "latest" or empty tags, a docker_image holding a host or tag, and the API token in the registry login or env vars. ports and env REPLACE the version's whole list (per the API): read the current ones with edgegap_get_app_version and pass every port or variable to keep; secret env values are not readable, so get them from the developer. Refused, with nothing sent, for a registry login or env value equal to the API's "This value is set and encrypted" placeholder; leave the registry login out to keep it. cpu_units and memory_mb change together (both or neither); to try other resources for one deployment only, override them in edgegap_deploy instead.
Inputs: version (required), application (required), env, ports, +15 more.
edgegap_update_skillsCheck and update the installed Edgegap skillsAIdempotentInspect
Check whether the Edgegap agent skills installed in the developer's agent are the latest, and update them. Finds installs made with the skills CLI (user-wide or this project), the Claude Code plugin edgegap@edgegap, and skills copied by hand into an agent's skills folder, and compares each skill with the latest on GitHub. Without apply it only checks and changes nothing. With apply=true it rewrites hand-copied skills from the files bundled in this server, and runs each outdated install's own updater (npx skills@1.7.4 update for the Edgegap skills only, or claude plugin update) only when the operator started the server with EDGEGAP_ENABLE_SKILLS_UPDATE=1; otherwise it lists those commands for the developer to run. Ask the developer before applying. Skill text is never downloaded by this tool. The skills served by edgegap_get_skill need no update here.
Inputs: apply, installed_versions.
edgegap_validate_server_configValidate a game server Dockerfile and port configARead-onlyIdempotentInspect
Check a game server Dockerfile and the ports/resources you intend to register against what Edgegap requires, BEFORE building and pushing. Catches the failures that otherwise only show up after a build, push, version and deploy: ARM or Windows images (Edgegap runs linux/amd64), Unreal running as root, missing Unity -batchmode -nographics, a server bound to localhost, EXPOSE ports that do not match the version ports, a protocol that does not match the netcode transport, the "latest" tag, and bad CPU/memory ratios. Pass the Dockerfile text (read it from disk first). If there is no Dockerfile yet, call edgegap_generate_dockerfile instead. Makes no API calls.
Inputs: ports, engine, netcode, cpu_units, +5 more. Returns: engine, errors, verdict, warnings
edgegap_wait_for_deploymentWait for a deployment to become readyARead-onlyIdempotentInspect
Poll a deployment until it is ready, errors, or the timeout expires, then return the connection details. This is the tool to call right after edgegap_deploy. Do not build your own polling loop — this handles backoff and reports the container error detail if the server fails to start.
Inputs: request_id (required), timeout_seconds. Returns: fqdn, error, ports, ready, +11 more
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 43 tools
Each tool targets a distinct resource+action, and overlapping-looking pairs are explicitly separated in the descriptions (get_deployment vs wait_for_deployment, list_locations vs list_ping_beacons, validate_server_config vs generate_dockerfile). Minor residual confusion between list_skills/get_skill/update_skills and get_app_version vs list_app_versions, but the text disambiguates them well.
A uniform edgegap_ prefix and consistent verb_noun pattern (get_, list_, create_, update_, delete_, link_, revoke_) runs through nearly all 43 tools. Deviations are small: bare-verb edgegap_deploy and bare-noun edgegap_context, plus build_/generate_/report_ verbs that still read predictably.
43 tools is well above the comfortable agent-facing range, and tooling-adjacent entries (list_skills, get_skill, update_skills, context) pad an already large API surface. The underlying domain is genuinely broad (apps, versions, deployments, relays, storage, pull profiles, registry, fleets), so most tools do map to real operations rather than duplication.
Lifecycle coverage is strong: full create/list/get/update/delete on apps and versions, a complete deployment lifecycle (deploy, wait, get, list, logs, metrics, tag, stop, report), and full relay session management. Minor gaps remain, e.g. no single-item get or update for Endpoint Storage and pull profiles (list/create/delete only) and no fleet list beyond fleet hosts.
Maintenance
Related MCP Connectors
Deploy and manage your apps, databases, storage, and scheduled jobs from your AI agent
Build a playable game with your coding agent and publish it on Sekai in one step.
Backend for AI agents: one batched tool over ~668 actions (hosting, storage, auth, payments).
Deploy apps from GitHub, read build/runtime logs, and manage your app's users from your AI agent.
Related MCP Servers
FlicenseAqualityDmaintenanceEnables AI agents to deploy multiplayer web games as playable URLs with rooms, live state sync, and leaderboards, all through a single tool call.480 npm5-
MileHost MCP Serverofficial
AlicenseCqualityBmaintenanceEnables AI coding agents to manage cloud containers, create and edit files, run commands, and deploy projects directly.247MIT- AlicenseAqualityBmaintenanceEnables AI coding assistants to access documentation, live API tools, and workflow prompts for integrating a game/app backend service into Godot, Unity, and Unreal Engine projects, including auth, leaderboards, cloud saves, remote config, localization, news, gift codes, feedback, logs, crash reporting, email, and admin dashboard management.120100 npmMIT
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to manage, configure, and operate game servers hosted on Pterodactyl panels, including power actions, console commands, file operations, plugin installation, and backups. It also supports Cloudflare challenge bypass and automatic request pacing for reliable panel automation.1MIT