X-Plane Control
X-Plane Control
Controla e inspecciona un simulador de vuelo X-Plane desde ChatGPT o Codex mediante solicitudes en lenguaje natural.
X-Plane Control es un complemento multiplataforma que contiene un servidor local integrado de Model Context Protocol (MCP). El servidor MCP permite al modelo buscar los catálogos DataRefs.txt y Commands.txt propios de X-Plane, leer datos en vivo del simulador, cambiar valores escribibles, ejecutar comandos del simulador y reubicar la aeronave mediante el protocolo UDP nativo de X-Plane.
Ejemplos de solicitudes:
"Mueve mi avión a una ubicación aleatoria en Arizona."
"Muestra mi posición actual, velocidad indicada, altitud y rumbo."
"Encuentra el comando correcto para bajar el tren de aterrizaje y luego ejecútalo."
"Activa el freno de estacionamiento y verifica su estado."
"Encuentra DataRefs escribibles relacionados con las luces de instrumentos."
El modelo no necesita una lista codificada de todos los controles de X-Plane. Busca en el catálogo que pertenece a tu versión de X-Plane, selecciona un comando o DataRef escribible adecuado y llama a la herramienta MCP correspondiente.
[!ADVERTENCIA] Este proyecto es solo para uso en simuladores de vuelo. No está destinado a la operación, navegación o decisiones de entrenamiento de aeronaves reales. Los comandos y escrituras pueden cambiar inmediatamente la aeronave simulada. Mantén la interfaz UDP no autenticada de X-Plane en una computadora de confianza o en una red privada.
Contenido
Related MCP server: ChatGPT Codex Bridge
Cómo funciona
ChatGPT desktop or Codex CLI
|
| MCP over local stdio
v
X-Plane Control MCP server
|
| Native X-Plane UDP packets
| RREF / DREF / CMND / RPOS / PREL
v
X-Plane 11 or 12El complemento tiene dos entradas independientes:
Un catálogo —
DataRefs.txtyCommands.txtle indican al modelo qué controles existen, qué significan y qué DataRefs son escribibles.Un destino de red — una dirección IP y un puerto UDP identifican el simulador X-Plane en ejecución.
El catálogo y el simulador no tienen que estar en la misma computadora. Por ejemplo, ChatGPT puede ejecutar el complemento en una laptop usando archivos de catálogo copiados mientras X-Plane se ejecuta en una PC de juegos separada en la misma LAN.
El servidor se ejecuta localmente como un proceso de Node.js. No instala un complemento binario de X-Plane, no modifica el simulador, no requiere Python, no requiere PyYAML ni envía tráfico del simulador a través de un servicio alojado.
Características
Se ejecuta en macOS, Linux y Windows con Node.js 20 o superior.
Incluye el runtime completo de MCP en un solo archivo
dist/server.mjs.Busca en los catálogos de DataRef y comandos de X-Plane del usuario.
Usa una raíz de instalación de X-Plane o dos archivos de catálogo seleccionados explícitamente.
Detecta automáticamente varias ubicaciones comunes de instalación de X-Plane 11 y 12.
Descubre automáticamente X-Plane desde su baliza de multidifusión cuando es posible.
Admite un host y puerto explícitos para computadoras remotas, VPN y redes donde la multidifusión no está disponible.
Lee valores escalares con
RREF.Escribe valores escalares numéricos con
DREF.Ejecuta comandos exactos con
CMND.Lee posición geográfica, actitud, velocidad y rotación mediante
RPOS.Reubica una aeronave mediante
PRELen lugar de intentar escribir DataRefs geográficos de solo lectura.Incluye una herramienta de alto nivel que selecciona un punto interior aleatorio en Arizona.
Rechaza los DataRefs del catálogo marcados como de solo lectura.
Rechaza DataRefs y comandos desconocidos por defecto.
Requiere una anulación explícita para nombres de comandos asociados con salir, restablecer, reproducir, fallos, incendios o bloqueos.
Requisitos
Para todos
X-Plane 11 o X-Plane 12.
Node.js 20 o superior en la computadora que ejecuta ChatGPT o Codex.
Un host de complemento local compatible:
ChatGPT de escritorio con soporte de complementos, o
Codex CLI.
Los archivos
DataRefs.txtyCommands.txtde la versión de X-Plane que deseas controlar.
Comprueba Node.js antes de instalar:
node --versionEl resultado debe comenzar con v20, v21, v22 o una versión posterior. Una versión empaquetada no requiere npm, TypeScript, Python ni una instalación de dependencias por separado.
El ejecutable node debe estar disponible para el host del complemento a través de PATH. El instalador estándar de Node.js suele ser la opción más fácil en macOS y Windows. Si Node se instaló solo mediante un administrador de versiones específico de shell como nvm, consulta El complemento está instalado pero su servidor MCP no se inicia.
Requisitos adicionales al compilar desde el código fuente
npm, incluido con Node.js.Git, si se clona en lugar de descargar el repositorio como archivo ZIP.
Superficies compatibles de ChatGPT y Codex
Este repositorio distribuye un complemento de marketplace local con un servidor MCP stdio integrado.
ChatGPT de escritorio: compatible donde haya complementos locales disponibles.
Codex CLI: compatible. Escribe
/pluginspara usar el navegador de complementos después de agregar el marketplace.Extensión de Codex IDE: no compatible porque la extensión IDE actualmente no admite complementos.
ChatGPT web y móvil: no pueden iniciar directamente el servidor stdio integrado de esta computadora. Se necesitaría una edición alojada y publicada por separado para esas superficies.
Esta instalación local de marketplace normalmente no requiere el Modo Desarrollador de ChatGPT ni un endpoint HTTPS público. El Modo Desarrollador se usa al registrar y probar conexiones remotas de servidores MCP; este paquete, en cambio, lanza su propio servidor MCP localmente desde .mcp.json. Las políticas de cuenta o espacio de trabajo aún pueden restringir la disponibilidad de complementos.
Consulta la documentación oficial de OpenAI para conocer la disponibilidad e instalación de complementos actual y el empaquetado de complementos.
Instalar una versión precompilada
Este es el método de instalación recomendado para la mayoría de los usuarios.
1. Descargar y extraer el paquete
Descarga el archivo de la última versión desde la página de Releases de este repositorio y extráelo. Abre el directorio x-plane-control-marketplace extraído.
Si descargaste el repositorio completo en lugar de un archivo de versión, el marketplace precompilado se encuentra en:
release/x-plane-control-marketplaceEl directorio de marketplace correcto contiene ambas rutas:
.agents/plugins/marketplace.json
plugins/x-plane-control/.codex-plugin/plugin.jsonLos directorios con prefijo de punto, como .agents, pueden estar ocultos en Finder o Explorador de archivos. No es necesario hacerlos visibles para que funcionen los comandos de terminal.
2. Agregar el marketplace descargado
Abre Terminal en macOS o Linux, o PowerShell en Windows. Cambia al directorio de marketplace extraído y luego ejecuta:
codex plugin marketplace add .También puedes darle al comando una ruta absoluta sin cambiar de directorio:
codex plugin marketplace add "/absolute/path/to/x-plane-control-marketplace"Ejemplo de PowerShell:
codex plugin marketplace add "C:\Users\YourName\Downloads\x-plane-control-marketplace"3. Instalar el complemento
codex plugin add x-plane-control@x-plane-control-localConfirma que Codex puede ver el marketplace y el complemento:
codex plugin marketplace list
codex plugin list4. Reiniciar el host
Cierra y vuelve a abrir por completo la aplicación de escritorio de ChatGPT, luego abre el Directorio de complementos y confirma que X Plane Control está instalado y habilitado. Inicia un nuevo chat para que se carguen la nueva habilidad y las herramientas MCP.
En Codex CLI, inicia una nueva sesión después de la instalación. También puedes escribir /plugins para revisar los complementos instalados.
Instalar desde el código fuente
Usa este método para desarrollar el complemento, inspeccionar el código fuente o compilar una versión tú mismo.
1. Descargar el repositorio
Usa la acción Code → Download ZIP de GitHub y extrae el archivo, o clona el repositorio:
git clone https://github.com/josvisser66/x-plane-control.git
cd x-plane-controlSi el repositorio contiene x-plane-control como subdirectorio, cambia a ese directorio antes de continuar. Es el directorio que contiene package.json.
2. Instalar dependencias y validar el proyecto
npm ci
npm run validateLa validación realiza una comprobación de TypeScript, ejecuta las pruebas automatizadas y crea dist/server.mjs.
3. Crear el marketplace distribuible
npm run package:pluginEsto crea:
release/x-plane-control-marketplaceSolo el complemento de runtime, sus metadatos de marketplace, licencia, habilidad y documentación se copian en este directorio. Los archivos fuente, las pruebas y las dependencias de desarrollo no son necesarios para el complemento instalado.
4. Agregar e instalar el marketplace local
codex plugin marketplace add "./release/x-plane-control-marketplace"
codex plugin add x-plane-control@x-plane-control-localReinicia ChatGPT de escritorio o inicia una nueva sesión de Codex CLI.
Preparar X-Plane
1. Localizar los catálogos
Para una instalación normal de X-Plane, los archivos están aquí:
<X-Plane installation>/Resources/plugins/DataRefs.txt
<X-Plane installation>/Resources/plugins/Commands.txtEl nombre del directorio es Resources/plugins, con plugins en minúsculas en las instalaciones actuales de X-Plane. El complemento también verifica algunas variantes de mayúsculas para compatibilidad.
No configures Resources/plugins como la ruta de instalación. Configura la raíz de instalación de X-Plane que contiene Resources, como:
macOS:
/Applications/X-Plane 12o/Users/alice/X-Plane 12Windows:
C:\X-Plane 12Windows Steam:
C:\Program Files (x86)\Steam\steamapps\common\X-Plane 12Linux:
/home/alice/X-Plane 12Linux Steam:
/home/alice/.steam/steam/steamapps/common/X-Plane 12
DataRefs.txt y Commands.txt no están incrustados intencionalmente en este repositorio. Cargar los archivos suministrados con el simulador mantiene el descubrimiento alineado con la versión de X-Plane instalada por el usuario. Si no hay una instalación local de X-Plane, copia ambos archivos a cualquier directorio legible y configura sus rutas exactas por separado.
2. Habilitar la red UDP
Abre la pantalla Settings → Network de X-Plane. Asegúrate de que X-Plane acepte conexiones entrantes de red/UDP y anota su puerto UDP entrante. El puerto estándar de X-Plane suele ser 49000, pero usa el valor que muestre tu simulador.
Permite que X-Plane pase a través del firewall del sistema operativo cuando se te solicite. Cuando X-Plane esté en otra computadora, su firewall debe permitir el tráfico UDP entrante en el puerto de X-Plane configurado desde la computadora que ejecuta el complemento.
3. Cargar un vuelo
El servidor MCP puede iniciarse antes que X-Plane, y X-Plane inicializa la red durante el arranque. Para obtener valores de DataRef, comandos y reubicación confiables, espera hasta que una aeronave y el escenario hayan terminado de cargarse en un vuelo.
Durante la pantalla de presentación, el menú principal o la carga del vuelo:
la sonda de estado podría no recibir una respuesta;
algunos DataRefs pueden no estar disponibles o contener valores de marcador de posición;
los comandos pueden ignorarse; y
las escrituras de posición o DataRef pueden sobrescribirse durante el proceso de carga.
Configurar el complemento
La configuración se puede guardar de forma conversacional, que es el método más simple, o proporcionarse mediante variables de entorno.
Opción A: configurar una raíz de instalación de X-Plane
Inicia un nuevo chat con el complemento instalado y di:
Usa X Plane Control. Configura mi directorio de instalación de X-Plane como
/Applications/X-Plane 12y luego muestra el estado sin cambiar el simulador.
Ejemplo de Windows:
Usa X Plane Control. Configura mi directorio de instalación de X-Plane como
C:\X-Plane 12y luego verifica el catálogo.
El complemento busca debajo de la raíz los archivos Resources/plugins/DataRefs.txt y Commands.txt. Valida ambos archivos antes de guardar la ruta.
Opción B: configurar dos archivos de catálogo
Usa este modo si X-Plane está instalado en otra computadora o los archivos de catálogo se almacenan en otro lugar:
Usa X Plane Control. Configura DataRefs.txt como
/Users/alice/XPlaneCatalog/DataRefs.txty Commands.txt como/Users/alice/XPlaneCatalog/Commands.txt, y luego muestra el estado.
Ambas rutas deben proporcionarse juntas. Los archivos pueden estar en directorios diferentes. Establecer rutas de catálogo explícitas reemplaza una raíz de instalación guardada previamente; establecer una raíz de instalación reemplaza rutas explícitas guardadas previamente.
Configurar el destino UDP
Para X-Plane en la misma computadora, el descubrimiento automático suele ser suficiente. Si el descubrimiento no está disponible, el complemento recurre a 127.0.0.1:49000.
Para establecer un destino explícito:
Configura X-Plane en el host
192.168.1.50en el puerto UDP49000y, a continuación, haz una prueba.
El host puede ser una dirección IPv4 o un nombre de host que el equipo del plugin pueda resolver. Se recomienda especificar un host explícito cuando X-Plane se ejecuta en otro equipo.
Verificar la configuración
Pregunta:
Usa X Plane Control para mostrar el estado completo y probar el simulador.
El estado incluye:
la ubicación del archivo de configuración guardado;
la configuración efectiva de catálogo y de red;
las rutas resueltas de
DataRefs.txtyCommands.txt;el número de DataRefs y comandos analizados;
si el destino se configuró, se descubrió mediante una baliza o se tomó del valor predeterminado de localhost; y
el resultado de leer el DataRef de versión de X-Plane.
Usar X-Plane en otro equipo
El servidor MCP incluido siempre se ejecuta en el equipo de ChatGPT/Codex. X-Plane puede ejecutarse en ese equipo o en otro equipo accesible por UDP.
Configuración recomendada para equipos remotos
Conecta ambos equipos a la misma red de área local (LAN) de confianza o a una VPN privada.
Busca la dirección IP privada del equipo con X-Plane, por ejemplo
192.168.1.50.En X-Plane, habilita las conexiones de red entrantes y anota el puerto UDP de entrada.
Permite el tráfico UDP entrante a ese puerto a través del cortafuegos del equipo con X-Plane.
Copia
DataRefs.txtyCommands.txtal equipo de ChatGPT/Codex si no tiene X-Plane instalado.Configura las rutas de catálogo copiadas.
Configura la dirección IP y el puerto UDP del equipo con X-Plane.
Carga un vuelo y ejecuta la prueba de estado.
Ejemplo de conversación:
Usa X Plane Control. Mi simulador está en
192.168.1.50:49000. Mis catálogos locales son/Users/alice/XPlaneCatalog/DataRefs.txty/Users/alice/XPlaneCatalog/Commands.txt. Guarda esa configuración y prueba X-Plane.
El descubrimiento por multidifusión normalmente solo funciona en el mismo segmento de red local y puede estar bloqueado por el aislamiento de Wi-Fi, los enrutadores, los contenedores o el software de VPN. En esos casos, configura el host explícitamente.
No reenvíes el puerto UDP de X-Plane directamente desde un enrutador de internet. El protocolo nativo no está cifrado ni autenticado. Para equipos en ubicaciones diferentes, usa una VPN privada que haga que las máquinas sean accesibles por IP privada y restringe el acceso del cortafuegos al equipo del plugin.
Empezar a usar el plugin
Después de la instalación o una actualización, inicia siempre un nuevo chat o una sesión de Codex. Una instrucción directa para usar el plugin facilita las pruebas de la primera ejecución:
Usa X Plane Control para comprobar si mi simulador y mis catálogos están listos. No cambies nada todavía.
Una vez que el estado sea correcto, se pueden usar solicitudes normales en lenguaje natural.
Leer el estado del simulador
«Muestra mi posición geográfica y mi actitud».
«Lee mi velocidad aerodinámica indicada, mi velocidad aerodinámica real, mi rumbo y mi altitud de presión».
«Busca los DataRefs de la cantidad de combustible y muestra sus valores actuales».
«Comprueba si el freno de estacionamiento está accionado».
Para una solicitud que no mencione DataRefs exactos, el modelo debe buscar primero en el catálogo y usar las descripciones y los tipos para seleccionar candidatos.
Ejecutar comandos del simulador
«Busca y ejecuta el comando para alternar el tren de aterrizaje».
«Enciende las luces de aterrizaje con un comando de X-Plane».
«Pausa el simulador».
«Ejecuta el comando de arranque dos veces».
Los comandos representan acciones discretas. El servidor actual envía paquetes CMND de comando único; no implementa el mantenimiento de inicio/fin de comando.
Establecer valores
«Busca un DataRef escribible para el freno de estacionamiento, establécelo en totalmente accionado y vuelve a leerlo».
«Establece la relación de acelerador del primer motor en 0,5».
«Busca DataRefs escribibles de brillo de las luces de instrumentos para esta solicitud y muéstrame los candidatos antes de cambiar nada».
Las descripciones de DataRefs.txt definen las unidades y los significados válidos. Si una unidad, un elemento de matriz o un valor deseado no está claro, pide al modelo que muestre los candidatos antes de escribir.
Mover la aeronave
«Mueve mi avión a una ubicación aleatoria en Arizona».
«Teletransporta la aeronave del usuario a la latitud
34.8697, longitud-111.7609, a 5000 metros sobre el nivel medio del mar, con rumbo este a 60 metros por segundo».«Muestra mi posición, muéveme a estas coordenadas y muestra la posición resultante».
Los DataRefs de posición geográfica son de solo lectura. El plugin usa el paquete PREL nativo de X-Plane para la reubicación y, a continuación, solicita una muestra RPOS independiente cuando es posible.
Pregunta antes de cambiar nada
Si quieres inspeccionar primero la elección del modelo, indícalo explícitamente:
Busca el mejor comando o DataRef escribible para bajar el tren de aterrizaje. Explica lo que hayas encontrado, pero no ejecutes ni escribas nada hasta que confirme.
Las herramientas de escritura, comando y reubicación están marcadas como operaciones de mutación, por lo que el cliente también puede mostrar un aviso de confirmación o aprobación según su configuración de seguridad.
Herramientas disponibles
Herramienta | Propósito | ¿Cambia X-Plane? |
| Muestra la configuración efectiva, el estado del catálogo, la selección de destino y, opcionalmente, prueba el simulador. | No |
| Guarda las rutas de catálogo, la raíz de instalación, el host, el puerto o el tiempo de espera de descubrimiento. | Solo guarda la configuración local |
| Busca DataRefs y comandos por ruta o descripción; opcionalmente, devuelve solo DataRefs escribibles. | No |
| Lee hasta 32 valores escalares o indexados con | No |
| Envía hasta 32 actualizaciones numéricas con | Sí |
| Ejecuta un comando exacto con | Sí |
| Lee posición, actitud, velocidad y rotación con | No |
| Reubica una aeronave en coordenadas geográficas explícitas con | Sí |
| Elige un punto aleatorio en una región compatible y reubica la aeronave del usuario. | Sí |
La herramienta actual de región aleatoria de alto nivel es compatible con arizona. Otras ubicaciones geográficas se pueden usar mediante latitud y longitud explícitas con teleport_xplane_aircraft.
Referencia de configuración
Configuración guardada
La configuración conversacional se almacena en el directorio de configuración normal por usuario del sistema operativo:
macOS:
~/Library/Application Support/XPlaneControl/config.jsonLinux:
$XDG_CONFIG_HOME/x-plane-control/config.json, o~/.config/x-plane-control/config.jsoncuandoXDG_CONFIG_HOMEno está definidoWindows:
%APPDATA%\XPlaneControl\config.json
Ejemplo:
{
"installationPath": "/Applications/X-Plane 12",
"host": "192.168.1.50",
"port": 49000,
"discoveryTimeoutMs": 1200
}Ejemplo de archivo de catálogo explícito:
{
"datarefsPath": "/Users/alice/XPlaneCatalog/DataRefs.txt",
"commandsPath": "/Users/alice/XPlaneCatalog/Commands.txt",
"host": "192.168.1.50",
"port": 49000
}Usa installationPath o el par datarefsPath/commandsPath, no ambos.
Variables de entorno
Las variables de entorno anulan los valores guardados:
Variable | Significado |
| Raíz de instalación de X-Plane que contiene |
| Ruta exacta a |
| Ruta exacta a |
| Nombre de host o dirección IP del simulador |
| Puerto UDP de entrada del simulador, del 1 al 65535 |
| Tiempo de espera de descubrimiento por multidifusión, de 100 a 30 000 milisegundos |
| Ruta alternativa del archivo de configuración guardado |
La prioridad del catálogo es:
el par explícito
XPLANE_DATAREFS_PATHyXPLANE_COMMANDS_PATH;XPLANE_HOME; yla configuración de catálogo guardada o la detección automática de instalación.
XPLANE_HOST, XPLANE_PORT y XPLANE_DISCOVERY_TIMEOUT_MS anulan individualmente sus equivalentes guardados.
Las variables de entorno son más fáciles de usar con Codex CLI porque la CLI hereda el entorno del shell:
export XPLANE_HOME="/home/alice/X-Plane 12"
export XPLANE_HOST="192.168.1.50"
export XPLANE_PORT="49000"
codexPowerShell:
$env:XPLANE_HOME = "C:\X-Plane 12"
$env:XPLANE_HOST = "192.168.1.50"
$env:XPLANE_PORT = "49000"
codexEs posible que una aplicación de escritorio iniciada desde Finder, el Dock o el menú Inicio no herede las variables establecidas en un terminal. Usa configure_xplane y la configuración guardada para la aplicación de escritorio a menos que la inicies intencionadamente con un entorno controlado.
Borrar la configuración guardada
Pide al plugin que borre campos individuales:
Borra el host y el puerto de X-Plane guardados y, a continuación, muestra el destino efectivo sin probar.
Para volver de archivos explícitos a la detección automática de instalación:
Borra las rutas guardadas de DataRefs.txt y Commands.txt y, a continuación, muestra el estado del catálogo.
Las dos rutas de catálogo explícitas siempre deben configurarse o borrarse juntas.
Comportamiento y limitaciones
Las escrituras UDP no se confirman
Los datagramas DREF, CMND y PREL nativos de X-Plane no devuelven confirmaciones de éxito. Un resultado correcto de la herramienta significa que el datagrama se envió, no que X-Plane aceptó el cambio.
Cuando la verificación sea importante, pide al modelo que lea el DataRef o la posición después. Una lectura de retorno es una observación independiente y la pérdida de UDP o el comportamiento del simulador aún pueden afectarla.
UDP no está ordenado ni es fiable
Los paquetes pueden perderse, duplicarse, retrasarse o llegar desordenados. El plugin usa tiempos de espera para las lecturas e informa de los valores que faltan. No proporciona semántica transaccional entre varias escrituras.
Solo se admiten escrituras escalares numéricas
La herramienta DREF actual escribe valores numéricos finitos. Las matrices y cadenas nativas deben tratarse de un elemento numérico indexado a la vez, por ejemplo:
sim/example/array_dataref[0]No se han implementado las lecturas y escrituras de matrices completas ni de cadenas.
Los valores RREF son float32
X-Plane devuelve los valores de suscripción RREF como números de coma flotante de 32 bits, incluso cuando el catálogo describe un DataRef como entero o doble. Se esperan pequeñas diferencias de precisión.
Los catálogos no garantizan la disponibilidad en tiempo de ejecución
DataRefs.txt describe el catálogo base de X-Plane. Las aeronaves y los plugins de terceros pueden crear DataRefs o comandos adicionales en tiempo de ejecución. Es posible que esas entradas personalizadas no aparezcan en los archivos base.
Las herramientas tienen una vía de escape allowUnlisted, pero el modelo solo debe usarla cuando se haya identificado una ruta personalizada exacta de una fuente de confianza de aeronaves o plugins. Nunca se debe adivinar un nombre no incluido en la lista.
Que sea escribible no significa que todas las aeronaves respeten un valor
Un DataRef marcado como escribible puede seguir estando controlado o sobrescrito por la aeronave activa, el piloto automático, el modelo de vuelo u otro plugin. Algunos DataRefs solo tienen sentido para aeronaves o estados del simulador concretos.
Las unidades proceden del catálogo
Los nombres por sí solos no siempre revelan si un valor está en grados, radianes, nudos, metros por segundo, pies, metros, una proporción o una enumeración. El modelo debe inspeccionar la descripción del catálogo y pedir una aclaración cuando la unidad prevista no esté clara.
Varias instancias de X-Plane
El descubrimiento por baliza devuelve la primera instancia válida que escuche. Configura un host y un puerto explícitos cuando haya más de un simulador.
Solución de problemas
codex: command not found
Instala o actualiza Codex CLI, abre un nuevo terminal y confirma:
codex --version
codex plugin --helpLa CLI actual debe proporcionar los comandos codex plugin. Consulta la documentación oficial de plugins de OpenAI para conocer las superficies de instalación compatibles.
El marketplace o el plugin no es visible
Ejecuta:
codex plugin marketplace list
codex plugin listConfirma que:
x-plane-control-localaparece como marketplace;x-plane-controlaparece en la lista de plugins;añadiste el directorio que contiene
.agents/plugins/marketplace.json, no el directorio interno del plugin;la aplicación de escritorio de ChatGPT se reinició por completo; y
iniciaste un nuevo chat después de la instalación.
Los administradores del espacio de trabajo pueden restringir los plugins locales. Si el marketplace es reconocido por la CLI pero no está disponible en la aplicación, comprueba la política de la cuenta o del espacio de trabajo.
El plugin está instalado pero su servidor MCP no se inicia
Comprueba Node.js en una terminal:
node --versionEn macOS o Linux, ejecuta también:
command -v nodeEn Windows:
Get-Command nodeEl .mcp.json incluido lanza node, por lo que debe ser visible en el PATH del host. Si Node solo está disponible después de que se cargue un perfil de shell, instala Node a nivel de sistema con el instalador estándar o haz que la aplicación de escritorio herede el PATH correcto y, a continuación, reinicia la aplicación por completo.
Para comprobar el servidor empaquetado manualmente, ejecuta esto desde el directorio del marketplace:
node plugins/x-plane-control/dist/server.mjs --transport=stdioUn servidor stdio en buen estado espera en silencio los mensajes MCP; pulsa Ctrl+C para detenerlo. Los desarrolladores pueden ejecutar la prueba de protocolo de enlace automatizada con npm run smoke:stdio desde el directorio de origen.
No se puede encontrar el catálogo
Solicita el estado sin sondear X-Plane:
Muestra el estado de X Plane Control con el sondeo deshabilitado, incluidas las rutas de catálogo resueltas.
Comprueba que:
una ruta de instalación apunta a la raíz de X-Plane, no a
Resources/plugins;ambos archivos existen debajo de
<root>/Resources/plugins;las rutas de archivo explícitas nombran los propios archivos;
ambas rutas explícitas se configuraron juntas;
el host del plugin tiene permiso para leer ambos archivos; y
las variables de entorno no están sobrescribiendo la configuración guardada.
Si X-Plane está en otro equipo, copia ambos archivos al equipo del plugin y configura esas copias.
El sondeo UDP agota el tiempo de espera
Comprueba lo siguiente en orden:
X-Plane se está ejecutando y una aeronave ha terminado de cargarse.
X-Plane acepta conexiones de red entrantes.
El puerto UDP configurado coincide con los ajustes de red de X-Plane.
El host configurado es la dirección IP actual del equipo con X-Plane.
El cortafuegos del sistema operativo permite el tráfico.
Ambos equipos pueden alcanzarse entre sí en la misma LAN o VPN privada.
El aislamiento de clientes está deshabilitado en la red Wi-Fi.
Se configura un host explícito si el descubrimiento por multidifusión no puede cruzar el límite de la red.
El envío de un datagrama UDP puede parecer exitoso incluso cuando ningún simulador está escuchando. Usa el sondeo de versión o una lectura de DataRef para establecer la accesibilidad.
Un comando o escritura dice «enviado» pero nada cambia
Las posibles causas incluyen:
el vuelo todavía se está cargando;
pérdida de paquetes UDP;
el valor de DataRef usa unidades diferentes o un enum;
se seleccionó el índice de matriz incorrecto;
la aeronave activa u otro plugin sobrescribió el valor inmediatamente;
el comando no es aplicable a la aeronave activa; o
el catálogo configurado no coincide con la versión de X-Plane en ejecución.
Pide al modelo que lea el valor de nuevo y que muestre la entrada del catálogo que seleccionó. Para una acción de cabina discreta, pídele que busque un comando exacto en lugar de forzar una escritura de DataRef.
Falta un comando o DataRef de una aeronave complementaria
Los archivos de catálogo estándar no contienen necesariamente los controles complementarios registrados dinámicamente. Consulta la documentación de la aeronave o del plugin para conocer la ruta exacta. A continuación, pide al modelo que use ese nombre exacto no listado y explica por qué la anulación es apropiada.
Los valores parecen redondeados o ligeramente diferentes
RREF devuelve valores float32. La precisión puede ser menor que el tipo de DataRef subyacente, y X-Plane puede actualizar los valores entre lecturas separadas.
Actualizar o desinstalar
Actualizar un paquete local descargado
Descarga y extrae la nueva versión.
Elimina la copia instalada anterior:
codex plugin remove x-plane-control@x-plane-control-localSi el nuevo paquete está en un directorio diferente, reemplaza el registro del marketplace:
codex plugin marketplace remove x-plane-control-local codex plugin marketplace add "/path/to/new/x-plane-control-marketplace"Instala el plugin de nuevo:
codex plugin add x-plane-control@x-plane-control-localReinicia ChatGPT de escritorio e inicia un nuevo chat.
Los ajustes guardados de X-Plane Control se almacenan fuera de la caché del plugin, por lo que reinstalar el plugin normalmente no elimina la configuración guardada del simulador/catálogo.
Desinstalar
codex plugin remove x-plane-control@x-plane-control-local
codex plugin marketplace remove x-plane-control-localLos comandos eliminan el plugin instalado y el registro del marketplace. No eliminan el config.json de X-Plane Control guardado por separado. Elimina ese archivo manualmente solo si también quieres borrar las rutas guardadas y el destino de red.
Desarrollo
Comandos comunes
npm run check
npm test
npm run build
npm run smoke:stdio
npm run package:pluginnpm run checkcomprueba los tipos del código fuente TypeScript.npm testejecuta las pruebas de paquetes, catálogo, configuración y X-Plane falso.npm run buildempaqueta el servidor endist/server.mjs.npm run smoke:stdiolanza el servidor empaquetado y realiza una prueba de protocolo de enlace/lista de herramientas de MCP.npm run package:pluginvalida, empaqueta y prueba el plugin distribuible.
Estructura del proyecto
.codex-plugin/plugin.json Plugin manifest
.mcp.json Bundled stdio MCP launch configuration
dist/server.mjs Bundled runtime
skills/x-plane-control/ Model workflow instructions
src/catalog.ts Catalog parsing and search
src/config.ts Saved and environment configuration
src/protocol.ts X-Plane packet encoding and decoding
src/server.ts MCP tools and transports
src/xplane.ts UDP discovery and client
tests/ Automated tests
scripts/package-plugin.mjs Release marketplace builder
scripts/smoke-stdio.mjs MCP stdio smoke testTransporte HTTP de diagnóstico opcional
El plugin normal usa stdio. Se conserva un transporte HTTP de bucle local para diagnósticos de protocolo locales:
node dist/server.mjs --transport=http --host=127.0.0.1 --port=8765Puntos de conexión:
MCP:
http://127.0.0.1:8765/mcpComprobación de estado:
http://127.0.0.1:8765/health
Este listener no está autenticado y debe permanecer vinculado al bucle local. No lo expongas públicamente.
Notas de distribución
Hacer público este repositorio en GitHub permite a los usuarios descargar e instalar el paquete de marketplace local. No lista automáticamente el plugin en el Directorio público universal de plugins de OpenAI.
La edición de GitHub/marketplace local es deliberadamente un plugin stdio empaquetado porque debe acceder a archivos de catálogo locales y a un simulador en la red del usuario. La ruta de envío de plugins públicos de OpenAI generalmente espera un servicio MCP de producción en un punto de conexión HTTPS estable, con autenticación y revisión adecuadas. Esa sería una arquitectura y un canal de publicación separados.
Antes de crear una versión en GitHub:
Actualiza la versión y los metadatos públicos de autor/repositorio en
.codex-plugin/plugin.jsonypackage.json.Ejecuta
npm ci.Ejecuta
npm run package:plugin.Prueba el directorio
release/x-plane-control-marketplacegenerado en una cuenta o máquina limpia.Archiva ese directorio como el recurso de la versión, conservando
.agents/plugins/marketplace.json.Publica el código fuente y el archivo de versión bajo la licencia MIT incluida.
Privacidad y seguridad
El servidor MCP y el cliente UDP de X-Plane se ejecutan localmente.
Este servidor no requiere ninguna clave de API de OpenAI.
No se usan credenciales de X-Plane.
La configuración guardada contiene rutas del sistema de archivos y, opcionalmente, un nombre de host/IP y puerto del simulador.
El tráfico UDP de X-Plane no está cifrado ni autenticado.
Los archivos de catálogo se leen localmente y se usan para la búsqueda y los metadatos de seguridad.
El plugin puede cambiar el estado del simulador, por lo que debes revisar las aprobaciones de herramientas y usarlo solo con un simulador que estés autorizado a controlar.
Referencias técnicas
Licencia
MIT. Consulta LICENSE.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseAqualityCmaintenanceMCP server giving AI agents access to real-time aviation data — live flight tracking, airport weather, airline and airport information.103MIT
- AlicenseNot gradedqualityAmaintenanceSelf-hosted MCP server that lets ChatGPT work with your local codebase through explicit tools.MIT
- AlicenseAqualityBmaintenanceEnables MCP clients like Claude to read live state and control aircraft in Microsoft Flight Simulator 2024 via SimConnect, FSUIPC7, and raw memory, offering 23 tools for simvars, events, autopilot, and more.23MIT
- FlicenseNot gradedqualityBmaintenanceProvides the JSBSim flight-dynamics engine as an MCP service, enabling AI agents to control and simulate aircraft in real-time through natural language.
Related MCP Connectors
MCP server for AI dialogue using various LLM models via AceDataCloud
Hosted MCP server connecting claude.ai, ChatGPT and other AI apps to your own computer
MCP server for AI agents to plan, verify, and deploy Cloudflare-native apps.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/josvisser66/x-plane-control'
If you have feedback or need assistance with the MCP directory API, please join our Discord server