MCP Feedback Enhanced
Un servidor MCP para retroalimentación interactiva del usuario y ejecución de comandos en desarrollo asistido por IA, compatible con interfaces Web y de escritorio.
Documentación
MCP Feedback Enhanced
🌐 Idioma / 語言切換: Español | 繁體中文 | 简体中文
Autor original: Fábio Ferreira | Proyecto original ⭐ Fork mejorado: Minidoracat Referencia de diseño de UI: sanshao85/mcp-feedback-collector
📢 Estado de mantenimiento (2026-08)
El proyecto se mantiene nuevamente. Actualice a v2.6.1 — corrige una vulnerabilidad de ejecución de comandos:
uvx mcp-feedback-enhanced@latestQué cambió en v2.6.1:
- 🔒 Se eliminó la ejecución de comandos — corrige #219 (WebSocket no autenticado podía ejecutar programas arbitrarios). La antigua lista negra solo detectaba metacaracteres de shell, pero como la ejecución usaba
shell=False, los metacaracteres nunca fueron el riesgo —cat,curl,wget,pythonpasaban directamente, y el comando automático estaba habilitado por defecto. La función desapareció definitivamente. Consulte SECURITY.md.- 🔒 Se corrigió el secuestro de WebSocket entre sitios (reportado de forma privada como
GHSA-cmr5-gpm3-79vf,GHSA-2wx7-r4rh-f663): los navegadores no están restringidos por la política de mismo origen al abrir un WebSocket, por lo que una página maliciosa podría hacer que su navegador se conecte al/wslocal.Originahora se valida antes deaccept(), y los intentos de origen cruzado se rechazan con 403.- 🐛 Se corrigió el cambio incompatible de Starlette que hacía que la interfaz web devolviera 500 (#213, #217, #221, #228).
- 🐛 Se corrigió la serialización de imágenes (#154 y relacionados) cambiando al estándar
mcp.types.ImageContent.Alcance actual del mantenimiento: problemas de seguridad y rupturas de compatibilidad que hacen que las instalaciones sean inutilizables (actualizaciones de dependencias, cambios incompatibles ascendentes). Cualquier otra cosa se decidirá según los comentarios de la comunidad — consulte la discusión fijada.
Una cosa que vale la pena decir claramente: el punto de venta original era "consolidar múltiples idas y vueltas en una sola solicitud de Cursor para ahorrar cuota". Cursor cambió a precios basados en tokens en junio de 2025, por lo que esa premisa ya no se sostiene (consulte #115, #200). El posicionamiento ahora es "insertar puntos de control humanos en tareas de larga duración" — no una herramienta para ahorrar cuota.
También tenga en cuenta que MCP y sus clientes ahora admiten de forma nativa Elicitación (solicitudes iniciadas por el servidor para entrada del usuario) y Aplicaciones MCP (herramientas que devuelven UI interactiva). Si las capacidades nativas cubren sus necesidades, úselas — si hay algo que lo nativo no puede hacer, por favor indíquelo en la discusión. Eso es lo que decidirá qué se corrige a continuación.
🎯 Concepto principal
Este es un servidor MCP que establece flujos de trabajo de desarrollo orientados a la retroalimentación, proporcionando opciones de interfaz web y aplicación de escritorio de doble interfaz, adaptándose perfectamente a entornos locales, remotos SSH y WSL (Subsistema de Windows para Linux). Al guiar a la IA para que confirme con los usuarios en lugar de realizar operaciones especulativas, inserta puntos de control humanos en tareas de larga duración, reduciendo la desviación y el retrabajo.
🌐 Ventajas de la arquitectura de doble interfaz:
- 🌐 Interfaz web: Sin dependencias de GUI, adecuada para entornos locales, remotos y WSL (la interfaz principal mantenida)
- 🖥️ Aplicación de escritorio: Un shell de Tauri que carga la misma interfaz web, compatible con Windows, macOS, Linux (solo mantenimiento desde v2.8.0, sin nuevas funciones, programada para eliminación en v3 — consulte "Estado de mantenimiento de la aplicación de escritorio" a continuación)
- 📦 Funcionalidad unificada: Ambas interfaces proporcionan exactamente la misma experiencia funcional
Plataformas compatibles: Cursor | Cline | Windsurf | Augment | Trae
🔄 Flujo de trabajo
- Llamada de IA → herramienta
mcp-feedback-enhanced - Inicio de interfaz → Apertura automática de la aplicación de escritorio o interfaz de navegador (según configuración)
- Interacción inteligente → Selección de avisos, entrada de texto, carga de imágenes, envío automático
- Retroalimentación en tiempo real → La conexión WebSocket entrega información a la IA instantáneamente
- Seguimiento de sesiones → Registro automático del historial y estadísticas de sesiones
- Continuación del proceso → La IA ajusta el comportamiento o finaliza la tarea según la retroalimentación
🌟 Características principales
🖥️ Soporte de doble interfaz
- Aplicación de escritorio: Aplicación nativa multiplataforma basada en Tauri, compatible con Windows, macOS, Linux
- Interfaz web: Interfaz de navegador ligera, adecuada para entornos remotos y WSL
- Detección automática de entorno: Reconoce inteligentemente SSH remoto, WSL y otros entornos especiales
- Experiencia de funciones unificada: Ambas interfaces proporcionan exactamente la misma funcionalidad
📝 Flujo de trabajo inteligente
- Gestión de avisos: Operaciones CRUD para avisos comunes, estadísticas de uso, ordenamiento inteligente
- Envío automático con temporizador: Temporizador flexible de 1 a 86400 segundos, admite pausa, reanudación y cancelación con nuevos controles de botón de pausa/reanudación
- Gestión y seguimiento de sesiones: Almacenamiento en archivos locales, controles de privacidad, exportación de historial (admite formatos JSON, CSV, Markdown), estadísticas en tiempo real, configuraciones de tiempo de espera flexibles
- Monitoreo de conexión: Monitoreo de estado de WebSocket, reconexión automática, indicadores de calidad
- Visualización de resumen de trabajo de IA en Markdown: Soporte para renderizado de sintaxis Markdown enriquecida, incluidos encabezados, texto en negrita, bloques de código, listas, enlaces y otros formatos para mejorar la legibilidad del contenido
🎨 Experiencia moderna
- Diseño responsivo: Se adapta a diferentes tamaños de pantalla, arquitectura JavaScript modular
- Notificaciones de audio: Múltiples efectos de sonido integrados, soporte de carga de audio personalizado, control de volumen
- Notificaciones del sistema (v2.6.0): Alertas en tiempo real a nivel de sistema para eventos importantes (como confirmación automática, tiempo de espera de sesión)
- Memoria inteligente: Memoria de altura del cuadro de entrada, copia con un clic, configuraciones persistentes
- Soporte multilingüe: Chino tradicional, inglés, chino simplificado, cambio instantáneo
🖼️ Imágenes y medios
- Soporte de formato completo: PNG, JPG, JPEG, GIF, BMP, WebP
- Carga conveniente: Arrastrar y soltar archivos, pegar desde portapapeles (Ctrl+V)
- Procesamiento ilimitado: Soporte para imágenes de cualquier tamaño, procesamiento inteligente automático
🌐 Vista previa de la interfaz
Interfaz web (v2.5.0 - Soporte de aplicación de escritorio)
📱 Haga clic para ver capturas de pantalla completas de la interfaz
Interfaz web: admite aplicación de escritorio e interfaz web, proporciona gestión de avisos, envío automático, seguimiento de sesiones y otras funciones inteligentes
Interfaz de aplicación de escritorio (nueva función v2.5.0)
Aplicación de escritorio: aplicación nativa multiplataforma basada en el framework Tauri, compatible con Windows, macOS, Linux con exactamente la misma funcionalidad que la interfaz web
Soporte de atajos
Ctrl+Enter(Windows/Linux)/Cmd+Enter(macOS):Enviar retroalimentación (se admiten tanto el teclado principal como el teclado numérico)Ctrl+V(Windows/Linux)/Cmd+V(macOS):Pegar directamente imágenes del portapapelesCtrl+I(Windows/Linux)/Cmd+I(macOS):Enfoque rápido del cuadro de entrada (Gracias @penn201500)
🚀 Inicio rápido
1. Instalación y prueba
# Install uv (if not already installed)
pip install uv
2. Configurar MCP
Configuración básica (adecuada para la mayoría de los usuarios):
{
"mcpServers": {
"mcp-feedback-enhanced": {
"command": "uvx",
"args": ["mcp-feedback-enhanced@latest"],
"timeout": 600,
"autoApprove": ["interactive_feedback"]
}
}
}
Configuración avanzada (requiere entorno personalizado):
{
"mcpServers": {
"mcp-feedback-enhanced": {
"command": "uvx",
"args": ["mcp-feedback-enhanced@latest"],
"timeout": 600,
"env": {
"MCP_DEBUG": "false",
"MCP_WEB_HOST": "127.0.0.1",
"MCP_WEB_PORT": "8765",
"MCP_LANGUAGE": "en"
},
"autoApprove": ["interactive_feedback"]
}
}
}
Configuración de aplicación de escritorio (nueva función v2.5.0 - uso de aplicación de escritorio nativa):
{
"mcpServers": {
"mcp-feedback-enhanced": {
"command": "uvx",
"args": ["mcp-feedback-enhanced@latest"],
"timeout": 600,
"env": {
"MCP_DESKTOP_MODE": "true",
"MCP_WEB_HOST": "127.0.0.1",
"MCP_WEB_PORT": "8765",
"MCP_DEBUG": "false"
},
"autoApprove": ["interactive_feedback"]
}
}
}
⚠️ Estado de mantenimiento de la aplicación de escritorio (desde v2.8.0)
La aplicación de escritorio está solo en mantenimiento: sin nuevas funciones (siempre encima, permanecer residente, mantener la ventana después del envío), solo correcciones de seguridad y correcciones de compatibilidad de "no puede iniciarse en absoluto"; está programada para eliminación en v3, y las notas de la versión nombrarán la última versión que aún incluya los binarios de escritorio. Por qué: es un shell delgado de Tauri alrededor de la interfaz web, pero representa ~80% del tamaño del paquete, necesita CI de tres plataformas más firma de código, y la mayoría de los problemas reportados son problemas de compatibilidad de plataforma que no se pueden reproducir en CI (falsos positivos de antivirus, glibc, Gatekeeper, alta densidad de píxeles, múltiples monitores).
- Para seguir usando el modo escritorio: cambie el
argsen la configuración MCP de su IDE demcp-feedback-enhanced@latesta una versión fijada (por ejemplo,mcp-feedback-enhanced@2.8.0) y mantengaMCP_DESKTOP_MODE=true. Desde 2.8.0, si el shell de escritorio no puede iniciarse (en cuarentena por antivirus, glibc demasiado antiguo, bloqueado por Gatekeeper, sale con un error justo después del inicio), esa llamada abre automáticamente el navegador e imprime la URL en stderr en lugar de esperar silenciosamente hasta el tiempo de espera; reiniciar el servidor MCP reintenta el shell de escritorio. No fije a 2.6.0 o anterior (ejecución de comandos no autenticada, consulte SECURITY.md).- Para cambiar al modo web: elimine
MCP_DESKTOP_MODE. La funcionalidad es idéntica, la pestaña permanece abierta después del envío y se actualiza en la siguiente llamada. Si desea una ventana independiente, abra la página de retroalimentación en Chrome/Edge y elija "Instalar como aplicación" — pero eso es una función del navegador, no un equivalente del shell de escritorio: el backend aún lo inicia la llamada MCP, una vez que se cierra la ventana de la aplicación, la siguiente llamada abre una pestaña normal del navegador en lugar de la ventana de la aplicación, la aplicación debe reinstalarse si cambia el puerto, y el permiso de notificación debe otorgarse nuevamente; use una herramienta a nivel de sistema operativo para siempre encima.
Ejemplos de archivos de configuración:
- Modo escritorio: examples/mcp-config-desktop.json
- Modo web: examples/mcp-config-web.json
3. Configuración de ingeniería de avisos
Para obtener resultados óptimos, agregue las siguientes reglas a su asistente de IA:
# MCP Interactive Feedback Rules
follow mcp-feedback-enhanced instructions
⚙️ Configuración avanzada
Variables de entorno
| Variable | Propósito | Valores | Predeterminado |
|---|---|---|---|
MCP_DEBUG | Modo de depuración | true/false | false |
MCP_WEB_HOST | Enlace de host de la interfaz web | Dirección IP o nombre de host | 127.0.0.1 |
MCP_WEB_PORT | Puerto de la interfaz web | 1024-65535 | 8765 |
MCP_DESKTOP_MODE | Modo de aplicación de escritorio | true/false | false |
MCP_LANGUAGE | Forzar idioma de la interfaz | zh-TW/zh-CN/en | Detección automática |
Explicación de MCP_WEB_HOST:
127.0.0.1(predeterminado): Solo acceso local — mantenga esta configuración0.0.0.0: Vincula todas las interfaces. ⚠️ No recomendado: la interfaz web y el endpoint/wsno tienen autenticación, por lo que cualquiera que pueda alcanzar el puerto puede leer el contenido de la sesión (incluidas las rutas del proyecto y los resúmenes de IA) y enviar retroalimentación. Use el reenvío de puertos SSH en su lugar (consulte Problemas comunes).
Explicación de MCP_LANGUAGE:
- Se usa para forzar el idioma de la interfaz, anulando la detección automática del sistema
- Códigos de idioma admitidos:
zh-TW: Chino tradicionalzh-CN: Chino simplificadoen: Inglés
- Prioridad de detección de idioma:
- Variable de entorno
MCP_LANGUAGE(prioridad más alta; cuando se establece, el selector de idioma en la interfaz solo se aplica a la sesión actual) - Configuración de idioma guardada por el usuario en la interfaz
- Variables de entorno del sistema (LANG, LC_ALL, etc.)
- Idioma predeterminado del sistema
- Recurso al idioma predeterminado (chino tradicional)
- Variable de entorno
Opciones de prueba
# Version check
uvx mcp-feedback-enhanced@latest version # Check version
# Interface testing
uvx mcp-feedback-enhanced@latest test --web # Test Web UI (auto continuous running)
uvx mcp-feedback-enhanced@latest test --desktop # Test desktop application (v2.5.0 new feature)
# Debug mode
MCP_DEBUG=true uvx mcp-feedback-enhanced@latest test
# Specify language for testing
MCP_LANGUAGE=en uvx mcp-feedback-enhanced@latest test --web # Force English interface
MCP_LANGUAGE=zh-TW uvx mcp-feedback-enhanced@latest test --web # Force Traditional Chinese
MCP_LANGUAGE=zh-CN uvx mcp-feedback-enhanced@latest test --web # Force Simplified Chinese
Instalación para desarrolladores
git clone https://github.com/Minidoracat/mcp-feedback-enhanced.git
cd mcp-feedback-enhanced
uv sync
Métodos de prueba local
# Functional testing
make test-func # Standard functional testing
make test-web # Web UI testing (continuous running)
make test-desktop-func # Desktop application functional testing
# Or use direct commands
uv run python -m mcp_feedback_enhanced test # Standard functional testing
uvx --no-cache --with-editable . mcp-feedback-enhanced test --web # Web UI testing (continuous running)
uvx --no-cache --with-editable . mcp-feedback-enhanced test --desktop # Desktop application testing
# Desktop application build (v2.5.0 new feature)
make build-desktop # Build desktop application (debug mode)
make build-desktop-release # Build desktop application (release mode)
make test-desktop # Test desktop application
make clean-desktop # Clean desktop build artifacts
# Unit testing
make test # Run all unit tests
make test-fast # Fast testing (skip slow tests)
make test-cov # Test and generate coverage report
# Code quality checks
make check # Complete code quality check
make quick-check # Quick check and auto-fix
Descripciones de Pruebas
- Pruebas Funcionales: Probar el flujo completo de funcionalidad de las herramientas MCP
- Pruebas Unitarias: Probar la funcionalidad de módulos individuales
- Pruebas de Cobertura: Generar informe de cobertura HTML en el directorio
htmlcov/ - Controles de Calidad: Incluye linting, formato y verificación de tipos
🆕 Historial de Versiones
📋 Historial Completo de Versiones: RELEASE_NOTES/CHANGELOG.en.md
Destacados de la Última Versión (v2.6.0)
- 📊 Función de Exportación de Sesiones: Soporte para exportar registros de sesión a múltiples formatos para facilitar el intercambio y archivado
- ⏸️ Control de Auto-commit: Se agregaron botones de pausa y reanudación para un mejor control sobre el momento del auto-commit
- 🔔 Notificaciones del Sistema: Notificaciones a nivel de sistema para eventos importantes con alertas en tiempo real
- ⏱️ Optimización de Tiempo de Sesión: Rediseño de la gestión de sesiones con opciones de configuración más flexibles
- 🌏 Mejora de I18n: Refactorización de la arquitectura de internacionalización con soporte multilingüe completo para notificaciones
- 🎨 Simplificación de la Interfaz: Interfaz de usuario significativamente simplificada para mejorar la experiencia del usuario
🐛 Problemas Comunes
🌐 Problemas en Entornos Remotos SSH
P: El navegador no puede iniciarse o accederse en el entorno remoto SSH R: Use el reenvío de puertos SSH (seguro, sin exposición):
- Use la configuración predeterminada (
MCP_WEB_HOST:127.0.0.1) - Configure el reenvío de puertos SSH:
- VS Code Remote SSH: Presione
Ctrl+Shift+P→ "Reenviar un puerto" → Ingrese8765 - Cursor SSH Remote: Agregue manualmente la regla de reenvío de puertos (puerto 8765)
- VS Code Remote SSH: Presione
- Abra en el navegador local:
http://localhost:8765
⚠️ Los README más antiguos recomendaban
MCP_WEB_HOST=0.0.0.0para exponer el servicio directamente. Ya no se recomienda: la interfaz web y el endpoint/wsno tienen autenticación, por lo que vincular públicamente permite que cualquier persona en la red lea su sesión y envíe comentarios.
Para soluciones detalladas, consulte: Guía de Uso en Entornos Remotos SSH
P: ¿Por qué no recibo nuevos comentarios de MCP? R: Probablemente sea un problema de conexión WebSocket. Solución: Actualice directamente la página del navegador.
P: ¿Por qué no se llama a MCP? R: Confirme que el estado de la herramienta MCP muestre luz verde. Solución: Alterne repetidamente la herramienta MCP encendida/apagada, espere unos segundos para que el sistema se reconecte.
P: Augment no puede iniciar MCP R: Solución: Cierre y reinicie completamente VS Code o Cursor, y vuelva a abrir el proyecto.
🔧 Problemas Generales
P: ¿Cómo usar la aplicación de escritorio?
R: v2.5.0 introduce soporte para aplicaciones de escritorio multiplataforma. Establezca "MCP_DESKTOP_MODE": "true" en la configuración de MCP para habilitarlo:
{
"mcpServers": {
"mcp-feedback-enhanced": {
"command": "uvx",
"args": ["mcp-feedback-enhanced@latest"],
"timeout": 600,
"env": {
"MCP_DESKTOP_MODE": "true",
"MCP_WEB_PORT": "8765"
},
"autoApprove": ["interactive_feedback"]
}
}
}
Ejemplo de Archivo de Configuración: examples/mcp-config-desktop.json
P: ¿Cómo usar la interfaz GUI heredada de PyQt6?
R: v2.4.0 eliminó por completo las dependencias de GUI de PyQt6. Para usar la GUI heredada, especifique v2.3.0 o anterior: uvx mcp-feedback-enhanced@2.3.0
Nota: Las versiones heredadas no incluyen nuevas funciones (gestión de prompts, auto-envío, gestión de sesiones, aplicación de escritorio, etc.).
P: Aparece el error "Unexpected token 'D'"
R: Interferencia de salida de depuración. Establezca MCP_DEBUG=false o elimine la variable de entorno.
P: Texto chino con caracteres corruptos
R: Corregido en v2.0.3. Actualice a la última versión: uvx mcp-feedback-enhanced@latest
P: La ventana desaparece o hay errores de posicionamiento en entornos de múltiples pantallas R: Corregido en v2.1.1. Vaya a la pestaña "⚙️ Configuración", marque "Mostrar siempre la ventana en el centro de la pantalla principal" para resolverlo. Especialmente adecuado para disposiciones de pantalla en forma de T y otras configuraciones complejas de múltiples pantallas.
P: Fallo en la carga de imágenes R: Verifique el formato del archivo (PNG/JPG/JPEG/GIF/BMP/WebP). El sistema admite archivos de imagen de cualquier tamaño.
P: La interfaz web no puede iniciarse R: Verifique la configuración del firewall o intente usar diferentes puertos.
P: La caché de UV ocupa demasiado espacio en disco
R: Debido al uso frecuente de comandos uvx, la caché puede acumularse hasta decenas de GB. Se recomienda una limpieza regular:
# View cache size and detailed information
python scripts/cleanup_cache.py --size
# Preview cleanup content (no actual cleanup)
python scripts/cleanup_cache.py --dry-run
# Execute standard cleanup
python scripts/cleanup_cache.py --clean
# Force cleanup (attempts to close related programs, solving Windows file occupation issues)
python scripts/cleanup_cache.py --force
# Or directly use uv command
uv cache clean
Para instrucciones detalladas, consulte: Guía de Gestión de Caché
P: Los modelos de IA no pueden analizar imágenes R: Varios modelos de IA (incluidos Gemini Pro 2.5, Claude, etc.) pueden tener inestabilidad en el análisis de imágenes, a veces reconociendo correctamente y a veces sin poder analizar el contenido de la imagen cargada. Esta es una limitación conocida de la tecnología de comprensión visual de IA. Recomendaciones:
- Asegure una buena calidad de imagen (alto contraste, texto claro)
- Intente cargar varias veces; los reintentos suelen tener éxito
- Si el análisis continúa fallando, intente ajustar el tamaño o formato de la imagen
🙏 Agradecimientos
🌟 Apoye al Autor Original
Fábio Ferreira - X @fabiomlferreira Proyecto Original: noopstudios/interactive-feedback-mcp
Si le resulta útil, por favor:
Inspiración de Diseño
sanshao85 - mcp-feedback-collector
Colaboradores
penn201500 - GitHub @penn201500
- 🎯 Función de enfoque automático del cuadro de entrada (PR #39)
leo108 - GitHub @leo108
- 🌐 Soporte de Desarrollo Remoto SSH (variable de entorno
MCP_WEB_HOST) (PR #113)
Alsan - GitHub @Alsan
- 🍎 Soporte de Configuración de Compilación PyO3 para macOS (PR #93)
fireinice - GitHub @fireinice
- 📝 Optimización de Documentación de Herramientas (instrucciones de LLM movidas a docstring) (PR #105)
Soporte de la Comunidad
- Discord: https://discord.gg/Gur2V67
- Issues: GitHub Issues
📄 Licencia
Licencia MIT - Consulte el archivo LICENSE para más detalles
📈 Historial de Estrellas
🌟 ¡Bienvenido a dar una estrella y compartir con más desarrolladores!