Edgegap

oficial

Implementa servidores de juegos multijugador desde tu agente de codificación. Diez herramientas que llevan un servidor dedicado de Unity, Unreal o Godot desde la imagen de contenedor hasta jugadores conectados.

¿Qué puedes hacer con Edgegap MCP?

  • Implementar un servidor de juego desde una imagen de contenedor — Pide al asistente que registre tu imagen de contenedor con configuraciones de CPU, memoria y puerto, y luego la inicie cerca de jugadores específicos.
  • Rastrear el estado de implementación y los detalles de conexión — Pide al asistente que consulte hasta que tu implementación esté lista y devuelva la dirección de conexión, o que verifique el estado y los registros de una instancia en ejecución.
  • Gestionar versiones de aplicaciones — Pide al asistente que liste las aplicaciones y versiones existentes, o que cree una nueva versión a partir de la configuración de una existente para evitar duplicaciones.
  • Detener implementaciones de forma ordenada — Indica al asistente que termine una implementación específica mediante el ID de solicitud, enviando una señal de cierre limpia en lugar de forzar la finalización.
  • Encontrar y limpiar servidores huérfanos — Pide al asistente que liste todas las implementaciones de sesiones anteriores para que puedas identificar y detener instancias no utilizadas.

Servidor MCP alojado

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

Se instala en Claude Code, Codex, Cursor y más

Documentación

edgegap-mcp

Un servidor MCP para Edgegap que permite a un agente de codificación llevar a un desarrollador desde "tengo un contenedor de servidor de juegos" hasta "los jugadores están conectados a él" sin que el desarrollador lea la referencia de la API.

Diez herramientas, seleccionadas a mano. No generadas a partir de la especificación OpenAPI — ver Alcance para saber por qué.

Instalación

Dos formas de ejecutarlo. Elige según cuánto te importe dónde va tu token — ver Dónde va tu token.

Endpoint remoto

Alojado por Edgegap como un Cloudflare Worker. Nada que instalar.

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

También funciona como conector personalizado en claude.ai: añade https://mcp.edgegap.dev/mcp y proporciona el mismo token.

Local

Se ejecuta en tu propia máquina, iniciado por tu editor. Una línea en la configuración de tu cliente MCP, nada que clonar, nada que compilar.

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

Funciona en Claude Code, Cursor, Codex y VS Code. Fija una versión en producción (@edgegap/mcp@0.1.5) en lugar de flotar en la última versión.

Registrado en el registro oficial de MCP como dev.edgegap/mcp.

Versión de Node: el servidor local necesita Node 18+. Desplegar tu propia copia del Cloudflare Worker necesita Node 22+, porque wrangler lo requiere.

Dónde va tu token

Esto difiere según el modo, y la diferencia es la razón por la que existen ambos modos.

Local. El servidor se ejecuta como un proceso en tu propia computadora. La primera llamada a una herramienta te pide un token, muestra lo que autoriza y requiere un reconocimiento explícito antes de aceptarlo. Dónde vive ese token, de forma exhaustiva:

  • una variable en la memoria de ese proceso, durante la vida de tu sesión de editor

Esa es toda la lista. No en disco. No en un archivo de configuración. No en registros. No en ningún servidor de Edgegap — lo único que se envía a Edgegap es la llamada a la API en sí, exactamente como si hubieras ejecutado curl. Cerrar tu editor revoca el acceso de este servidor por completo.

Remoto. Tu token se envía a mcp.edgegap.dev en cada solicitud y se reenvía desde allí a la API de Edgegap. Transita por la infraestructura que opera Edgegap. El worker lo mantiene durante la vida de la solicitud y no lo persiste, pero eso es una afirmación de "no lo almacenamos" más que una de "nunca lo vemos". Las dos son diferentes, y solo el modo local hace la segunda.

Genera un token en https://app.edgegap.com/user-settings?tab=tokens.

En modo local, establecer EDGEGAP_API_TOKEN tiene prioridad sobre el aviso, para CI y para clientes que no pueden mostrar avisos. No pases un token como argumento de línea de comandos — los argumentos son visibles para otros procesos a través de ps, y el servidor advierte si detecta uno.

Cuál usar. Remoto para una primera prueba, una demostración o una sesión supervisada donde la fricción de configuración importa más que la custodia. Local para cualquier cosa desatendida, cualquier cosa en una organización con un juego en vivo, y cualquier cosa donde prefieras no extender confianza que no necesitas. Las salvaguardas descritas a continuación existen solo en modo local.

Lee esto antes de conectar un agente

El token de la API de Edgegap no se puede limitar por alcance. Un token autoriza cada aplicación, cada versión, cada despliegue en ejecución y tu uso en toda la organización. No hay token solo de despliegue ni token por aplicación.

Consecuencias que vale la pena considerar deliberadamente:

  • Un agente que tenga este token puede detener despliegues de producción, no solo los de prueba que creó.
  • La inyección de prompts que llegue al agente — desde un archivo del repositorio, un issue, una página obtenida — también llega al token.
  • Cualquier cosa que el agente registre, repita o envíe a un proveedor de modelos es un lugar donde el token podría terminar. Este servidor no lo registra, pero no puede controlar lo que hace el resto del agente.
  • En el endpoint remoto, el mismo token sin alcance también es manejado por el worker de Edgegap en cada llamada.

Configuración recomendada, en orden decreciente de precaución:

SituaciónConfiguración
Agente desatendido o autónomoModo local. Organización separada no productiva, más EDGEGAP_READ_ONLY=1
Agente supervisado, juego en vivo en la organizaciónModo local. EDGEGAP_APP_ALLOWLIST limitado a la aplicación en la que se trabaja, más EDGEGAP_MAX_DURATION_MINUTES. Lee Alcance de la lista de permitidos primero — los despliegues que ya están en ejecución no están cubiertos
Desarrollador individual, sin carga de producciónCualquier modo. Los valores predeterminados están bien; revoca el token cuando termines

La lista de permitidos y la bandera de solo lectura se aplican en el servidor local, lo que significa que protegen contra un agente que comete un error, no contra uno que ha sido comprometido para llamar a la API directamente. Reducen el radio de explosión; no lo eliminan.

Alcance de la lista de permitidos

EDGEGAP_APP_ALLOWLIST se aplica mediante las cuatro herramientas que toman un nombre de aplicación: edgegap_create_app, edgegap_list_app_versions, edgegap_create_app_version y edgegap_deploy.

No se aplica mediante las cinco herramientas clave basadas en request_id: edgegap_get_deployment, edgegap_wait_for_deployment, edgegap_list_deployments, edgegap_stop_deployment y edgegap_get_deployment_logs. Un agente que se ejecute con una lista de permitidos configurada puede listar cada despliegue en la organización y luego inspeccionar, leer los registros o detener cualquiera de ellos — incluidos los despliegues que pertenecen a aplicaciones fuera de la lista.

Entonces, la lista de permitidos limita lo que un agente puede crear y desplegar, no lo que puede tocar una vez en ejecución. Eso es más limitado de lo que implicaban versiones anteriores de este documento.

Para una garantía más fuerte hoy, usa EDGEGAP_READ_ONLY=1, que nunca registra las cinco herramientas mutables, o apunta al agente a una organización separada no productiva. Ambas no se ven afectadas por esta brecha.

Reportado por Syed Anas Mohiuddin, septiembre de 2026.

Variables de entorno

Estas configuran el servidor local. En el endpoint remoto las establece Edgegap y no se pueden cambiar por desarrollador — si necesitas alguna, ejecuta localmente.

VariablePredeterminadoPropósito
EDGEGAP_API_TOKEN(solicitado)Token de API. Opcional — omítelo y se le pregunta al desarrollador en el primer uso. El prefijo token se añade por ti.
EDGEGAP_READ_ONLY0Establece en 1 y las cinco herramientas mutables nunca se registran. El agente no puede verlas, por lo que no se le puede convencer de llamarlas.
EDGEGAP_APP_ALLOWLIST(vacío)Nombres de aplicación separados por comas. Cuando se establece, las cuatro herramientas clave de aplicación se niegan a tocar cualquier otra cosa. No limita las cinco herramientas clave basadas en request_id — ver Alcance de la lista de permitidos.
EDGEGAP_MAX_DURATION_MINUTES60Límite máximo en max_duration que el agente puede establecer en una versión. Limita el costo descontrolado de un agente desatendido.
EDGEGAP_TIMEOUT_MS30000Tiempo de espera HTTP por solicitud.

Herramientas

Diez herramientas, listadas en el orden en que caen a lo largo del camino dorado. Las mismas diez en ambos modos.

HerramientaMutantePara qué sirve
edgegap_list_appsOrientarse antes de hacer cualquier cosa. Previene aplicaciones duplicadas.
edgegap_create_appCrear el contenedor para versiones.
edgegap_list_app_versionsEncontrar una versión desplegable, o copiar configuraciones de una que funcione.
edgegap_create_app_versionRegistrar una imagen de contenedor con CPU, memoria y puertos.
edgegap_deployIniciar una instancia cerca de jugadores especificados.
edgegap_get_deploymentLectura de estado única.
edgegap_wait_for_deploymentConsultar hasta que esté listo con retroceso, luego devolver la dirección de conexión.
edgegap_list_deploymentsEncontrar servidores huérfanos de sesiones anteriores.
edgegap_stop_deploymentSIGTERM elegante, un despliegue a la vez.
edgegap_get_deployment_logsSalida del contenedor y código de salida de bloqueo después de una falla.

Decisiones de diseño

Curado, no generado. La API de Edgegap tiene aproximadamente sesenta operaciones. Auto-generar una herramienta por operación pone las sesenta descripciones en el contexto del agente en cada turno y degrada mediblemente la selección de herramientas. Estas diez cubren el camino que convierte a un nuevo desarrollador.

wait_for_deployment es una herramienta, no un bucle. Dejado a su suerte, un agente llamará a un endpoint de estado en un bucle cerrado, quemará turnos y se rendirá temprano. Plegar la consulta y el retroceso en una sola llamada elimina la falla más común en despliegues impulsados por agentes.

Los errores están escritos para la autocorrección. Un 424 llega diciendo que la imagen no se pudo extraer y qué campos verificar. Un 422 dice que pruebes con diferentes coordenadas o reduzcas la solicitud de recursos. El agente puede actuar sobre estos sin un viaje de ida y vuelta al humano.

Validación local antes del cable. La relación memoria-CPU y la ubicación faltante del jugador se detectan aquí en lugar de aparecer como un 400 opaco.

Las operaciones masivas están deliberadamente ausentes. stop toma un request_id. No hay herramienta de detención masiva, porque un agente con una expresión de filtro y un error puede detener una flota de producción.

Tanto un endpoint alojado como un paquete local. El endpoint alojado elimina cada paso entre encontrar este servidor y llamar a una herramienta, que es donde la mayoría de los desarrolladores se retiran. El paquete local es la única forma de ejecutar el servidor sin extender la custodia de un token sin alcance a un tercero, incluidos nosotros. Ninguno domina al otro, así que ambos se envían. Ver worker/DECISION.md para la versión más larga.

Alcance

No expuesto, a propósito: matchmaking, relays, flotas privadas, flotas inteligentes, almacenamiento de endpoints, entradas ACL/lista blanca, etiquetas de despliegue, métricas, gestión de registros de contenedores, configuración de DNS.

Estas son capacidades reales, pero pertenecen a estudios que ya operan en la plataforma, no a un desarrollador que despliega su primer servidor. Añadirlas cambiaría el camino de conversión por superficie.

Limitación conocida: pedir el token en absoluto

Esto se aplica al modo local, donde el token se recopila mediante elicitación en lugar de leerse desde la configuración.

La especificación MCP dice que los servidores no deben usar elicitación para recopilar datos sensibles, y un token de API es sensible. Este servidor lo hace de todos modos, porque requerir un token en un archivo de configuración antes de que funcione algo es la mayor caída en el embudo de incorporación, y el punto completo del servidor es eliminar la fricción de configuración.

Eso es un intercambio deliberado en lugar de un patrón a copiar. Lo que lo hace defendible es el conjunto de mitigaciones en src/auth.ts — almacenamiento solo en memoria, divulgación en lenguaje sencillo, reconocimiento requerido, redacción de toda la salida y la variable de entorno siempre ganando cuando está presente. Eliminar cualquiera de ellas rompe el intercambio.

La solución real está del lado de Edgegap y mejoraría ambos modos: credenciales limitadas, revocables y solo de despliegue, emitidas a través de OAuth en lugar de pegadas como un secreto. Hasta que existan, el aviso interactivo es un workaround y está etiquetado como tal en el código.

Desarrollo

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

Ninguna de estas hace llamadas de red. elicit.mjs afirma que el aviso establece el alcance de toda la organización, que el reconocimiento es requerido, que el token nunca aparece en la salida de la herramienta y que rechazar produce un mensaje de detener e informar en lugar de un bucle de reintento.