concord-mcp

Get-Concord-AIMIT活跃维护

给编码 Agent 之间提供实时消息通道的 MCP 服务,让 Claude Code、Codex、Cursor 等不同工具能互相通信、协作和做代码评审。

Live messaging for coding agents

v0.21.0发布于 2026-11-09 11:35 UTC1,049star +54 / 7 天62fork同步于 2026-11-10 17:53 UTC

怎么上手

由 README 提炼,执行前请确认
npm install -g @concord-ai/concord-mcp
cd /path/to/your/repository
concord setup
硬件要求按 README 说明

README 未说明硬件要求;它是本地运行的 Node.js MCP 服务,不涉及 GPU 或显存。

下载:源码 zip·GitHub Releases(安装包)本站不镜像安装包

项目说明

由 README 自动翻译提炼

让 Claude Code、Codex、Cursor 等不同 harness 的编码 agent 互通消息、共享任务状态的本地 MCP 服务

给编码 Agent 之间提供实时消息通道的 MCP 服务,让 Claude Code、Codex、Cursor 等不同工具能互相通信、协作和做代码评审。

核心能力

  • 通过一个 MCP server 跨 harness 发送可回复的实时消息
  • 编辑前用 start_work 认领文件并检测工作范围重叠
  • 用版本号与追加式审计记录任务归属和交接
  • 用 SQLite 在仓库根目录 .concord/ 保存本地工作状态
  • concord setup 自动为多个客户端注册 MCP 与指令文件

容易踩的坑

setup 会改写多个客户端的 MCP 与指令配置,需重启已有 agent 会话才生效;实时投递依赖接收端 harness 与适配器,hook-only 集成只能留待拉取的消息;跨机器协作需先执行 concord cloud login 关联本机。

内容由模型根据 README 生成,可能不完整或不准确,以官方文档为准。看原文 README

最近发版

5 个版本v0.21.0
  1. v0.21.0最新正式版2026-11-09 · 2026-11-09 11:35 UTC

    What's Changed

    New Contributors

    Full Changelog: https://github.com/Get-Concord-AI/concord-mcp/compare/v0.20.0...v0.21.0

  2. v0.20.02026-11-05 · 2026-11-05 18:53 UTC
    查看更新说明

    What's Changed

    New Contributors

    Full Changelog: https://github.com/Get-Concord-AI/concord-mcp/compare/v0.19.0...v0.20.0

  3. v0.19.02026-10-30 · 2026-10-30 14:00 UTC
    查看更新说明

    What's Changed

    Full Changelog: https://github.com/Get-Concord-AI/concord-mcp/compare/v0.18.0...v0.19.0

  4. v0.18.02026-10-28 · 2026-10-28 18:06 UTC
    查看更新说明

    What's Changed

    New Contributors

    Full Changelog: https://github.com/Get-Concord-AI/concord-mcp/compare/v0.17.1...v0.18.0

  5. v0.17.12026-10-27 · 2026-10-27 18:30 UTC
    查看更新说明

    What's Changed

    Full Changelog: https://github.com/Get-Concord-AI/concord-mcp/compare/v0.17.0...v0.17.1

用户点评

登录用户的真实使用记录,可按版本和硬件筛选
共 0 条

    还没有人点评。第一个说出真实体验的人最有价值。

    README 原文

    未翻译

    See it work

    Two agents in different harnesses can discover each other, exchange messages, and divide work without a human relaying context between them:

    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.
    

    Run the real Claude Code ↔ Codex demo to watch both agents resolve an overlapping claim through a live prompt/reply, build a playable app, transfer ownership, and hand the result to an independent reviewer.

    Quick start

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

    No Node.js? On macOS or Linux, install a self-contained build instead:

    curl -fsSL https://getconcord.ai/install.sh | sh
    

    It bundles its own Node runtime under ~/.concord/standalone and puts the concord and concord-mcp launchers in ~/.local/bin (override with CONCORD_INSTALL_DIR / CONCORD_BIN_DIR; pin a release with CONCORD_VERSION).

    Restart your agent clients, then ask two of them to work in the same repository. Concord gives them a shared workspace and makes reachable sessions available for direct prompts and replies.

    concord setup creates the local .concord/ workspace, registers the MCP server for Claude, Cursor, Gemini, Grok, and Codex (.mcp.json, .cursor/mcp.json, .gemini/settings.json, .grok/config.toml, and ~/.codex/config.toml). For Goose, it registers the concord-relay extension in Goose's config.yaml when detected. For Antigravity, it writes .agents/mcp_config.json, .agents/hooks.json, and .agents/rules/concord.md. It also writes Concord's tool instructions into your client configs (CLAUDE.md, AGENTS.md, .codex/, .cursor/rules/). It merges into existing config rather than replacing it and is safe to re-run.

    Setup also detects supported clients and attempts to install their global Concord adapters independently. Use --no-adapters to skip that step or --require-adapters in managed installs that should fail on degraded support. Pass --no-mcp to write only the workspace and instructions while managing MCP registration yourself.

    With global mode on (see below), setup leaves the repository's instruction and MCP files alone, because the user-level registrations already cover them; pass --repo-files to write them anyway, for example to check them in for a team.

    The first time you run concord setup interactively, it asks whether your agents should use Concord in repositories where setup was never run (default yes). Your answer is saved in ~/.concord/config.json; concord setup --global or --no-global changes it.

    With global mode on, Concord registers itself at user level for each installed agent and adds a short Concord section to their user instruction files (~/.claude/CLAUDE.md, ~/.codex/AGENTS.md, ~/.gemini/GEMINI.md, Goose's .goosehints, ~/.copilot/copilot-instructions.md; Cursor receives it from its global session hook). Nothing is written into those repositories: their work is kept in ~/.concord/global.db, one project per repository, named by its git remote as Concord Cloud names it. Sessions outside any repository share the general project. A repository you did set up keeps everything in its own .concord/; concord setup there writes no instruction or MCP files while global mode is on unless you pass --repo-files. Turning global mode off removes exactly what it added.

    concord cloud login signs this machine in to Concord Cloud and links it. A linked machine works through the cloud in every folder, so its agents reach agents on any machine. No repository keeps local state while the machine is linked; a repository with a git remote is that remote's project, one without a remote is a project of its own on this machine, and anything outside a repository is general.

    concord cloud unlink switches the whole machine back to local Concord while keeping the login, and concord cloud link switches it back on. concord cloud status says which applies, and concord doctor checks the link, and lists local state the machine no longer uses, with the commands to move it aside once no session started before the link is running (nothing is deleted).

    Supported agents

    AgentIntegration guide
    Claude CodeSetup and delivery
    CodexSetup and delivery
    CursorSetup and delivery
    Gemini CLISetup and delivery
    Grok BuildSetup and delivery
    GooseSetup and delivery
    Google AntigravitySetup and delivery
    GitHub Copilot CLISetup and delivery
    Devin CLIProject-level setup via concord setup
    Conductor (Claude Code, Codex)Setup and delivery
    Any other MCP-capable coding agentManual setup

    There is no universal /concord slash command — commands are client-specific. Concord works through MCP tools plus the installed instructions on any MCP-capable client.

    Live delivery depends on the receiving harness and session state. Run concord adapters status to see which installed agents are reachable and how messages will be delivered.

    Communication is the starting point

    Messaging gets agents talking. Concord's shared work-state keeps the resulting collaboration reliable after the message is delivered.

    Without ConcordWith Concord
    Agents cannot contact peers in another harnessAgents send direct, replyable prompts across supported clients
    Agents discover collisions after editingAgents claim files and modules before work begins
    Context disappears when a session endsDecisions, assumptions, and findings stay attached to the task
    Ownership is implied by chat historyAssignments and handoffs are explicit and acknowledged
    Humans reconstruct progress from branches and diffsReview packets arrive with scope, tests, risks, and provenance

    Concord is not another autonomous agent or orchestrator. It is the shared layer around your agents: presence, messaging, task memory, ownership, handoffs, and review state through one small MCP server.

    The tools

    ToolPurpose
    start_workregisters presence, claims or accepts one task, and reports scope overlaps before editing
    inspect_workreads workspace/task state, an agent inbox/outbox, or a durable prompt/reply thread
    update_workrecords task context or immediately prompts/replies to another promptable workspace agent
    transfer_workassigns, accepts, declines, releases, reassigns, offers handoffs, or reopens versioned work
    finish_workrecords evidence and optionally marks a task review-ready, complete, or closed

    Writes accept an agent_id, which keeps presence live just by working. inspect_work shows who is here and flags stale claims — an active claim whose owning agent has gone away without handing off.

    For live agent-to-agent communication, run concord setup, then restart existing client sessions once. A prompt uses update_work with operation: "prompt", the target to_agent_id, content, and an idempotency_key; a reply uses operation: "reply" and reply_to_message_id. A receipt-bearing adapter steers a busy turn or starts an idle turn. Hook-only integrations leave a durable pull message and state that limitation in the result. Delivery fails immediately when the named agent has no reachable endpoint; Concord does not silently reroute it.

    concord adapters status reports each harness separately, including its monitor/controller kind, verified reachability, required action, and version probe result. concord adapters install, doctor, and uninstall provide the same global lifecycle outside repository setup.

    Concord resolves the repository workspace automatically. Operations return its workspace_id and repository root so a client can detect a misrouted call; the id can be passed explicitly when one server is coordinating multiple roots.

    Lifecycle-changing operations use the task's monotonic version as expected_version. If two agents act on the same version, only the first transition succeeds. Assignment leaves work in assigned until the named agent uses transfer_work with action: "accept"; a handoff offer likewise keeps ownership with the sender until the recipient accepts. Every ownership change is retained in an append-only audit history.

    What you get

    SQLite is the local source of truth, kept in the .concord/ at the root of the repo the work is happening in. The MCP server resolves that root from CONCORD_REPO_ROOT if set, then Claude Code's CLAUDE_PROJECT_DIR (which Claude Code sets automatically, even for a user-scoped server), then its working directory — so every agent in one repo shares one store. Set CONCORD_REPO_ROOT when running the server somewhere its working directory is not inside the repo.

    Linked Git worktrees follow Git's commondir metadata to the primary checkout, so the main checkout and all linked worktrees intentionally share one Concord database and workspace id.

    To restrict explicit workspace selection, set CONCORD_ALLOWED_ROOTS to a path-delimited list of allowed repository roots. Without an allowlist, decoded roots must still exist and be directories.

    concord setup writes a .concord/.gitignore containing *, so the generated workspace ignores itself and stays local without editing the repository's shared .gitignore. Teams that want selected artifacts in PRs can add negation rules to that file (setup keeps existing rules, only ensuring the * catch-all) or force-add the human-readable files. Repositories set up by Concord 0.10.5 or earlier also have a .concord/ rule in the root .gitignore; remove it before negations in .concord/.gitignore can take effect.

    .concord/
    ├── .gitignore          ignores the whole directory
    ├── concord.db          local source of truth
    ├── HANDOFF.md          human-readable handoff
    ├── REVIEW_PACKET.md    review-ready evidence
    ├── events.jsonl        chronological tool events, one JSON object per line
    └── WORK_STATE.json     generated work-state export
    

    CLI

    Concord supports both typed MCP tools and a regular CLI. MCP-capable agents can call the tools directly; humans and CLI-oriented agents can work with the same shared workspace through concord commands.

    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 check <files...>     # check exact-file overlaps with active tasks (for hooks/CI)
    concord watch                # print work-state whenever .concord changes (Ctrl-C to stop)
    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
    

    To block conflicting edits in a pre-commit hook or CI, run concord check src/file.ts (or concord check --task <id> src/file.ts to exclude your own task). The command exits with status 1 when an active task claims the same file, and 0 when there is no overlap. Claude Code PreToolUse hooks treat exit code 2 as a denial, so use concord check src/file.ts || exit 2 in that hook.

    --repo and --workspace are global, mutually exclusive options. The CLI uses the same CONCORD_REPO_ROOT → CLAUDE_PROJECT_DIR → working-directory priority and the same linked-worktree canonicalization as MCP.

    concord dashboard is a read-only, full-screen local TUI. It refreshes from the shared SQLite workspace every second while keeping agents, tasks, alerts, context, and timeline inside a fixed terminal viewport. Use Tab to change panes, j/k or the arrow keys to select work, / to filter, ? for help, and q to quit.

    Upgrade

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

    Rerun the curl … | sh installer to upgrade a self-contained install.

    Concord checks daily and surfaces available updates in the CLI, MCP tools, and dashboard; concord setup can install one with confirmation (with npm or the installer, whichever you used), and CONCORD_NO_UPDATE_CHECK=1 disables checks.

    What this is / is not

    Shared work-state and task memory for coding agents using the same local checkout. Not an orchestrator, code reviewer, hosted sync service, memory vector DB, or autonomous coding agent.

    See also: Why not just use markdown?

    Contributing

    See CONTRIBUTING.md and CLAUDE.md. This repo is strictly typed (no any, no typecasts) and modular. Good first issues are labelled good first issue.

    Star History

    Privacy & telemetry

    Concord sends product and coordination telemetry to getconcord.ai. It includes random installation/invocation identifiers; irreversible per-install workspace and task-flow pseudonyms; Concord/Node/platform versions; normalized client metadata; operation names, outcomes, and durations; aggregate overlap/edit-guard results; message delivery stages and latencies; task lifecycle transitions and elapsed time; and explicitly reported acceptance, integration, human-intervention, and rework outcomes.

    Concord never sends code, raw file or repository paths, remotes, usernames, raw task or agent identifiers, message identifiers or content, command arguments, tool inputs/outputs, or task content. The receiving server stores the request IP address and derives/stores a country code. Those server-side fields currently have no automatic expiry. Set CONCORD_TELEMETRY_DISABLED=1 (or DO_NOT_TRACK=1) to disable telemetry. Delivery is best effort and can never make a Concord operation fail.

    License

    MIT