interactive-mcp

Permite flujos de trabajo interactivos con LLM al agregar indicaciones locales de usuario y capacidades de chat directamente en el bucle de MCP.

Documentación

interactive-mcp

npm version npm downloads smithery badge GitHub license code style: prettier Platforms GitHub last commit

Install MCP Server

Screenshot 2025-05-13 213745

Un servidor MCP implementado en Node.js/TypeScript, que facilita la comunicación interactiva entre LLMs y usuarios. Nota: Este servidor está diseñado para ejecutarse localmente junto con el cliente MCP (por ejemplo, Claude Desktop, VS Code), ya que necesita acceso directo al sistema operativo del usuario para mostrar notificaciones y avisos de línea de comandos.

(Nota: Este proyecto se encuentra en sus primeras etapas.)

¿Quieres una visión general rápida? Consulta la publicación introductoria del blog: Detén a tu asistente de IA de adivinar — Presentamos interactive-mcp

Video de demostración

Herramientas

Este servidor expone las siguientes herramientas a través del Protocolo de Contexto de Modelo (MCP):

  • request_user_input: Hace una pregunta al usuario y devuelve su respuesta. Puede mostrar opciones predefinidas.
  • message_complete_notification: Envía una notificación simple del sistema operativo.
  • start_intensive_chat: Inicia una sesión de chat persistente en la línea de comandos.
  • ask_intensive_chat: Hace una pregunta dentro de una sesión de chat intensiva activa.
  • stop_intensive_chat: Cierra una sesión de chat intensiva activa.

Demostración

Aquí hay demostraciones de las funciones interactivas:

Pregunta normalNotificación de finalización
Normal Question DemoCompletion Notification Demo
Inicio de chat intensivoFin de chat intensivo
Start Intensive Chat DemoEnd Intensive Chat Demo

Escenarios de uso

Este servidor es ideal para escenarios donde un LLM necesita interactuar directamente con el usuario en su máquina local, como:

  • Procesos interactivos de configuración o ajuste.
  • Recopilación de comentarios durante la generación o modificación de código.
  • Aclaración de instrucciones o confirmación de acciones en programación en pareja.
  • Cualquier flujo de trabajo que requiera entrada o confirmación del usuario durante la operación del LLM.

Configuración del cliente

Esta sección explica cómo configurar los clientes MCP para usar el servidor interactive-mcp.

De forma predeterminada, los avisos al usuario expirarán después de 30 segundos. Puedes personalizar las opciones del servidor, como el tiempo de espera o las herramientas deshabilitadas, agregando banderas de línea de comandos directamente al arreglo args al configurar tu cliente.

Asegúrate de tener disponible el comando npx.

Uso con Claude Desktop / Cursor

Agrega la siguiente configuración mínima a tu claude_desktop_config.json (Claude Desktop) o mcp.json (Cursor):

{
  "mcpServers": {
    "interactive": {
      "command": "npx",
      "args": ["-y", "interactive-mcp"]
    }
  }
}

Con una versión específica

{
  "mcpServers": {
    "interactive": {
      "command": "npx",
      "args": ["-y", "interactive-mcp@1.9.0"]
    }
  }
}

Ejemplo con tiempo de espera personalizado (30 s):

{
  "mcpServers": {
    "interactive": {
      "command": "npx",
      "args": ["-y", "interactive-mcp", "-t", "30"]
    }
  }
}

Uso con VS Code

Agrega la siguiente configuración mínima a tu archivo de Configuración de Usuario (JSON) o .vscode/mcp.json:

{
  "mcp": {
    "servers": {
      "interactive-mcp": {
        "command": "npx",
        "args": ["-y", "interactive-mcp"]
      }
    }
  }
}

Recomendaciones para macOS

Para una experiencia más fluida en macOS usando el Terminal.app predeterminado, considera esta configuración de perfil:

  • (Pestaña de Shell): En "Cuando el shell sale" (Terminal > Configuración > Perfiles > [Tu perfil] > Shell), selecciona "Cerrar si el shell salió limpiamente" o "Cerrar la ventana". Esto ayuda a gestionar las ventanas cuando el servidor MCP se inicia y se detiene.

Configuración de desarrollo

Esta sección está dirigida principalmente a desarrolladores que desean modificar o contribuir al servidor. Si solo quieres usar el servidor con un cliente MCP, consulta la sección "Configuración del cliente" anterior.

Requisitos previos

  • Node.js: Consulta package.json para conocer la compatibilidad de versiones.
  • pnpm: Se utiliza para la gestión de paquetes. Instálalo mediante npm install -g pnpm después de instalar Node.js.

Instalación (Desarrolladores)

  1. Clona el repositorio:

    git clone https://github.com/ttommyth/interactive-mcp.git
    cd interactive-mcp
    
  2. Instala las dependencias:

    pnpm install
    

Ejecución de la aplicación (Desarrolladores)

pnpm start

Opciones de línea de comandos

El servidor interactive-mcp acepta las siguientes opciones de línea de comandos. Estas deben configurarse típicamente en la configuración JSON de tu cliente MCP agregándolas directamente al arreglo args (consulta los ejemplos de "Configuración del cliente").

OpciónAliasDescripción
--timeout-tEstablece el tiempo de espera predeterminado (en segundos) para los avisos de entrada del usuario. El valor predeterminado es 30 segundos.
--disable-tools-dDeshabilita herramientas o grupos específicos (lista separada por comas). Evita que el servidor los anuncie o registre. Opciones: request_user_input, message_complete_notification, intensive_chat.

Ejemplo: Configurar múltiples opciones en el arreglo args de la configuración del cliente:

// Example combining options in client config's "args":
"args": [
  "-y", "interactive-mcp",
  "-t", "30", // Set timeout to 30 seconds
  "--disable-tools", "message_complete_notification,intensive_chat" // Disable notifications and intensive chat
]

Comandos de desarrollo

  • Compilar: pnpm build
  • Lint: pnpm lint
  • Formato: pnpm format

Principios rectores para la interacción

Al interactuar con este servidor MCP (por ejemplo, como cliente LLM), sigue los siguientes principios para garantizar claridad y reducir cambios inesperados:

  • Priorizar la interacción: Utiliza las herramientas MCP proporcionadas (request_user_input, start_intensive_chat, etc.) con frecuencia para interactuar con el usuario.
  • Buscar aclaraciones: Si los requisitos, instrucciones o el contexto no están claros, siempre haz preguntas de aclaración antes de continuar. No hagas suposiciones.
  • Confirmar acciones: Antes de realizar acciones significativas (como modificar archivos, ejecutar comandos complejos o tomar decisiones arquitectónicas), confirma el plan con el usuario.
  • Proporcionar opciones: Siempre que sea posible, presenta al usuario opciones predefinidas a través de las herramientas MCP para facilitar decisiones rápidas.

Puedes proporcionar estas instrucciones a un cliente LLM de la siguiente manera:

# Interaction

- Please use the interactive MCP tools
- Please provide options to interactive MCP if possible

# Reduce Unexpected Changes

- Do not make assumption.
- Ask more questions before executing, until you think the requirement is clear enough.

Contribuciones

¡Las contribuciones son bienvenidas! Por favor, sigue las prácticas de desarrollo estándar. (Se pueden agregar más detalles más adelante).

Licencia

MIT (Consulta el archivo LICENSE para obtener más detalles, si corresponde, o especifica la licencia directamente).