Edgegap

Deploy and operate multiplayer game servers on Edgegap's global edge network.

我該用這個嗎

品質與安全性

A
說明品質
100%
結構描述完整度
97%
命名品質
80%
汙染風險
100%
權限相符程度
100%
協定合規性
100%

根據工具定義與協定合規性的自動化分析。

上下文成本

~2,178Token(工具定義)
~1.7 KB典型回應大小
中等的注意力影響(128k 上下文的 1.70%)

這是每次將伺服器的工具載入模型上下文時所消耗的約略 token 數量。數量越高,可用於其他工作的注意力就越少。

安裝

一鍵安裝

將以下內容加入你的 `claude_desktop_config.json` 檔案:

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

可執行的套件

npm@edgegap/mcp0.1.4stdio

遠端端點

https://mcp.edgegap.dev/mcpstreamable-http

它能做什麼

工具清單

工具(10)

🟢 唯讀🟡 寫入🔴 刪除⚪ 未知
🟢edgegap_list_apps(limit, page)

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",
  "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"
}
🟡edgegap_create_app(name, is_active)

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",
  "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"
}
🟢edgegap_list_app_versions(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",
  "properties": {
    "application": {
      "type": "string",
      "description": "Application name, as returned by edgegap_list_apps."
    }
  },
  "required": [
    "application"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟡edgegap_create_app_version(application, name, docker_repository, docker_image, docker_tag, ...)

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",
  "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"
}
🟡edgegap_deploy(application, version, users, env, tags, ...)

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",
  "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"
}
🟢edgegap_get_deployment(request_id)

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",
  "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"
}
🟢edgegap_wait_for_deployment(request_id, timeout_seconds)

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",
  "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"
}
🟢edgegap_list_deployments(filter, limit)

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",
  "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"
}
🔴edgegap_stop_deployment(request_id)

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",
  "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"
}
🟢edgegap_get_deployment_logs(request_id, max_characters)

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",
  "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"
}

社群

為此伺服器評分

證據

近期觀測

已驗證未記錄版本10 個工具
已驗證未記錄版本10 個工具