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?

  • Escribir un Dockerfile — Pide a tu agente que genere un Dockerfile para una compilación de servidor de Unity, Unreal, Godot u otro, con opciones para modo sin interfaz gráfica y los puertos correspondientes.
  • Validar antes de compilar — Comprueba si hay problemas en un Dockerfile existente, los puertos, los recursos y la etiqueta de la imagen, como imágenes ARM o servidores vinculados a localhost.
  • Implementar un servidor dedicado — Registra una imagen como versión de la aplicación, elige una ubicación, implementa el servidor cerca de los jugadores y obtén la IP y los puertos del servidor.
  • Diagnosticar una implementación fallida — Consulta los registros del contenedor, los detalles del fallo y las métricas de CPU y memoria para averiguar por qué falló o se bloqueó un servidor.
  • Configurar una sesión de retransmisión — Crea una retransmisión para partidas de anfitrión y cliente, y obtén la dirección de retransmisión y el token de autorización de cada jugador.

Servidor MCP alojado

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

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

Documentación

Servidor MCP de Edgegap

Conecta agentes de programación con IA a Edgegap mediante nuestro servidor MCP. Tu agente puede llevar una compilación de servidor sin interfaz gráfica hasta el punto en que los jugadores se conecten: escribir o revisar el Dockerfile, subir la imagen a tu registro privado de Edgegap, desplegar un servidor dedicado con autoridad cerca de los jugadores y leer los registros cuando algo falle.

Install in Cursor Install in VS Code

👉 Funciones compatibles

[!TIP] ¿Usas Unity, Unreal Engine o Godot? Nuestras guías y complementos para Unity, Unreal Engine y Godot siguen siendo la vía más rápida para esos motores. El servidor MCP funciona junto con ellos y también por sí solo con cualquier motor.

Usa nuestro servidor MCP cuando quieras:

  • Crear un contenedor para tu servidor de juego: tu agente escribe un Dockerfile para tu compilación (o revisa el que ya tienes) según las prácticas recomendadas, sube la imagen a nuestro registro privado de contenedores y elimina las etiquetas de imágenes antiguas que ya no se usan para recuperar capacidad del registro.
  • Desplegar un servidor dedicado: crear y actualizar versiones de aplicaciones, revisar las ubicaciones disponibles, desplegar cerca de tus jugadores y obtener la IP del servidor y los puertos para probar la conexión del cliente.
  • Crear una canalización de CI/CD: probar tus despliegues y eliminarlos desde un sistema de compilación.
  • Solucionar problemas de un servidor de juego: inspeccionar las versiones de la aplicación y el estado del despliegue, leer los registros del contenedor y la utilización de CPU/memoria, o reproducir un despliegue fallido.
  • Ejecutar juegos con anfitrión en el cliente y juegos entre pares: crear sesiones de retransmisión que permitan atravesar NAT y evitar bloqueos de conexión. Revisa Modelos de orquestación y ¿Servidores dedicados o retransmisiones? antes de decidir.

[!WARNING] Fuera del alcance o no compatible con MCP: compilar el ejecutable del servidor Linux; crear, iniciar o detener un emparejador (sube la configuración generada en el panel); navegador de servidores; salas; clústeres administrados; flotas privadas; o facturación.

[!NOTE] Si necesitas ayuda, contáctanos por Discord. Para recibir asistencia con juegos en producción, consulta nuestro sistema de tickets.

⚖️ ¿Servidores dedicados o retransmisiones?

Edgegap puede alojar tu juego multijugador de dos maneras. Recomendamos los servidores dedicados, al igual que nuestro servidor MCP: tu agente usará un servidor dedicado de forma predeterminada y solo recurrirá a una retransmisión si has elegido una configuración con anfitrión en el cliente.

Servidor dedicado (recomendado)Retransmisión
Qué ejecuta EdgegapTu compilación de servidor sin interfaz gráfica, cerca de los jugadoresSolo un reenviador de tráfico, sin código del juego
Quién ejecuta el juegoEl servidorEl juego de un jugador (el anfitrión)
TrampasMucho más difícil; el servidor tiene autoridadEl anfitrión puede cambiar cualquier cosa
EquidadTodos los jugadores se conectan directamente al servidorEl anfitrión no tiene latencia; todos los demás pasan por dos saltos
Cuando el anfitrión se vaLa partida continúaLa partida termina, a menos que tu juego admita la migración del anfitrión
Rendimiento limitado porLa CPU y la memoria asignadas al servidorEl PC del anfitrión y la velocidad de subida de su conexión a Internet
NecesitasUna compilación de servidor en una imagen de contenedorNetcode configurado como servidor de escucha (con anfitrión en el cliente)

[!NOTE] ¿Aún no tienes una imagen de servidor? Eso no es motivo para elegir retransmisiones. Tu agente puede escribir el Dockerfile para tu compilación con edgegap_generate_dockerfile. Obtén más información sobre las retransmisiones en Retransmisión distribuida.

🚀 Instalación

Instalar el servidor MCP es muy sencillo:

  1. Instala el servidor MCP para Agentes populares o mediante una Integración personalizada.
  2. Genera y asigna un token de API para que tu agente lo use con nuestro servidor MCP.

Genera (y consulta) tus tokens secretos para la API de Edgegap en Panel - Configuración de usuario / Tokens.

Añade tu token secreto a cada solicitud de API como encabezado HTTP (incluye la palabra token):

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

[!CAUTION] No integres los endpoints de la API de Edgegap en el cliente del juego, ya que tu token de API proporciona acceso ilimitado a tu cuenta. Consulta Integración para ver los endpoints y las funciones de API seguros para clientes.

[!TIP] Si tus tokens secretos se ven comprometidos o se filtran, elimínalos y vuelve a crearlos desde el panel.

El token abarca toda la organización y no se puede limitar a una sola aplicación. Lee DESIGN.md antes de dárselo a un agente desatendido.

Agentes populares

Instala el servidor MCP de Edgegap en tu IDE con agente preferido mediante los botones Cursor o VS Code de la parte superior de esta página y, después, añade tu token al encabezado 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

Codex lee el token de una variable de entorno y lo envía como Authorization: Bearer <token>, que el endpoint alojado acepta. En ~/.codex/config.toml:

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

Después, establece EDGEGAP_API_TOKEN con tu token en el entorno desde el que se inicia Codex.

Claude Desktop y claude.ai

Los conectores personalizados de claude.ai y Claude Desktop no pueden enviar un encabezado Authorization, por lo que el endpoint alojado nunca recibe tu token: el conector aparece como conectado, pero todas las llamadas a herramientas fallan. Usa el Servidor local en su lugar.

En Claude Desktop, abre Configuración → Desarrollador → Editar configuración y añade el servidor local a claude_desktop_config.json:

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

No incluyas el token y se te pedirá la primera vez que lo uses. claude.ai en el navegador no puede ejecutar un servidor local, así que no puede usar Edgegap MCP hasta que el endpoint alojado admita OAuth.

Cursor

El botón Cursor de la parte superior de esta página lo instala; para hacerlo manualmente, añade esto a ~/.cursor/mcp.json (o a .cursor/mcp.json en un proyecto):

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

VS Code (modo agente de Copilot)

El botón VS Code de la parte superior de esta página lo instala; para hacerlo manualmente, añade esto a .vscode/mcp.json (VS Code usa servers, no mcpServers):

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

Windsurf

En ~/.codeium/windsurf/mcp_config.json, ejecuta el Servidor local, que funciona en todos los clientes que inician servidores MCP como comandos:

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

mcp.json

La mayoría de los IDE con agente también admiten la integración pegando una configuración JSON:

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

Integración personalizada

Instala el servidor MCP remoto de Edgegap en el entorno virtualizado de tu agente (¡nunca en tu proyecto!):

Node, con el paquete npx de mcp-remote

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

Python, con el paquete uvx de mcp-proxy

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

Instalación con un clic (Claude Desktop)

Descarga edgegap-mcp.mcpb y ábrelo: Claude Desktop instala el servidor local como una extensión y te pide tu token de API, que guarda en el almacenamiento seguro del sistema operativo. La configuración de la extensión también incluye el modo de solo lectura, la lista de aplicaciones permitidas, el límite máximo de duración y el límite de despliegues (las variables que aparecen a continuación). Cada versión incluye el paquete, compilado a partir del código de esa versión. Cualquier otra aplicación que instale paquetes MCPB funciona de la misma manera.

Servidor local

Para mantener tu token de API en tu propio equipo, ejecuta el servidor localmente. No incluyas el token y tu agente te lo pedirá la primera vez que lo uses; solo lo conservará en memoria durante esa sesión:

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

Requiere Node 18 o posterior. Fija una versión en producción (@edgegap/mcp@0.15.4) en lugar de usar siempre la última. Está registrado en el registro oficial de MCP como dev.edgegap/mcp.

El servidor local también puede limitar lo que puede hacer un agente. Estas variables no tienen efecto en el endpoint alojado en mcp.edgegap.dev:

VariableValor predeterminadoPropósito
EDGEGAP_API_TOKEN(se solicita)Token de API. Opcional: omítelo y se te pedirá la primera vez que lo uses. El prefijo token se añade automáticamente. Nunca lo pases como argumento de línea de comandos.
EDGEGAP_READ_ONLY0Establécelo en 1 y las herramientas que realizan cambios (marcadas con ● en Herramientas) nunca se registrarán, por lo que no se podrá convencer al agente de que las invoque.
EDGEGAP_APP_ALLOWLIST(vacío)Nombres de aplicaciones separados por comas. Limita las aplicaciones en las que el agente puede crear y desplegar. La lectura (listar aplicaciones y versiones) no está limitada, ni tampoco la gestión de los despliegues una vez iniciados. Consulta DESIGN.md.
EDGEGAP_MAX_DURATION_MINUTES60Límite máximo de max_duration que el agente puede establecer en una versión. edgegap_deploy también rechaza una versión cuyo max_duration lo supere, o sea ilimitado, a menos que el agente pase allow_long_running: true después de preguntarte.
EDGEGAP_MAX_AGENT_DEPLOYMENTS5edgegap_deploy rechaza solicitudes mientras haya en ejecución esta cantidad de despliegues etiquetados como edgegap-mcp. 0 desactiva el límite.
EDGEGAP_MAX_DEPLOYS_PER_RUN20Despliegues que puede enviar un proceso del servidor, incluidos los fallidos. Reinicia el servidor para restablecer el contador. 0 lo desactiva.
EDGEGAP_STOP_OWN_ONLY0Establécelo en 1 y edgegap_stop_deployment solo detendrá los despliegues etiquetados como edgegap-mcp, para que el agente no pueda detener servidores que no haya iniciado.
EDGEGAP_ENABLE_SKILLS_UPDATE0Establécelo en 1 para permitir que edgegap_update_skills ejecute npx skills@1.7.4 update o claude plugin update con apply: true. Si no, mostrará esos comandos para que los ejecutes. En cualquier caso, las habilidades copiadas manualmente se reescriben desde el paquete. Los actualizadores solo reciben la ruta, el directorio de inicio, el directorio temporal, la configuración regional, el proxy y la configuración de npm; nunca reciben variables EDGEGAP_* ni nada cuyo nombre incluya token, secreto, contraseña o clave.
EDGEGAP_TIMEOUT_MS30000Tiempo de espera HTTP por solicitud.
EDGEGAP_SKILLS_CHECKonEstablécelo en off y las herramientas de habilidades nunca leerán de GitHub la versión más reciente de las habilidades.

Windows

El servidor local funciona en Windows con Node.js 18 o posterior, y CI ejecuta la compilación y las pruebas de stdio en Windows.

  • Muchos clientes MCP de Windows no pueden iniciar npx directamente porque es un script .cmd. Inícialo mediante cmd /c: "command": "cmd", "args": ["/c", "npx", "-y", "@edgegap/mcp"]. En Claude Code: claude mcp add Edgegap --env EDGEGAP_API_TOKEN=<token> -- cmd /c npx -y @edgegap/mcp.
  • En PowerShell, escribe npx.cmd en lugar de npx para ejecutarlo manualmente: una instalación nueva de Windows bloquea el script de PowerShell npx («la ejecución de scripts está deshabilitada en este sistema»).
  • El primer inicio descarga el paquete y puede tardar un poco; los siguientes son rápidos.
  • edgegap_update_skills encuentra las habilidades instaladas en %USERPROFILE%, igual que en macOS y Linux.

📚 Habilidades

El servidor incluye las habilidades de agente de Edgegap: flujos de trabajo probados, paso a paso, para poner en línea un juego multijugador, con plantillas (Dockerfiles, configuraciones de emparejador y componentes listos para integrar en Unity C# y Unreal C++) y problemas conocidos. Cualquier agente conectado a Edgegap MCP las obtiene sin necesidad de instalarlas por separado ni de usar un token, y se le indica que cargue la habilidad correspondiente antes de trabajar en un proyecto de juego.

HabilidadPara
edgegapEmpieza aquí para cualquier motor que no sea Unity o Unreal Engine, o para preguntas sobre plataformas. Te dirige al resto.
edgegap-unityUnity de principio a fin: compilación del servidor, emparejador, cliente y prueba integral.
edgegap-ngoUnity con Netcode for GameObjects de principio a fin: inicio y detención automática del servidor, panel Find Match, adaptador Boss Room y emparejador.
edgegap-fishnetUnity con FishNet de principio a fin: servidor sin interfaz, Bayou/WebGL, emparejador y prueba integral.
edgegap-purrnetUnity con PurrNet de principio a fin: servidor dedicado, panel de conexión, emparejador y prueba integral.
edgegap-fusionUnity con Photon Fusion 2 de principio a fin: servidor Linux IL2CPP, servidor enlazado a 0.0.0.0, implementación en Edgegap y kit BR200.
edgegap-fusion-simplefpsEjemplo Simple FPS de Photon en servidores dedicados de Edgegap.
edgegap-godotGodot 4 con un servidor dedicado de Godot: exportación sin interfaz, ENet o WebSocket y emparejador.
edgegap-colyseusServidores Colyseus en Edgegap, directamente o a través del emparejador.
edgegap-nakamaNakama como backend, que inicia servidores de Edgegap para sus partidas.
edgegap-playfabEmparejamiento de PlayFab con servidores de Edgegap.
edgegap-threejsThree.js y otros juegos de navegador con su propio servidor Node.js.
edgegap-matchmakingDiseño del emparejamiento para cualquier motor: quién lo gestiona, perfiles, grupos, selección de región, incorporación de jugadores y emparejadores de terceros.
edgegap-manusJuegos de navegador creados con Manus: emparejamiento en el backend, inicio de sesión de Steam, tokens de acceso firmados y servidor Node WebSocket.
edgegap-unrealUnreal Engine de principio a fin: motor desde el código fuente, servidor Linux, emparejador y prueba integral.
edgegap-eos-voiceChat de voz para un juego de Unreal en Edgegap con EOS Voice: tokens de sala del lado del servidor, salas de partida y de equipo.
edgegap-server-designDiseño de servidores autoritativos y ciclo de vida de la implementación.
edgegap-containerizeEl contrato del contenedor, Dockerfiles, registros y versiones de la aplicación.
edgegap-local-testingPruebas de paridad en tu equipo y, después, una implementación de prueba rápida.
edgegap-troubleshootErrores de descarga, ciclos de fallos, falta de memoria y clientes que no pueden conectarse.
edgegap-deployments-apiCódigo de backend que implementa servidores: webhooks, limpieza, Nakama, PlayFab, UGS y EOS.
edgegap-launchLista de comprobación de lanzamiento, despliegues graduales, almacenamiento en caché y control de costes.

Se ofrecen de tres maneras para que todos los clientes MCP puedan acceder a ellas:

  • Herramientas: edgegap_list_skills y edgegap_get_skill, que carga el SKILL.md de una habilidad o uno de sus documentos de referencia o plantillas con file.
  • Indicaciones: deploy-game-server («Implementa mi servidor de juego en Edgegap») es el punto de partida: detecta el motor y el sistema de red, carga la habilidad correspondiente y te guía por el recorrido recomendado, incluida la limpieza. También hay una indicación por habilidad, con el nombre de esta. En Claude Code aparecen como comandos de barra, por ejemplo, /mcp__edgegap__deploy-game-server.
  • Recursos: se muestra el SKILL.md de cada habilidad en edgegap-skill://<skill>/SKILL.md; para leer cualquier otro archivo se usa la plantilla edgegap-skill://{skill}/{+path}, por ejemplo, edgegap-skill://edgegap-unity/references/deploy.md.

Cada versión incluye las habilidades del commit fijado en scripts/skills-pin.txt; edgegap_context indica qué paquete está cargado. edgegap_list_skills también consulta en GitHub la versión más reciente del paquete (un número de versión, almacenado en caché durante una hora; EDGEGAP_SKILLS_CHECK=off lo desactiva) e indica si hay una versión más reciente. Además, edgegap_get_skill añade la misma nota debajo del encabezado de una habilidad.

Mantener actualizadas las habilidades instaladas. Si también instalaste las habilidades en tu agente (el complemento de Claude Code edgegap@edgegap, npx skills add edgegap/llm-agent-skills o carpetas copiadas en ~/.claude/skills), edgegap_update_skills compara cada una con la versión más reciente de GitHub. En el servidor local detecta esas instalaciones por sí solo; con apply: true ejecuta npx skills update (solo habilidades de Edgegap) o claude plugin update, y reemplaza las habilidades copiadas manualmente por los archivos incluidos en esta versión, conservando los archivos que hayas añadido y dejando intactos los enlaces simbólicos y las copias de Git. Nunca descarga el texto de las habilidades. El servidor alojado no puede acceder a tu disco: pasa las versiones que tienes cargadas en installed_versions y te indicará cuáles están desactualizadas y cómo actualizarlas.

🧰 Herramientas

Tu agente elige la herramienta adecuada según tu solicitud. No hace falta que indiques cuál usar, pero saber qué hay disponible te ayudará a formular tus peticiones. Las herramientas marcadas con ● modifican algo en tu cuenta, requieren dry_run y están ocultas cuando EDGEGAP_READ_ONLY=1.

HerramientaQué hace
edgegap_contextMuestra con qué API se comunica este servidor, su versión, si es local o alojado y las medidas de protección vigentes. No realiza llamadas a la API; nunca muestra el token.

Antes de tu primera implementación

HerramientaQué hace
edgegap_generate_dockerfileEscribe un Dockerfile para la compilación de tu servidor: la carpeta de compilación, el binario del servidor o el script de inicio, los puertos y los argumentos de lanzamiento, con las opciones adecuadas para el modo sin interfaz (Unity -batchmode -nographics, Godot --headless), un usuario sin privilegios para Unreal y los puertos correspondientes. Enumera las suposiciones que haya tenido que hacer para que tu agente pueda confirmarlas. Funciona con Unity, Unreal Engine, Godot y cualquier otro motor.
edgegap_validate_server_configComprueba un Dockerfile existente, los puertos, los recursos y la etiqueta de imagen antes de compilar. Detecta imágenes ARM o Windows (Edgegap ejecuta linux/amd64), servidores de Unreal que se ejecutan como root, la ausencia de Unity -batchmode -nographics, servidores enlazados a localhost, puertos que no coinciden con el transporte de red y la etiqueta latest.
edgegap_get_registry_credentials ●Devuelve las credenciales para subir imágenes al registro privado de contenedores de Edgegap, junto con los comandos exactos de docker login, compilación y subida. Edgegap solo proporciona estas credenciales mediante el token de inicio rápido de los complementos de Unity/Unreal; con un token de API normal, indica a tu agente que te pida las credenciales de inicio de sesión de la página Container Registry del panel.
edgegap_list_registry_tagsConfirma que la imagen se haya subido antes de registrarla. Solo requiere el nombre de la imagen, por ejemplo, my-game-server: el proyecto se obtiene de tu token.
edgegap_delete_registry_tag ●Elimina una etiqueta y la imagen a la que apunta para limpiar compilaciones antiguas. Una etiqueta exacta por llamada; se rechazan latest, los comodines y las listas.

Servidores dedicados (recomendado)

HerramientaQué hace
edgegap_list_appsMuestra tus aplicaciones.
edgegap_create_app ●Crea una aplicación.
edgegap_update_app ●Activa o desactiva una aplicación para nuevas implementaciones.
edgegap_list_app_versionsMuestra las versiones con su imagen, recursos, puertos (con TLS Upgrade) y si tienen configurado un inicio de sesión en el registro.
edgegap_get_app_versionLee todos los detalles de una versión: imagen, recursos, puertos, duración máxima, almacenamiento en caché de imágenes, política de reinicio y nombres de variables de entorno (nunca sus valores).
edgegap_create_app_version ●Registra una imagen de contenedor como versión implementable. Admite TLS Upgrade en puertos WS y HTTP, que los clientes de navegador (WebGL) necesitan para wss://.
edgegap_update_app_version ●Modifica una versión existente: una nueva etiqueta de imagen, activación o desactivación, CPU y memoria (ambas juntas), duración máxima, inicio de sesión en el registro, almacenamiento en caché de imágenes (force_cache), período de gracia para el apagado, puertos, variables de entorno y el Endpoint Storage donde se guardan sus registros. Solo cambian los campos indicados, pero ports y env reemplazan la lista completa. Las implementaciones en ejecución conservan la configuración anterior.
edgegap_delete_app_version ●Elimina una versión para limpiar versiones de prueba. Se rechaza si hay una implementación de esa versión en ejecución. La imagen del registro se conserva.
edgegap_delete_app ●Elimina una aplicación y sus versiones. Se rechaza si hay alguna implementación en ejecución o si tiene más versiones que max_versions (0 de forma predeterminada).
edgegap_list_locationsMuestra las ciudades donde Edgegap implementa servidores o, para una versión concreta, solo aquellas que tienen capacidad disponible en ese momento.
edgegap_list_ping_beaconsMuestra las balizas de ping que los clientes del juego usan para medir la latencia con cada región.
edgegap_deploy ●Implementa un servidor dedicado autoritativo cerca de tus jugadores. Siempre se etiqueta como edgegap-mcp e indica cuándo lo detendrá Edgegap. Opcionalmente, permite especificar CPU y memoria solo para esta implementación, webhooks que Edgegap llama cuando el servidor está listo, falla o termina, require_cached_locations para acelerar el inicio y private_host_ids para priorizar tu flota privada.
edgegap_list_fleet_hostsMuestra los hosts de una de tus flotas privadas, con su estado y ubicación, para implementar servidores en ellos.
edgegap_wait_for_deploymentEspera hasta que el servidor esté listo y devuelve la dirección de conexión.
edgegap_get_deploymentConsulta el estado de una implementación.
edgegap_list_deploymentsMuestra las implementaciones en ejecución, filtradas por aplicación, versión, estado, etiquetas y otros criterios, y ordenadas por antigüedad. Permite encontrar servidores que siguen en ejecución; only_agent_deployments: true muestra todos los que inició un agente. Consulta Filtrar implementaciones.
edgegap_get_deployment_logsLee los registros del contenedor y los detalles de fallos mientras la implementación está en ejecución. Cuando se detiene, los registros solo se conservan si se configuró Endpoint Storage.
edgegap_get_deployment_metricsResume el uso de CPU, limitación de CPU, memoria y red (valor más reciente, promedio y máximo) para ajustar el tamaño de una versión o investigar un fallo.
edgegap_stop_deployment ●Detiene una implementación mediante su ID de solicitud exacto. No permite detener varias a la vez.
edgegap_tag_deployment ●Añade o elimina etiquetas de una implementación en ejecución, por ejemplo, para marcar una partida. La etiqueta edgegap-mcp se conserva.
edgegap_report_deployment ●Notifica una implementación a Edgegap con un motivo, para el backend de moderación de un estudio. La implementación sigue en ejecución.

Registros y archivos (Endpoint Storage)

Los registros del contenedor desaparecen cuando termina la implementación, a menos que se exporten a tu propio bucket compatible con S3.

HerramientaQué hace
edgegap_list_endpoint_storageMuestra tus buckets de Endpoint Storage y sus perfiles de descarga. Nunca devuelve claves secretas.
edgegap_create_endpoint_storage ●Registra un bucket (AWS S3, Cloudflare R2, DigitalOcean Spaces…) para exportar registros. Configura endpoint_storage en una versión para activar la exportación. La clave secreta nunca se devuelve.
edgegap_create_pull_profile ●Copia un archivo o una carpeta del bucket al contenedor durante el inicio (mapas, configuraciones y recursos grandes).
edgegap_link_pull_profile ●Vincula un perfil de descarga a una versión o lo desvincula.
edgegap_delete_pull_profile ●Elimina un perfil de descarga. El bucket y sus archivos se conservan.
edgegap_delete_endpoint_storage ●Elimina un Endpoint Storage; se rechaza si tiene perfiles de descarga, a menos que max_pull_profiles lo permita. El bucket y sus registros se conservan.

Relés (solo juegos con anfitrión-cliente)

Un relé no es un servidor de juego: reenvía el tráfico mientras el juego de un jugador aloja la partida. Consulta ¿Servidores dedicados o relés?.

HerramientaQué hace
edgegap_create_relay_session ●Crea una sesión de relé para tus jugadores y devuelve la dirección del relé y el token de autorización de cada jugador.
edgegap_get_relay_sessionConsulta una sesión de relé.
edgegap_list_relay_sessionsMuestra las sesiones de relé abiertas para encontrar las que siguen en ejecución. No incluye tokens de autorización.
edgegap_authorize_relay_user ●Añade a un jugador que se une más tarde.
edgegap_revoke_relay_user ●Elimina a un jugador de una sesión de relé.
edgegap_delete_relay_session ●Cierra una sesión de relé.

[!WARNING] Las implementaciones y las sesiones de relé se facturan mientras están en ejecución. Pide a tu agente que detenga las implementaciones de prueba y elimine las sesiones de relé de prueba cuando termine.

Ejemplos de indicaciones

  • «Escribe un Dockerfile para la compilación de mi servidor de Unity, luego súbelo e implementa un servidor cerca de mí»
  • «Comprueba mi Dockerfile para Edgegap y corrige cualquier problema»
  • «Mi implementación falló. Lee los registros y dime por qué»
  • «¿Cuánta CPU y memoria usó mi última partida? Ajusta el tamaño de mi versión»
  • «Mi juego usa redes de anfitrión-cliente. Configura un relé de Edgegap para dos jugadores»

🛡️ Medidas de protección

Tu token de API puede hacer cualquier cosa en tu organización, así que el servidor añade sus propios límites a las acciones que un agente puede realizar con él. Se aplican tanto al servidor local como al endpoint alojado.

ProtecciónQué hace
SimulaciónTodas las herramientas que modifican algo aceptan dry_run: true: devuelven el método, el host, la ruta y el cuerpo exactos, con el token, los tokens del registro y los valores de entorno ocultos, y no envían nada. Las comprobaciones locales siguen ejecutándose.
Sin tokens en contenedoresSe rechaza un despliegue o una versión, sin enviar nada, si tu token de API aparece en el nombre o el valor de una variable de entorno, una etiqueta o una URL de webhook. Los valores de entorno nunca se muestran.
Etiqueta del agenteCada despliegue recibe la etiqueta edgegap-mcp, incluso cuando el agente proporciona sus propias etiquetas. edgegap_list_deployments con only_agent_deployments: true los encuentra todos.
Parada automáticaCada despliegue indica cuándo lo detendrá Edgegap: el max_duration de la versión, con un límite máximo de EDGEGAP_MAX_DURATION_MINUTES (60 de forma predeterminada) para las versiones que crea el agente. Edgegap no tiene un límite de tiempo por despliegue, así que se rechaza el despliegue de una versión cuyo max_duration supere ese límite o sea ilimitado (una versión creada en otro lugar tiene un valor predeterminado de 1440 minutos), a menos que el agente proporcione allow_long_running: true, algo que solo se le indica que haga después de consultarte.
Despliegues por ejecuciónEl servidor local envía como máximo EDGEGAP_MAX_DEPLOYS_PER_RUN despliegues por proceso (20 de forma predeterminada), incluidos los fallidos, ya que un despliegue rechazado aún puede crear un despliegue. Cuando la API rechaza un despliegue pero aun así lo crea, el error indica su nombre para que el agente pueda detenerlo.
Sin etiquetas de imagen cambiantesedgegap_create_app_version rechaza latest (sin distinguir mayúsculas y minúsculas), una etiqueta vacía o una etiqueta que Docker rechazaría, sin enviar nada: Edgegap almacena en caché las imágenes por etiqueta, por lo que volver a enviar una etiqueta puede desplegar una compilación obsoleta. También se rechaza desplegar una versión existente en latest, así como solicitar comandos para enviar al registro para latest.
Comprobación de referencia de imagenSe rechaza un docker_image que también incluya un host de registro, una etiqueta o un resumen (p. ej., registry.edgegap.com/proj/server:v2), y el error indica la separación correcta entre docker_repository / docker_image / docker_tag. edgegap_validate_server_config señala los mismos casos.
Límite de desplieguesSe rechaza edgegap_deploy mientras ya haya en ejecución EDGEGAP_MAX_AGENT_DEPLOYMENTS (5 de forma predeterminada) despliegues etiquetados con edgegap-mcp, para que un agente en bucle no acumule servidores facturables. El rechazo indica cómo enumerarlos y detenerlos.
Variables de entorno secretas ocultasLas variables de entorno cuyos nombres parecen secretos (TOKEN, SECRET, PASSWORD, API_KEY, CREDENTIAL, AUTH…) se envían con is_hidden, para que el panel no muestre sus valores en texto sin formato.
Parada estrictaedgegap_stop_deployment detiene un despliegue mediante su ID de solicitud exacto. Se rechazan los ID vacíos, los comodines y las listas. No hay parada masiva. Con EDGEGAP_STOP_OWN_ONLY=1, solo detiene los despliegues etiquetados con edgegap-mcp.
Eliminaciones cuidadosasedgegap_delete_app_version y edgegap_delete_app aceptan un único nombre exacto y se rechazan mientras haya un despliegue de ese elemento en ejecución. Una aplicación con versiones solo se elimina cuando max_versions las incluye.
URL de webhooks y bucketsLos webhooks de despliegue y los endpoints de Endpoint Storage deben ser URL https sin credenciales, y se rechazan si contienen tu token de API.
Host en cada resultadoCada resultado empieza con el host de la API, p. ej., [api.edgegap.com], o [custom · host] cuando EDGEGAP_BASE_URL apunta a otro lugar. Una URL base que indique api.edgegap.com debe ser exactamente https://api.edgegap.com; de lo contrario, el servidor se niega a iniciarse.
RedacciónEl token se elimina de todos los errores antes de que lleguen al agente.

El servidor se identifica con User-Agent: edgegap-mcp/<version> (<MCP client name>) en cada llamada a la API.

Analítica de uso. El servidor local y la imagen Docker autohospedada no envían nada aparte de las propias llamadas a la API. El endpoint alojado en mcp.edgegap.dev usa PostHog MCP Analytics (@posthog/mcp) y envía eventos de uso al PostHog de Edgegap: qué cliente MCP se conectó, qué herramienta, recurso de prompt o recurso de skill se usó, los nombres (no los valores) de los argumentos proporcionados, si una llamada tuvo éxito, su código de error, la etapa en la que falló y el estado de la API de Edgegap, cuánto tardó, si fue una simulación, algunos datos sobre la llamada (cómo terminó la espera de un despliegue, el resultado de una validación, qué skill se cargó), qué paso de la ruta recomendada se alcanzó, además de la versión del servidor y el código de país de Cloudflare. Si una llamada falla, también envía el mensaje de error, después de eliminar tu token, los valores de los argumentos que proporcionaste y cualquier elemento con formato de credencial, dirección IP o ID, truncado a 300 caracteres. Los ID de despliegue solo se envían como un hash con clave. Solo se permiten propiedades de metadatos con nombre. Nunca envía tu token, los valores de los argumentos de las herramientas (direcciones IP, variables de entorno, nombres de aplicaciones o imágenes) ni los resultados, y GeoIP está desactivado. No añade parámetros a las herramientas. Los eventos de un mismo token se agrupan mediante un hash con clave no reversible del token. La lista completa está en docs/analytics.md. Para excluirte, envía el encabezado X-Edgegap-Telemetry: off (o DNT: 1), o usa el servidor local.

🚨 Solución de problemas

Consulta los códigos de error habituales y descubre cómo desbloquear tu integración.

401 Unauthorized

Lo más probable es que tu integración MCP no esté incluyendo correctamente el encabezado Authorization.

Tool Call Failed

A tu cliente le falta un token de Edgegap. Esto ocurre con los conectores personalizados de claude.ai y Claude Desktop, que no pueden enviar un encabezado Authorization. Consulta Claude Desktop y claude.ai para ver la alternativa.

[!WARNING] Esta es una limitación conocida que se resolverá próximamente. ¡Mantente al tanto de las novedades!

403 Forbidden

Es probable que tu integración MCP esté usando el token de plantilla o un token eliminado. Comprueba que el valor del token que usa tu integración coincida exactamente con el que aparece en el panel.

424 Image Could Not Be Pulled

Edgegap no pudo obtener tu imagen de contenedor. Comprueba el repositorio, el nombre de la imagen y la etiqueta, y que la etiqueta se haya enviado (pídele a tu agente que enumere las etiquetas del registro). Para las imágenes del registro de Edgegap, el nombre de la imagen debe incluir tu proyecto, p. ej., my-project/my-game-server.

Registry Credentials Unavailable

Edgegap solo proporciona credenciales del registro al token de inicio rápido que usan los complementos de Unity y Unreal, así que con un token de API normal tu agente no puede recuperarlas y te las solicita. Copia el proyecto, el nombre de usuario y el token del panel, en Container Registry, o envía la imagen a otro registro del que Edgegap pueda obtenerla (Docker Hub, GitHub, AWS ECR, GCP, GitLab). Consulta Registros externos.

"status": "empty" o "not_configured"

No es un error. Una lista vacía (todavía no hay aplicaciones, no hay despliegues en ejecución, nunca se ha enviado una imagen) o una función que esta organización no ha configurado (relés, un registro que este token no puede leer) se devuelve como un resultado normal con status y un next_step. Tu agente debe continuar con el siguiente paso en lugar de volver a intentarlo.

No Token Yet

Las skills (edgegap_list_skills, edgegap_get_skill), edgegap_context, edgegap_generate_dockerfile y edgegap_validate_server_config funcionan sin token, así que un agente puede preparar primero la compilación del servidor. Crea una cuenta en app.edgegap.com y un token en User Settings → Tokens. edgegap_context con check_token: true indica si la sesión tiene un token y si este se acepta, y muestra sus últimos cuatro caracteres para que puedas encontrarlo en esa página.

Starts Locally but Not on Edgegap

Pídele a tu agente que valide la configuración del servidor o que genere un Dockerfile nuevo. Las causas más habituales son una imagen compilada en Apple Silicon sin docker build --platform linux/amd64, un servidor que escucha en un puerto distinto del que expone la versión o un transporte UDP configurado como TCP.

Other API Errors

Consulta nuestra referencia de la API para ver las posibles respuestas de error de cada endpoint de la API.

[!NOTE] Si necesitas ayuda, ponte en contacto con nosotros por Discord. Para obtener asistencia con juegos en vivo, consulta nuestro sistema de tickets.

🛠️ Autoalojamiento

El endpoint alojado en mcp.edgegap.dev se ejecuta como un Cloudflare Worker (consulta worker/INSTALL.md). Para ejecutar el mismo servidor HTTP sin estado en tu propia infraestructura, usa la imagen Docker:

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

Los clientes se conectan a http://<host>:8080/mcp con su propio encabezado Authorization, igual que cuando se conectan al endpoint alojado. La imagen no contiene credenciales y /health responde sin ellas. Se aplican PORT, HOST, EDGEGAP_READ_ONLY, EDGEGAP_APP_ALLOWLIST, EDGEGAP_MAX_DURATION_MINUTES, EDGEGAP_MAX_AGENT_DEPLOYMENTS y EDGEGAP_STOP_OWN_ONLY; pasa cada uno con -e NAME=value. Nunca pases un token de API al contenedor: cada cliente envía el suyo en cada solicitud. Lee worker/DECISION.md antes de exponerlo fuera de una red privada.

Las imágenes precompiladas para linux/amd64 y linux/arm64 se publican en ghcr.io/edgegap/llm-mcp-server (y, para las configuraciones existentes, con el nombre anterior ghcr.io/edgegap/edgegap-mcp), con las etiquetas main y sha-<commit> en cada envío a main, además de la versión en las etiquetas v*:

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

Desarrollo

Consulta CONTRIBUTING.md para ver las comprobaciones que debe superar un cambio, CHANGELOG.md para saber qué cambió en cada versión y SECURITY.md para informar de una vulnerabilidad.

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

Para actualizar las skills incluidas a la última confirmación de llm-agent-skills y luego publicar una versión como de costumbre:

npm run sync-skills -- --ref main
npm run check-skills      # exit 1 if src/skills.generated.ts differs from the pin
PruebaQué cubre
test/unit.test.mjsPruebas unitarias de las reglas de etiquetas, imágenes, nombres de secretos, URL y redacción
test/package.mjsEmpaquetado: un bin, dependencias de ejecución, versiones en el paso
test/skills.mjsSkills mediante MCP: herramientas, prompts, recursos, seguridad de rutas, el paquete coincide con la versión fijada
test/smoke.mjsProtocolo de enlace, registro de herramientas, modo de solo lectura
test/guards.mjsValidación local y aplicación de la lista de permitidos
test/elicit.mjsSolicitud de token: aceptar, rechazar el acuse de recibo, declinar, sin compatibilidad
test/newtools.mjsValidador, generador de Dockerfile, registro, despliegues, herramientas de relé y de emparejamiento contra una API simulada local
test/http.mjsServidor HTTP autohospedado: descubrimiento sin token, tokens por solicitud, credenciales externas
test/spec.mjsTodos los endpoints y campos del cuerpo de solicitud que envía el servidor están en spec/ (las herramientas de escritura se comprueban mediante simulación)
test/snapshot.mjsLos nombres, las descripciones y los esquemas de las herramientas, así como las instrucciones, coinciden con test/tools.snapshot.json; npm run snapshot:update tras un cambio deliberado
test/live-check.mjsNo está en npm test. Se ejecuta contra la API real con un token de una organización que no es de producción

Las decisiones de diseño, el modelo de seguridad y lo que queda deliberadamente fuera del alcance se describen en DESIGN.md.