MCP Command Proxy

hybrid server

The server is able to function both locally and remotely, depending on the configuration or use case.

Integrations

  • Allows running Expo development server commands, specifically 'expo start', with the ability to capture logs and interact with the Expo CLI through key presses

Proxy de comando MCP

Un servidor MCP (Protocolo de contexto de modelo) que actúa como proxy para comandos CLI, diseñado específicamente para el desarrollo de Expo pero adaptable para cualquier aplicación de línea de comandos.

Cómo usar en Cursor (ejemplo de Expo)

  1. Vaya al directorio de su proyecto Expo
  2. Ejecute npx mcp-command-proxy --prefix "ExpoServer" --command "expo start" --port 8383
  3. Vaya a Configuración del cursor -> MCP -> +Agregar nuevo servidor MCP, de la siguiente manera:
  4. Establezca el nombre en "ExpoServer", escriba "SSE" y la URL en http://localhost:8383/sse
  5. Haz clic en "Guardar" y ya podrás usar el servidor MCP en Cursor. Así:

Se recomienda usar el indicador --port 8383 para evitar conflictos con otros servidores. También puede agregar la siguiente instrucción al archivo .cursorrules:

You can use MCP getRecentLogs tool to get the most recent logs from Expo server. And if needed, you can send key presses to the running process using sendKeyPress tool.

Características

  • Proxy de comandos : ejecute cualquier comando CLI a través del servidor MCP
  • Recopilación de registros : captura y almacena registros de procesos en ejecución (tamaño de búfer configurable)
  • Reenvío de pulsaciones de teclas : reenvía las pulsaciones de teclas del cliente al proceso en ejecución
  • Experiencia transparente : el usuario final ve el resultado del comando exactamente como si lo ejecutara directamente
  • Comandos interactivos : funciona con herramientas CLI interactivas como Expo
  • Integración con MCP : creada con el SDK de MCP para una fácil integración con Claude y otros asistentes de IA habilitados para MCP

Cómo funciona

  1. El servidor inicia un comando especificado en una pseudo-terminal (PTY)
  2. Toda la salida stdout/stderr es:
    • Transmitido al cliente en tiempo real
    • Almacenado en un buffer circular (tamaño configurable, predeterminado 300 líneas)
  3. Las pulsaciones de teclas del cliente se reenvían al proceso en ejecución
  4. El servidor proporciona herramientas para:
    • Ver registros recopilados
    • Enviar pulsaciones de teclas al proceso
    • Obtener el estado actual del proceso

Casos de uso

  • Desarrollo de Expo : Ejecute expo start e interactúe con él mientras recopila registros
  • Procesos de compilación : supervisar los procesos de compilación y analizar los registros
  • Servicios de larga duración : supervisar los servicios y mantener el historial de registros reciente
  • Ejecución remota de comandos : ejecutar y supervisar comandos desde clientes remotos

Requisitos

  • Node.js 18+
  • Mecanografiado
  • pnpm (recomendado) o npm

Instalación

# Install dependencies pnpm install # Build the project pnpm build # Run directly pnpm start -- --prefix "MyServer" --command "expo start" # Or install globally pnpm install -g mcp-command-proxy --prefix "MyServer" --command "expo start"

Uso

Uso básico

# Using the CLI mcp-command-proxy --prefix "ExpoServer" --command "expo start" # Or programmatically import { createServer } from 'mcp-command-proxy'; const server = await createServer({ prefix: 'ExpoServer', command: 'expo start', bufferSize: 500, port: 8080 }); // To stop the server later server.stop();

Opciones

  • --prefix, -p : Nombre/prefijo del servidor (predeterminado: "CommandProxy")
  • --command, -c : Comando a ejecutar (obligatorio)
  • --buffer-size, -b : Número de líneas de registro que se mantendrán en la memoria (predeterminado: 300)
  • --port : Puerto para el servidor HTTP (predeterminado: 8080)
  • --help, -h : Mostrar ayuda

Integración MCP

Este servidor implementa las siguientes herramientas MCP:

  1. getRecentLogs : Devuelve los registros más recientes del búfer
    • Parámetros:
      • limit (opcional): Número de registros a devolver (predeterminado: 100)
      • types (opcional): tipos de registros a incluir (stdout, stderr, sistema) (predeterminado: todos)
  2. sendKeyPress : envía una pulsación de tecla al proceso en ejecución
    • Parámetros:
      • key : Tecla para enviar (ej. "enter", "a", "1", "espacio")
  3. getProcessStatus : Devuelve el estado actual del proceso
    • Parámetros: Ninguno

Ejemplos

Inicio de la Expo Running

mcp-command-proxy -p "ExpoServer" -c "expo start" -b 500

Usando con Claude

  1. Configurar a Claude para conectarse a este servidor MCP (punto final SSE: http://localhost:8080/sse )
  2. Pídele a Claude que ejecute Expo u otros comandos
  3. Claude puede analizar registros y ayudar a solucionar problemas.

Desarrollo

# Clone the repository git clone https://github.com/hormold/mcp-command-proxy.git cd mcp-command-proxy # Install dependencies pnpm install # Build the project pnpm build # Run in development mode pnpm dev

Licencia

Instituto Tecnológico de Massachusetts (MIT)

-
security - not tested
A
license - permissive license
-
quality - not tested

Un servidor proxy que permite a los asistentes de IA ejecutar e interactuar con aplicaciones de línea de comandos como Expo a través del Protocolo de contexto de modelo (MCP), capturando registros y permitiendo el reenvío de pulsaciones de teclas.

  1. How to use in Cursor (Expo example)
    1. Features
      1. How It Works
        1. Use Cases
          1. Requirements
            1. Installation
              1. Usage
                1. Basic Usage
                2. Options
                3. MCP Integration
              2. Examples
                1. Running Expo Start
                2. Using with Claude
              3. Development
                1. License
                  ID: r6mkzp5rs4