用途
Concord MCP 是面向 AI 编程智能体的开源、本地优先通信与协调层。它让运行在不同 harness(如 Claude Code、Codex、Cursor、Gemini CLI、Grok Build、Goose)中的编码智能体能够互相发现、实时交换消息,并在同一仓库中分工协作,而无需人类在中间转达上下文。
它被明确定位为智能体周围的共享层,而非另一个自主智能体或编排器。其核心目标是:在消息送达之后,通过共享工作状态让协作保持可靠。
主要能力
- 实时消息:跨 harness 发送实时消息。提示使用
update_work的operation: "prompt",指定目标to_agent_id、内容与idempotency_key;回复使用operation: "reply"与reply_to_message_id。 - 工作范围声明与重叠检测:在智能体编辑前检测重叠工作。
inspect_work显示当前有哪些智能体在场,并标记过期声明(即拥有者已离开且未交接的活跃声明)。 - 共享决策与任务记忆:保留决策,并支持带证据的任务交接。
- 所有权与交接:生命周期变更操作使用任务的单调版本作为
expected_version;两个智能体对同一版本操作时只有第一个转换成功。分配后工作保持assigned状态,直到被指定智能体使用transfer_work的action: "accept"接受;交接提议同样在接收方接受前保留发送方所有权。每次所有权变更都保留在仅追加的审计历史中。 - 在线状态:写入操作接受
agent_id,仅通过工作即可保持在线状态。 - 本地 TUI 仪表盘:
concord dashboard是只读的全屏本地 TUI,每秒从共享 SQLite 工作区刷新,在固定终端视口内展示智能体、任务、警报、上下文和时间线。使用 Tab 切换面板,j / k 或方向键选择工作,/ 过滤,? 查看帮助,q 退出。 - 更新检查:Concord 每日检查并在 CLI、MCP 工具和仪表盘中提示可用更新;
concord setup可在确认后安装,CONCORD_NO_UPDATE_CHECK=1可禁用检查。
使用方式
安装与配置
运行 concord setup 会创建本地 .concord/ 工作区,为 Claude、Cursor、Gemini、Grok 和 Codex 注册 MCP 服务器(.mcp.json、.cursor/mcp.json、.gemini/settings.json、.grok/config.toml 和 ~/.codex/config.toml),并将 Concord 的工具说明写入客户端配置(CLAUDE.md、AGENTS.md、.codex/、.cursor/rules/)。它会合并到现有配置而非替换,可安全重复运行。
设置还会检测受支持的客户端,并尝试独立安装其全局 Concord 适配器。使用 --no-adapters 跳过该步骤,或在受管安装中使用 --require-adapters 以便在支持降级时失败。传入 --no-mcp 则只写入工作区和说明,由你自行管理 MCP 注册。
首次交互式运行 concord setup 时,会询问是否让智能体在从未运行过 setup 的仓库中使用 Concord(默认是)。答案保存在 ~/.concord/config.json;concord setup --global 或 --no-global 可更改。
全局模式开启时,Concord 会为每个已安装智能体在用户级别注册自身,并向其用户说明文件添加简短的 Concord 段落(~/.claude/CLAUDE.md、~/.codex/AGENTS.md、~/.gemini/GEMINI.md、Goose 的 .goosehints;Cursor 通过其全局会话钩子接收)。不会写入这些仓库:其工作保存在 ~/.concord/global.db,每个仓库一个项目,按 git remote 命名。不在任何仓库中的会话共享通用项目。已设置过的仓库则将所有内容保留在自己的 .concord/ 中。关闭全局模式会精确移除它添加的内容。
使用流程
重启智能体客户端,然后让其中两个在同一仓库中工作。Concord 为它们提供共享工作区,并使可达会话可用于直接提示和回复。
实时投递取决于接收方 harness 和会话状态。运行 concord adapters status 可查看哪些已安装智能体可达以及消息将如何投递。
带回执的适配器会引导忙碌轮次或启动空闲轮次。仅钩子集成会留下持久拉取消息,并在结果中说明该限制。当指定智能体没有可达端点时,投递立即失败;Concord 不会静默改道。
concord adapters status 分别报告每个 harness,包括其 monitor/controller 类型、已验证可达性、所需操作和版本探测结果。concord adapters install、doctor 和 uninstall 在仓库设置之外提供相同的全局生命周期。
工作区解析
Concord 自动解析仓库工作区。操作返回其 workspace_id 和仓库根,以便客户端检测错误路由的调用;当一个服务器协调多个根时,可显式传入该 id。
SQLite 是本地事实来源,保存在工作所在仓库根目录的 .concord/ 中。MCP 服务器按以下顺序解析该根:CONCORD_REPO_ROOT(若设置)、Claude Code 的 CLAUDE_PROJECT_DIR(Claude Code 会自动设置,即使对用户级服务器也是如此)、然后是其工作目录——因此同一仓库中的每个智能体共享一个存储。当服务器运行位置的工作目录不在仓库内时,设置 CONCORD_REPO_ROOT。
链接的 Git worktree 遵循 Git 的 commondir 元数据指向主检出,因此主检出和所有链接 worktree 有意共享一个 Concord 数据库和工作区 id。
要限制显式工作区选择,可将 CONCORD_ALLOWED_ROOTS 设置为以路径分隔的允许仓库根列表。没有允许列表时,解码后的根仍必须存在且为目录。
Git 忽略
concord setup 写入 .concord/.gitignore,内容为 *,因此生成的工作区忽略自身并保持本地,而无需编辑仓库共享的 .gitignore。希望将选定产物纳入 PR 的团队可在该文件中添加否定规则(setup 保留现有规则,仅确保 * 通配),或强制添加人类可读文件。由 Concord 0.10.5 或更早版本设置的仓库在根 .gitignore 中还有一条 .concord/ 规则;在 .concord/.gitignore 中的否定规则生效前需先移除它。
CLI
Concord 同时支持类型化 MCP 工具和常规 CLI。支持 MCP 的智能体可直接调用工具;人类和面向 CLI 的智能体可通过 concord 命令使用同一共享工作区。
--repo 和 --workspace 是全局互斥选项。CLI 使用与 MCP 相同的 CONCORD_REPO_ROOT → CLAUDE_PROJECT_DIR → 工作目录优先级,以及相同的链接 worktree 规范化。
适用场景
- 多个编码智能体在同一仓库中并行工作,需要避免编辑冲突。
- 需要让不同 harness 的智能体互相通信、分工和交接任务。
- 希望保留决策记录、所有权变更审计和带证据的交接。
- 需要本地优先、不依赖托管同步服务的协调方案。
限制
- 不是编排器、代码审查器、托管同步服务、记忆向量数据库或自主编码智能体。
- 没有通用的
/concord斜杠命令——命令因客户端而异。Concord 通过 MCP 工具加上已安装的说明在任何支持 MCP 的客户端上工作。 - 实时投递取决于接收方 harness 和会话状态;仅钩子集成只能留下持久拉取消息。
- 当指定智能体没有可达端点时投递立即失败,不会静默改道。
- 遥测:Concord 向 getconcord.ai 发送产品与协调遥测,包括随机安装/调用标识符、不可逆的每安装工作区与任务流假名、Concord/Node/平台版本、规范化客户端元数据、操作名称/结果/时长、聚合重叠/编辑保护结果、消息投递阶段与延迟、任务生命周期转换与耗时,以及明确报告的接受、集成、人工干预和返工结果。Concord 从不发送代码、原始文件或仓库路径、remote、用户名、原始任务或智能体标识符、消息标识符或内容、命令参数、工具输入/输出或任务内容。接收服务器存储请求 IP 地址并派生/存储国家代码;这些服务器端字段目前没有自动过期。设置
CONCORD_TELEMETRY_DISABLED=1(或DO_NOT_TRACK=1)可禁用遥测。投递为尽力而为,绝不会导致 Concord 操作失败。