Skip to main content
Glama

Debate MCP

Servidor MCP compartido y autopiloto local para debatir un tema entre OpenCode y Antigravity, guardar la transcripción y producir un plan.

Requisitos

  • Runtime: Node.js 24 + TypeScript.

  • Requiere opencode y agy autenticados en el usuario actual.

  • El servidor escucha solo en 127.0.0.1:4599.

Related MCP server: Human-Agent Chatroom MCP

Instalación

git clone https://github.com/ESlalo149/debate-mcp.git
cd debate-mcp
npm ci

Ejecución

cd debate-mcp
.\scripts\start-debate.ps1 -Topic "Tema a debatir" -Rounds 6 -Detached

-Detached deja el debate corriendo aunque cierres esta conversación. El progreso se escribe en data\autopilot.log; errores del proceso van a data\autopilot.stderr.log y, si una sala falla, a data\rooms\<id>\error.log. Para esperar en primer plano, omite -Detached.

Por defecto ambos asientos usan Antigravity CLI con gemini-3.8-flash-low. Para escoger otros modelos de Antigravity:

.\scripts\start-debate.ps1 -Topic "Tema" -Rounds 2 -Engine agy -Detached

Se pueden cambiar con -ProposerModel y -CriticModel. Para usar OpenCode como proponente y Antigravity como crítico, indica -Engine both.

Para conservar acentos y signos en temas largos, también acepta un archivo UTF-8:

Set-Content -Encoding utf8 .\tema.txt "¿Qué enfoque conviene?"
.\scripts\start-debate.ps1 -TopicFile .\tema.txt -Rounds 6 -Detached

Para dejar el servidor MCP listo sin iniciar debate:

.\scripts\start-debate.ps1 -ServerOnly

También se puede ejecutar directamente:

npm install
npm run build
npm run debate -- --topic "Tema a debatir" --rounds 6
npm test
npm run format:check

Antigravity usa por defecto gemini-3.8-flash-low para ambos asientos; OpenCode usa openai/gpt-6-luna-fast. Se pueden cambiar con -OpenCodeModel, -AgyModel, -ProposerModel, -CriticModel, OPENCODE_MODEL, AGY_MODEL y AGY_EFFORT. Las llamadas a Antigravity son stateless por defecto: el autopiloto envía el contexto actual explícitamente y no reenvía la conversación acumulada. Define AGY_STATELESS=0 para reactivar sesiones conversacionales de Antigravity.

OpenCode headless recibe OPENCODE_CONFIG_CONTENT únicamente en el proceso hijo, con los servidores MCP configurados en este entorno desactivados y todas sus tools bloqueadas. La configuración global permanece intacta y el autopiloto es el único que publica turnos. El agente sigue pudiendo responder texto en modo plan.

Timeouts configurables por CLI y fase, en milisegundos: DEBATE_TIMEOUT_OPENCODE_TURN_MS, DEBATE_TIMEOUT_OPENCODE_SIGNOFF_MS, DEBATE_TIMEOUT_OPENCODE_PLAN_MS y sus equivalentes DEBATE_TIMEOUT_AGY_*_MS. También aceptan un fallback por proveedor (DEBATE_TIMEOUT_OPENCODE_MS, DEBATE_TIMEOUT_AGY_MS) o global (DEBATE_TIMEOUT_MS). Defaults: turno 4 min, firma 3 min, síntesis 5 min. DEBATE_MAX_RETRIES (0–5, default 2) y DEBATE_RETRY_BASE_MS/DEBATE_RETRY_MAX_MS controlan reintentos transitorios. Cuota agotada y 429 ambiguo fallan rápido y dejan plan parcial.

Datos producidos

Cada sala crea data/rooms/<id>/ con:

  • <id>.json: turno, estado, mensajes y acuerdo.

  • <id>\transcript.md: transcripción legible.

  • <id>\plan.md: plan final, decisiones, pasos, riesgos y dissent.

  • <id>\result.json: resultado de la ejecución.

La carpeta data/ está excluida de Git. DEBATE_DATA_DIR permite cambiar la ubicación.

MCP manual

El endpoint Streamable HTTP es http://127.0.0.1:4599/mcp; estado en /health. Ambos clientes se configuran como clientes remotos al mismo endpoint. El MCP ofrece room_create, room_list, room_join, room_status, room_post, room_read, room_wait, room_save_plan, room_close y room_export_transcript.

Para el modo manual, inicia a cada agente con su asiento (opencode o antigravity) y pídele que consulte room_status, publique cuando le toque y repita room_wait si queda idle. Al aceptar una propuesta, room_post debe incluir acceptedRevisionId con la revisión exacta mostrada por room_read; puede incluir idempotency_key para que repetir una publicación sea seguro. MCP no puede reactivar una conversación que ya terminó.

Consenso

Se considera consenso solo si OpenCode y Antigravity aceptan la misma revisión SHA-256, no dejan puntos abiertos y Antigravity firma la revisión persistida. Una propuesta editada genera una revisión nueva. Si no se consigue acuerdo antes del máximo de rondas, se guarda no_consensus y las objeciones quedan en Dissent.

Diagnóstico rápido

Invoke-RestMethod http://127.0.0.1:4599/health
opencode mcp list
agy mcp list

Después de cambiar la configuración MCP, reinicia OpenCode y actualiza/reinicia Antigravity IDE.

Licencia

Este proyecto se distribuye bajo la licencia MIT. Consulta LICENSE.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables independent coding agents and any HTTP caller to communicate in shared rooms, with @-mention and broadcast wake-ups so sessions notice messages even when idle.
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables AI agents to debate styleguides, rules, decisions, or specs in a shared room until they reach consensus, producing a versioned artifact and a transcript of the negotiation.
    MIT