MCP-Server

Edgegap

dev.edgegap/mcp
Cloud & Infrastruktur Gaming Öffentlich und erreichbar MCP 2025-11-25

Was dieses MCP kann

Creates, versions, deploys, monitors, logs, and stops containerized multiplayer game servers on Edgegap's edge network.

edgegap_create_app
Create an Edgegap application
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.
Externer Zugriff
Eingabeschema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['name'], 'properties': {'name': {'type': 'string', 'maxLength': 64, 'minLength': 3, 'description': 'Application name, 3-64 chars. Usually the game or project name.'}, 'is_active': {'type': 'boolean', 'description': 'Whether deployments are allowed. Default true.'}}}
edgegap_create_app_version
Create an application version
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. 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. Avoid the "latest" docker tag — use a build ID so deployments are reproducible.
Externer Zugriff
Eingabeschema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['application', 'name', 'docker_repository', 'docker_image', 'docker_tag', 'cpu_units', 'memory_mb', 'ports'], 'properties': {'env': {'type': 'array', 'items': {'type': 'object', 'required': ['key', 'value'], 'properties': {'key': {'type': 'string'}, 'value': {'type': 'string'}}}, 'description': 'Environment variables injected into the container.'}, 'name': {'type': 'string', 'maxLength': 64, 'minLength': 1, 'description': 'Version identifier, typically a build ID or timestamp.'}, 'ports': {'type': 'array', 'items': {'type': 'object', 'required': ['port', 'protocol'], 'properties': {'name': {'type': 'string', 'description': 'Label, e.g. "gameport".'}, 'port': {'type': 'integer', 'maximum': 59999, 'minimum': 1, 'description': 'Port the server listens on.'}, 'protocol': {'type': 'string', 'description': 'UDP, TCP, WS, or HTTP. Most game servers use UDP.'}, 'to_check': {'type': 'boolean', 'description': 'Readiness check on this port. Default true.'}}}, 'minItems': 1, 'description': 'Ports to expose. At least one is required for players to connect.'}, 'cpu_units': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 256, 'description': 'vCPU units. 1024 = 1 vCPU.'}, 'memory_mb': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 256, 'description': 'Memory in MB. At most 2x cpu_units.'}, 'docker_tag': {'type': 'string', 'description': 'Image tag. Use a build ID, not "latest".'}, 'application': {'type': 'string', 'description': 'Existing application name.'}, 'docker_image': {'type': 'string', 'description': 'Namespaced image, e.g. "mystudio/game-server".'}, 'verify_image': {'type': 'boolean', 'description': 'Verify Edgegap can pull the image before accepting the version.'}, 'registry_token': {'type': 'string', 'description': 'Registry password or token.'}, 'docker_repository': {'type': 'string', 'description': 'Registry host, e.g. "docker.io" or "registry.edgegap.com".'}, 'registry_username': {'type': 'string', 'description': 'Registry username, for private images.'}, 'max_duration_minutes': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'Auto-stop after this many minutes. Keeps test deployments from running up cost.'}}}
edgegap_deploy
Deploy a game server
Start one containerized instance of an application version, placed near the players you specify. 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.
Externer Zugriff
Eingabeschema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['application', 'version', 'users'], 'properties': {'env': {'type': 'array', 'items': {'type': 'object', 'required': ['key', 'value'], 'properties': {'key': {'type': 'string'}, 'value': {'type': 'string'}}}, 'description': 'Environment variables for this deployment only.'}, 'tags': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Tags for filtering later, e.g. ["agent-test"]. Recommended.'}, 'users': {'type': 'object', 'properties': {'ip_addresses': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Public IPv4/IPv6 addresses of the players. Edgegap places the server near them.'}, 'geo_coordinates': {'type': 'array', 'items': {'type': 'object', 'required': ['latitude', 'longitude'], 'properties': {'latitude': {'type': 'number'}, 'longitude': {'type': 'number'}}}, 'description': 'Latitude/longitude pairs, as an alternative to IP addresses.'}}, 'description': 'Where the players are. Exactly one of these two is required.'}, 'version': {'type': 'string', 'description': 'Version name within the application.'}, 'cpu_units': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 256, 'description': 'Override the version CPU.'}, 'memory_mb': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 256, 'description': 'Override the version memory.'}, 'application': {'type': 'string', 'description': 'Application name.'}}}
edgegap_get_deployment
Get deployment status
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.
Nur Lesen Externer Zugriff
Eingabeschema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['request_id'], 'properties': {'request_id': {'type': 'string', 'description': 'The request_id returned by edgegap_deploy.'}}}
edgegap_get_deployment_logs
Get container logs for a deployment
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.
Nur Lesen Externer Zugriff
Eingabeschema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['request_id'], 'properties': {'request_id': {'type': 'string', 'description': 'The request_id of the deployment.'}, 'max_characters': {'type': 'integer', 'maximum': 50000, 'minimum': 500, 'description': 'Truncate logs to this length, keeping the tail. Default 8000.'}}}
edgegap_list_apps
List Edgegap applications
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.
Nur Lesen Externer Zugriff
Eingabeschema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'page': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1}, 'limit': {'type': 'integer', 'maximum': 100, 'minimum': 1, 'description': 'Results per page. Default 50.'}}}
edgegap_list_app_versions
List versions of an application
List the versions under an application, with their container image and resource settings. Use this to find the version name to deploy, or to copy settings from a working version when creating a new one.
Nur Lesen Externer Zugriff
Eingabeschema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['application'], 'properties': {'application': {'type': 'string', 'description': 'Application name, as returned by edgegap_list_apps.'}}}
edgegap_list_deployments
List running deployments
List active deployments, optionally filtered. Use this to find deployments left running from earlier sessions before starting new ones — orphaned servers cost money.
Nur Lesen Externer Zugriff
Eingabeschema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'limit': {'type': 'integer', 'maximum': 100, 'minimum': 1, 'description': 'Default 50.'}, 'filter': {'type': 'string', 'description': 'Edgegap filter expression, e.g. by tag. Omit for all deployments.'}}}
edgegap_stop_deployment
Stop a deployment
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; bulk stop is deliberately not exposed.
Destruktiv Externer Zugriff Idempotent
Eingabeschema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['request_id'], 'properties': {'request_id': {'type': 'string', 'description': 'The request_id of the deployment to stop.'}}}
edgegap_wait_for_deployment
Wait for a deployment to become ready
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.
Nur Lesen Externer Zugriff Idempotent
Eingabeschema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['request_id'], 'properties': {'request_id': {'type': 'string', 'description': 'The request_id returned by edgegap_deploy.'}, 'timeout_seconds': {'type': 'integer', 'maximum': 600, 'minimum': 5, 'description': 'How long to wait before giving up. Default 180.'}}}
Hinzugefügt
edgegap_get_deployment_logs
17. September 2026 12:39
Hinzugefügt
edgegap_stop_deployment
17. September 2026 12:39
Hinzugefügt
edgegap_list_deployments
17. September 2026 12:39
Hinzugefügt
edgegap_wait_for_deployment
17. September 2026 12:39
Hinzugefügt
edgegap_get_deployment
17. September 2026 12:39
Hinzugefügt
edgegap_deploy
17. September 2026 12:39
Hinzugefügt
edgegap_create_app_version
17. September 2026 12:39
Hinzugefügt
edgegap_list_app_versions
17. September 2026 12:39
Hinzugefügt
edgegap_create_app
17. September 2026 12:39
Hinzugefügt
edgegap_list_apps
17. September 2026 12:39