{"name":"dev.edgegap/mcp","slug":"edgegap-mcp","title":"Edgegap","description":"Deploy and operate multiplayer game servers on Edgegap's global edge network.","url":"https://mcp.market/server/edgegap-mcp","rating":null,"grade":"A","score":92,"certified":false,"status":"active","category":"devtools","tags":["devtools"],"presence":{"score":40,"stars":1,"forks":0,"downloads_week":547,"last_push_at":"2026-09-17T13:23:01.000Z","license":"Apache-2.0"},"claimed":false,"transport":"mixed","callable_via_gateway":true,"default_price_micros":0,"repository":"https://github.com/edgegap/edgegap-mcp","website":"https://edgegap.com","version":"0.1.4","remotes":[{"type":"streamable-http","url":"https://mcp.edgegap.dev/mcp","headers":[{"description":"Edgegap API token (organization-wide; cannot be scoped to one application).","isRequired":true,"value":"Bearer {token}","isSecret":true,"variables":{"token":{"description":"Generate at https://app.edgegap.com/user-settings?tab=tokens","isRequired":true,"isSecret":true}},"name":"Authorization"}]}],"packages":[{"registryType":"npm","identifier":"@edgegap/mcp","version":"0.1.4","transport":{"type":"stdio"},"environmentVariables":[{"description":"Edgegap API token. Optional — omit it and you're prompted at first use.","format":"string","isSecret":true,"name":"EDGEGAP_API_TOKEN"}]}],"tools":[{"name":"edgegap_create_app","description":"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.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"name":{"type":"string","minLength":3,"maxLength":64,"description":"Application name, 3-64 chars. Usually the game or project name."},"is_active":{"description":"Whether deployments are allowed. Default true.","type":"boolean"}},"required":["name"],"$schema":"https://json-schema.org/draft/2020-12/schema"}},{"name":"edgegap_create_app_version","description":"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.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"application":{"type":"string","description":"Existing application name."},"name":{"type":"string","minLength":1,"maxLength":64,"description":"Version identifier, typically a build ID or timestamp."},"docker_repository":{"type":"string","description":"Registry host, e.g. \"docker.io\" or \"registry.edgegap.com\"."},"docker_image":{"type":"string","description":"Namespaced image, e.g. \"mystudio/game-server\"."},"docker_tag":{"type":"string","description":"Image tag. Use a build ID, not \"latest\"."},"cpu_units":{"type":"integer","minimum":256,"maximum":9007199254740991,"description":"vCPU units. 1024 = 1 vCPU."},"memory_mb":{"type":"integer","minimum":256,"maximum":9007199254740991,"description":"Memory in MB. At most 2x cpu_units."},"ports":{"minItems":1,"type":"array","items":{"type":"object","properties":{"port":{"type":"integer","minimum":1,"maximum":59999,"description":"Port the server listens on."},"protocol":{"type":"string","description":"UDP, TCP, WS, or HTTP. Most game servers use UDP."},"name":{"description":"Label, e.g. \"gameport\".","type":"string"},"to_check":{"description":"Readiness check on this port. Default true.","type":"boolean"}},"required":["port","protocol"]},"description":"Ports to expose. At least one is required for players to connect."},"registry_username":{"description":"Registry username, for private images.","type":"string"},"registry_token":{"description":"Registry password or token.","type":"string"},"max_duration_minutes":{"description":"Auto-stop after this many minutes. Keeps test deployments from running up cost.","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"verify_image":{"description":"Verify Edgegap can pull the image before accepting the version.","type":"boolean"},"env":{"description":"Environment variables injected into the container.","type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"}},"required":["key","value"]}}},"required":["application","name","docker_repository","docker_image","docker_tag","cpu_units","memory_mb","ports"],"$schema":"https://json-schema.org/draft/2020-12/schema"}},{"name":"edgegap_deploy","description":"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.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"application":{"type":"string","description":"Application name."},"version":{"type":"string","description":"Version name within the application."},"users":{"type":"object","properties":{"ip_addresses":{"description":"Public IPv4/IPv6 addresses of the players. Edgegap places the server near them.","type":"array","items":{"type":"string"}},"geo_coordinates":{"description":"Latitude/longitude pairs, as an alternative to IP addresses.","type":"array","items":{"type":"object","properties":{"latitude":{"type":"number"},"longitude":{"type":"number"}},"required":["latitude","longitude"]}}},"description":"Where the players are. Exactly one of these two is required."},"env":{"description":"Environment variables for this deployment only.","type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"}},"required":["key","value"]}},"tags":{"description":"Tags for filtering later, e.g. [\"agent-test\"]. Recommended.","type":"array","items":{"type":"string"}},"cpu_units":{"description":"Override the version CPU.","type":"integer","minimum":256,"maximum":9007199254740991},"memory_mb":{"description":"Override the version memory.","type":"integer","minimum":256,"maximum":9007199254740991}},"required":["application","version","users"],"$schema":"https://json-schema.org/draft/2020-12/schema"}},{"name":"edgegap_get_deployment","description":"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"request_id":{"type":"string","description":"The request_id returned by edgegap_deploy."}},"required":["request_id"],"$schema":"https://json-schema.org/draft/2020-12/schema"}},{"name":"edgegap_get_deployment_logs","description":"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"request_id":{"type":"string","description":"The request_id of the deployment."},"max_characters":{"description":"Truncate logs to this length, keeping the tail. Default 8000.","type":"integer","minimum":500,"maximum":50000}},"required":["request_id"],"$schema":"https://json-schema.org/draft/2020-12/schema"}},{"name":"edgegap_list_app_versions","description":"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"application":{"type":"string","description":"Application name, as returned by edgegap_list_apps."}},"required":["application"],"$schema":"https://json-schema.org/draft/2020-12/schema"}},{"name":"edgegap_list_apps","description":"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"limit":{"description":"Results per page. Default 50.","type":"integer","minimum":1,"maximum":100},"page":{"type":"integer","minimum":1,"maximum":9007199254740991}},"$schema":"https://json-schema.org/draft/2020-12/schema"}},{"name":"edgegap_list_deployments","description":"List active deployments, optionally filtered. Use this to find deployments left running from earlier sessions before starting new ones — orphaned servers cost money.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"filter":{"description":"Edgegap filter expression, e.g. by tag. Omit for all deployments.","type":"string"},"limit":{"description":"Default 50.","type":"integer","minimum":1,"maximum":100}},"$schema":"https://json-schema.org/draft/2020-12/schema"}},{"name":"edgegap_stop_deployment","description":"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"request_id":{"type":"string","description":"The request_id of the deployment to stop."}},"required":["request_id"],"$schema":"https://json-schema.org/draft/2020-12/schema"}},{"name":"edgegap_wait_for_deployment","description":"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"request_id":{"type":"string","description":"The request_id returned by edgegap_deploy."},"timeout_seconds":{"description":"How long to wait before giving up. Default 180.","type":"integer","minimum":5,"maximum":600}},"required":["request_id"],"$schema":"https://json-schema.org/draft/2020-12/schema"}}],"scan":{"score":92,"grade":"A","scanned_at":"2026-09-19T09:58:16.212Z","report":{"scannerVersion":"0.1.3","scannedAt":"2026-09-19T09:58:16.063Z","components":{"code":{"score":25,"max":25,"notes":["6 source files scanned"]},"reliability":{"score":20,"max":20,"notes":["remote reachable in 705ms"]},"poisoning":{"score":15,"max":15,"notes":["10 tool descriptions checked"]},"auth":{"score":8,"max":15,"notes":["API key sent as a header"]},"maintenance":{"score":15,"max":15,"notes":["last push 2 days ago"]},"identity":{"score":9,"max":10,"notes":["registry namespace matches repository owner","GitHub account older than a year"]}},"findings":[],"inputs":{"probes":[{"url":"https://mcp.edgegap.dev/mcp","reachable":true,"authRequired":false,"latencyMs":705,"serverInfo":{"name":"edgegap","version":"0.1.0"}}],"packages":[{"registryType":"npm","identifier":"@edgegap/mcp","version":"0.1.4","found":true,"license":"Apache-2.0","hasInstallScripts":false,"dependencyCount":4,"publishedAt":"2026-09-16T19:07:39.087Z","weeklyDownloads":547}],"repo":{"found":true,"owner":"edgegap","repo":"edgegap-mcp","archived":false,"pushedAt":"2026-09-17T13:23:01Z","stars":1,"forks":0,"openIssues":0,"ownerType":"Organization","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/78031107?v=4","ownerCreatedAt":"2021-01-26T14:09:23Z","license":"Apache-2.0"},"icon":{"url":"https://framerusercontent.com/images/8kZKNEzsRQepLysuYBuzgaDek.png","source":"site","width":180,"height":180},"presence":{"stars":1,"forks":0,"downloadsWeek":547,"license":"Apache-2.0","lastPushAt":"2026-09-17T13:23:01.000Z","score":40}}}},"grade_history":[],"reviews":[]}