concord-mcp
Official動作デモ
異なるハーネス上の 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 デモ を実行して、両方の エージェントがライブのプロンプト/返信を通じて重複するクレームを解決し、プレイ可能な アプリを構築し、所有権を移譲し、結果を独立したレビュアーに引き渡す様子を確認できます。
Related MCP server: ccg-mcp-tool
クイックスタート
npm install -g @concord-ai/concord-mcp
cd /path/to/your/repository
concord setupエージェントクライアントを再起動し、2 つのエージェントに同じリポジトリで作業するよう依頼します。 Concord は共有ワークスペースを提供し、到達可能なセッションを直接のプロンプトと返信に利用できるようにします。
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 を使用します。MCP 登録を自分で管理しながらワークスペースと
手順のみを書き込むには --no-mcp を渡します。
対応エージェント
エージェント | 統合ガイド |
Claude Code | |
Codex | |
Cursor | |
Gemini CLI | |
Grok Build | |
その他の MCP 対応コーディングエージェント | 5 つの MCP ツールによる共有ワークステート |
汎用の
/concordスラッシュコマンドはありません。コマンドはクライアント固有です。 Concord は MCP ツールとインストールされた手順を通じて、MCP 対応の任意の クライアントで動作します。
ライブ配信は受信側のハーネスとセッション状態に依存します。
concord adapters status を実行して、インストール済みのエージェントのうちどれが到達可能か、
メッセージがどのように配信されるかを確認してください。
コミュニケーションは出発点
メッセージングによってエージェント同士が会話できるようになります。Concord の共有ワークステートは、 メッセージが配信された後も、結果として生じるコラボレーションを確実に維持します。
Concord なし | Concord あり |
エージェントは別のハーネスのピアに連絡できない | エージェントは対応クライアント間で直接返信可能なプロンプトを送信できる |
エージェントは編集後に衝突を検出する | エージェントは作業開始前にファイルとモジュールをクレームする |
セッションが終了するとコンテキストが消える | 決定事項、前提、発見事項がタスクに紐づいたまま残る |
所有権はチャット履歴によって暗黙的に示される | 割り当てと引き継ぎは明示的で、承認される |
人間はブランチと diff から進捗を再構築する | レビューパケットにスコープ、テスト、リスク、来歴が含まれる |
Concord は別の自律エージェントやオーケストレーターではありません。エージェントの周囲に存在する 共有レイヤーです。プレゼンス、メッセージング、タスクメモリ、所有権、引き継ぎ、レビュー状態を 1 つの小さな MCP サーバーで提供します。
ツール
ツール | 目的 |
| プレゼンスを登録し、1 つのタスクをクレームまたは受け入れ、編集前にスコープの重複を報告する |
| ワークスペース/タスク状態、エージェントの受信箱/送信箱、または永続的なプロンプト/返信スレッドを読み取る |
| タスクコンテキストを記録するか、プロンプト可能な別のワークスペースエージェントに即座にプロンプト/返信する |
| バージョン管理された作業の割り当て、受け入れ、辞退、解放、再割り当て、引き継ぎの提案、再開を行う |
| 証跡を記録し、必要に応じてタスクをレビュー準備完了、完了、またはクローズとしてマークする |
書き込み操作は agent_id を受け付け、作業するだけでプレゼンスをライブに保ちます。
inspect_work は 誰がここにいるか を表示し、古いクレーム をフラグします。これは、
所有エージェントが引き継ぎなしに離脱したアクティブなクレームです。
ライブのエージェント間通信には、concord setup を実行してから、既存のクライアントセッションを
1 回再起動します。プロンプトは 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 がユーザースコープのサーバーでも自動的に設定する)から、次に作業
ディレクトリからルートを解決します。これにより、1 つのリポジトリ内のすべてのエージェントが 1 つの
ストアを共有します。作業ディレクトリがリポジトリ内にない場所でサーバーを実行する場合は、
CONCORD_REPO_ROOT を設定してください。
リンクされた Git ワークツリーは、Git の commondir メタデータに従ってプライマリチェックアウトを
参照するため、メインチェックアウトとすべてのリンクされたワークツリーは意図的に 1 つの Concord
データベースとワークスペース ID を共有します。
明示的なワークスペース選択を制限するには、CONCORD_ALLOWED_ROOTS をパス区切りの許可された
リポジトリルートのリストに設定します。許可リストがない場合でも、デコードされたルートは存在し、
ディレクトリである必要があります。
concord setup は .concord/ をリポジトリの .gitignore に追加するため、生成されたワークスペースは
デフォルトでローカルに保たれます。PR で選択したアーティファクトを共有したいチームは、そのルールを
削除するか、人間が読めるファイルを強制的に追加できます:
.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 は型付きの 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 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 と --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 --versionConcord は毎日チェックし、CLI、MCP ツール、ダッシュボードで利用可能な更新を表示します。
concord setup は確認付きで更新をインストールでき、CONCORD_NO_UPDATE_CHECK=1 でチェックを
無効にできます。
これは何か / 何でないか
同じローカルチェックアウトを使用するコーディングエージェントのための共有ワークステートと タスクメモリです。オーケストレーター、コードレビュアー、ホスト型同期サービス、メモリベクトル DB、 自律コーディングエージェントではありません。
関連情報: なぜ単にマークダウンを使わないのか?
コントリビューション
CONTRIBUTING.md と CLAUDE.md を参照してください。この
リポジトリは厳密に型付けされ(any なし、型キャストなし)、モジュール化されています。
初心者向けの良い課題は good first issue ラベルで示されています。
スター履歴
プライバシーとテレメトリー
Concord は、製品および調整のテレメトリを getconcord.ai に送信します。これには、ランダムなインストール/呼び出し識別子、インストールごとの不可逆的なワークスペースおよびタスクフローの仮名、Concord/Node/プラットフォームのバージョン、正規化されたクライアントメタデータ、操作名、結果、および所要時間、集計された重複/編集ガードの結果、メッセージ配信の段階と遅延、タスクのライフサイクル遷移と経過時間、そして明示的に報告された受入、統合、人的介入、および手直しの結果が含まれます。
Concord は、コード、生のファイルまたはリポジトリのパス、リモート、ユーザー名、生のタスクまたはエージェントの識別子、メッセージの識別子または内容、コマンド引数、ツールの入力/出力、またはタスクの内容を決して送信しません。受信サーバーはリクエストの IP アドレスを保存し、国コードを導出/保存します。これらのサーバー側フィールドには現在、自動的な有効期限がありません。CONCORD_TELEMETRY_DISABLED=1(または DO_NOT_TRACK=1)を設定すると、テレメトリを無効にできます。配信はベストエフォートであり、Concord の操作を失敗させることは決してありません。
ライセンス
Available Tools
5 toolsfinish_workFinish workB
Record completion evidence and atomically leave the task active as a handoff, mark it review-ready, or close it with a complete/closed outcome.
| Name | Required | Description | Default |
|---|---|---|---|
| reason | No | Audited terminal reason; defaults to the change summary | |
| outcome | No | Final task state; handoff records evidence without changing lifecycle state | complete |
| task_id | Yes | Stable task identifier, e.g. TASK-12 | |
| agent_id | No | Usually omit — Concord derives your identity from your session. Pass only the id your client told you (Codex); a session Concord can see always wins. | |
| decisions | No | Notable decisions and why | |
| diff_size | No | Rough diff size, e.g. +120 / -30 | |
| tests_run | No | Test commands run | |
| next_steps | No | Remaining work or follow-ups | |
| provenance | No | Evidence source for review claims | |
| assumptions | No | Assumptions made | |
| known_risks | No | Known risks introduced | |
| what_changed | Yes | Concise summary of what changed | |
| workspace_id | No | Workspace id returned by a Concord operation. Omit to use the automatically resolved repository workspace. | |
| changed_files | No | Files that changed | |
| open_questions | No | Unresolved review questions | |
| expected_version | Yes | Task version last read by the caller; stale versions are rejected | |
| reported_outcome | No | Optional measured acceptance, integration, or intervention result | |
| needs_review_from | No | Who should review | |
| guardrails_checked | No | Guardrails checked |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses atomicity and that the handoff outcome does not change lifecycle state, which is useful. However, it does not mention other behaviors like version staleness rejection, permission requirements, or idempotency—only the schema covers these.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that front-loads the core action and concisely lists the three outcome alternatives. Every word earns its place without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the 19-parameter schema with full descriptions and no output schema, the description provides key behavioral context (recording evidence and state transitions). It is adequate for the tool's primary purpose, though it leaves the return value or side effects unexplained, which is a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds minimal semantic value beyond the schema; it ties outcomes to lifecycle changes, but that is already documented in the outcome property. No additional parameter context is offered.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('record') and resource ('completion evidence') and enumerates the three possible task state outcomes. It clearly identifies the tool as the finalization step, though it does not explicitly contrast with update_work or transfer_work.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains what the tool does but provides no explicit guidance on when to use it versus the sibling tools (e.g., update_work, transfer_work). The outcome choices are described, but the description lacks conditions or exclusions that would help an agent decide to pick this tool over alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
inspect_workInspect workARead-onlyIdempotent
Read the workspace, one task, one agent communication inbox/outbox, or one durable prompt/reply thread by supplying at most one selector.
| Name | Required | Description | Default |
|---|---|---|---|
| task_id | No | Task to inspect; omit for the whole workspace state | |
| agent_id | No | Agent communication inbox/outbox to inspect | |
| message_id | No | Prompt/reply thread to inspect | |
| workspace_id | No | Workspace id returned by a Concord operation. Omit to use the automatically resolved repository workspace. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare this as read-only, idempotent, and non-destructive, so the description correctly aligns with them. Beyond that, it adds the constraint that only one selector can be supplied at a time and clarifies the different scopes (workspace, task, agent, message). This additional behavioral context is valuable and not present in the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that front-loads the core action ('Read') and lists the scope. There is zero fluff; every word earns its place, and the selector constraint is clearly stated at the end.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only inspection tool with four optional parameters, the description adequately explains the various selection modes and the workspace resolution behavior. It does not describe the return format, but given the tool name and the read-only nature, the output is self-evident. With no output schema, this would be a minor gap, but the description covers enough for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so each parameter already has a clear description. The tool description adds the global constraint of 'at most one selector' and restates the resource types, but it does not provide deeper semantics beyond the schema. This meets the baseline for a well-covered schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Read' and lists the distinct resources (workspace, task, agent inbox/outbox, prompt/reply thread), making the tool's purpose unmistakable. It also clearly distinguishes it from the sibling tools (start_work, update_work, etc.) which are all actions, while this is the only inspection tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage by stating that at most one selector can be supplied, which is useful for invoking the tool correctly. However, it does not explicitly state when to use this tool versus alternatives, nor does it provide any exclusions or conditions. The distinction from siblings is obvious from the tool names, but the description itself does not verbalize it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
start_workStart workA
Enter one task before editing: register or refresh this agent, accept addressed work when needed, claim the declared scope, and return actionable overlap warnings.
| Name | Required | Description | Default |
|---|---|---|---|
| cwd | No | Agent working directory | |
| pid | No | Agent process id, if known | |
| kind | Yes | Agent type or provider, e.g. claude-code or codex | |
| model | No | Model the agent is running | |
| notes | No | Concise task notes | |
| owner | No | Human accountable for this agent and task | |
| title | Yes | Short human-readable title | |
| branch | No | Git branch, if known | |
| domains | No | Product domains touched | |
| modules | No | Logical modules touched | |
| summary | No | One-line description of the current work | |
| task_id | Yes | Stable task identifier, e.g. TASK-12 | |
| agent_id | No | Usually omit — Concord derives your identity from your session. Pass only the id your client told you (Codex); a session Concord can see always wins. | |
| worktree | No | Git worktree path, if used | |
| risk_tags | No | Risk tags shared with related work | |
| workspace_id | No | Workspace id returned by a Concord operation. Omit to use the automatically resolved repository workspace. | |
| expected_files | No | Files expected to change | |
| parent_task_id | No | Parent task for a smaller claimed unit |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden, and it does well: it discloses the multi-step side effects (register/refresh agent, accept addressed work, claim scope) and the return value ('actionable overlap warnings'). It communicates stateful behavior agents would not otherwise know from the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single compact sentence, efficiently front-loaded with the when ('Enter one task before editing') before the action list. The list of steps is dense but each item earns its place; no filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex 18-parameter workflow tool, the description captures the essential journey (register, accept, claim, return warnings) and names the output. The required parameters are covered by the schema, so nothing critical is missing for an agent to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so every parameter is already documented and the baseline is 3. The description's mention of 'claim the declared scope' and 'overlap warnings' loosely maps to workspace_id/risk_tags/expected_files, but it adds no concrete format or syntax guidance beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Enter one task before editing: register or refresh this agent, accept addressed work when needed, claim the declared scope') with a clear resource and purpose. It implicitly differentiates from siblings (inspect/update/transfer/finish) by being the task-entry and scope-claiming action, though it doesn't name them explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'Enter one task before editing' establishes when to use the tool as a pre-edit registration step, and 'accept addressed work when needed' gives conditional context. However, it never names alternatives such as update_work or finish_work or states when NOT to use it, leaving selection to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
transfer_workTransfer workC
Apply one versioned ownership action: assign, accept, decline, release, reassign, offer an evidence-bearing handoff, or reopen terminal work.
| Name | Required | Description | Default |
|---|---|---|---|
| force | No | ||
| action | Yes | Ownership action to apply through the versioned task state machine | |
| reason | No | ||
| task_id | Yes | Stable task identifier, e.g. TASK-12 | |
| agent_id | No | Usually omit — Concord derives your identity from your session. Pass only the id your client told you (Codex); a session Concord can see always wins. | |
| decisions | No | Notable decisions and why | |
| tests_run | No | Test commands run | |
| handoff_id | No | Pending handoff to resolve; inferred from the task when omitted | |
| next_steps | No | Remaining work or follow-ups | |
| assumptions | No | Assumptions made | |
| known_risks | No | Known risks introduced | |
| to_agent_id | No | Required for assign, reassign, and offer | |
| what_changed | No | Required for offer | |
| workspace_id | No | Workspace id returned by a Concord operation. Omit to use the automatically resolved repository workspace. | |
| changed_files | No | Files that changed | |
| lease_seconds | No | ||
| expires_seconds | No | ||
| expected_version | Yes | Task version last read by the caller; stale versions are rejected | |
| guardrails_checked | No | Guardrails checked |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It hints at 'versioned' and 'evidence-bearing handoff' but does not explain what versioning entails, whether actions are reversible, what state transitions occur, or what happens on failure. The description is too sparse to convey the operational impact of this mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that efficiently conveys the core action set and concept. It contains no filler and gets to the point immediately. For a tool with 19 parameters, it is appropriately terse, though it could arguably benefit from more structure to improve scannability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (19 parameters, no output schema, no annotations), the description is severely incomplete. It does not explain the versioning mechanism, the required fields for each action, the nature of an 'evidence-bearing handoff', or how these actions fit into the broader workflow with siblings. An agent would need to infer too much to use it correctly and safely.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 79%, which is high, so the baseline is 3. The tool description adds no parameter-specific details beyond listing the action enum values, which are already present in the schema. Since the schema already documents parameters like task_id, action, expected_version, and to_agent_id, the description's lack of parameter elaboration does not significantly hinder understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb ('Apply') and a specific resource ('versioned ownership action') and enumerates all seven allowed actions, making the tool's purpose unambiguous. It does not explicitly contrast with sibling tools, but the action list clearly distinguishes it from start_work, update_work, and finish_work, so the purpose is well-defined.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus its siblings. The description does not mention that this is for transferring ownership between agents, nor does it reference start_work, update_work, or finish_work, or any conditions that would make this tool the right choice. An agent is left to infer usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_workUpdate workC
Record task context or deliver a live prompt/reply to another promptable workspace agent.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | No | Kind of task-scoped update | |
| content | Yes | Concise context another agent needs | |
| task_id | No | Required for record; optional context for prompts | |
| agent_id | No | Usually omit — Concord derives your identity from your session. Pass only the id your client told you (Codex); a session Concord can see always wins. | |
| operation | No | Defaults to record; prompt and reply deliver live inter-agent messages | |
| to_agent_id | No | Recipient required for prompt | |
| workspace_id | No | Workspace id returned by a Concord operation. Omit to use the automatically resolved repository workspace. | |
| delivery_mode | No | Live delivery mode; steer is the only mode in v1 | |
| idempotency_key | No | Required for prompt and reply; makes delivery safe to retry | |
| reply_to_message_id | No | Message being answered for reply |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions 'live' delivery for prompts/replies but does not disclose idempotency requirements, delivery semantics, persistence of records, or any side effects. The schema covers idempotency_key requirement for prompt/reply, but that is in the schema, not this description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short and front-loaded, which is efficient, but for a tool with 10 parameters and 3 operations it is too underspecified to be adequately informative. It is not verbose, but it fails to convey the operational complexity or usage nuances, so it earns a middle score.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a complex tool with 10 parameters, three distinct operations, no annotations, and no output schema. The description merely lists two high-level capabilities and provides no clarity on operation selection, delivery behavior, or any edge cases. It is grossly incomplete for an agent to use it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the description adds no parameter-level detail beyond what the schema already provides. It does not clarify the distinction between operations (record/prompt/reply) or explain any parameter interactions, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Record' and 'deliver') with a resource ('task context' and 'live prompt/reply'), clearly distinguishing this tool from siblings like start_work and finish_work by its messaging capability. However, it doesn't explicitly name sibling alternatives, so it stops short of full differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives; the description only states what it does without any conditions, prerequisites, or exclusions. It does not explain which operation (record vs. prompt vs. reply) to choose based on context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
5 tool updates
v0.1.0- First observed
finish_work - First observed
inspect_work - First observed
start_work - First observed
transfer_work - First observed
update_work
TDQS
Each tool targets a distinct phase of the work lifecycle: starting, inspecting, updating, transferring ownership, and finishing. The actions are clearly separated with no overlap or ambiguous boundaries.
All tool names follow a consistent verb_noun pattern with 'work' as the noun, using only snake_case and imperative verbs (start, inspect, update, transfer, finish). The pattern is fully uniform.
Five tools is well-scoped for a workflow management server. Each tool covers a necessary stage without redundancy or bloat, making the set easy to navigate.
The tool set covers the entire task lifecycle: start, inspect (read), update (modify/communicate), transfer (ownership changes), and finish (close/handoff). It handles all major operations including reopening via transfer_work, so no critical gaps are apparent.
Maintenance
Related MCP Connectors
Real-time chat for AI agents. Claude Code, Cursor, Cline and Codex join channels over MCP.
Real-time chat hub for AI agents — Claude Code, Cursor, Cline, Codex over MCP or REST.
One MCP endpoint for Claude, GPT & Gemini: 100+ tools + no-code connectors + agent workers.
One identity across Claude Code, Codex, Cursor, Gemini, Windsurf: shared inbox and handoffs.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables real-time communication and shared vector memory between Claude Code, OpenAI Codex CLI, and Google Gemini CLI. It allows different AI platforms to exchange messages, share context, and collaborate through a unified MCP interface.MIT
- AlicenseBqualityCmaintenanceThis is a powerful Model Context Protocol (MCP) server that integrates multiple AI coding agents—Anthropic Claude Code, OpenAI Codex, and Google Gemini—directly into your workflow. It enables seamless cross-provider analysis, leveraging Gemini's massive token window, Codex's specialized coding capabilities, and Claude's advanced reasoning.1019MIT
- AlicenseAqualityAmaintenanceEnables MCP clients like Claude Code and Cursor to use multiple AI models (Gemini, GPT, Grok, DeepSeek, Kimi, Ollama) via a unified chat tool with conversation memory.31Apache 2.0
- AlicenseBqualityAmaintenanceMCP server orchestrating API-first cross-review between Claude, ChatGPT Codex, Gemini, DeepSeek, Grok, and Perplexity with unanimous convergence gates.31634Apache 2.0
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Get-Concord-AI/concord-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server