Skip to main content
Glama

MCP Interactive Service

Integrations
  • Used as the web framework for the MCP service's web interface, enabling HTTP-based interactions between AI tools and users through a browser.

  • The primary language for the MCP service, providing the foundation for all UI types (CLI, Web, PyQt) and tool implementations.

  • Mentioned as an example implementation option in the select_option tool, allowing AI tools to present PyTorch as an implementation choice to users.

Servicio interactivo MCP

Este es un servicio MCP implementado utilizando la biblioteca FastMCP, diseñado para la interacción con herramientas de IA como Cursor, Windsurf, etc. Cuando las herramientas de IA necesitan entrada del usuario o selección de opciones mientras llaman a modelos de lenguaje grandes, pueden invocar este servicio MCP.

Propósito principal

El objetivo principal de este complemento es facilitar la comunicación y confirmación de alta frecuencia entre herramientas de IA (como Cursor y Windsurf) y los usuarios. Mejora significativamente la eficiencia y la eficacia de las interacciones de IA mediante:

  1. Reducción de recursos desperdiciados : al permitir que los usuarios confirmen o redirijan el enfoque de la IA antes de que se comprometa con una ruta de solución potencialmente incorrecta, el complemento minimiza las llamadas API y los recursos computacionales desperdiciados.
  2. Maximizar la utilización de recursos : cada llamada API a Cursor o Windsurf se vuelve más productiva ya que la IA puede verificar su comprensión y enfoque con el usuario antes de continuar.
  3. Prevención de la fragmentación de la atención : al confirmar los enfoques de manera temprana, el complemento ayuda a mantener el foco en la ruta de solución correcta en lugar de desviar la atención hacia enfoques incorrectos.
  4. Permitir la toma de decisiones interactiva : los usuarios pueden participar activamente en el proceso de toma de decisiones, proporcionando retroalimentación y orientación inmediatas a la IA.
  5. Optimización de tareas complejas : para tareas de varios pasos, el complemento garantiza la alineación entre las expectativas del usuario y la ejecución de la IA en cada punto de decisión crítico.

Características

  • Selección de opciones : muestra una lista de opciones para que los usuarios seleccionen ingresando números o proporcionando respuestas personalizadas
  • Información complementaria : cuando los modelos de IA necesitan información más completa, pueden solicitar a los usuarios que ingresen directamente información complementaria.
  • Múltiples interfaces de usuario : compatibilidad con interfaces CLI, web y PyQt

Tipos de interfaz de usuario

Este proyecto admite tres tipos de interfaces de usuario diferentes, cada uno con sus propias características:

CLI (Interfaz de línea de comandos)

  • Descripción : Abre una nueva ventana del símbolo del sistema para la interacción del usuario.
  • Ventajas :
    • Dependencias mínimas (no se requieren paquetes adicionales)
    • Puede manejar múltiples ventanas de diálogo simultáneamente
    • Funciona bien en entornos sin interfaces gráficas.
    • Ligero y rápido de iniciar.
  • Desventajas :
    • Presentación visual básica
    • Puede que no sea tan intuitivo para usuarios no técnicos.
  • Ideal para : entornos de servidor, sistemas con recursos limitados o cuando se necesitan múltiples diálogos simultáneos

Interfaz de PyQt

  • Descripción : Proporciona una interfaz gráfica de usuario moderna utilizando PyQt
  • Ventajas :
    • Diálogos limpios y de aspecto profesional
    • Experiencia familiar de aplicación de escritorio
    • Fácil de usar para todo tipo de usuarios.
  • Desventajas :
    • Sólo se puede mostrar un diálogo a la vez
    • Requiere dependencias de PyQt (instalación más grande)
  • Ideal para : uso en computadoras de escritorio donde el atractivo visual es importante y solo se necesita un diálogo a la vez

Interfaz web

  • Descripción : Abre cuadros de diálogo en un navegador web.
  • Ventajas :
    • Puede manejar múltiples ventanas de diálogo simultáneamente
    • Accesible desde cualquier lugar a través del navegador web
    • Interfaz moderna y personalizable
  • Desventajas :
    • Requiere que esté instalado el navegador web
    • Configuración un poco más compleja
  • Ideal para : escenarios de acceso remoto, entornos donde se prefiere una interfaz web o cuando se necesitan múltiples diálogos simultáneos.

Guía de uso

1. Primeros pasos (dos opciones)

Opción A: Usar un ejecutable precompilado (recomendado para Windows)
  1. Descargue el último ejecutable precompilado desde la página de versiones de GitHub .
  2. No requiere instalación: simplemente descargue y ejecute el archivo ejecutable.
  3. Puede probar la funcionalidad utilizando estos comandos:
# Test option selection with PyQt interface .\dist\mcp-interactive.exe test select_option --ui pyqt # Test information supplement with PyQt interface .\dist\mcp-interactive.exe test request_additional_info --ui pyqt # You can also specify a file path for testing the request_additional_info tool .\dist\mcp-interactive.exe test request_additional_info --ui pyqt D:\Path\To\Your\File.md
  1. Vaya al paso 3 a continuación para realizar la configuración.
Opción B: Instalar desde el código fuente

Este proyecto separa las dependencias en función de diferentes tipos de UI:

  • requirements-base.txt : Dependencias base, compartidas por todos los tipos de UI
  • requirements-pyqt.txt : Dependencias de la interfaz de usuario de PyQt5
  • requirements-web.txt : Dependencias de la interfaz de usuario web (Flask)

Puede optar por utilizar el tradicional pip o el administrador de paquetes uv más rápido para instalar dependencias.

Usando pip (Método tradicional)

Elija el archivo de dependencia apropiado según el tipo de interfaz de usuario que desee utilizar:

cd requirements # CLI UI (minimal dependencies) pip install -r requirements-base.txt # PyQt5 UI pip install -r requirements-pyqt.txt # Web UI pip install -r requirements-web.txt

Nota: Cada archivo de dependencia de UI específico ya incluye una referencia a las dependencias base (a través de -r requirements-base.txt ), por lo que solo necesita instalar un único archivo.

Uso de uv (recomendado, más rápido)

Si ya tiene instalado uv , puede utilizar los siguientes comandos para crear un entorno virtual e instalar dependencias:

# Create a virtual environment uv venv # Activate the virtual environment # Windows .venv\Scripts\activate # macOS / Linux source .venv/bin/activate # Install dependencies based on UI type cd requirements # CLI UI (minimal dependencies) uv pip install -r requirements-base.txt # PyQt5 UI uv pip install -r requirements-pyqt.txt # Web UI uv pip install -r requirements-web.txt

También puedes usar el archivo pyproject.toml del proyecto para instalar todas las dependencias directamente:

# Install base dependencies uv pip install -e . # Install specific UI type dependencies uv pip install -e ".[pyqt]" # PyQt5 UI uv pip install -e ".[web]" # Web UI uv pip install -e ".[all]" # All UI types

2. Iniciar el programa

Inicie diferentes métodos de respuesta de UI:

# Command line interface (default) python main.py run --ui=cli # Web interface python main.py run --ui=web # PyQt interface python main.py run --ui=pyqt

Otras opciones de inicio del servicio:

# Start the service with default settings (address: 127.0.0.1, port: 7888) python main.py run # Specify host and port python main.py run --host 0.0.0.0 --port 8888 # Specify log level python main.py run --log-level warning

3. Configurar Cursor, Windsurf o Claude

Uso del protocolo stdio (recomendado)

El protocolo stdio es el método de conexión más estable y recomendado, comunicándose directamente con los scripts de Python a través de entrada/salida estándar, con las siguientes ventajas:

  • Mayor estabilidad y fiabilidad
  • Puede abrir varios cuadros de diálogo simultáneamente
  • Simple y directo, sin necesidad de lidiar con problemas de conexión de red.
  • Mayor integración con el sistema, respuesta más rápida

Ejemplos de configuración:

Uso con Python (código fuente)
{ "ai-interaction": { "command": "python", "args": ["path/to/main.py", "run", "--transport", "stdio", "--ui", "cli"], "env": {} } }
Uso con ejecutable
{ "ai-interaction": { "command": "D:/Path/To/Your/mcp-interactive.exe", "args": ["run", "--transport", "stdio", "--ui", "pyqt"], "env": {} } }
Uso del protocolo SSE (alternativa)

Si necesita conectarse a un servidor remoto a través de la red, puede utilizar el protocolo SSE:

Empresa emergente local:

python main.py run --transport sse

Configuración del cursor:

{ "ai-interaction": { "type": "sse", "url": "http://127.0.0.1:8000/sse", "env": {} } }

Configuración de windsurf:

{ "ai-interaction": { "serverUrl": "http://127.0.0.1:7888/sse", "disabled": false } }

4. Configurar reglas de interacción de IA

Para maximizar la eficacia de las interacciones de IA en Cursor y Windsurf, configure las siguientes reglas para que la IA las siga al usar MCP:

  1. Cuando la IA no tiene clara una tarea o necesita información adicional, debe llamar a MCP ai-interaction para solicitar una aclaración al usuario.
  2. Cuando la IA tiene múltiples enfoques posibles para una solución, debe llamar a MCP ai-interaction para permitir que el usuario seleccione el enfoque preferido.
  3. Después de completar una tarea, la IA debe llamar a MCP ai-interaction para confirmar si hay otras tareas que deben ejecutarse.
  4. La IA debe dividir las tareas en múltiples etapas y, antes de comenzar una nueva etapa, llamar a MCP ai-interaction para preguntar al usuario si es necesario incorporar pensamientos o consideraciones adicionales.
  5. La IA debería utilizar MCP de forma proactiva para confirmar decisiones críticas en lugar de hacer suposiciones.

Estas reglas garantizan asistencia de IA interactiva y de alta calidad al tiempo que maximizan el valor de cada llamada API.

Otras funciones

Ver herramientas disponibles
python main.py list-tools
Herramientas de prueba
# Test option selection tool python main.py test select_option --ui=cli # Test information supplement tool python main.py test request_additional_info --ui=cli
Cliente de prueba interactivo

El proyecto incluye un cliente de prueba interactivo que le permite probar el servicio MCP con diferentes tipos y métodos de UI:

# Run the interactive test client python mcp_client_en.py --host localhost --port 7888 --ui cli

Opciones:

  • --host : Host del servidor (predeterminado: localhost)
  • --port : Puerto del servidor (predeterminado: 7888)
  • --ui : Tipo de interfaz de usuario a utilizar (cli, pyqt, web)

El cliente proporciona:

  • Prueba de conexión con el servicio MCP
  • Selección del tipo de UI para realizar pruebas
  • Prueba de los métodos select_option y request_additional_info
  • Múltiples parámetros preestablecidos para cada método
  • Visualización completa de solicitudes y respuestas

Esto es particularmente útil para:

  • Depuración de problemas de interacción de la interfaz de usuario
  • Probar el comportamiento de diferentes tipos de IU
  • Demostrando el servicio a los usuarios
  • Verificación de la funcionalidad del servidor
Cliente de prueba STDIO

Para probar específicamente el protocolo de transporte stdio, proporcionamos una herramienta de línea de comandos:

# Test stdio connection with default settings python mcp_client_stdio.py # Specify UI type python mcp_client_stdio.py --ui=pyqt # Test specific tools python mcp_client_stdio.py --test=select_option

Para obtener más detalles, consulte la Guía de pruebas STDIO .

Pruebas de IU
# Test PyQt interface python test_ui.py --ui=pyqt # Test Web interface python test_ui.py --ui=web # Test CLI interface python test_ui.py --ui=cli

Descripción de la herramienta

Selección de opciones (select_option)

Esta herramienta se utiliza para presentar un conjunto de opciones a los usuarios y permitirles seleccionar ingresando números o proporcionando respuestas personalizadas.

Parámetros:

  • options : Lista de opciones, puede ser una lista de cadenas o diccionarios
  • prompt : Mensaje de aviso que se muestra al usuario

Devolver: Un diccionario que contiene el resultado de la selección, en el formato:

{ "selected_index": 0, // Index of the user's selection, -1 if custom answer "selected_option": {}, // Content of the user's selected option "custom_input": "", // User's custom input, if any "is_custom": false // Whether it's a custom answer }

Suplemento informativo (solicitud de información adicional)

Esta herramienta se utiliza para solicitar información complementaria a los usuarios.

Parámetros:

  • prompt : Aviso para solicitar información
  • current_info : Información actual, mostrada a los usuarios como referencia

Devolver: La información complementaria ingresada por el usuario (cadena)

Integración con herramientas de IA

Para integrar este servicio MCP con herramientas de IA, siga estos pasos:

  1. Inicie el servicio MCP utilizando el ejecutable o el código fuente de Python:
    • Usando el ejecutable: mcp-interactive.exe run
    • Usando la fuente Python: python main.py run
  2. Configure el punto final MCP en la herramienta de IA, eligiendo el protocolo stdio o SSE según sea necesario
  3. Llame a la herramienta MCP adecuada cuando el modelo de IA necesite entrada del usuario o selección de opciones

Integración de Claude

Para integrarse con Claude en los productos oficiales de Anthropic o aplicaciones de terceros:

  1. Configure la conexión stdio en la configuración de su herramienta de IA:
    { "mcp-interaction": { "command": "D:/Path/To/Your/mcp-interactive.exe", "args": ["run", "--transport", "stdio", "--ui", "pyqt"], "env": {} } }
  2. Configure a Claude para utilizar el servicio de interacción cuando sea necesario, con instrucciones como:
    • Cuando necesite la entrada o confirmación del usuario, utilice el servicio de interacción MCP.
    • "Para opciones de opción múltiple, llame a la herramienta select_option"
    • Para recopilar información adicional del usuario, llame a la herramienta request_additional_info.
  3. Claude ahora podrá presentar opciones y solicitar información adicional directamente a través del servicio MCP.

Ejemplos

Ejemplo de selección de opciones

from fastmcp import Client async with Client("http://127.0.0.1:8000/sse") as client: options = [ "Option 1: Implement with TensorFlow", "Option 2: Implement with PyTorch", {"title": "Option 3: Implement with JAX", "description": "Better for research purposes"} ] result = await client.call_tool( "select_option", {"options": options, "prompt": "Please select a framework implementation"} ) selected_option = result.json print(f"User selected: {selected_option}")

Ejemplo de suplemento informativo

from fastmcp import Client async with Client("http://127.0.0.1:8000/sse") as client: additional_info = await client.call_tool( "request_additional_info", { "prompt": "Please provide specific project requirements", "current_info": "This is a data analysis project" } ) print(f"User provided information: {additional_info.text}")

Notas de desarrollo

  • A menos que necesite desarrollar o probar varios tipos de IU, se recomienda instalar solo una dependencia de IU
  • Si necesita agregar nuevas dependencias, agréguelas al archivo de dependencia apropiado.

Estado actual del desarrollo

Tenga en cuenta el siguiente estado de la implementación:

  • Windows : Las versiones de CLI y PyQt UI funcionan perfectamente. La interfaz web aún presenta algunos problemas que deben solucionarse.
  • Linux/Mac : Estas plataformas aún no se han probado exhaustivamente. Su experiencia puede variar.

Estamos trabajando activamente para mejorar la compatibilidad en todas las plataformas y tipos de UI.

Construcción y Distribución

Creación de archivos ejecutables

Este proyecto incluye un script para crear un archivo ejecutable independiente para Windows:

# Build the Windows executable build_executable.bat

Esto creará mcp-interactive.exe en el directorio dist que puede ejecutar sin la instalación de Python.

Edificio multiplataforma

Para crear ejecutables para diferentes plataformas:

Ventanas
# Using the batch script build_executable.bat # Or manual PyInstaller command pyinstaller mcp-interactive.spec
macOS
# Ensure PyInstaller is installed pip install pyinstaller # Build using the spec file pyinstaller mcp-interactive.spec
Linux
# Ensure PyInstaller is installed pip install pyinstaller # Build using the spec file pyinstaller mcp-interactive.spec

Nota: Debe compilar en la plataforma de destino (no puede compilar ejecutables de macOS desde Windows, etc.)

Distribuyendo a través de GitHub

Para que los ejecutables creados estén disponibles para su descarga:

  1. Crea una versión de GitHub para tu proyecto
  2. Cargue los ejecutables compilados como activos de lanzamiento
  3. Proporcionar documentación clara sobre qué ejecutable utilizar para cada plataforma

Pasos de ejemplo:

  1. Navega a tu repositorio de GitHub
  2. Haga clic en "Lanzamientos" en la barra lateral derecha.
  3. Haga clic en "Crear un nuevo lanzamiento"
  4. Establecer una etiqueta de versión (por ejemplo, v1.0.0)
  5. Añade un título y una descripción para tu lanzamiento
  6. Arrastre y suelte o cargue sus archivos ejecutables para diferentes plataformas
  7. Haga clic en "Publicar comunicado"

Luego, los usuarios pueden descargar la versión adecuada para su sistema operativo desde la página de lanzamientos de GitHub.

Licencia

Este proyecto se publica bajo la licencia MIT.

Related MCP Servers

  • -
    security
    F
    license
    -
    quality
    This server acts as a Message Communication Protocol (MCP) service for integrating Apifox and Cursor, enabling OpenAPI interface implementation through AI-driven interaction.
    Last updated -
    7
    TypeScript
  • -
    security
    F
    license
    -
    quality
    A Model Context Protocol server that enables AI assistants to explore and interact with Cursor IDE's SQLite databases, providing access to project data, chat history, and composer information.
    Last updated -
    10
    Python
    • Apple
  • -
    security
    F
    license
    -
    quality
    A server that connects AI coding assistants like Cursor and Cline to Apifox API definitions, allowing developers to implement API interfaces through natural language commands.
    Last updated -
    832
    1
    • Apple
    • Linux
  • -
    security
    F
    license
    -
    quality
    This server enables AI assistants (CLINE, Cursor, Windsurf, Claude Desktop) to share a common knowledge base through Retrieval Augmented Generation (RAG), providing consistent information access across multiple tools.
    Last updated -
    1
    TypeScript
    • Apple

View all related MCP servers

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/DanielZhao1990/interaction-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server