Skip to main content
Glama

Context Cockpit 🚀

Industrial-Grade Local Developer Cockpit & MCP Server for Multi-Agent Git Blackboard Architecture
专为基于 Git 原生黑板架构 (.context/ + AGENTS.md) 的多 AI Agent 协同开发打造的工业级本地驾驶舱与标准 MCP 服务器。

CI Python Version MCP License: MIT Code Style: Ruff


📖 为什么需要 Context Cockpit?

当前 AI 编程助手(如 Antigravity、Claude Code、Cursor、Windsurf、豆包等)面临著名的 “初恋 50 次”(50 First Dates / AI Amnesia) 痛点:

  1. 记忆割裂与失忆:每次会话结束或上下文滑动时,Agent 忘光上一个 Agent 制定的架构决策与未完成半成品;

  2. Markdown 梦魇:手写 Markdown 容易被大模型胡乱改写,破坏缩进、删掉注释、产生格式漂移;

  3. 并发写入丢失(Lost Update):多 Agent 或人类在外部编辑器同时修改任务状态时,发生无声覆盖。

Context Cockpit 将 Git 原生黑板架构工程化为一套成熟软件体系:

  • 纯文件、零数据库:所有数据直接持久化为仓库根目录下的 .context/*.md 与 AGENTS.md,与业务代码同分支、同提交、同回滚。

  • ACID 级别并发安全:全程文件锁覆盖“读-改-写”完整事务周期,结合操作系统原子替换 (os.replace),杜绝并发竞争。

  • 双模并存:既是人类可视化的 本地实时 Web 驾驶舱,又是面向大模型的 标准 Model Context Protocol (MCP) 服务器。

  • 100% 离线脱网可用:前端零外部 CDN 依赖,内嵌精简资源,毫秒级冷启动,抵御 DNS Rebinding 安全攻击。


Related MCP server: teamhub-mcp

🏗️ 架构全景

                  ┌─────────────────────────────────────────┐
                  │          Human Developer (UI)           │
                  └────────────────────┬────────────────────┘
                                       │ HTTP / WebSocket (:8765)
┌───────────────────────┐              ▼              ┌───────────────────────┐
│ External Agents       │     ┌─────────────────┐     │ MCP-enabled Agents    │
│ (Doubao, Web LLMs)    │◄────┤ Context Cockpit ├────►│ (Antigravity, Cursor, │
│ via Synthesized Prompt│     │  Engine (FastAPI│     │  Claude Desktop, etc.)│
└───────────────────────┘     │   + MCP Stdio)  │     │ via MCP Tools/Prompts │
                              └────────┬────────┘     └───────────────────────┘
                                       │
                      Transaction-Level File Locks (.lock)
                        Atomic Swap (.tmp -> os.replace)
                                       │
                                       ▼
                     ┌──────────────────────────────────┐
                     │     Git Blackboard Storage       │
                     │  .context/state.md (Checklist)   │
                     │  .context/decisions.md (ADRs)    │
                     │  .context/system.md (Rules/Tech) │
                     │  AGENTS.md (Coordination SOP)    │
                     └──────────────────────────────────┘

✨ 核心特性

1. 事务级文件互斥锁与原子替换 (Transaction-Level File Locking)

  • 采用 AtomicStorage.transaction() 上下文管理器,将“读取旧文件 ➔ 内存变异 ➔ 原子落盘”完整包裹在操作系统级互斥锁内。

  • 采用持久化 .lock 句柄策略,解决排队进程句柄失效反模式。

  • 经 8 协程并发压测验证,保证通过 MCP/API 途径修改黑板时 0 丢失更新 (Zero Lost Updates)。

  • 💡 并发安全边界说明:文件互斥锁在 Context Cockpit 提供的 MCP 工具与 REST 接口范围内生效;建议所有协同 Agent 统一通过 MCP Tool(cockpit_toggle_task / cockpit_add_task)操作黑板,避免直接从文件系统底层暴力覆盖 .md 文件。

2. 结构无损分块流式解析器 (Structure-Preserving Block Parser)

  • 摒弃笨重的 AST 语法树抽象,采用基于行与正则的高性能分块流式解析,仅重写目标任务的 [ ] / [x] 标记,100% 字节级保留原有空行、Tab/空格缩进、HTML 注释与扩展文本。

  • 永久行内任务 ID 支持:原生识别并持久化 <!-- id:task-xxx --> 标记。在 Markdown 中手动插入、删除或调整任务次序时,任务 ID 永久绑定、绝不漂移;无标签时自动回退为按内容哈希。

  • 标题严格匹配 ^#{1,3}\s+,天然支持中英双语标记(Milestone / Tasks / Blockers / Handover)。

3. 原生 Model Context Protocol (MCP 2.x)

内置 7 大核心协同工具、2 大协同 Prompt 与 3 大实时资源:

  • cockpit_get_overview:获取当前工作区黑板全貌(当前里程碑、任务列表、ADR 决策、Git 状态);

  • cockpit_get_ready_tasks:检索未阻塞、等待认领的 Ready 状态任务列表;

  • cockpit_toggle_task:原子翻转任务完成状态;

  • cockpit_add_task:结构无损追加新任务项;

  • cockpit_create_adr:结构化创建 ADR 架构决策记录;

  • cockpit_land_the_plane:飞机安全着陆协议——完成阶段工作、更新交接便签(Handover Note)、为下一位 Agent 铺平道路;

  • cockpit_synthesize_prompt:跨 Agent 胶水提示词合成引擎(豆包、Cursor、Claude Code、通用 LLM);

  • MCP Resources:cockpit://state、cockpit://decisions、cockpit://system。

4. 100% 离线脱网 Web 驾驶舱

  • 纯本地内嵌资源(Vue 3 + Marked 本地化),无任何外网 CDN,内网/离线/机房环境 100% 正常运行。

  • WebSocket 全双工实时同步:任何 Agent 或人类修改 .context/ 文件,浏览器毫秒级静默刷新。

  • 安全加固:CORS 严格限制 localhost / 127.0.0.1,集成 TrustedHostMiddleware 彻底封堵 DNS Rebinding 攻击。


🚀 快速上手

环境要求

  • Python 3.11 或更高版本

  • 推荐使用 uv(极速包管理器)

1. 启动 Web 驾驶舱

在你的项目根目录下执行:

# 使用 uv 一键启动
uv run context-cockpit

# 或指定项目目录
uv run context-cockpit --dir /path/to/your/project

# 自定义端口并禁止自动打开浏览器
uv run context-cockpit --port 9000 --no-open

如果当前目录尚未初始化 .context/,Context Cockpit 会自动为你安全生成标准的黑板模板。

2. 导出并配置 MCP 服务器

Context Cockpit 支持作为标准 stdio MCP 服务器接入各类智能体客户端:

# 查看当前工作区的 MCP 配置片段
uv run context-cockpit --print-mcp-config

配置示例:Antigravity / Gemini CLI

在 ~/.gemini/config/mcp_config.json 中配置:

{
  "mcpServers": {
    "context-cockpit": {
      "command": "uv",
      "args": [
        "--directory",
        "C:\\path\\to\\context-cockpit",
        "run",
        "python",
        "-m",
        "context_cockpit.cli",
        "--mcp",
        "C:\\path\\to\\your\\workspace"
      ]
    }
  }
}

配置示例:Cursor (.cursor/mcp.json)

{
  "mcpServers": {
    "context-cockpit": {
      "command": "uv",
      "args": [
        "--directory",
        "/path/to/context-cockpit",
        "run",
        "context-cockpit",
        "--mcp",
        "/path/to/your/workspace"
      ]
    }
  }
}

配置示例:Claude Desktop (claude_desktop_config.json)

{
  "mcpServers": {
    "context-cockpit": {
      "command": "uv",
      "args": [
        "--directory",
        "/path/to/context-cockpit",
        "run",
        "context-cockpit",
        "--mcp",
        "/path/to/your/workspace"
      ]
    }
  }
}

🛠️ CLI 命令行参数

usage: context-cockpit [-h] [--dir DIR_OPT] [--mcp] [--print-mcp-config]
                       [--port PORT] [--host HOST] [--no-open]
                       [path]

Context Cockpit - Industrial Multi-Agent Developer Cockpit & MCP Server

positional arguments:
  path                  Workspace directory (default: current directory)

options:
  -h, --help            Show help message and exit
  --dir DIR_OPT         Explicit workspace directory path
  --mcp                 Run as stdio MCP server for AI agents
  --print-mcp-config    Print JSON config snippet for Cursor/Claude/Antigravity
  --port PORT           Port for web dashboard (default: 8765)
  --host HOST           Host to bind server (default: 127.0.0.1)
  --no-open             Do not open browser automatically upon launch

🧪 测试与质量保证

Context Cockpit 遵循极高标准的工程纪律与防御性编程规范:

  • 测试框架:pytest + pytest-asyncio + httpx ASGITransport

  • 代码规范:ruff 全面代码风格与导入自动检查

  • 持续集成:GitHub Actions 多平台矩阵测试(Ubuntu, Windows / Python 3.11, 3.12, 3.13)

运行回归测试套件:

# 运行全部 20 项单元测试与并发压力测试
uv run pytest

# 运行代码规范检查
uv run ruff check src tests

📑 架构决策记录 (ADR)

本项目的所有重大架构演进均经过完整论证并以 ADR 形式保存在 .context/decisions.md:

  • [ADR-001] 项目初始化与分层整洁架构确立 (Domain / Infrastructure / Services / API)

  • [ADR-002] 结构无损分块解析 (Block-Aware AST) 与原子替换写入

  • [ADR-003] 引入 Model Context Protocol (MCP) 统一 Agent 交互接口

  • [ADR-004] 事务级并发锁、防抖丢尾修复与离线安全加固

  • [ADR-005] Host Header 校验防御 DNS Rebinding 与多重 CLI 参数兼容


📄 License

本项目采用 MIT License 开源协议。

Available Tools

7 tools
cockpit_add_taskC

Adds a new actionable task to the active project checklist.

ParametersJSON Schema
NameRequiredDescriptionDefault
task_textYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

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 implies a mutation ('adds') and scoping to the active project, but says nothing about persistence, permissions, ordering/deduplication, or what happens on success. This is a significant gap for a write tool with zero annotation coverage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single well-formed sentence with the action front-loaded and no waste. It is appropriately brief for a one-parameter tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained. For a simple single-param tool this is close to adequate, but the lack of any behavioral or scoping detail on a mutation with no annotations leaves gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The single parameter has 0% schema description coverage, so the description must compensate. 'Actionable task' gives loose meaning to task_text but adds no format, length, or content guidance beyond the parameter name itself.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('adds') and resource ('a new actionable task to the active project checklist'), which is clear. It does not, however, explicitly differentiate itself from siblings like cockpit_toggle_task or cockpit_get_ready_tasks, so an agent must infer the boundary.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use or when-not-to-use guidance, and no prerequisites such as what 'active project' means or how it is selected. Alternatives are not mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

cockpit_create_adrB

Records a new Architecture Decision Record (ADR) in decisions.md to prevent conflicting implementations.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYes
contextYes
decisionYes
proposerNoAgent
consequenceYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden. It discloses the destination file ('decisions.md'), but for a write operation it says nothing about whether the file is created if absent, whether records are appended or overwritten, ordering, permissions, or whether the write is reversible.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One sentence that front-loads the action and resource, then the destination, then the rationale. Nothing is padded or repeated.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need no explanation, but the definition is thin for a 5-parameter mutation tool with zero annotation coverage and 0% schema descriptions. It arguably omits only the input-field guidance, but that omission is large enough to leave the definition materially incomplete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% across 5 parameters, and several parameter names (context, decision, consequence) are ambiguous without domain framing. The description explains none of them, so an agent gets no help mapping intended content to the correct fields beyond general ADR familiarity.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Records a new Architecture Decision Record') plus the target artifact ('decisions.md'), which clearly separates it from siblings like cockpit_add_task or cockpit_toggle_task. The stated rationale ('to prevent conflicting implementations') adds intent, though it stops short of naming an alternative tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'to prevent conflicting implementations' implies the situation that motivates recording an ADR, so usage is weakly inferable. There is no explicit when-to-use vs when-not guidance and no reference to any sibling tool, leaving the agent to infer the trigger.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

cockpit_get_overviewB

Returns the full project overview, active milestone, git status, and recent ADRs.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior3/5

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 the returned content well, which implies a read-only, aggregate query, but it never explicitly states the operation is non-mutating, nor does it mention side effects, caching, or permission requirements.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single tight sentence that front-loads the resource and then lists the contents. No filler, though a short 'use this first for project state' clause would have earned more.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return values need no further explanation, and with zero parameters the call surface is trivial. The description is sufficient for correct invocation, only lacking explicit read-only/usage framing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so there is nothing to document and the schema is trivially complete. Baseline 4 applies; the description correctly describes a no-argument getter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb ('Returns') and resource ('project overview'), and enumerates the payload contents (active milestone, git status, recent ADRs). It is clear what the tool fetches, though it does not explicitly distinguish itself from siblings like cockpit_get_ready_tasks.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no statement of when to use this tool, when not to, or which sibling it replaces. An agent must infer from the name that this is the entry-point summary call.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

cockpit_get_ready_tasksA

Returns only uncompleted tasks that are currently unblocked and ready to work on.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden. It usefully discloses the exclusion semantics (completed and blocked tasks are omitted) and the read-only nature implied by 'Returns', but says nothing about ordering, result limits, or whether readiness is computed at call time.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no filler, and the two exclusion conditions are stated before the payoff phrase 'ready to work on'. Every clause earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be described, and with zero parameters there is little else to cover. The description is close to complete for a simple no-arg read tool, though ordering and limit behavior remain unaddressed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so there is nothing for the description to disambiguate; the baseline of 4 applies. No parameter semantics are missing.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource ('Returns ... tasks') and narrows the scope with two filter conditions ('uncompleted', 'unblocked and ready'). It is clear what subset of tasks is returned, though it never names the sibling (cockpit_get_overview) that returns the broader picture, so differentiation is implied rather than explicit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied: an agent can infer you call this when you want actionable work, but the description gives no when-to-use framing, no prerequisites, and no comparison against cockpit_get_overview or cockpit_toggle_task. Adequate but leaves routing to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

cockpit_land_the_planeB

Session Handover Protocol ('Landing the plane'): Saves the handover note before concluding an agent session.

ParametersJSON Schema
NameRequiredDescriptionDefault
authorYes
handover_noteYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden and falls short. It does not say whether the note is appended or overwrites a prior handover, whether it requires prior session state or auth, whether the call is idempotent, or whether it actually ends the session. For a state-persisting session-boundary operation, those are material omissions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence, with the protocol label first and the operational gloss second. No filler, though the parenthetical nickname consumes space without adding invocation value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need no explanation, and the one-line purpose is coherent with the sibling set. However, with zero annotation coverage and undocumented required parameters, the description leaves the agent guessing about persistence semantics and field content, which is thin for a session-closing write.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% for two required parameters, and the description adds no meaning beyond the generic term 'handover note'. Nothing explains expected format, length, or what 'author' should contain (user id, agent name, free text).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (saves) and resource (handover note) and frames it as a session-ending handover step, which clearly separates it from sibling tools like cockpit_add_task or cockpit_create_adr. The metaphor-heavy name is redeemed by the plain-language gloss, though the description never says whether saving also terminates the session.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives an explicit trigger: call it before concluding an agent session. That is clear usage context. It does not name alternatives or state when not to use it, so it stops short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

cockpit_synthesize_promptC

Synthesizes an optimal handover prompt for another agent (e.g. 'doubao', 'cursor', 'claude').

ParametersJSON Schema
NameRequiredDescriptionDefault
instructionNo
target_agentYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden, yet it discloses nothing beyond the one-line purpose: no indication of whether it reads cockpit state, whether the result is deterministic, whether it depends on existing context/tasks, or what the caller should supply prior to invoking it.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with the key noun phrase early and the agent examples in a low-cost parenthetical. Little waste, though 'optimal' adds no verifiable meaning.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return value documentation is legitimately omitted. However, for a tool whose sole purpose is producing a handover prompt, the description never explains what input context is required or how 'instruction' shapes the output, leaving a meaningful gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate for two undocumented parameters. It partially clarifies 'target_agent' through the example agent names, but says nothing at all about 'instruction'—the most ambiguous parameter, which has only a default of empty string in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb ('synthesizes') and a concrete resource ('handover prompt for another agent'), with examples that disambiguate it from the cockpit management siblings. It is clear what the tool produces, though 'optimal' is unquantified filler rather than substantive detail.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use guidance, no prerequisites, and no mention of alternatives among the sibling cockpit_* tools. The examples of target agents hint at applicable contexts but the agent is left to infer when this tool should be chosen at all.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

cockpit_toggle_taskC

Marks a task as completed or pending in the project checklist.

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idYes
completedNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden. It only states that a task is marked completed or pending; it omits whether the operation is idempotent, what permissions are needed, what happens when 'completed' is omitted, and whether the change is reversible.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, well-formed sentence with zero wasted words. The purpose is front-loaded and the sentence earns its place without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be described, but the input schema has 0% description coverage and no annotations. The description leaves key details unstated, including the required task_id, the default behavior of completed, and any prerequisite or side-effect context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate for both parameters. It gives only an indirect hint that a completed/pending state exists, but it never mentions 'task_id', never explains its role, and never clarifies that the 'completed' boolean defaults to true or what omitting it does.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Marks') and resource ('a task as completed or pending in the project checklist'), which is clearly distinct from siblings like cockpit_add_task and cockpit_get_ready_tasks. However, it does not explicitly differentiate itself from all sibling tools or clarify the 'toggle' naming versus the explicit completed/pending states.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage by saying it marks tasks in the project checklist, but it provides no explicit when-to-use guidance, no prerequisites, and no alternatives. It does not tell an agent when to choose this tool over cockpit_add_task or other status-related siblings.

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.

  1. 7 tool updatesv0.1.0
    • First observedcockpit_add_task
    • First observedcockpit_create_adr
    • First observedcockpit_get_overview
    • First observedcockpit_get_ready_tasks
    • First observedcockpit_land_the_plane
    • First observedcockpit_synthesize_prompt
    • First observedcockpit_toggle_task

TDQS

B3.3/5.0

Scored across 7 tools

Disambiguation4/5

Most tools target distinct actions, but the two handover tools (cockpit_land_the_plane and cockpit_synthesize_prompt) overlap in purpose and could be confused, and cockpit_get_overview vs cockpit_get_ready_tasks share a retrieval surface. Descriptions do help distinguish the task-management tools clearly.

Naming Consistency4/5

All tools use a consistent cockpit_ prefix with snake_case and verb-first phrasing (get, toggle, add, create, synthesize). The only outlier is the idiomatic cockpit_land_the_plane, which reads as a metaphor rather than a clean verb_noun but still fits the format.

Tool Count5/5

Seven tools is well-scoped for a project-context/cockpit server, covering retrieval, task mutation, decision logging, and handover without bloat. Each tool earns its place.

Completeness3/5

Task lifecycle is partial: add and toggle exist but no edit/delete of tasks or task content, and only ready tasks can be listed (no full task view). ADRs can be created and glimpsed via overview but not updated, deleted, or listed directly, leaving notable gaps.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    A
    maintenance
    Provides agent coordination for Claude Code through a shared blackboard, decision tracking with rationale, and local semantic search over git-trackable JSONL files. It enables users to assemble tailored context packages and manage a lightweight knowledge graph for complex development tasks.
    15
    146 npm
    7
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Enables teams to share structured, git-synced context among AI coding agents working on the same repository, including living plans, task declarations, handoff briefs, file-provenance history, and conflict detection.
    12
    30 npm
    3
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables multiple AI coding CLIs (Claude Code, Gemini/Antigravity, Codex, and OpenCode) to collaborate as a coordinated team by routing cross-agent prompts, sharing messages and review tickets, tracking tasks on a shared store, and isolating each agent in its own Git worktree with turn-budget safeguards—all inspectable and steerable from a local web dashboard.
    MIT
  • F
    license
    Not graded
    quality
    C
    maintenance
    Enables multiple AI coding agents to coordinate on a shared software project by registering, claiming tasks, declaring file intents, publishing structured change reports, and handing off context, with a local dashboard showing state in near real time.
    -