mcp-rubber-duck
Consulta múltiples LLMs en paralelo desde herramientas de codificación de IA: depuración con pato de goma, pero los patos responden.
Documentación
MCP Rubber Duck
Un servidor MCP (Model Context Protocol) que actúa como puente para consultar múltiples LLMs -- tanto APIs HTTP compatibles con OpenAI como agentes de codificación CLI. Al igual que la depuración con pato de goma, ¡explica tus problemas a varios "patos" de IA y obtén diferentes perspectivas!
¿Por qué integración directa con el proveedor? La primitiva
samplingde MCP -- un servidor que toma prestado el modelo del host -- fue deprecada en la RC de la especificación 2026-07-28 en favor de servidores que se integran directamente con las APIs de los proveedores de LLM. Rubber Duck siempre ha funcionado así (trae sus propios patos), por lo que está alineado con hacia dónde se dirige el protocolo -- sin necesidad de migración.
Características
- Compatibilidad universal con OpenAI -- Funciona con cualquier endpoint de API compatible con OpenAI
- Soporte para agentes CLI -- Usa agentes de codificación CLI (Claude Code, Codex, Gemini CLI, Grok, Aider) como patos
- Múltiples patos -- Configura y consulta múltiples proveedores de LLM simultáneamente
- Gestión de conversaciones -- Mantén el contexto a través de múltiples mensajes
- Consejo de patos -- Obtén respuestas de todos tus LLM configurados a la vez
- Votación por consenso -- Votación multi-pato con razonamiento y puntuaciones de confianza
- LLM como juez -- Haz que los patos evalúen y clasifiquen las respuestas de los demás
- Refinamiento iterativo -- Dos patos mejoran colaborativamente las respuestas
- Debates estructurados -- Formatos de debate oxfordiano, socrático y adversarial
- Prompts MCP -- 8 plantillas de prompt reutilizables para flujos de trabajo multi-LLM
- Entrada de visión -- Envía imágenes junto con los prompts a modelos con capacidad de visión (docs)
- Conmutación automática -- Recurre a otros proveedores si el principal falla
- Monitoreo de salud -- Comprobaciones de salud en tiempo real para todos los proveedores
- Seguimiento de uso -- Rastrea solicitudes, tokens y costos estimados por proveedor
- Puente MCP -- Conecta patos a otros servidores MCP para funcionalidad extendida (docs)
- Guardrails -- Capa de seguridad conectable con limitación de velocidad, límites de tokens, bloqueo de patrones y redacción de PII (docs)
- Seguridad granular -- Controles de aprobación por servidor con aprobaciones basadas en sesión
- UIs interactivas -- Paneles HTML enriquecidos para herramientas de comparar, votar, debatir y uso (a través de MCP Apps)
- Anotaciones de herramientas -- Sugerencias compatibles con MCP para el comportamiento de las herramientas (solo lectura, destructivas, etc.)
- Salida estructurada --
outputSchemaen herramientas que devuelven JSON estructurado para validación en el cliente (Cursor, VS Code/Copilot) - Alineado con la especificación por diseño -- se conecta directamente a las APIs de los proveedores, el camino que la especificación
2026-07-28de MCP recomienda ahora quesamplingdel lado del servidor está deprecado (SEP-2577)
Proveedores Soportados
Proveedores HTTP (API compatible con OpenAI)
Cualquier proveedor con un endpoint de API compatible con OpenAI, incluyendo:
- OpenAI
- Google Gemini
- Anthropic (a través de endpoints compatibles con OpenAI)
- Groq (inferencia rápida para modelos de peso abierto)
- Together AI (amplio catálogo de modelos de peso abierto)
- Perplexity (modelos en línea con búsqueda web)
- Anyscale, Azure OpenAI, Ollama, LM Studio, Personalizado
Proveedores CLI (Agentes de Codificación)
Agentes de codificación de línea de comandos que se ejecutan como procesos locales:
- Claude Code (
claude) -- Codex (codex) -- Gemini CLI (gemini) -- Grok CLI (grok) -- Aider (aider) -- Personalizado
Consulta Proveedores CLI para la configuración completa.
Inicio Rápido
# Install globally
npm install -g mcp-rubber-duck
# Or use npx directly in Claude Desktop config
npx mcp-rubber-duck
¿Usas Claude Desktop? Ve a Configuración de Claude Desktop. ¿Usas Cursor, VS Code, Windsurf u otra herramienta? Consulta la Guía de Configuración.
Instalación
Requisitos Previos
- Node.js 20 o superior
- npm o yarn
- Al menos una clave de API para un proveedor HTTP, o un agente de codificación CLI instalado localmente
Instalar desde NPM
npm install -g mcp-rubber-duck
Instalar desde el Código Fuente
git clone https://github.com/nesquikm/mcp-rubber-duck.git
cd mcp-rubber-duck
npm install
npm run build
npm start
Configuración
Crea un archivo .env o config/config.json. Variables de entorno clave:
| Variable | Descripción |
|---|---|
OPENAI_API_KEY | Clave de API de OpenAI |
GEMINI_API_KEY | Clave de API de Google Gemini |
GROQ_API_KEY | Clave de API de Groq |
DEFAULT_PROVIDER | Proveedor predeterminado (p. ej., openai) |
DEFAULT_TEMPERATURE | Temperatura predeterminada (p. ej., 0.7) |
LOG_LEVEL | debug, info, warn, error |
MCP_SERVER | Establecer a true para el modo servidor MCP |
MCP_BRIDGE_ENABLED | Habilitar MCP Bridge (los patos acceden a servidores MCP externos) |
CUSTOM_{NAME}_* | Proveedores HTTP personalizados |
CLI_{AGENT}_ENABLED | Habilitar agentes CLI (CLAUDE, CODEX, GEMINI, GROK, AIDER) |
Referencia completa: Documentación de configuración
UIs Interactivas (MCP Apps)
Cuatro herramientas -- compare_ducks, duck_vote, duck_debate y get_usage_stats -- pueden renderizar paneles HTML interactivos enriquecidos dentro de clientes MCP compatibles a través de MCP Apps. Una vez que este servidor MCP está configurado en un cliente compatible, las UIs aparecen automáticamente -- no se requiere configuración adicional. Los clientes sin soporte para MCP Apps aún reciben la misma salida de texto plano (no se pierde funcionalidad). Consulta el repositorio de MCP Apps para una lista actualizada de clientes compatibles.
Comparar Patos
Compara múltiples respuestas de modelos lado a lado, con indicadores de latencia, conteos de tokens, insignias de modelo y estados de error.
Votación de Patos
Haz que múltiples patos voten sobre opciones, mostrado como un recuento de votos visual con gráficos de barras, insignia de consenso, tarjeta de ganador, barras de confianza y razonamiento plegable.
Debate de Patos
Debate estructurado de múltiples rondas entre patos, mostrado como una vista ronda por ronda con insignia de formato, lista de participantes, rondas plegables y sección de síntesis.
Estadísticas de Uso
Analíticas de uso con tarjetas de resumen, desglose por proveedor con filas expandibles, barras de distribución de tokens y costos estimados.
Herramientas Disponibles
| Herramienta | Descripción |
|---|---|
ask_duck | Haz una sola pregunta a un proveedor de LLM específico |
chat_with_duck | Conversación con contexto mantenido a través de mensajes |
clear_conversations | Borrar todo el historial de conversación |
list_ducks | Listar proveedores configurados y estado de salud |
list_models | Listar modelos disponibles para proveedores |
compare_ducks | Haz la misma pregunta a múltiples proveedores simultáneamente |
duck_council | Obtén respuestas de todos los patos configurados |
get_usage_stats | Estadísticas de uso y costos estimados |
duck_vote | Votación multi-pato con razonamiento y confianza |
duck_judge | Haz que un pato evalúe y clasifique las respuestas de otros |
duck_iterate | Refina iterativamente una respuesta entre dos patos |
duck_debate | Debate estructurado de múltiples rondas entre patos |
mcp_status | Estado del puente MCP y servidores conectados |
get_pending_approvals | Solicitudes pendientes de aprobación de herramientas MCP |
approve_mcp_request | Aprobar o denegar la solicitud de herramienta MCP de un pato |
Referencia completa con esquemas de entrada: Documentación de herramientas
Prompts Disponibles
| Prompt | Propósito | Argumentos Requeridos |
|---|---|---|
perspectives | Análisis multiángulo con lentes asignadas | problem, perspectives |
assumptions | Revelar supuestos ocultos en planes | plan |
blindspots | Buscar riesgos y brechas pasados por alto | proposal |
tradeoffs | Comparación estructurada de opciones | options, criteria |
red_team | Análisis de seguridad/riesgo desde múltiples ángulos | target |
reframe | Reencuadre del problema en diferentes niveles | problem |
architecture | Revisión de diseño a través de preocupaciones | design, workloads, priorities |
diverge_converge | Exploración divergente y luego convergencia | challenge |
Referencia completa con ejemplos: Documentación de prompts
Desarrollo
npm run dev # Development with watch mode
npm test # Run all tests
npm run lint # ESLint
npm run typecheck # Type check without emit
Documentación
| Tema | Enlace |
|---|---|
| Guía de configuración (todas las herramientas) | docs/setup.md |
| Referencia completa de configuración | docs/configuration.md |
| Configuración de Claude Desktop | docs/claude-desktop.md |
| Todas las herramientas con esquemas | docs/tools.md |
| Plantillas de prompts | docs/prompts.md |
| Agentes de codificación CLI | docs/cli-providers.md |
| Puente MCP | docs/mcp-bridge.md |
| Guardrails | docs/guardrails.md |
| Despliegue con Docker | docs/docker.md |
| Configuración específica por proveedor | docs/provider-setup.md |
| Ejemplos de uso | docs/usage-examples.md |
| Arquitectura | docs/architecture.md |
| Hoja de ruta | docs/roadmap.md |
Solución de Problemas
El Proveedor No Funciona
- Verifica que la clave de API esté configurada correctamente
- Verifica que la URL del endpoint sea correcta
- Ejecuta la comprobación de salud:
list_ducks({ check_health: true }) - Revisa los registros para mensajes de error detallados
Problemas de Conexión
- Para proveedores locales (Ollama, LM Studio), asegúrate de que estén ejecutándose
- Verifica la configuración del firewall para endpoints locales
- Verifica la conectividad de red a los proveedores en la nube
Limitación de Velocidad
- Configura la conmutación por error a proveedores alternativos
- Ajusta la configuración de
max_retriesytimeout - Consulta Guardrails para la configuración de limitación de velocidad
Contribuciones
__
<(o )___
( ._> /
`---' Quack! Ready to debug!
¡Nos encantan las contribuciones! Ya sea que estés corrigiendo errores, agregando funciones o enseñando nuevos trucos a nuestros patos, nos encantaría que te unas a la bandada.
Consulta nuestra Guía de Contribución para comenzar.
Inicio rápido para contribuyentes:
- Haz un fork del repositorio
- Crea una rama de características
- Sigue nuestras guías de commits convencionales
- Agrega pruebas para la nueva funcionalidad
- Envía una solicitud de extracción (pull request)
Licencia
Licencia MIT - consulta el archivo LICENSE para más detalles
Agradecimientos
- Inspirado en el método de depuración "rubber duck"
- Construido sobre el Model Context Protocol (MCP)
- Usa el SDK de OpenAI para compatibilidad con proveedores HTTP
- Soporta agentes de codificación CLI (Claude Code, Codex, Gemini CLI, Grok, Aider)
Registro de Cambios
Consulta CHANGELOG.md para un historial detallado de cambios y versiones.
Registro y Directorio
- Paquete NPM: npmjs.com/package/mcp-rubber-duck
- Imágenes Docker: ghcr.io/nesquikm/mcp-rubber-duck
- Registro MCP: Servidor MCP oficial
io.github.nesquikm/rubber-duck - Directorio Glama: glama.ai/mcp/servers/@nesquikm/mcp-rubber-duck
- Awesome MCP Servers: Listado en el directorio comunitario
Soporte
- Reporta problemas: https://github.com/nesquikm/mcp-rubber-duck/issues
- Documentación: https://github.com/nesquikm/mcp-rubber-duck/wiki
- Discusiones: https://github.com/nesquikm/mcp-rubber-duck/discussions
¡Feliz depuración con tu Panel de Patos de IA!