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?

  • Escreva um Dockerfile — Peça ao seu agente para gerar um Dockerfile para um build de servidor Unity, Unreal, Godot ou outro, com flags headless e portas correspondentes.
  • Valide antes de compilar — Verifique se há problemas em um Dockerfile existente, nas portas, nos recursos e na tag da imagem, como imagens ARM ou servidores vinculados ao localhost.
  • Implante um servidor dedicado — Registre uma imagem como versão do app, escolha uma localização, implante perto dos jogadores e obtenha o IP e as portas do servidor.
  • Diagnostique uma implantação com falha — Leia os logs do contêiner, os detalhes da falha e as métricas de CPU/memória para descobrir por que um servidor falhou ou travou.
  • Configure uma sessão de relay — Crie um relay para jogos host-client e obtenha o endereço do relay e o token de autorização de cada jogador.

Servidor MCP hospedado

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

Instala no Claude Code, Codex, Cursor e outros

Documentação

Edgegap MCP Server

Conecte agentes de programação com IA à Edgegap por meio do nosso servidor MCP. Seu agente pode levar uma build de servidor headless até a conexão dos jogadores: escrever ou verificar o Dockerfile, enviar a imagem para seu registro privado da Edgegap, implantar um servidor dedicado autoritativo perto dos jogadores e ler os logs quando algo der errado.

Install in Cursor Install in VS Code

👉 Recursos compatíveis

[!TIP] Usa Unity, Unreal Engine ou Godot? Nossos guias e plugins para Unity, Unreal Engine e Godot continuam sendo o caminho mais rápido para essas engines. O servidor MCP funciona junto com eles e também de forma independente, para qualquer engine.

Use nosso servidor MCP quando:

  • Containerizar seu servidor de jogo - seu agente escreve um Dockerfile para sua build (ou revisa o que você já tem) de acordo com as práticas recomendadas, envia a imagem para nosso registro privado de contêineres e remove tags antigas de imagens que não estão sendo usadas para liberar espaço no registro.
  • Implantar um servidor dedicado - criar e atualizar versões de aplicativos, consultar os locais disponíveis, implantar perto dos jogadores e obter o IP do servidor e as portas para testar a conexão do cliente.
  • Criar um pipeline de CI/CD - testar suas implantações e a remoção delas a partir de um sistema de build.
  • Solucionar problemas em um servidor de jogo - inspecionar versões de aplicativos e o status da implantação, ler logs de contêiner e a utilização de CPU/memória ou reproduzir uma implantação com falha.
  • Executar jogos com host-cliente e ponto a ponto - criar sessões de relay que oferecem travessia de NAT e evitam bloqueios de conexão. Consulte Modelos de orquestração e Servidores dedicados ou relays? antes de decidir.

[!WARNING] Fora do escopo / não compatível com MCP: criar o executável do servidor Linux; criar, iniciar ou parar um matchmaker (envie a configuração gerada pelo dashboard); navegador de servidores; lobbies; clusters gerenciados; frotas privadas; ou cobrança.

[!NOTE] Se precisar de ajuda, fale conosco pelo Discord. Para obter suporte para jogos em produção, consulte nosso sistema de tickets.

⚖️ Servidores dedicados ou relays?

A Edgegap pode hospedar seu jogo multijogador de duas maneiras. Recomendamos servidores dedicados, assim como nosso servidor MCP: seu agente usará um servidor dedicado por padrão e só usará um relay quando você escolher uma configuração de host-cliente.

Servidor dedicado (recomendado)Relay
O que a Edgegap executaSua build de servidor headless, perto dos jogadoresApenas um encaminhador de tráfego, sem código do jogo
Quem executa o jogoO servidorO jogo de um jogador (o host)
TrapaçasMuito mais difíceis, o servidor tem autoridadeO host pode alterar qualquer coisa
JustiçaTodos os jogadores se conectam diretamente ao servidorO host não tem latência; todos os outros passam por dois saltos
Quando o host saiA partida continuaA partida termina, a menos que seu jogo ofereça suporte à migração de host
Desempenho limitado porCPU e memória alocadas ao servidorO PC e a velocidade de upload da internet residencial do host
Você precisa deUma build de servidor em uma imagem de contêinerNetcode configurado como servidor de escuta (host-cliente)

[!NOTE] Ainda não tem uma imagem de servidor? Isso não é motivo para escolher relays. Seu agente pode escrever o Dockerfile para sua build com edgegap_generate_dockerfile. Saiba mais sobre relays em Relay distribuído.

🚀 Instalação

A instalação do servidor MCP é muito simples:

  1. Instale o servidor MCP para Agentes populares ou com Integração personalizada.
  2. Gere e associe um token de API para seu agente usar com nosso servidor MCP.

Gere (e visualize) seus tokens secretos para a API da Edgegap em Dashboard - User Settings / Tokens.

Adicione seu token secreto a cada solicitação de API como um cabeçalho HTTP (inclua a palavra token):

Authorization: token xxxxxxxx-e458-4592-b607-c2c28afd8b62

[!CAUTION] Não integre endpoints da API da Edgegap ao cliente do jogo, pois seu token de API oferece acesso ilimitado à sua conta. Consulte Integração para ver endpoints e funções de API seguros para clientes.

[!TIP] Se seus tokens secretos forem comprometidos ou vazarem, exclua-os e crie novos no dashboard.

O token é válido para toda a organização e não pode ser limitado a um único aplicativo. Leia DESIGN.md antes de fornecê-lo a um agente sem supervisão.

Agentes populares

Instale o servidor MCP da Edgegap no seu IDE agêntico preferido usando os botões Cursor ou VS Code no topo desta página e, em seguida, adicione seu token ao cabeçalho Authorization.

Claude Code

claude mcp add --transport http edgegap https://mcp.edgegap.dev/mcp \
  -H "Authorization: token xxxxxxxx-e458-4592-b607-c2c28afd8b62" --scope user

ChatGPT Codex

O Codex lê o token de uma variável de ambiente e o envia como Authorization: Bearer <token>, que o endpoint hospedado aceita. Em ~/.codex/config.toml:

[mcp_servers.edgegap]
url = "https://mcp.edgegap.dev/mcp"
bearer_token_env_var = "EDGEGAP_API_TOKEN"

Em seguida, defina EDGEGAP_API_TOKEN como seu token no ambiente a partir do qual o Codex é iniciado.

Claude Desktop e claude.ai

Os conectores personalizados no claude.ai e no Claude Desktop não podem enviar um cabeçalho Authorization, então o endpoint hospedado nunca recebe seu token por meio deles: o conector aparece como conectado, mas todas as chamadas de ferramentas falham. Use o Servidor local.

No Claude Desktop, abra Settings → Developer → Edit Config e adicione o servidor local a claude_desktop_config.json:

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

Deixe o token de fora e ele será solicitado na primeira utilização. O claude.ai no navegador não consegue executar um servidor local, então não pode usar o Edgegap MCP até que o endpoint hospedado ofereça suporte a OAuth.

Cursor

O botão Cursor no topo desta página instala o servidor; para fazer isso manualmente, adicione o seguinte a ~/.cursor/mcp.json (ou a .cursor/mcp.json em um projeto):

{
  "mcpServers": {
    "edgegap": {
      "url": "https://mcp.edgegap.dev/mcp",
      "headers": { "Authorization": "token xxxxxxxx-e458-4592-b607-c2c28afd8b62" }
    }
  }
}

VS Code (modo de agente do Copilot)

O botão VS Code no topo desta página instala o servidor; para fazer isso manualmente, adicione o seguinte a .vscode/mcp.json (o VS Code usa servers, não mcpServers):

{
  "servers": {
    "edgegap": {
      "type": "http",
      "url": "https://mcp.edgegap.dev/mcp",
      "headers": { "Authorization": "token xxxxxxxx-e458-4592-b607-c2c28afd8b62" }
    }
  }
}

Windsurf

Em ~/.codeium/windsurf/mcp_config.json, execute o Servidor local, que funciona em qualquer cliente que inicie servidores MCP como comandos:

{
  "mcpServers": {
    "edgegap": {
      "command": "npx",
      "args": ["-y", "@edgegap/mcp"],
      "env": { "EDGEGAP_API_TOKEN": "xxxxxxxx-e458-4592-b607-c2c28afd8b62" }
    }
  }
}

mcp.json

A maioria dos IDEs agênticos também oferece suporte à integração colando uma configuração JSON:

{
    "mcpServers": {
        "Edgegap": {
            "type": "http",
            "url": "https://mcp.edgegap.dev/mcp",
            "headers": {
                "Authorization": "token xxxxxxxx-e458-4592-b607-c2c28afd8b62"
            }
        }
    }
}

Integração personalizada

Instale o servidor MCP remoto da Edgegap no ambiente virtualizado do seu agente (nunca no seu projeto!):

Node, usando o pacote npx mcp-remote

{
  "command": "npx",
  "args": ["-y", "mcp-remote", "https://mcp.edgegap.dev/mcp", "--transport", "http-only"]
}

Python, usando o pacote uvx mcp-proxy

{
  "command": "uvx",
  "args": ["mcp-proxy", "--transport", "streamablehttp", "https://mcp.edgegap.dev/mcp"]
}

Instalação com um clique (Claude Desktop)

Baixe edgegap-mcp.mcpb e abra o arquivo: o Claude Desktop instala o servidor local como uma extensão e solicita seu token de API, que é armazenado no armazenamento seguro do sistema operacional. As configurações da extensão também incluem o modo somente leitura, a lista de permissões de aplicativos, o limite máximo de duração e o limite de implantações (as variáveis abaixo). Cada versão inclui o pacote, criado a partir do código dessa versão. Qualquer outro aplicativo que instale pacotes MCPB funciona da mesma maneira.

Servidor local

Para manter seu token de API na sua própria máquina, execute o servidor localmente. Deixe o token de fora e seu agente o solicitará na primeira utilização, mantendo-o apenas na memória durante essa sessão:

{
  "mcpServers": {
    "Edgegap": {
      "command": "npx",
      "args": ["-y", "@edgegap/mcp"],
      "env": { "EDGEGAP_API_TOKEN": "xxxxxxxx-e458-4592-b607-c2c28afd8b62" }
    }
  }
}

Requer Node 18+. Fixe uma versão em produção (@edgegap/mcp@0.15.4) em vez de usar a versão mais recente sem fixá-la. Registrado no registro oficial do MCP como dev.edgegap/mcp.

O servidor local também pode limitar o que um agente pode fazer. Estas variáveis não têm efeito no endpoint hospedado em mcp.edgegap.dev:

VariávelPadrãoFinalidade
EDGEGAP_API_TOKEN(solicitado)Token de API. Opcional: omita-o e ele será solicitado na primeira utilização. O prefixo token é adicionado automaticamente. Nunca o passe como argumento de linha de comando.
EDGEGAP_READ_ONLY0Defina como 1 e as ferramentas que alteram algo (marcadas com ● em Ferramentas) nunca serão registradas, impedindo que o agente seja convencido a chamá-las.
EDGEGAP_APP_ALLOWLIST(vazio)Nomes de aplicativos separados por vírgulas. Limita os aplicativos nos quais o agente pode criar e implantar. A leitura (listagem de aplicativos e versões) não é limitada, nem a interação com implantações já em execução. Consulte DESIGN.md.
EDGEGAP_MAX_DURATION_MINUTES60Limite máximo de max_duration que o agente pode definir em uma versão. edgegap_deploy também recusa uma versão cujo max_duration esteja acima desse limite ou seja ilimitado, a menos que o agente passe allow_long_running: true depois de perguntar a você.
EDGEGAP_MAX_AGENT_DEPLOYMENTS5edgegap_deploy recusa a solicitação enquanto este número de implantações marcadas com edgegap-mcp estiver em execução. 0 desativa o limite.
EDGEGAP_MAX_DEPLOYS_PER_RUN20Implanta um processo de servidor que pode enviar, incluindo os que falharam. Reinicie o servidor para redefinir o contador. 0 desativa o limite.
EDGEGAP_STOP_OWN_ONLY0Defina como 1 e edgegap_stop_deployment só interrompe implantações marcadas com edgegap-mcp, impedindo que o agente pare servidores que não iniciou.
EDGEGAP_ENABLE_SKILLS_UPDATE0Defina como 1 para permitir que edgegap_update_skills execute npx skills@1.7.4 update ou claude plugin update com apply: true. Sem isso, ele lista os comandos para você executar. As skills copiadas manualmente são reescritas a partir do pacote de qualquer forma. Os atualizadores recebem apenas configurações de caminho, diretório inicial, temporários, localidade, proxy e npm, nunca variáveis EDGEGAP_* nem qualquer variável com nome que contenha token, secret, password ou key.
EDGEGAP_TIMEOUT_MS30000Tempo limite HTTP por solicitação.
EDGEGAP_SKILLS_CHECKonDefina como off e as ferramentas de skills nunca lerão do GitHub a versão mais recente das skills.

Windows

O servidor local funciona no Windows com Node.js 18 ou mais recente, e a CI executa a build e os testes stdio no Windows.

  • Muitos clientes MCP do Windows não conseguem iniciar npx diretamente, pois é um script .cmd. Inicie-o por meio de cmd /c: "command": "cmd", "args": ["/c", "npx", "-y", "@edgegap/mcp"]. No Claude Code: claude mcp add Edgegap --env EDGEGAP_API_TOKEN=<token> -- cmd /c npx -y @edgegap/mcp.
  • No PowerShell, digite npx.cmd em vez de npx para executá-lo manualmente: uma nova instalação do Windows bloqueia o script do PowerShell npx ("a execução de scripts está desabilitada neste sistema").
  • A primeira inicialização baixa o pacote e pode demorar; as inicializações seguintes são rápidas.
  • edgegap_update_skills encontra as skills instaladas em %USERPROFILE%, da mesma forma que no macOS e no Linux.

📚 Skills

O servidor inclui as skills de agente da Edgegap: fluxos de trabalho testados e passo a passo para colocar um jogo multijogador online, com modelos (Dockerfiles, configurações de matchmaker, componentes prontos para Unity C# e Unreal C++) e problemas conhecidos. Qualquer agente conectado ao Edgegap MCP tem acesso a elas, sem instalação separada nem token, e recebe instruções para carregar a skill correspondente antes de trabalhar em um projeto de jogo.

HabilidadePara
edgegapComece aqui para qualquer engine que não seja Unity ou Unreal Engine, ou para dúvidas sobre plataformas. Direciona para as demais.
edgegap-unityUnity de ponta a ponta: build do servidor, matchmaker, cliente, teste de ponta a ponta.
edgegap-ngoUnity com Netcode for GameObjects de ponta a ponta: inicialização e encerramento automático do servidor, painel Find Match, adaptador Boss Room, matchmaker.
edgegap-fishnetUnity com FishNet de ponta a ponta: servidor headless, Bayou/WebGL, matchmaker, teste de ponta a ponta.
edgegap-purrnetUnity com PurrNet de ponta a ponta: servidor dedicado, painel de conexão, matchmaker, teste de ponta a ponta.
edgegap-fusionUnity com Photon Fusion 2 de ponta a ponta: servidor Linux IL2CPP, servidor vinculado a 0.0.0.0, implantação no Edgegap, kit BR200.
edgegap-fusion-simplefpsExemplo Simple FPS da Photon em servidores dedicados Edgegap.
edgegap-godotGodot 4 com servidor dedicado Godot: exportação headless, ENet ou WebSocket, matchmaker.
edgegap-colyseusServidores Colyseus no Edgegap, diretamente ou pelo matchmaker.
edgegap-nakamaNakama como backend, iniciando servidores Edgegap para suas partidas.
edgegap-playfabPlayFab Matchmaking com servidores Edgegap.
edgegap-threejsThree.js e outros jogos de navegador com servidor Node.js próprio.
edgegap-matchmakingDesign de matchmaking para qualquer engine: quem é responsável, perfis, grupos, seleção de região, backfill, matchmakers de terceiros.
edgegap-manusJogos de navegador criados com Manus: matchmaking no backend, login do Steam, tokens de entrada assinados, servidor Node WebSocket.
edgegap-unrealUnreal Engine de ponta a ponta: engine compilada a partir do código-fonte, servidor Linux, matchmaker, teste de ponta a ponta.
edgegap-eos-voiceChat de voz para um jogo Unreal no Edgegap com EOS Voice: tokens de sala no servidor, salas de partida e de equipe.
edgegap-server-designDesign de servidor autoritativo e ciclo de vida da implantação.
edgegap-containerizeO contrato do contêiner, Dockerfiles, registros, versões do app.
edgegap-local-testingTestes de paridade na sua máquina e, depois, uma implantação de teste rápido.
edgegap-troubleshootErros de pull, ciclos de falha, falta de memória, clientes que não conseguem se conectar.
edgegap-deployments-apiCódigo de backend que implanta servidores: webhooks, limpeza, Nakama, PlayFab, UGS, EOS.
edgegap-launchLista de verificação de lançamento, implantações graduais, cache, controle de custos.

Eles são disponibilizados de três formas, para que todos os clientes MCP possam acessá-los:

  • Ferramentas: edgegap_list_skills e edgegap_get_skill, que carrega o SKILL.md de uma habilidade ou um de seus documentos de referência ou modelos com file.
  • Prompts: deploy-game-server ("Implante meu servidor de jogo no Edgegap") é o ponto de partida: identifica a engine e o netcode, carrega a habilidade correspondente e orienta você pelo caminho recomendado, incluindo a limpeza. Há também um prompt por habilidade, com o nome dela. No Claude Code, eles aparecem como comandos de barra, por exemplo, /mcp__edgegap__deploy-game-server.
  • Recursos: o SKILL.md de cada habilidade é listado em edgegap-skill://<skill>/SKILL.md; todos os outros arquivos são lidos pelo modelo edgegap-skill://{skill}/{+path}, por exemplo, edgegap-skill://edgegap-unity/references/deploy.md.

Cada versão inclui as habilidades do commit fixado em scripts/skills-pin.txt; edgegap_context informa qual pacote está carregado. edgegap_list_skills também lê no GitHub a versão mais recente do pacote (um único número de versão, armazenado em cache por uma hora; EDGEGAP_SKILLS_CHECK=off desativa esse recurso) e informa quando há uma versão mais nova; edgegap_get_skill adiciona a mesma observação abaixo do cabeçalho de uma habilidade.

Como manter as habilidades instaladas atualizadas. Se você também instalou as habilidades no seu agente (o plugin do Claude Code edgegap@edgegap, npx skills add edgegap/llm-agent-skills ou pastas copiadas para ~/.claude/skills), edgegap_update_skills compara cada uma com a versão mais recente no GitHub. No servidor local, ele encontra essas instalações automaticamente; com apply: true, executa npx skills update (somente habilidades Edgegap) ou claude plugin update e reescreve as habilidades copiadas manualmente usando os arquivos incluídos nesta versão, preservando os arquivos que você adicionou e deixando symlinks e checkouts do git intactos. Ele nunca baixa o texto das habilidades. O servidor hospedado não consegue acessar seu disco: informe as versões carregadas em installed_versions e ele indicará quais estão desatualizadas e como atualizá-las.

🧰 Ferramentas

Seu agente escolhe a ferramenta certa com base na sua solicitação. Você não precisa indicar qual usar, mas saber o que está disponível ajuda a fazer pedidos. As ferramentas marcadas com ● alteram algo na sua conta, aceitam dry_run e ficam ocultas quando EDGEGAP_READ_ONLY=1.

FerramentaO que faz
edgegap_contextMostra com qual API este servidor se comunica, sua versão, se é local ou hospedado e quais proteções estão em vigor. Não faz chamadas à API; nunca mostra o token.

Antes da sua primeira implantação

FerramentaO que faz
edgegap_generate_dockerfileCria um Dockerfile para o build do seu servidor: pasta de build, binário do servidor ou script de inicialização, portas e argumentos de inicialização, com as flags headless corretas (Unity -batchmode -nographics, Godot --headless), um usuário sem privilégios para Unreal e portas correspondentes. Lista tudo o que precisou presumir para que seu agente possa confirmar. Funciona com Unity, Unreal Engine, Godot e qualquer outra engine.
edgegap_validate_server_configVerifica um Dockerfile existente, as portas, os recursos e a tag da imagem antes do build. Detecta imagens ARM ou Windows (o Edgegap executa linux/amd64), servidores Unreal executados como root, ausência de -batchmode -nographics no Unity, servidores vinculados a localhost, portas incompatíveis com o transporte de netcode e a tag latest.
edgegap_get_registry_credentials ●Retorna credenciais de push para seu registro privado de contêineres Edgegap, com os comandos exatos de docker login, build e push. O Edgegap só fornece essas credenciais pelo token de início rápido dos plugins Unity/Unreal; com um token de API comum, orienta seu agente a pedir o login da página Container Registry do painel.
edgegap_list_registry_tagsConfirma que o push da imagem foi concluído antes de registrá-la. Recebe apenas o nome da imagem, por exemplo, my-game-server: o projeto é obtido do seu token.
edgegap_delete_registry_tag ●Exclui uma tag e a imagem para a qual ela aponta, para limpar builds antigos. Uma tag exata por chamada; latest, curingas e listas são recusados.

Servidores dedicados (recomendado)

FerramentaO que faz
edgegap_list_appsLista seus aplicativos.
edgegap_create_app ●Cria um aplicativo.
edgegap_update_app ●Ativa ou desativa um aplicativo para novas implantações.
edgegap_list_app_versionsLista versões com suas imagens, recursos, portas (com TLS Upgrade) e informa se há um login de registro configurado.
edgegap_get_app_versionLê todos os detalhes de uma versão: imagem, recursos, portas, duração máxima, cache de imagem, política de reinicialização e nomes das variáveis de ambiente (nunca os valores).
edgegap_create_app_version ●Registra uma imagem de contêiner como versão implantável. Oferece suporte a TLS Upgrade em portas WS e HTTP, necessárias para clientes de navegador (WebGL) usarem wss://.
edgegap_update_app_version ●Altera uma versão existente: nova tag de imagem, ativação/desativação, CPU e memória (ambas juntas), duração máxima, login do registro, cache de imagem (force_cache), período de tolerância para encerramento, portas, variáveis de ambiente e o Endpoint Storage para onde os logs são enviados. Somente os campos informados são alterados, mas ports e env substituem a lista inteira. As implantações em execução mantêm as configurações antigas.
edgegap_delete_app_version ●Exclui uma versão para limpar versões de teste. A exclusão é recusada enquanto houver uma implantação dela em execução. A imagem do registro é mantida.
edgegap_delete_app ●Exclui um aplicativo e suas versões. A exclusão é recusada enquanto houver alguma implantação em execução ou enquanto ele tiver mais versões do que max_versions (padrão 0).
edgegap_list_locationsLista as cidades para as quais o Edgegap implanta ou, para uma versão específica, somente aquelas com capacidade disponível no momento.
edgegap_list_ping_beaconsLista os pontos de medição de ping usados pelos clientes do jogo para medir a latência em cada região.
edgegap_deploy ●Implanta um servidor dedicado autoritativo perto dos seus jogadores. Sempre marcado com edgegap-mcp e informa quando o Edgegap vai encerrá-lo. Opcional: CPU e memória somente para esta implantação, webhooks chamados pelo Edgegap quando o servidor estiver pronto, falhar ou terminar, require_cached_locations para inicializações mais rápidas e private_host_ids para priorizar sua frota privada.
edgegap_list_fleet_hostsLista os hosts de uma das suas frotas privadas, com status e localização, para implantar neles.
edgegap_wait_for_deploymentAguarda até que o servidor esteja pronto e retorna o endereço de conexão.
edgegap_get_deploymentLê o status de uma implantação.
edgegap_list_deploymentsLista as implantações em execução, filtradas por aplicativo, versão, status, tags e outros critérios, e ordenadas por tempo de execução. Encontra servidores que ficaram em execução; only_agent_deployments: true lista todos os iniciados por um agente. Consulte Filtrar implantações.
edgegap_get_deployment_logsLê os logs do contêiner e os detalhes de falhas enquanto a implantação está em execução. Depois que ela para, os logs só são mantidos se o Endpoint Storage tiver sido configurado.
edgegap_get_deployment_metricsResume o uso de CPU, limitação de CPU, memória e rede (mais recente, média, pico) para dimensionar uma versão ou investigar uma falha.
edgegap_stop_deployment ●Interrompe uma implantação pelo ID exato da solicitação. Não permite interromper várias de uma vez.
edgegap_tag_deployment ●Adiciona ou remove tags de uma implantação em execução, por exemplo, para marcar uma partida. A tag edgegap-mcp permanece.
edgegap_report_deployment ●Denuncia uma implantação ao Edgegap com um motivo, para o backend de moderação de um estúdio. Ela continua em execução.

Logs e arquivos (Endpoint Storage)

Os logs do contêiner desaparecem quando a implantação termina, a menos que sejam exportados para seu próprio bucket compatível com S3.

FerramentaO que faz
edgegap_list_endpoint_storageLista seus buckets do Endpoint Storage e os perfis de pull. As chaves secretas nunca são retornadas.
edgegap_create_endpoint_storage ●Registra um bucket (AWS S3, Cloudflare R2, DigitalOcean Spaces…) para exportar logs. Configure endpoint_storage em uma versão para ativar a exportação. A chave secreta nunca é exibida novamente.
edgegap_create_pull_profile ●Copia um arquivo ou pasta do bucket para o contêiner durante a inicialização (mapas, configurações, recursos grandes).
edgegap_link_pull_profile ●Vincula um perfil de pull a uma versão ou remove o vínculo.
edgegap_delete_pull_profile ●Exclui um perfil de pull. O bucket e seus arquivos permanecem.
edgegap_delete_endpoint_storage ●Exclui um Endpoint Storage; a exclusão é recusada enquanto houver perfis de pull, a menos que max_pull_profiles permita removê-los. O bucket e seus logs permanecem.

Relays (somente jogos host-cliente)

Um relay não é um servidor de jogo: ele encaminha o tráfego enquanto o jogo de um jogador hospeda a partida. Consulte Servidores dedicados ou relays?.

FerramentaO que faz
edgegap_create_relay_session ●Cria uma sessão de relay para seus jogadores e retorna o endereço do relay e o token de autorização de cada jogador.
edgegap_get_relay_sessionLê uma sessão de relay.
edgegap_list_relay_sessionsLista sessões de relay abertas para encontrar as que ficaram em execução. Não retorna tokens de autorização.
edgegap_authorize_relay_user ●Adiciona um jogador que entra mais tarde.
edgegap_revoke_relay_user ●Remove um jogador de uma sessão de relay.
edgegap_delete_relay_session ●Fecha uma sessão de relay.

[!WARNING] As implantações e sessões de relay são cobradas enquanto estão em execução. Peça ao seu agente para interromper as implantações de teste e excluir as sessões de relay de teste quando terminar.

Exemplos de prompts

  • "Crie um Dockerfile para o build do meu servidor Unity, depois faça o push e implante um servidor perto de mim."
  • "Verifique meu Dockerfile para o Edgegap e corrija os problemas."
  • "Minha implantação falhou. Leia os logs e me diga o motivo."
  • "Quanta CPU e memória minha última partida usou? Dimensione minha versão para ela."
  • "Meu jogo usa rede host-cliente. Configure um relay Edgegap para dois jogadores."

🛡️ Proteções

Seu token de API pode fazer qualquer coisa na sua organização, então o servidor adiciona seus próprios limites ao que um agente pode fazer com ele. Eles se aplicam tanto ao servidor local quanto ao endpoint hospedado.

ProteçãoO que faz
SimulaçãoToda ferramenta que altera algo recebe dry_run: true: ela retorna o método, o host, o caminho e o corpo exatos, com o token, os tokens do registro e os valores de env mascarados, e não envia nada. As verificações locais ainda são executadas.
Sem token em contêineresUm deploy ou uma versão é recusado, sem enviar nada, se o token da API aparecer no nome ou no valor de uma variável de env, em uma tag ou em uma URL de webhook. Os valores de env nunca são exibidos.
Tag do agenteTodo deploy recebe a tag edgegap-mcp, mesmo quando o agente passa suas próprias tags. edgegap_list_deployments com only_agent_deployments: true encontra todos eles.
Parada automáticaTodo deploy informa quando o Edgegap vai pará-lo: o max_duration da versão, limitado a EDGEGAP_MAX_DURATION_MINUTES (padrão 60) para versões criadas pelo agente. O Edgegap não tem limite de tempo por deploy, então o deploy de uma versão cujo max_duration esteja acima desse limite ou seja ilimitado (uma versão criada em outro lugar tem como padrão 1440 minutos) é recusado, a menos que o agente passe allow_long_running: true, o que ele só é instruído a fazer depois de perguntar a você.
Deploys por execuçãoO servidor local envia no máximo EDGEGAP_MAX_DEPLOYS_PER_RUN (padrão 20) deploys por processo, incluindo os que falharam, pois um deploy recusado ainda pode criar um deployment. Quando a API recusa um deploy, mas mesmo assim cria um, o erro informa seu nome para que o agente possa pará-lo.
Sem tags de imagem mutáveisedgegap_create_app_version recusa latest (em qualquer combinação de maiúsculas e minúsculas), uma tag vazia ou uma tag que o Docker rejeitaria, sem enviar nada: o Edgegap armazena imagens em cache por tag, então uma tag enviada novamente pode fazer deploy de uma build desatualizada. O deploy de uma versão existente em latest também é recusado, assim como a solicitação de comandos para enviar ao registro em latest.
Verificação da referência da imagemUm docker_image que também contenha um host de registro, uma tag ou um digest (por exemplo, registry.edgegap.com/proj/server:v2) é recusado, e o erro informa a divisão correta entre docker_repository / docker_image / docker_tag. edgegap_validate_server_config sinaliza os mesmos casos.
Limite de deploymentsedgegap_deploy é recusado enquanto já houver EDGEGAP_MAX_AGENT_DEPLOYMENTS (padrão 5) deployments com a tag edgegap-mcp em execução, para que um agente em loop não acumule servidores que geram cobranças. A recusa informa como listá-los e pará-los.
Variáveis de env secretas ocultasVariáveis de env cujos nomes parecem indicar segredos (TOKEN, SECRET, PASSWORD, API_KEY, CREDENTIAL, AUTH…) são enviadas com is_hidden, para que o dashboard não exiba seus valores em texto simples.
Parada rigorosaedgegap_stop_deployment para um deployment pelo ID exato da solicitação. IDs vazios, curingas e listas são recusados. Não há parada em lote. Com EDGEGAP_STOP_OWN_ONLY=1, ele só para deployments com a tag edgegap-mcp.
Exclusões cuidadosasedgegap_delete_app_version e edgegap_delete_app recebem um único nome exato e são recusados enquanto houver um deployment desse item em execução. Um aplicativo com versões só é excluído quando max_versions as abrange.
URLs de webhook e bucketWebhooks de deploy e endpoints do Endpoint Storage devem ser URLs https sem credenciais e são recusados se contiverem seu token da API.
Host em todos os resultadosTodo resultado começa com o host da API, por exemplo, [api.edgegap.com], ou [custom · host] quando EDGEGAP_BASE_URL aponta para outro lugar. Uma URL base que indique api.edgegap.com precisa ser exatamente https://api.edgegap.com, ou o servidor se recusa a iniciar.
Remoção de dados sensíveisO token é removido de todos os erros antes de chegarem ao agente.

O servidor se identifica com User-Agent: edgegap-mcp/<version> (<MCP client name>) em todas as chamadas à API.

Análise de uso. O servidor local e a imagem Docker auto-hospedada não enviam nada além das próprias chamadas à API. O endpoint hospedado em mcp.edgegap.dev usa PostHog MCP Analytics (@posthog/mcp) e envia eventos de uso ao PostHog do Edgegap: qual cliente MCP se conectou, qual ferramenta, prompt ou recurso de skill foi usado, os nomes (não os valores) dos argumentos passados, se uma chamada foi bem-sucedida, seu código de erro, a etapa em que falhou e o status da API do Edgegap, quanto tempo levou, se foi uma simulação, alguns detalhes sobre a chamada (como terminou uma espera por um deployment, um resultado de validação, qual skill foi carregada), qual etapa do fluxo recomendado foi alcançada, além da versão do servidor e do código de país da Cloudflare. Em uma chamada com falha, também envia a mensagem de erro, depois de remover seu token, os valores dos argumentos que você passou e qualquer conteúdo com formato de credencial, endereço IP ou ID, limitado a 300 caracteres. Os IDs de deployment são enviados apenas como hash com chave. Somente propriedades de metadados nomeadas são permitidas. Ele nunca envia seu token, os valores dos argumentos da ferramenta (endereços IP, variáveis de env, nomes de aplicativos ou imagens) nem resultados, e o GeoIP está desativado. Nenhum parâmetro é adicionado às ferramentas. Os eventos de um mesmo token são agrupados sob um hash irreversível com chave desse token. A lista completa está em docs/analytics.md. Para desativar, envie o cabeçalho X-Edgegap-Telemetry: off (ou DNT: 1) ou use o servidor local.

🚨 Solução de problemas

Consulte os códigos de erro comuns e saiba como desbloquear sua integração.

401 Unauthorized

É muito provável que sua integração MCP não esteja incluindo o cabeçalho Authorization corretamente.

Tool Call Failed

Seu cliente não tem um token do Edgegap. Isso acontece com conectores personalizados do claude.ai e do Claude Desktop, que não conseguem enviar um cabeçalho Authorization. Consulte Claude Desktop e claude.ai para ver a alternativa.

[!WARNING] Esta é uma limitação conhecida que será resolvida em breve. Fique atento às atualizações!

403 Forbidden

É provável que sua integração MCP esteja usando o token de modelo ou um token excluído. Verifique se o valor do token usado pela sua integração corresponde exatamente ao token exibido no dashboard.

424 Image Could Not Be Pulled

O Edgegap não conseguiu baixar sua imagem de contêiner. Verifique o repositório, o nome da imagem e a tag, e confirme que a tag foi enviada (peça ao seu agente para listar as tags do registro). Para imagens no registro do Edgegap, o nome da imagem precisa incluir seu projeto, por exemplo, my-project/my-game-server.

Registry Credentials Unavailable

O Edgegap só fornece credenciais do registro ao token de início rápido usado pelos plugins do Unity e do Unreal. Portanto, com um token de API comum, seu agente não consegue recuperá-las e pede que você as forneça. Copie o Project, Username e Token do dashboard, em Container Registry, ou envie a imagem para outro registro do qual o Edgegap possa baixá-la (Docker Hub, GitHub, AWS ECR, GCP, GitLab). Consulte Registros externos.

"status": "empty" ou "not_configured"

Não é um erro. Uma lista sem itens (ainda não há aplicativos, nenhum deployment em execução, uma imagem nunca foi enviada) ou um recurso que esta organização não configurou (relays, um registro que este token não pode ler) retorna um resultado normal com status e um next_step. Seu agente deve executar a próxima etapa em vez de tentar novamente.

Ainda sem token

As skills (edgegap_list_skills, edgegap_get_skill), edgegap_context, edgegap_generate_dockerfile e edgegap_validate_server_config funcionam sem token, então um agente pode preparar primeiro a build do servidor. Crie uma conta em app.edgegap.com e um token em Configurações do usuário → Tokens. edgegap_context com check_token: true informa se o token da sessão está presente e foi aceito, e mostra seus quatro últimos caracteres para que você possa encontrá-lo nessa página.

Inicia localmente, mas não no Edgegap

Peça ao seu agente para validar a configuração do servidor ou gerar um novo Dockerfile. As causas mais comuns são uma imagem criada em um Apple Silicon sem docker build --platform linux/amd64, um servidor escutando em uma porta diferente da exposta pela versão ou um transporte UDP configurado como TCP.

Outros erros da API

Consulte nossa Referência da API para ver possíveis respostas de erro de endpoints individuais da API.

[!NOTE] Se precisar de ajuda, fale conosco pelo Discord. Para suporte a jogos em produção, consulte nosso sistema de tickets.

🛠️ Auto-hospedagem

O endpoint hospedado em mcp.edgegap.dev é executado como um Cloudflare Worker (consulte worker/INSTALL.md). Para executar o mesmo servidor HTTP sem estado na sua própria infraestrutura, use a imagem Docker:

docker build -t edgegap-mcp .
docker run --rm -p 8080:8080 edgegap-mcp

Os clientes se conectam a http://<host>:8080/mcp com seu próprio cabeçalho Authorization, da mesma forma que se conectam ao endpoint hospedado. A imagem não contém credenciais, e /health responde sem elas. PORT, HOST, EDGEGAP_READ_ONLY, EDGEGAP_APP_ALLOWLIST, EDGEGAP_MAX_DURATION_MINUTES, EDGEGAP_MAX_AGENT_DEPLOYMENTS e EDGEGAP_STOP_OWN_ONLY se aplicam; passe cada um com -e NAME=value. Nunca passe um token da API para o contêiner: cada cliente envia o próprio em todas as solicitações. Leia worker/DECISION.md antes de expô-lo fora de uma rede privada.

Imagens pré-compiladas para linux/amd64 e linux/arm64 são publicadas em ghcr.io/edgegap/llm-mcp-server (e, para configurações existentes, com o nome antigo ghcr.io/edgegap/edgegap-mcp), com as tags main e sha-<commit> a cada envio para main, além da versão nas tags v*:

docker run --rm -p 8080:8080 ghcr.io/edgegap/llm-mcp-server:main

Desenvolvimento

Consulte CONTRIBUTING.md para ver as verificações que uma alteração precisa passar, CHANGELOG.md para saber o que mudou em cada versão e SECURITY.md para relatar uma vulnerabilidade.

npm ci
npm run build
npm test                  # mock-API tests; none reach Edgegap
npm run typecheck:worker

Para atualizar as skills incluídas para o commit mais recente de llm-agent-skills e depois fazer o lançamento como de costume:

npm run sync-skills -- --ref main
npm run check-skills      # exit 1 if src/skills.generated.ts differs from the pin
TesteAbrangência
test/unit.test.mjsTestes unitários das regras de tags, imagens, nomes de segredos, URLs e remoção de dados sensíveis
test/package.mjsEmpacotamento: um bin, dependências de execução, versões na etapa
test/skills.mjsSkills via MCP: ferramentas, prompts, recursos, segurança de caminhos, pacote corresponde à versão fixada
test/smoke.mjsHandshake, registro de ferramentas, modo somente leitura
test/guards.mjsValidação local e aplicação da lista de permissões
test/elicit.mjsSolicitação de token: aceitar, recusar a confirmação, rejeitar, sem suporte
test/newtools.mjsValidador, gerador de Dockerfile, registro, deployments, ferramentas de relay e matchmaker com uma API simulada local
test/http.mjsServidor HTTP auto-hospedado: descoberta sem token, tokens por solicitação, credenciais externas
test/spec.mjsTodos os endpoints e campos do corpo da solicitação enviados pelo servidor estão em spec/ (ferramentas de escrita verificadas por simulação)
test/snapshot.mjsOs nomes, as descrições e os esquemas das ferramentas, além das instruções, correspondem a test/tools.snapshot.json; npm run snapshot:update após uma alteração deliberada
test/live-check.mjsNão está em npm test. Executa com a API real usando um token de uma organização que não é de produção

As decisões de design, o modelo de segurança e o que está deliberadamente fora do escopo estão em DESIGN.md.