concord-mcp
Official查看实际效果
不同工具链中的两个代理可以发现彼此、交换消息并分工协作,而无需人工在它们之间传递上下文:
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重启你的代理客户端,然后让其中两个在同一个仓库中工作。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,以便在支持降级时失败。传递 --no-mcp 仅写入工作区和说明,同时自行管理 MCP 注册。
支持的代理
代理 | 集成指南 |
Claude Code | |
Codex | |
Cursor | |
Gemini CLI | |
Grok Build | |
任何其他支持 MCP 的编码代理 | 通过五个 MCP 工具共享工作状态 |
没有通用的
/concord斜杠命令——命令是特定于客户端的。Concord 通过 MCP 工具以及任何支持 MCP 的客户端上安装的说明来工作。
实时投递取决于接收工具链和会话状态。运行 concord adapters status 查看哪些已安装的代理可访问以及消息将如何投递。
沟通是起点
消息传递让代理开始对话。Concord 的共享工作状态确保消息投递后,由此产生的协作保持可靠。
没有 Concord | 使用 Concord |
代理无法联系其他工具链中的对等代理 | 代理在受支持的客户端之间发送直接、可回复的提示 |
代理在编辑后发现冲突 | 代理在工作开始前声明文件和模块 |
会话结束时上下文消失 | 决策、假设和发现始终与任务关联 |
所有权由聊天历史隐含 | 分配和交接是明确且被确认的 |
人类从分支和差异中重建进度 | 审查包附带范围、测试、风险和来源 |
Concord 不是另一个自主代理或编排器。它是围绕你的代理的共享层:通过一个小型 MCP 服务器提供存在感、消息传递、任务记忆、所有权、交接和审查状态。
工具
工具 | 用途 |
| 注册存在感,声明或接受一个任务,并在编辑前报告范围重叠 |
| 读取工作区/任务状态、代理收件箱/发件箱或持久的提示/回复线程 |
| 记录任务上下文,或立即向另一个可提示的工作区代理发送提示/回复 |
| 分配、接受、拒绝、释放、重新分配、提供交接或重新打开版本化工作 |
| 记录证据,并可选择将任务标记为待审查、已完成或已关闭 |
写入操作接受 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 和仓库根目录,以便客户端检测路由错误的调用;当一台服务器协调多个根目录时,可以显式传递该 id。
更改生命周期的操作使用任务的单调 version 作为 expected_version。如果两个代理对同一版本进行操作,只有第一个转换会成功。分配将工作保留在 assigned 状态,直到指定代理使用 transfer_work 且 action: "accept";交接提议同样将所有权保留在发送方,直到接收方接受。每次所有权变更都会保留在仅追加的审计历史中。
你会得到什么
SQLite 是本地的事实来源,存放在工作所在仓库根目录的 .concord/ 中。MCP 服务器从 CONCORD_REPO_ROOT(如果设置)解析该根目录,然后是 Claude Code 的 CLAUDE_PROJECT_DIR(Claude Code 会自动设置,即使对于用户级服务器也是如此),然后是它的工作目录——因此同一仓库中的每个代理共享一个存储。当服务器的工作目录不在仓库内时,设置 CONCORD_REPO_ROOT。
链接的 Git 工作树遵循 Git 的 commondir 元数据到主检出,因此主检出和所有链接的工作树有意共享一个 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)命令行
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 可禁用检查。
这是什么 / 不是什么
为使用同一本地检出的编码代理提供共享工作状态和任务记忆。不是编排器、代码审查器、托管同步服务、记忆向量数据库或自主编码代理。
另请参阅:为什么不仅仅使用 Markdown?
贡献
参见 CONTRIBUTING.md 和 CLAUDE.md。此仓库严格类型化(无 any,无类型转换)且模块化。好的入门问题标记为 good first issue。
Star 历史
隐私与遥测
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