Concord MCP

Estado de trabajo compartido local-primero para agentes de codificación (Claude Code, Cursor, Codex, Gemini, Grok): presencia, reclamos de tareas, advertencias de superposición, mensajería en vivo entre agentes, transferencias de propiedad y paquetes de revisión.

Documentación

Concord MCP — shared work-state for coding agents

Concord MCP

Permite que Claude Code, Codex, Cursor, Gemini CLI y Grok Build se comuniquen entre sí.

La capa de comunicación y coordinación de código abierto, local-first para agentes de IA de codificación. Envía mensajes en vivo entre entornos, detecta trabajo superpuesto antes de que los agentes editen, comparte decisiones y transfiere tareas con evidencia, a través de un solo servidor MCP.

npm version npm downloads CI Node.js version MIT License

Demo · Inicio rápido · Agentes compatibles · Sitio web · Contribuciones

Verlo en acción

Dos agentes en diferentes entornos pueden descubrirse entre sí, intercambiar mensajes y dividir el trabajo sin que un humano tenga que transmitir el contexto entre ellos:

Claude Code → Concord   Claim src/app/page.tsx
Codex       → Concord   Claim src/app/page.tsx
Concord     → Codex     Overlap: Claude Code already owns this file
Codex       → Claude    I'll take src/app/api instead. Does that work?
Claude      → Codex     Yes. I'll keep the page and use your API contract.

Ejecuta la demo real de Claude Code ↔ Codex para ver cómo ambos agentes resuelven una reclamación superpuesta mediante un prompt/respuesta en vivo, crean una aplicación jugable, transfieren la propiedad y entregan el resultado a un revisor independiente.

Inicio rápido

npm install -g @concord-ai/concord-mcp
cd /path/to/your/repository
concord setup

Reinicia tus clientes de agentes y luego pide a dos de ellos que trabajen en el mismo repositorio. Concord les proporciona un espacio de trabajo compartido y hace que las sesiones alcanzables estén disponibles para prompts y respuestas directas.

Qué cambia concord setup

concord setup crea el espacio de trabajo local .concord/, registra el servidor MCP para Claude, Cursor, Gemini, Grok y Codex (.mcp.json, .cursor/mcp.json, .gemini/settings.json, .grok/config.toml y ~/.codex/config.toml) y escribe las instrucciones de las herramientas de Concord en tus configuraciones de cliente (CLAUDE.md, AGENTS.md, .codex/, .cursor/rules/). Se fusiona con la configuración existente en lugar de reemplazarla y es seguro volver a ejecutarlo.

La configuración también detecta clientes compatibles e intenta instalar sus adaptadores globales de Concord de forma independiente. Usa --no-adapters para omitir ese paso o --require-adapters en instalaciones gestionadas que deban fallar ante soporte degradado. Pasa --no-mcp para escribir solo el espacio de trabajo y las instrucciones mientras gestionas el registro MCP tú mismo.

Agentes compatibles

AgenteGuía de integración
Claude CodeConfiguración y entrega
CodexConfiguración y entrega
CursorConfiguración y entrega
Gemini CLIConfiguración y entrega
Grok BuildConfiguración y entrega
Cualquier otro agente de codificación compatible con MCPEstado de trabajo compartido a través de las cinco herramientas MCP

No existe un comando de barra universal /concord — los comandos son específicos del cliente. Concord funciona a través de herramientas MCP más las instrucciones instaladas en cualquier cliente compatible con MCP.

La entrega en vivo depende del entorno receptor y del estado de la sesión. Ejecuta concord adapters status para ver qué agentes instalados son alcanzables y cómo se entregarán los mensajes.

La comunicación es el punto de partida

La mensajería hace que los agentes hablen entre sí. El estado de trabajo compartido de Concord mantiene la colaboración resultante fiable después de que se entregue el mensaje.

Sin ConcordCon Concord
Los agentes no pueden contactar a pares en otro entornoLos agentes envían prompts directos y respondibles entre clientes compatibles
Los agentes descubren colisiones después de editarLos agentes reclaman archivos y módulos antes de comenzar el trabajo
El contexto desaparece cuando termina una sesiónLas decisiones, suposiciones y hallazgos permanecen vinculados a la tarea
La propiedad se infiere del historial del chatLas asignaciones y transferencias son explícitas y reconocidas
Los humanos reconstruyen el progreso desde ramas y diffsLos paquetes de revisión llegan con alcance, pruebas, riesgos y procedencia

Concord no es otro agente autónomo u orquestador. Es la capa compartida alrededor de tus agentes: presencia, mensajería, memoria de tareas, propiedad, transferencias y estado de revisión a través de un pequeño servidor MCP.

Las herramientas

HerramientaPropósito
start_workregistra presencia, reclama o acepta una tarea y reporta superposiciones de alcance antes de editar
inspect_worklee el estado del espacio de trabajo/tarea, una bandeja de entrada/salida del agente o un hilo de prompt/respuesta duradero
update_workregistra el contexto de la tarea o envía inmediatamente un prompt/respuesta a otro agente del espacio de trabajo con prompt
transfer_workasigna, acepta, rechaza, libera, reasigna, ofrece transferencias o reabre trabajo versionado
finish_workregistra evidencia y opcionalmente marca una tarea como lista para revisión, completa o cerrada

Las escrituras aceptan un agent_id, que mantiene la presencia activa solo con trabajar. inspect_work muestra quién está aquí y marca reclamaciones obsoletas — una reclamación activa cuyo agente propietario se ha ido sin transferirla.

Para comunicación en vivo entre agentes, ejecuta concord setup, luego reinicia las sesiones de clientes existentes una vez. Un prompt usa update_work con operation: "prompt", el to_agent_id objetivo, contenido y un idempotency_key; una respuesta usa operation: "reply" y reply_to_message_id. Un adaptador con confirmación de recepción dirige un turno ocupado o inicia un turno inactivo. Las integraciones solo con hooks dejan un mensaje de extracción duradero y limitan ese estado en el resultado. La entrega falla inmediatamente cuando el agente nombrado no tiene un endpoint alcanzable; Concord no lo redirige silenciosamente.

concord adapters status reporta cada entorno por separado, incluido su tipo de monitor/controlador, alcanzabilidad verificada, acción requerida y resultado de la sonda de versión. concord adapters install, doctor y uninstall proporcionan el mismo ciclo de vida global fuera de la configuración del repositorio.

Concord resuelve el espacio de trabajo del repositorio automáticamente. Las operaciones devuelven su workspace_id y la raíz del repositorio para que un cliente pueda detectar una llamada mal enrutada; el id se puede pasar explícitamente cuando un servidor coordina múltiples raíces.

Las operaciones que cambian el ciclo de vida usan el version monotónico de la tarea como expected_version. Si dos agentes actúan sobre la misma versión, solo la primera transición tiene éxito. La asignación deja el trabajo en assigned hasta que el agente nombrado use transfer_work con action: "accept"; una oferta de transferencia también mantiene la propiedad con el remitente hasta que el destinatario la acepta. Cada cambio de propiedad se conserva en un historial de auditoría de solo anexión.

Lo que obtienes

SQLite es la fuente de verdad local, mantenida en el .concord/ en la raíz de la repo donde ocurre el trabajo. El servidor MCP resuelve esa raíz desde CONCORD_REPO_ROOT si está configurado, luego el CLAUDE_PROJECT_DIR de Claude Code (que Claude Code establece automáticamente, incluso para un servidor de ámbito de usuario), luego su directorio de trabajo — para que cada agente en una repo comparta un solo almacén. Establece CONCORD_REPO_ROOT cuando ejecutes el servidor en un lugar donde su directorio de trabajo no esté dentro de la repo.

Los worktrees de Git vinculados siguen los metadatos commondir de Git hasta el checkout principal, por lo que el checkout principal y todos los worktrees vinculados comparten intencionalmente una base de datos y un id de espacio de trabajo de Concord.

Para restringir la selección explícita del espacio de trabajo, establece CONCORD_ALLOWED_ROOTS a una lista delimitada por rutas de raíces de repositorio permitidas. Sin una lista de permitidos, las raíces decodificadas deben existir y ser directorios.

concord setup agrega .concord/ al .gitignore del repositorio, por lo que el espacio de trabajo generado permanece local por defecto. Los equipos que quieran artefactos seleccionados en PRs pueden eliminar esa regla o forzar la adición de los archivos legibles por humanos:

.concord/
├── concord.db          local source of truth
├── HANDOFF.md          human-readable handoff
├── REVIEW_PACKET.md    review-ready evidence
└── WORK_STATE.json     generated export (optional)

CLI

Concord admite tanto herramientas MCP tipadas como una CLI regular. Los agentes compatibles con MCP pueden llamar a las herramientas directamente; los humanos y los agentes orientados a CLI pueden trabajar con el mismo espacio de trabajo compartido a través de comandos concord.

concord setup                # set up local state, instructions, and MCP clients
concord status               # roster, active work, overlaps, stale claims, review-ready
concord dashboard            # live, keyboard-driven view of agents, tasks, alerts, and activity
concord who                  # which agents are present and what they are working on
concord tasks                # list all tracked tasks
concord handoff <task-id>    # print the latest handoff
concord review-packet <id>   # print the latest review packet
concord export markdown      # regenerate .concord/ artifacts
concord doctor               # workspace checks + per-task tool adoption
concord adapters status      # global harness delivery capability matrix

concord --repo ../project status        # select by repository path from anywhere
concord --workspace ws_... status       # select an id returned by a Concord operation

--repo y --workspace son opciones globales mutuamente excluyentes. La CLI usa la misma prioridad CONCORD_REPO_ROOT → CLAUDE_PROJECT_DIR → directorio de trabajo y la misma canonicalización de worktrees vinculados que MCP.

concord dashboard es una TUI local de pantalla completa de solo lectura. Se actualiza desde el espacio de trabajo SQLite compartido cada segundo mientras mantiene agentes, tareas, alertas, contexto y línea de tiempo dentro de un viewport de terminal fijo. Usa Tab para cambiar paneles, j/k o las teclas de flecha para seleccionar trabajo, / para filtrar, ? para ayuda y q para salir.

Actualización

npm install -g @concord-ai/concord-mcp@latest
concord --version

Concord verifica diariamente y muestra actualizaciones disponibles en la CLI, herramientas MCP y panel; concord setup puede instalar una con confirmación, y CONCORD_NO_UPDATE_CHECK=1 desactiva las verificaciones.

Qué es / qué no es

Estado de trabajo compartido y memoria de tareas para agentes de codificación que usan el mismo checkout local. No es un orquestador, revisor de código, servicio de sincronización alojado, base de datos vectorial de memoria o agente de codificación autónomo.

Ver también: ¿Por qué no usar solo markdown?

Contribuciones

Ver CONTRIBUTING.md y CLAUDE.md. Esta repo está estrictamente tipada (sin any, sin typecasts) y es modular. Los buenos primeros problemas están etiquetados como good first issue.

Historial de estrellas

Star History Chart

Privacidad y telemetría

Concord envía telemetría de producto y coordinación a getconcord.ai. Incluye identificadores aleatorios de instalación/invocación; seudónimos irreversibles de espacio de trabajo y flujo de tareas por instalación; versiones de Concord/Node/plataforma; metadatos de cliente normalizados; nombres de operaciones, resultados y duraciones; resultados agregados de superposición/guardia de edición; etapas y latencias de entrega de mensajes; transiciones del ciclo de vida de tareas y tiempo transcurrido; y resultados de aceptación, integración, intervención humana y retrabajo reportados explícitamente.

Concord nunca envía código, rutas de archivos o repositorios sin procesar, remotos, nombres de usuario, tareas o identificadores de agentes sin procesar, identificadores o contenido de mensajes, argumentos de comandos, entradas/salidas de herramientas o contenido de tareas. El servidor receptor almacena la dirección IP de la solicitud y deriva/almacena un código de país. Esos campos del lado del servidor actualmente no tienen expiración automática. Establece CONCORD_TELEMETRY_DISABLED=1 (o DO_NOT_TRACK=1) para desactivar la telemetría. La entrega es de mejor esfuerzo y nunca puede hacer fallar una operación de Concord.

Licencia

MIT