MCP 서버

Edgegap

dev.edgegap/mcp
클라우드 및 인프라 게임 공개 · 연결 가능 MCP 2025-11-25

이 MCP로 할 수 있는 일

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.
외부 접근 가능
입력 스키마
{'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.
외부 접근 가능
입력 스키마
{'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.
외부 접근 가능
입력 스키마
{'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.
읽기 전용 외부 접근 가능
입력 스키마
{'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.
읽기 전용 외부 접근 가능
입력 스키마
{'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.
읽기 전용 외부 접근 가능
입력 스키마
{'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.
읽기 전용 외부 접근 가능
입력 스키마
{'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.
읽기 전용 외부 접근 가능
입력 스키마
{'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.
파괴적 작업 외부 접근 가능 멱등성
입력 스키마
{'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.
읽기 전용 외부 접근 가능 멱등성
입력 스키마
{'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.'}}}
추가됨
edgegap_get_deployment_logs
2026년 9월 17일 12:39 PM
추가됨
edgegap_stop_deployment
2026년 9월 17일 12:39 PM
추가됨
edgegap_list_deployments
2026년 9월 17일 12:39 PM
추가됨
edgegap_wait_for_deployment
2026년 9월 17일 12:39 PM
추가됨
edgegap_get_deployment
2026년 9월 17일 12:39 PM
추가됨
edgegap_deploy
2026년 9월 17일 12:39 PM
추가됨
edgegap_create_app_version
2026년 9월 17일 12:39 PM
추가됨
edgegap_list_app_versions
2026년 9월 17일 12:39 PM
추가됨
edgegap_create_app
2026년 9월 17일 12:39 PM
추가됨
edgegap_list_apps
2026년 9월 17일 12:39 PM