Concord MCP について
Concord MCPは、異なるハーネスを使うコーディングエージェント向けのローカル優先の協調レイヤーです。1つのMCPサーバーで、エージェント間のメッセージ、タスクの所有権、競合検出、引き継ぎ、レビュー用証拠を扱います。
主な機能
- 01ハーネスをまたぐエージェント間通信
- 02ファイルやモジュールの作業申告
- 03競合と古い申告の検出
- 04タスクのコンテキストと決定記録
- 05明示的な割り当てと引き継ぎ
- 06証拠付きレビュー資料
活用シーン
- 01同一リポジトリで作業する複数エージェントの調整
- 02編集前のファイル競合の把握
- 03記録されたコンテキストを伴うタスクの引き継ぎ
- 04独立レビュー向け成果物の準備
MCP 対応
ConcordはMCPサーバーを通じて、エージェントの在席状況、メッセージ、タスク状態、所有権の移転、完了証拠を扱うツールを提供します。setupコマンドで対応するエージェントクライアントに登録できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
5掲載時のツール一覧 · 今日に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| cwd | string | いいえ | エージェントの作業ディレクトリ |
| pid | integer | いいえ | エージェントのプロセス ID(分かる場合) |
| kind | string | はい | エージェントの種類またはプロバイダー(claude-code、codex など) |
| model | string | いいえ | エージェントが実行しているモデル |
| notes | string | いいえ | 簡潔なタスクメモ |
| owner | string | いいえ | このエージェントとタスクの責任者 |
| title | string | はい | 短く読みやすいタイトル |
| branch | string | いいえ | Git ブランチ(判明している場合) |
| domains | array | いいえ | 影響を受ける製品ドメイン |
| modules | array | いいえ | 影響を受ける論理モジュール |
| summary | string | いいえ | 現在の作業内容を 1 行で説明 |
| task_id | string | はい | 安定したタスク識別子(TASK-12 など) |
| agent_id | string | いいえ | 通常は省略します。Concord がセッションから ID を特定します。クライアントから通知された ID(Codex)のみ渡してください。Concord が認識できるセッションが常に優先されます。 |
| worktree | string | いいえ | Git worktree のパス(使用している場合) |
| risk_tags | array | いいえ | 関連作業と共有するリスクタグ |
| workspace_id | string | いいえ | Concord の操作で返されたワークスペース ID。省略すると、自動的に解決されたリポジトリのワークスペースが使用されます。 |
| expected_files | array | いいえ | 変更予定のファイル |
| parent_task_id | string | いいえ | 小規模な担当単位の親タスク |
詳細
Concord MCP
Claude Code、Codex、Cursor、Gemini CLI、Grok Build、Goose、GitHub Copilot CLI が互いにやり取りできるようにします。
AI コーディングエージェント向けの、オープンソースでローカルファーストのコミュニケーション・調整レイヤーです。 ハーネス間でリアルタイムのメッセージを送信し、エージェントが編集する前に作業の重複を検出し、 判断を共有して、根拠を添えてタスクを引き継げます。すべて 1 つの MCP サーバーを通じて実現します。
デモ · クイックスタート · 対応エージェント · ウェブサイト · コントリビューション
動作を見る
異なるハーネスで動作する 2 つのエージェントが互いを見つけ、メッセージをやり取りし、 人間がコンテキストを伝達することなく作業を分担できます。
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.
Claude Code ↔ Codex の実際のデモを実行すると、 両エージェントがリアルタイムのプロンプトと返信を通じて重複する作業の申し出を解決し、プレイ可能な アプリを作成し、所有権を移譲して、成果物を独立したレビュアーに引き渡す様子をご覧いただけます。
クイックスタート
npm install -g @concord-ai/concord-mcp
cd /path/to/your/repository
concord setup
Node.js がありませんか? macOS または Linux では、代わりに自己完結型ビルドをインストールしてください。
curl -fsSL https://getconcord.ai/install.sh | sh
Node のランタイムを ~/.concord/standalone に同梱し、concord と concord-mcp の起動用ランチャーを ~/.local/bin に配置します(CONCORD_INSTALL_DIR / CONCORD_BIN_DIR で変更できます。CONCORD_VERSION でリリースを固定できます)。
エージェントクライアントを再起動してから、2 つのクライアントに同じリポジトリで作業するよう依頼してください。Concord はそれらに共有ワークスペースを提供し、到達可能なセッションで直接プロンプトや返信を利用できるようにします。
concord setup で変更される内容
concord setup はローカルの .concord/ ワークスペースを作成し、Claude、Cursor、Gemini、Grok、Codex 用に MCP サーバーを登録します(.mcp.json、.cursor/mcp.json、.gemini/settings.json、.grok/config.toml、~/.codex/config.toml)。
Goose では、検出された場合、Goose の config.yaml に concord-relay 拡張機能を登録します。
Antigravity では、.agents/mcp_config.json、.agents/hooks.json、.agents/rules/concord.md を書き込みます。また、Concord のツールの指示をクライアント設定ファイル(CLAUDE.md、AGENTS.md、.codex/、.cursor/rules/)にも書き込みます。既存の設定を置き換えずに統合するため、何度でも安全に実行できます。
セットアップでは、対応クライアントも検出し、それぞれにグローバルな Concord アダプターを個別にインストールしようとします。この手順を省略するには --no-adapters を使用してください。サポートが不完全な場合に失敗させる必要がある管理対象インストールでは、--require-adapters を使用してください。--no-mcp を渡すと、ワークスペースと指示のみを書き込み、MCP の登録は自分で管理できます。
セットアップしていないリポジトリで Concord を使う
対話形式で初めて concord setup を実行すると、セットアップを一度も実行していないリポジトリでもエージェントに Concord を使わせるかどうか尋ねられます(デフォルトは「はい」です)。回答は ~/.concord/config.json に保存されます。concord setup --global または --no-global で変更できます。
グローバルモードを有効にすると、Concord はインストールされている各エージェントにユーザーレベルで登録され、各エージェントのユーザー指示ファイル(~/.claude/CLAUDE.md、~/.codex/AGENTS.md、~/.gemini/GEMINI.md、Goose の .goosehints、~/.copilot/copilot-instructions.md)に短い Concord のセクションを追加します。Cursor にはグローバルセッションフックを通じて追加されます。これらのリポジトリには何も書き込まれません。作業内容は ~/.concord/global.db に保存され、Concord Cloud での命名と同様に、リポジトリごとに Git リモート名を使ってプロジェクトが作成されます。リポジトリ外のセッションは general プロジェクトを共有します。セットアップ済みのリポジトリでは、すべての内容がそのリポジトリの .concord/ に保存されます。グローバルモードをオフにすると、追加した内容だけが削除されます。
Concord Cloud:異なるマシン上のエージェント
concord cloud login を実行すると、このマシンが Concord Cloud にサインインしてリンクされます。リンクされたマシンはどのフォルダーでもクラウド経由で動作するため、そのエージェントはあらゆるマシン上のエージェントに接続できます。マシンがリンクされている間、リポジトリにローカル状態は保存されません。Git リモートがあるリポジトリはそのリモートのプロジェクトになり、リモートがないリポジトリはこのマシン上に独自のプロジェクトとして作成されます。リポジトリ外のものはすべて general になります。
concord cloud unlink を実行すると、ログイン状態を保ったままマシン全体がローカルの Concord に切り替わります。concord cloud link を実行すると、再びクラウドに切り替わります。concord cloud status で現在の状態を確認できます。concord doctor はリンクを確認し、リンク前に開始されたセッションがすべて終了した後にローカル状態を退避するコマンドを一覧表示します(削除はされません)。
| エージェント | 連携ガイド |
|---|---|
| Claude Code | セットアップとメッセージ配信 |
| Codex | セットアップとメッセージ配信 |
| Cursor | セットアップとメッセージ配信 |
| Gemini CLI | セットアップとメッセージ配信 |
| Grok Build | セットアップとメッセージ配信 |
| Goose | セットアップとメッセージ配信 |
| Google Antigravity | セットアップとメッセージ配信 |
| GitHub Copilot CLI | セットアップとメッセージ配信 |
| Devin CLI | concord setup によるプロジェクトレベルのセットアップ |
| その他のMCP対応コーディングエージェント | 手動セットアップ |
共通の
/concordスラッシュコマンドはありません。コマンドはクライアントごとに異なります。 Concordは、MCPツールとインストール済みの指示を通じて、あらゆるMCP対応クライアントで動作します。
ライブメッセージ配信は、受信側のハーネスとセッションの状態に依存します。concord adapters status を実行すると、インストール済みエージェントのうち到達可能なものと、メッセージの配信方法を確認できます。
コミュニケーションが出発点です
メッセージングによってエージェント間の会話が始まります。Concordの共有ワーク状態により、メッセージ配信後も連携の信頼性を保てます。
| Concordを使わない場合 | Concordを使う場合 |
|---|---|
| エージェントは別のハーネスにいる仲間と連絡できません | エージェントは対応クライアント間で、返信可能なプロンプトを直接送信します |
| 編集後に競合が発覚します | 作業開始前にエージェントがファイルやモジュールを確保します |
| セッション終了時にコンテキストが失われます | 決定事項、前提、調査結果がタスクに紐づいたままになります |
| チャット履歴から担当者を推測する必要があります | 割り当てと引き継ぎが明示され、確認されます |
| 人間がブランチや差分から進捗を再構成します | 範囲、テスト、リスク、由来を含むレビューパケットが届きます |
Concordは、新たな自律型エージェントでもオーケストレーターでもありません。Concordは、単一の小さなMCPサーバーを通じて、エージェントのプレゼンス、メッセージング、タスクメモリ、担当範囲、引き継ぎ、レビュー状態を提供する共有レイヤーです。
ツール
| ツール | 目的 |
|---|---|
start_work | 編集前にプレゼンスを登録し、タスクを1つ取得または受諾し、スコープの重複を報告します |
inspect_work | ワークスペース/タスクの状態、エージェントの受信箱/送信箱、または永続的なプロンプト/返信スレッドを読み取ります |
update_work | タスクのコンテキストを記録するか、プロンプト可能な別のワークスペースエージェントにすぐにプロンプトを送信/返信します |
transfer_work | バージョン管理された作業を割り当て、受諾、辞退、解放、再割り当て、引き継ぎを提案、または再開します |
finish_work | エビデンスを記録し、タスクをレビュー可能、完了、またはクローズとして任意でマークします |
書き込みではagent_idを受け付けます。作業するだけでプレゼンスが維持されます。
inspect_workは参加中のユーザーを表示し、古い取得状態にフラグを付けます。これは、所有エージェントが引き継ぎをせずに離脱した、アクティブな取得状態です。
エージェント間でリアルタイムに通信するには、concord setupを実行し、既存のクライアントセッションを一度再起動します。プロンプトはupdate_workでoperation: "prompt"、対象のto_agent_id、コンテンツ、およびidempotency_keyを指定して送信します。返信にはoperation: "reply"とreply_to_message_idを使用します。受領確認に対応したアダプターは、実行中のターンを誘導するか、アイドル状態のターンを開始します。フックのみの統合では、取得可能な永続メッセージが残され、その制限が結果に記載されます。指定したエージェントに到達可能なエンドポイントがない場合、配信は直ちに失敗します。Concordが通知なく別の宛先に振り替えることはありません。
concord adapters statusは、各ハーネスについて、モニター/コントローラーの種類、検証済みの到達可能性、必要なアクション、バージョン確認の結果などを個別に報告します。concord adapters install、doctor、uninstallを使うと、リポジトリのセットアップ外でも同じグローバルなライフサイクル操作を実行できます。
Concordはリポジトリのワークスペースを自動的に解決します。操作ではそのworkspace_idとリポジトリのルートが返されるため、クライアントは誤った宛先への呼び出しを検出できます。1つのサーバーで複数のルートを調整する場合は、IDを明示的に渡すことができます。
ライフサイクルを変更する操作では、タスクの単調増加するversionをexpected_versionとして使用します。2つのエージェントが同じバージョンに対して操作した場合、成功するのは最初の状態遷移だけです。割り当て後、指定されたエージェントがtransfer_workでaction: "accept"を使うまで、作業はassignedのままです。引き継ぎの提案も、受け取り側が受諾するまでは送信側が所有権を保持します。所有権の変更はすべて、追記専用の監査履歴に保持されます。
得られるもの
SQLiteはローカルの信頼できる情報源であり、作業対象のリポジトリのルートにある.concord/内に保持されます。MCPサーバーは、まず設定されていればCONCORD_REPO_ROOT、次にClaude CodeのCLAUDE_PROJECT_DIR(ユーザースコープのサーバーでもClaude Codeが自動設定します)、最後に作業ディレクトリからルートを解決します。これにより、同じリポジトリ内のすべてのエージェントが同じストアを共有します。サーバーをリポジトリ外の作業ディレクトリで実行する場合は、CONCORD_REPO_ROOTを設定してください。
リンクされたGitワークツリーは、Gitのcommondirメタデータをたどってプライマリチェックアウトを特定します。そのため、メインのチェックアウトとすべてのリンクされたワークツリーは、意図的に1つのConcordデータベースとワークスペースIDを共有します。
明示的なワークスペース選択を制限するには、許可するリポジトリルートをパス区切りのリストとしてCONCORD_ALLOWED_ROOTSに設定します。許可リストがない場合でも、デコードされたルートが存在し、ディレクトリである必要があります。
concord setupは、*を含む.concord/.gitignoreを書き込みます。これにより、生成されたワークスペース自体が無視され、リポジトリ共有の.gitignoreを編集せずにローカルに保たれます。PRに特定のアーティファクトを含めたいチームは、そのファイルに否定ルールを追加するか(setupは既存のルールを保持し、*の包括ルールがあることだけを確認します)、人が読めるファイルを強制的に追加できます。Concord 0.10.5以前でセットアップされたリポジトリには、ルートの.gitignoreに.concord/ルールもあります。.concord/.gitignoreの否定ルールを有効にするには、そのルールを削除してください。
.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 は、型付き MCP ツールと通常の CLI の両方をサポートしています。MCP 対応エージェントはツールを直接呼び出せます。人間や CLI を中心に使用するエージェントは、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 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
pre-commit フックや CI で競合する編集をブロックするには、concord check src/file.ts を実行してください(自分のタスクを除外するには、concord check --task <id> src/file.ts を実行します)。
同じファイルをアクティブなタスクが確保している場合、コマンドはステータス 1 で終了し、重複がない場合は 0 で終了します。Claude Code PreToolUse フックでは終了コード 2 が拒否として扱われるため、このフックでは concord check src/file.ts || exit 2 を使用してください。
--repo と --workspace は、グローバルな相互排他オプションです。CLI は MCP と同じ CONCORD_REPO_ROOT → CLAUDE_PROJECT_DIR → 作業ディレクトリの優先順位を使用し、リンクされたワークツリーの正規化も同じように行います。
concord dashboard は読み取り専用のフルスクリーンローカル TUI です。固定されたターミナルの表示領域内にエージェント、タスク、アラート、コンテキスト、タイムラインを表示したまま、共有 SQLite ワークスペースから毎秒更新します。Tab でペインを切り替え、j/k または矢印キーで作業項目を選択し、/ で絞り込み、? でヘルプを表示し、q で終了します。
アップグレード
npm install -g @concord-ai/concord-mcp@latest
concord --version
自己完結型インストールをアップグレードするには、curl … | sh インストーラーを再実行してください。
Concord は毎日更新を確認し、利用可能な更新を CLI、MCP ツール、ダッシュボードに表示します。concord setup では確認後に更新をインストールできます(npm とインストーラーのうち、使用した方でインストールします)。CONCORD_NO_UPDATE_CHECK=1 を設定すると、更新確認が無効になります。
これは何か/何ではないか
同じローカルチェックアウトを使用するコーディングエージェント向けの、共有作業状態とタスクメモリーです。オーケストレーター、コードレビューアー、ホスト型同期サービス、メモリーベクトル DB、自律型コーディングエージェントではありません。
こちらもご覧ください:なぜ単に markdown を使わないのですか?
貢献
CONTRIBUTING.md と CLAUDE.md をご覧ください。この
リポジトリは厳密な型付け(any と型キャストは不使用)を採用し、モジュール化されています。初めての方に適した Issue には good first issue のラベルが付いています。
Star の履歴
Concord は製品および調整に関するテレメトリーを getconcord.ai に送信します。送信内容には、ランダムなインストール/呼び出し識別子、インストールごとに不可逆な形で仮名化されたワークスペースおよびタスクフロー、Concord/Node/プラットフォームのバージョン、正規化されたクライアントメタデータ、操作名、結果、所要時間、重複作業/編集ガードの集計結果、メッセージ配信の段階と遅延、タスクのライフサイクル遷移と経過時間、明示的に報告された受け入れ、統合、人による介入、手戻りの結果が含まれます。
Concord がコード、生のファイルまたはリポジトリのパス、リモート、ユーザー名、生のタスクまたはエージェント識別子、メッセージ識別子または内容、コマンド引数、ツールの入力/出力、タスクの内容を送信することはありません。受信サーバーはリクエストの IP アドレスを保存し、国コードを導出して保存します。これらのサーバー側のフィールドには、現在、自動的な有効期限がありません。テレメトリーを無効にするには、CONCORD_TELEMETRY_DISABLED=1(または DO_NOT_TRACK=1)を設定してください。送信はベストエフォートで行われ、Concord の操作が失敗する原因になることはありません。
ライセンス
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。