Concord MCP
Live messaging and shared work-state for coding agents — detect overlapping work before edits, share decisions, and hand off tasks with evidence across harnesses.
- Source repo
- Get-Concord-AI/concord-mcp
- Stars
- ★ 401
- Last updated
- 2d ago
- License
- MIT
- Primary language
- TypeScript
- FA score
- 67/100 · Some gaps
At a glance
- Works with
- Universal · cross-platformCodex · Claude Code
- You'll need
- Typical use
- A developer running Claude Code and Codex in parallel on the same repo who wants agents to detect file-claim collisions before editing
- Main limitation
- No silent rerouting: delivery fails immediately when a named agent has no reachable endpoint, so you must monitor adapters status
- Source review
- 67/100 · Some gaps
What does this agent do, and when should you use it?
Concord MCP is an open-source, local-first communication and coordination layer for AI coding agents. Through a single MCP server, it lets agents such as Claude Code, Codex, Cursor, Gemini CLI, and Grok Build discover each other, exchange replyable direct prompts, claim files and tasks, and retain task memory after sessions end. All shared state lives in a local SQLite database under .concord/ at the repository root, alongside human-readable artifacts like HANDOFF.md and REVIEW_PACKET.md. It is explicitly not an orchestrator, code reviewer, or autonomous agent — it is the shared work-state layer around the agents you already run. Agents use five MCP tools, while humans and CLI-oriented agents access the same workspace through the concord command line.
After installation, concord setup creates a local .concord/ workspace, registers the MCP server for Claude, Cursor, Gemini, Grok, and Codex, and writes tool instructions into client configs. Agents collaborate through five MCP tools: start_work registers presence, claims a task, and reports scope overlaps before editing; inspect_work reads workspace/task state, an inbox/outbox, and durable prompt/reply threads; update_work records context or sends live messages via operation: "prompt"/"reply" with to_agent_id and an idempotency_key; transfer_work handles assignment, acceptance, handoffs, and reassignment; finish_work records evidence and marks tasks review-ready, complete, or closed. Writes carry an agent_id to keep presence live, lifecycle changes use expected_version for optimistic concurrency, and every ownership change is retained in an append-only audit history. The CLI offers concord status, who, tasks, handoff, review-packet, and a live dashboard TUI.
- A developer running Claude Code and Codex in parallel on the same repo who wants agents to detect file-claim collisions before editing
- Teams that want task decisions and context to survive session ends instead of disappearing into chat history
- Handing off a task from one agent to another with full handoff evidence and explicit acknowledgment
- Independent reviewers who need a REVIEW_PACKET.md with scope, tests, risks, and provenance before approving work
- Solo developers monitoring agent presence, tasks, alerts, and activity in real time via concord dashboard
How do you install or deploy this agent?
Install globally via npm and initialize inside your repository:
bash
npm install -g @concord-ai/concord-mcp
cd /path/to/your/repository
concord setupNo API keys are required. setup creates the local .concord/ workspace, registers MCP servers, and merges instructions into existing configs — safe to re-run. Restart your agent clients once afterward to enable live delivery. Flags --no-adapters, --no-mcp, and --require-adapters adjust behavior.
How do you use this agent?
After restarting client sessions, ask two agents to work in the same repository; they will discover each other and exchange messages. Humans can inspect at any time:
bash
concord status
concord dashboard
concord tasks
concord handoff <task-id>
concord review-packet <id>
concord adapters statusUse --repo or --workspace (mutually exclusive globals) to select a repository from anywhere. There is no universal /concord slash command; clients work through MCP tools plus installed instructions. To upgrade:
bash
npm install -g @concord-ai/concord-mcp@latest
concord --versionWhat are this agent's strengths and limitations?
- Direct cross-harness messaging between Claude Code, Codex, Cursor, Gemini CLI, and Grok Build without a human relaying context
- Local SQLite source of truth with .concord/ gitignored by default — code and task content never leave the machine
- Optimistic concurrency via expected_version plus append-only audit history prevents conflicting state transitions
- Strong operational tooling: live TUI dashboard, adapters status reachability matrix, and stale-claim detection
- No silent rerouting: delivery fails immediately when a named agent has no reachable endpoint, so you must monitor adapters status
- Only effective within a shared local checkout — it is not a hosted sync service or multi-repo solution
- Sends telemetry to getconcord.ai by default (disablable); server-side IP and country-code storage has no automatic expiry
- Delivery requires installing adapters and restarting client sessions, and live delivery depends on each harness's state
How does this agent compare with similar options?
Key facts side by side with the most closely related agents.
| Agent | Source review | Form / cost | Stars | Updated | Language | Full support on |
|---|---|---|---|---|---|---|
| Concord MCP This agent | 67 · Some gaps | — | ★ 401 | 2d ago | TypeScript | Codex · Claude Code |
| MCO | 73 · Some gaps | CLIFree + model costs | ★ 531 | 1mo ago | Python | Codex · Claude Code |
| AWS Agent Toolkit | 58 · Major gaps | Agent plugin / skillFree + model costs | ★ 2.8k | 1d ago | Python | Codex · Claude Code |
| Emulo | 78 · Good | Agent plugin / skillFree + model costs | ★ 293 | 2d ago | HTML | Codex · Claude Code |
How does FollowAgents rate this agent?
Why each dimension lost points
Data-flow transparency is the strength: README and SECURITY.md enumerate telemetry contents and opt-outs (CONCORD_TELEMETRY_DISABLED / DO_NOT_TRACK), and CONCORD_ALLOWED_ROOTS plus local-first SQLite support least privilege. Deductions: telemetry is on by default with server-side IP/country retention that has no automatic expiry (sensitive_data_handling); `concord setup` writes into many client config files (CLAUDE.md, AGENTS.md, ~/.codex/config.toml, etc.) described as merging but with no shown confirmation or dry-run, and installs global adapters by default (external_effects 1); dependencies are only listed in package. with no audit/lockfile evidence (dependency_security 1); rollback is partially covered by uninstall/doctor and append-only audit history (2). Publisher unverified, but in-file identity (author, repo, OIDC trusted publishing) is consistent, so source_attribution is 2 not higher.
README documents optimistic concurrency (expected_version), idempotency keys, immediate failure on unreachable targets, and explicitly stated hook-only degraded paths — failure_messages earns 2. Dependency availability is local SQLite with no hard remote dependency (2). Major deduction: self_consistency only 1 — the README names five tools (start_work/inspect_work/update_work/transfer_work/finish_work), yet the provided tests reference claim_work, handoff, register_agent, review_ready; the documented and visible names cannot be reconciled in static review.
Audience and scenarios are well covered: five named clients plus any MCP client plus CLI users (3). Capability boundaries are excellent — 'What this is / is not' explicitly excludes orchestrator/reviewer/cloud sync (3). trigger_precision 2: delivery paths are client-specific and hook-only limitations are stated, but post-setup instruction behavior cannot be verified statically. environment_fit 2: Node>=22.12, worktree commdir handling, and CONCORD_REPO_ROOT priority are documented, but cross-client compatibility rests on documentation assertions.
Information architecture and install notes are strong: complete README, folded setup-changes explanation, full CLI listing (3 each). LICENSE matches package. (3). known_limitations 2: pre-1.0 status, hook-only limits, delivery dependence on harness. Major deductions: naming_stability 1 (tool-name mismatch above); no CHANGELOG file, versioning relies only on npm/CI tags (1); maintenance responsibility has CONTRIBUTING/SECURITY/CI but no stated maintainer commitments (2).
output_usability 2: human-readable HANDOFF.md/REVIEW_PACKET.md/WORK_STATE. and a read-only TUI are well designed, but no real output samples are verifiable. marginal_value 2: cross-harness messaging plus pre-edit claim collision detection addresses a real pain point and the without/with table is persuasive, but the delta over plain markdown/git conventions requires a run (docs/why-not-markdown.md not provided). cost_benefit 2: one MCP server over local SQLite is cheap, but multi-file config writes and default global adapter installation widen the operational surface.
claim_traceability 1: core promises (live messaging, collision detection, audit history) are covered only by test fragments (artifact writing, identity resolution); the five tools' behavior has no visible source. cross_source_corroboration 1: README and SECURITY.md corroborate telemetry claims, but the tool-name contradiction between README and tests weakens overall corroboration. fact_inference_separation 2: the README distinguishes claims from limits ('Live delivery depends on the receiving harness', best-effort delivery), and most statements are attributable, but demo/performance claims have no execution evidence; confidence is low throughout.
- Telemetry is on by default and sends operation metadata to getconcord.ai; set CONCORD_TELEMETRY_DISABLED=1 or DO_NOT_TRACK=1 before use if you do not want data leaving the machine.
- concord setup modifies multiple client config files and installs global adapters by default; back up configs first and consider --no-adapters / --no-mcp to minimize changes.
- The five tool names in the README do not match tool names appearing in the provided tests; static review cannot confirm API stability, and breaking changes should be expected pre-1.0.
- Server-side IP and country-code telemetry fields currently have no automatic expiry, and security fixes target only the latest version (pre-1.0).
- No lockfile or dependency-audit evidence is provided; review native dependencies such as better-sqlite3 yourself in a controlled environment.