Edgegap

oficial

Implante servidores de jogos multiplayer a partir do seu agente de codificação. Dez ferramentas que levam um servidor dedicado Unity, Unreal ou Godot da imagem de contêiner até jogadores conectados.

O que você pode fazer com Edgegap MCP?

  • Implantar um servidor de jogo a partir de uma imagem de contêiner — Peça ao assistente para registrar sua imagem de contêiner com configurações de CPU, memória e porta, e depois iniciá-la perto de jogadores específicos.
  • Acompanhar o status da implantação e detalhes de conexão — Peça ao assistente para verificar até que sua implantação esteja pronta e retornar o endereço de conexão, ou verificar o status e os logs de uma instância em execução.
  • Gerenciar versões de aplicativos — Peça ao assistente para listar aplicativos e versões existentes, ou criar uma nova versão a partir das configurações de uma versão funcional para evitar duplicação.
  • Encerrar implantações de forma graciosa — Instrua o assistente a encerrar uma implantação específica pelo ID da solicitação, enviando um sinal de desligamento limpo em vez de forçar o encerramento.
  • Encontrar e limpar servidores órfãos — Peça ao assistente para listar todas as implantações de sessões anteriores para que você possa identificar e interromper instâncias não utilizadas.

Servidor MCP hospedado

npx add-mcp 'https://mcp.edgegap.dev/mcp'

Instala no Claude Code, Codex, Cursor e outros

Documentação

edgegap-mcp

Um servidor MCP para Edgegap que permite que um agente de codificação leve um desenvolvedor de "eu tenho um contêiner de servidor de jogo" para "os jogadores estão conectados a ele" sem que o desenvolvedor leia a referência da API.

Dez ferramentas, escolhidas a dedo. Não geradas a partir da especificação OpenAPI — veja Escopo para entender o porquê.

Instalação

Duas maneiras de executá-lo. Escolha com base em o quanto você se importa com onde seu token vai — veja Para onde seu token vai.

Endpoint remoto

Hospedado pela Edgegap como um Cloudflare Worker. Nada para instalar.

{
  "mcpServers": {
    "edgegap": {
      "type": "http",
      "url": "https://mcp.edgegap.dev/mcp",
      "headers": { "Authorization": "token YOUR_API_TOKEN" }
    }
  }
}

Também funciona como um conector personalizado no claude.ai: adicione https://mcp.edgegap.dev/mcp e forneça o mesmo token.

Local

Executa na sua própria máquina, iniciado pelo seu editor. Uma linha na configuração do seu cliente MCP, nada para clonar, nada para compilar.

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

Funciona no Claude Code, Cursor, Codex e VS Code. Fixe uma versão em produção (@edgegap/mcp@0.1.5) em vez de flutuar na versão mais recente.

Registrado no registro oficial de MCP como dev.edgegap/mcp.

Versão do Node: o servidor local precisa do Node 18+. Implantar sua própria cópia do Cloudflare Worker precisa do Node 22+, porque wrangler exige isso.

Para onde seu token vai

Isso difere por modo, e a diferença é o motivo pelo qual ambos os modos existem.

Local. O servidor roda como um processo no seu próprio computador. A primeira chamada de ferramenta pede um token, mostra o que ele autoriza e exige uma confirmação explícita antes de aceitá-lo. Onde esse token então reside, de forma exaustiva:

  • uma variável na memória desse processo, pela vida útil da sua sessão de editor

Essa é a lista completa. Não em disco. Não em um arquivo de configuração. Não em logs. Não em nenhum servidor Edgegap — a única coisa enviada para a Edgegap é a própria chamada de API, exatamente como se você tivesse executado curl. Fechar seu editor revoga completamente o acesso deste servidor.

Remoto. Seu token é enviado para mcp.edgegap.dev em cada solicitação e encaminhado de lá para a API da Edgegap. Ele transita pela infraestrutura que a Edgegap opera. O worker o mantém pela vida útil da solicitação e não o persiste, mas isso é uma afirmação de "não armazenamos" em vez de "nunca vemos". As duas coisas são diferentes, e apenas o modo local faz a segunda.

Gere um token em https://app.edgegap.com/user-settings?tab=tokens.

No modo local, definir EDGEGAP_API_TOKEN tem precedência sobre o prompt, para CI e para clientes que não podem exibir prompts. Não passe um token como argumento de linha de comando — argumentos são visíveis para outros processos via ps, e o servidor avisa se detectar um.

Qual usar. Remoto para uma primeira tentativa, uma demonstração ou uma sessão supervisionada onde o atrito de configuração importa mais do que a custódia. Local para qualquer coisa não supervisionada, qualquer coisa em uma organização com um jogo ativo, e qualquer coisa onde você prefere não estender confiança que não precisa. As proteções descritas abaixo existem apenas no modo local.

Leia isto antes de conectar um agente

O token da API Edgegap não pode ser escopado. Um token autoriza todos os aplicativos, todas as versões, todas as implantações em execução e seu uso em toda a organização. Não há token somente de implantação e nenhum token por aplicativo.

Consequências que valem a pena considerar com cuidado:

  • Um agente que detém este token pode parar implantações de produção, não apenas as de teste que ele criou.
  • Injeção de prompt que chega ao agente — de um arquivo de repositório, uma issue, uma página buscada — também chega ao token.
  • Qualquer coisa que o agente registre, ecoe ou envie a um provedor de modelo é um lugar onde o token pode acabar. Este servidor não o registra, mas não pode controlar o que o resto do agente faz.
  • No endpoint remoto, o mesmo token sem escopo é adicionalmente manipulado pelo worker da Edgegap em cada chamada.

Configuração recomendada, em ordem decrescente de cautela:

SituaçãoConfiguração
Agente não supervisionado ou autônomoModo local. Organização separada de não produção, além de EDGEGAP_READ_ONLY=1
Agente supervisionado, jogo ativo na organizaçãoModo local. EDGEGAP_APP_ALLOWLIST escopado ao aplicativo em que se está trabalhando, além de EDGEGAP_MAX_DURATION_MINUTES. Leia Escopo da lista de permissões primeiro — implantações já em execução não são cobertas
Desenvolvedor solo, sem carga de produçãoQualquer modo. Os padrões são suficientes; revogue o token quando terminar

A lista de permissões e o sinalizador somente leitura são aplicados no servidor local, o que significa que protegem contra um agente que comete um erro, não contra um que foi comprometido a chamar a API diretamente. Eles reduzem o raio de explosão; não o eliminam.

Escopo da lista de permissões

EDGEGAP_APP_ALLOWLIST é aplicado pelas quatro ferramentas que recebem um nome de aplicativo: edgegap_create_app, edgegap_list_app_versions, edgegap_create_app_version e edgegap_deploy.

Ele não é aplicado pelas cinco ferramentas baseadas em request_id: edgegap_get_deployment, edgegap_wait_for_deployment, edgegap_list_deployments, edgegap_stop_deployment e edgegap_get_deployment_logs. Um agente rodando com uma lista de permissões definida pode listar todas as implantações na organização e então inspecionar, ler os logs ou parar qualquer uma delas — incluindo implantações pertencentes a aplicativos fora da lista.

Portanto, a lista de permissões limita o que um agente pode criar e implantar, não o que ele pode tocar uma vez em execução. Isso é mais restrito do que versões anteriores deste documento implicavam.

Para uma garantia mais forte hoje, use EDGEGAP_READ_ONLY=1, que nunca registra as cinco ferramentas de mutação, ou aponte o agente para uma organização separada de não produção. Ambos não são afetados por essa lacuna.

Relatado por Syed Anas Mohiuddin, setembro de 2026.

Variáveis de ambiente

Estas configuram o servidor local. No endpoint remoto, elas são definidas pela Edgegap e não podem ser alteradas por desenvolvedor — se você precisar de alguma delas, execute localmente.

VariávelPadrãoFinalidade
EDGEGAP_API_TOKEN(solicitado)Token da API. Opcional — omita-o e o desenvolvedor será perguntado no primeiro uso. O prefixo token é adicionado para você.
EDGEGAP_READ_ONLY0Defina como 1 e as cinco ferramentas de mutação nunca serão registradas. O agente não pode vê-las, então não pode ser convencido a chamá-las.
EDGEGAP_APP_ALLOWLIST(vazio)Nomes de aplicativos separados por vírgula. Quando definido, as quatro ferramentas baseadas em aplicativos se recusam a tocar em qualquer outra coisa. Não limita as cinco ferramentas baseadas em request_id — veja Escopo da lista de permissões.
EDGEGAP_MAX_DURATION_MINUTES60Teto sobre max_duration que o agente pode definir em uma versão. Limita custos descontrolados de um agente não supervisionado.
EDGEGAP_TIMEOUT_MS30000Tempo limite de HTTP por solicitação.

Ferramentas

Dez ferramentas, listadas na ordem em que aparecem ao longo do caminho dourado. As mesmas dez em ambos os modos.

FerramentaMutaçãoPara que serve
edgegap_list_appsOrientar antes de fazer qualquer coisa. Evita aplicativos duplicados.
edgegap_create_appCriar o contêiner para versões.
edgegap_list_app_versionsEncontrar uma versão implantável, ou copiar configurações de uma que funciona.
edgegap_create_app_versionRegistrar uma imagem de contêiner com CPU, memória e portas.
edgegap_deployIniciar uma instância perto de jogadores especificados.
edgegap_get_deploymentLeitura de status única.
edgegap_wait_for_deploymentConsultar até ficar pronto com backoff, então retornar o endereço de conexão.
edgegap_list_deploymentsEncontrar servidores órfãos de sessões anteriores.
edgegap_stop_deploymentSIGTERM gracioso, uma implantação por vez.
edgegap_get_deployment_logsSaída do contêiner e código de saída de falha após uma falha.

Decisões de design

Curado, não gerado. A API da Edgegap tem aproximadamente sessenta operações. Gerar automaticamente uma ferramenta por operação coloca todas as sessenta descrições no contexto do agente a cada turno e degrada mensuravelmente a seleção de ferramentas. Estas dez cobrem o caminho que converte um novo desenvolvedor.

wait_for_deployment é uma ferramenta, não um loop. Deixado por conta própria, um agente chamará um endpoint de status em um loop apertado, queimará turnos e desistirá cedo. Dobrar a consulta e o backoff em uma única chamada remove a falha mais comum em implantações dirigidas por agentes.

Erros são escritos para autocorreção. Um 424 retorna dizendo que a imagem não pôde ser puxada e quais campos verificar. Um 422 diz para tentar coordenadas diferentes ou reduzir a solicitação de recursos. O agente pode agir sobre isso sem uma ida e volta ao humano.

Validação local antes do envio. A proporção memória-CPU e a localização ausente do jogador são capturadas aqui em vez de aparecerem como um 400 opaco.

Operações em massa estão deliberadamente ausentes. stop recebe um request_id. Não há ferramenta de parada em massa, porque um agente com uma expressão de filtro e um bug pode parar uma frota de produção.

Tanto um endpoint hospedado quanto um pacote local. O endpoint hospedado remove cada etapa entre encontrar este servidor e chamar uma ferramenta, que é onde a maioria dos desenvolvedores desiste. O pacote local é a única maneira de executar o servidor sem estender a custódia de um token sem escopo a terceiros, incluindo nós. Nenhum domina o outro, então ambos são enviados. Veja worker/DECISION.md para a versão mais longa.

Escopo

Não exposto, de propósito: matchmaking, relays, frotas privadas, frotas inteligentes, armazenamento de endpoints, entradas ACL/whitelist, tags de implantação, métricas, gerenciamento de registro de contêineres, configuração de DNS.

Estas são capacidades reais, mas pertencem a estúdios que já operam na plataforma, não a um desenvolvedor implantando seu primeiro servidor. Adicioná-las trocaria o caminho de conversão por área de superfície.

Limitação conhecida: pedir o token

Isso se aplica ao modo local, onde o token é coletado por elicitação em vez de lido da configuração.

A especificação MCP diz que servidores não devem usar elicitação para coletar dados sensíveis, e um token de API é sensível. Este servidor faz isso mesmo assim, porque exigir um token em um arquivo de configuração antes que qualquer coisa funcione é a maior queda no funil de integração, e o objetivo do servidor é remover o atrito de configuração.

Isso é uma troca deliberada, não um padrão a copiar. O que a torna defensável é o conjunto de mitigações em src/auth.ts — armazenamento somente em memória, divulgação em linguagem simples, confirmação obrigatória, redação de toda a saída e a variável de ambiente sempre vencendo quando presente. Remover qualquer uma delas quebra a troca.

A correção real está no lado da Edgegap e melhoraria ambos os modos: credenciais escopadas, revogáveis e somente de implantação, emitidas via OAuth em vez de coladas como um segredo. Até que existam, o prompt interativo é um workaround e é rotulado como tal no código.

Desenvolvimento

npm run typecheck
node smoke.mjs      # handshake, tool registration, read-only mode
node guards.mjs     # local validation and allowlist enforcement
node elicit.mjs     # token prompt: accept, refuse acknowledgement, decline, no support

Nenhum destes faz chamadas de rede. elicit.mjs afirma que o prompt declara o escopo de toda a organização, que a confirmação é obrigatória, que o token nunca aparece na saída da ferramenta e que recusar produz uma mensagem de parar e relatar em vez de um loop de repetição.