Skip to main content
Glama

manifestation-mcp

コーディングエージェントをデザイン優先にするMCPサーバーです。何かを作りたいと思った瞬間、いきなりコードに飛び込まず、一歩下がってあなたにインタビューし、仕様を引き出して消化しやすいチャンクで示し直し、あなたの承認を小さなレッド/グリーンのTDDプランに変え、そしてサブエージェント駆動の開発ループ(実装者→レビューアー→品質ゲート)で、そのプランを自律的に最後まで進めることができます。

ポータブルなPython製MCPサーバーです。サーバーが頭脳(5フエーズのスッテーマシン、あなたのスペック/プラン、スキルライブラリ)となり、Claude Agent SDKを経由して内部で自分自身のブエージェントを実行します。そのため、一度のrun ブ呼出しで、プランから逸れることなく長時間自律的に働き続けられます。

5つのフェーズ

DISCOVERY  → interview you; do NOT write code
SPEC       → draft a spec; sign off chunk-by-chunk
PLAN       → bite-sized red/green TDD task list (YAGNI, DRY)
EXECUTE    → per task: implementer subagent → reviewer subagent → gate
DONE       → artifacts left under .manifestation/ in your repo

状態は対象リポジトリの中の検査可能なファイルとして保存されます: <repo>/.manifestation/<project-id>/{state.json, spec.md, plan.md>。

Related MCP server: Spec Guard

必要条件

  • Python 3.10+

  • uv(brew install uv)

  • ライブ実行(run)には、PATH 上にある Claude Code CLI と、Claude の認証情報(ANTHROPIC_API_KEY また既存の Claude Code ログイン)が必要です。Agent SDK がこれらを駆動し、実装者/レビューアーのサブエージェントを実行します。

  • ターゲットリポジトリ内の git。TDD ゲートは git worktree を使い、実に失敗するテストが実装に先行したことを検証します。

セットアップ

cd manifestation-mcp
uv sync
uv run pytest        # 96 tests, no network required (1 live smoke skipped)

実行方法

推奨のローカル起動方法(uv のエディタブル・インストールの癖に対応):

uv run python run_server.py

Claude Code に登録します:

claude mcp add manifestation -- uv run --project /ABS/PATH/TO/manifestation-mcp python /ABS/PATH/TO/manifestation-mcp/run_server.py

(uvx/pipx でパッケージインストールする場合は、manifestation-console コンソール・スクリプトがそのまま直接動します。)

自動トリガー(オプション)

skill-shim/SKILL.md を Claude Code スキル(例: ~/.claude/kills/manifestation/SKILL.md)にコピーして置くと、その説明文が「build」「implement」「add a feature」のような内容に発火するため、ワークフローが自動で始まります — 自分で何かを起動する必要はありません。このファイルを使わない場合は、//manifestation ププロンプトを直接入力するか、start_project ツールを呼び出すかして手動で開始します。

ツー一覧

ツール

機 能

テ =

start_project(brief, repo_path)

プロジェクトを作成します(リポジトリパスを検証); インタビュー質問を返します。

submit_answers(project_id, answers)

回答を送信します; さらに質問を返すか、SPEC に進みます。

next_spec_chunk(project_id)

次レビする小さなスペックチャンクを返します(サイズ制限付き)。

review_spec_chunk(project_id, decision, feedback?)

チャンクを approve / revise します。

make_plan(project_id)

リポジトリを認識したTDD プランを生成し、タスク全体の本文を返します。実行はしません。

approve_plan(project_id)

ユーザーの承認を記録し、EXECUTE に進みます。

run(project_id, until?, max_agent_calls?, max_budget_usd?)

サーバー検証のTDD ゲート付きサブエージェント駆動ループ。ステップごとにチェックポイントし、進捗をスールリーム配信し、xagent_calls/cost_usd を報告します。

run_reset_task(project_id, task_id)

BLOCKED のタスクを解し、run で再試行できるようにします。

status(project_id) / list_projects()

進捗(タスク・単位の試行回数、指摘事項、承認済み状態)を確認します。

プロンプト: /manifestation <brief>. リソース: skills://all, skill://<name>。

モデルの選択

特定の古いモデルにハードコーデはされていません。デフォルトでは、サーバーはClaude Code CLI に設定されたモデルを継承します。グローバルにし overrideには MANIFESTATION_MODEL 環境変数を使い(例: NIFESTATION_MODEL=claude-opus-5)、プロジェクトごとの定義は AgentSDK着クライアントに model=model=...` してリトクエスト時単位で上書きできます。

安全モデル(run を使う前にお読で下さい)

run はあなたのリポジトリ上で実際のサブエージェントを実行するため、信用境界を十 - 分に理理してください:

  • 実装者には書込み権と Bash が与えられます。これは設計上、対象リポジトリ内で任意のコーコードを実行できるという意味します — 信用できあるリポジトリでのみ実行し、信頼できない作業にはコンテナ/VM を使ってください。サンドボックスはありません。

  • レビューアーとプラナーは、2重の仕組みで読み取り専用です。変更系のツールは SDK の disallowed_tools に含まれており、さらに can_use_tool 権限コールバックが許可リスト通りにないすべて のツールを拒否します。We: WebFetch、Task、MCP ツールなど、こちらで列挙していないツールも対象です。信頼できないリポジトリであっても安全です。

  • TDD はサーバー側で検証され、記述は信頼されません。実装者が実行し終ると、サーバーがそのタスクが宣言したテストコマンドを克自分で実行します。HEAD でパスが必須(実際のグリーン)であり、実装者のテスト専用のコミット(HEAD~1)を捨て the again worktree に当てて再実行すると失敗しなければなりません(実際のレッド)。偽造だけ並び替えたエビデンスは検出し、git/テストで確認できない時に failure と扱します。フェール・クローズ。

  • PASS 判定で傍に指摘が残っていれば、矛盾と扱われ、タスクは失敗します。

  • run には承認済みのプランと各ステップ毎のチェックポイトが必須です(クラッシュした試行の場、実装者を再実行するのではなくレビュースッテプから再開するため、編集が二重にならない)。そのうえで完全な監査トレイルを持ち、必ず制限付きです — max_agent_calls / max_budget_usd?(どちらも MCP から利用可)まは組込みのデフォルト・キャップがあります。

  • 変更系ツールの呼び出しは、インプロセス・ロックとクロスプロセス・フアイル・ロックにより、プロジェクト単位で直列化されます。

  • ブリーフ/エ答/スペックから prompt インジェクショについてもサブエージェントのプロンプ環境に浸入るため、プロジェクトへの入力は信用しないこと。

素直さの保ち方(テスト様式でもある)

ありとあらゆる LLM コーるり取りは、単一の注入可能な介入点(seam)である LLMClient を経由します。ユンット・テストはこの FakeLLMClient を注入するため、フ以降の全ステーマシン、つまり 発見、スペックのチンク化、プラン生成、リトライとレビュー・ゲートを備えた実行ループまでも、ネットワーク呼び出しゼロで検証可能です。実際の AgentSDKClient はこの介入の裏に置かれて、オプトインのライブ・スモークテストでのみ動かします。

アーキテクチャ

src/manifestation_mcp/
  server.py     # MCP tools/prompts/resources (thin wiring)
  state.py      # Project/Phase/Task model + file persistence + registry
  llm.py        # LLMClient seam: FakeLLMClient (tests) + AgentSDKClient (real)
  agents.py     # implementer / reviewer / planner subagent presets
  runner.py     # CommandRunner seam: SubprocessRunner (real) + FakeCommandRunner
  phases/       # discovery, spec, plan, execute, verify (server-side TDD check)
  skills/       # bundled Markdown skills, injected into subagent prompts
run_server.py   # bulletproof local launcher
skill-shim/     # optional Claude Code auto-trigger skill

Available Tools

11 tools
approve_planA

Record the user's approval of the generated plan and advance to EXECUTE.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYes

TDQS

A3.8/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 burden. It reveals that this is not read-only (records approval and advances state), but it does not disclose side effects on the plan, reversibility, permissions required, or failure conditions. For a simple state transition, this is minimal but not comprehensive.

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?

The description is a single, compact sentence that front-loads the core action and outcome. It contains no redundant wording, filler, or unnecessary detail.

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?

Given the tool is simple (1 param, no output schema, no annotations), the description provides the essential purpose and progression but omits parameter semantics and preconditions (e.g., that a plan must already exist). An agent might call it without full context, so it is only minimally complete.

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?

The schema has 0% description coverage, and the description does not explain the project_id parameter at all. The name is self-explanatory, but the description gives no context about how project_id relates to the plan or the approval process. This forces the agent to rely on schema type alone, which is insufficient.

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

Purpose5/5

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

The description states a specific action (record user's approval) and resource (generated plan), plus the outcome (advance to EXECUTE). It clearly distinguishes from siblings like make_plan (create plan) and run (execute), even without naming them, by specifying the transition trigger.

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?

The description clearly implies when to use it: when the user approves the generated plan. The phrase 'advance to EXECUTE' signals it is the step before execution. However, it does not explicitly mention alternatives or exclusions, so the agent must infer the context from sibling names.

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

healthA

Liveness check. Returns the server name and version.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.1/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 return value (server name and version), which is the main behavioral output, but it does not explicitly state that the operation is read-only, has no side effects, or requires no authentication. For a liveness check this is a minor gap, but still leaves the safety profile implicit.

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 that states the purpose and the return value with zero waste. Every word earns its place, and there is no superfluous content.

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

Completeness5/5

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

For a zero-parameter, no-output-schema tool, the description is completely sufficient. It tells the agent what the tool does, what it returns, and there are no missing elements required for correct invocation. The simplicity of the tool justifies the brevity.

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?

With zero parameters, the schema adequately covers everything, and the baseline is 4. The description adds no parameter details, but none are needed. It correctly avoids content that would be redundant.

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

Purpose5/5

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

The description clearly states a specific verb ('Liveness check') and resource (the server), and specifies the return value (server name and version). It is unambiguous and distinct from sibling tools like 'status', which implies overall state rather than a dedicated liveness probe.

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 purpose implies usage—call it to verify the server is alive—but there is no explicit guidance on when to use it versus alternatives, nor exclusions. For a zero-parameter health check, the implied usage is sufficient, but it falls short of the explicitness seen in top-tier definitions.

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

list_projectsA

List all known Manifestation projects.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/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 of behavioral disclosure. It clearly implies a read-only listing operation, but does not mention any potential side effects, limitations, or response specifics such as pagination or return format. For a simple zero-parameter list, this is adequate, though not rich.

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?

The description is a single, clear sentence with no unnecessary words. It is front-loaded and concise, exactly meeting the standard for conciseness.

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?

Given the zero-parameter complexity and lack of annotations or output schema, the description is almost complete. It clearly states the operation and the resource. However, it does not describe the return structure (e.g., fields of a project), which might be relevant for an agent to know how to parse the response. This is a minor gap given the simplicity.

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 has zero parameters and the schema description coverage is effectively 100% (empty properties). According to the rubric, with 0 parameters the baseline is 4. The description adds no parameter-related information, but there are none to explain, so this baseline is appropriate.

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

Purpose5/5

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

The description states a specific verb 'List' and a clear resource 'all known Manifestation projects'. It is unambiguous and does not overlap with any sibling tool, which include actions like start_project, run, or health, none of which list projects. This fully clarifies the tool's purpose.

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 guidance on when to use this tool versus alternatives. The description simply states what it does without any context about when it is appropriate or whether other tools might be better suited for certain scenarios. An agent is left to infer its usage solely from the name and description.

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

make_planA

Generate the bite-sized red/green TDD plan (repo-aware). Returns the full task bodies for the user to review. Does NOT start execution — call approve_plan after the user signs off.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYes

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description carries the full burden. It discloses that the tool does not execute, returns full task bodies for review, and is repo-aware. It doesn't mention side effects like storage or persistence, but the lack of execution implies a read-only behavior. Overall, key behavioral traits are clearly stated.

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?

The description is a compact two-sentence structure that leads with the primary action and return value, then provides a critical behavioral note and a pointer to the follow-up tool. Every word earns its place, and there is no redundancy.

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?

The description covers the core purpose, return type, and follow-up step, but lacks details on the exact format of the 'full task bodies' or any prerequisites like having started the project first. Given siblings like start_project and approve_plan, the tool's place in the workflow is partly implied but not fully specified. The agent could call it in the wrong order if the description mentioned prerequisites.

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?

The schema has zero description coverage, so the description must compensate. While the sole parameter 'project_id' is named clearly, the description does not explicitly link it to the plan generation or the repo context. The parenthetical 'repo-aware' hints at the connection but does not clarify the role of the ID. The agent must infer that project_id selects the project, which could lead to confusion.

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

Purpose5/5

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

The description clearly states the tool generates a bite-sized red/green TDD plan and is repo-aware. It explicitly mentions returning full task bodies for review, and the verb 'Generate' is specific. It distinguishes itself from sibling approve_plan by stating it does not start execution.

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

Usage Guidelines5/5

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

The description explicitly tells the agent not to start execution and instructs to call approve_plan after user sign-off. This clearly identifies when to use this tool versus its main sibling, leaving no ambiguity about the workflow.

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

next_spec_chunkA

Get the next spec chunk to show the user for sign-off (drafts the spec on first call).

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYes

TDQS

A4.1/5.0
Behavior4/5

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

No annotations are present, so the description carries the behavioral burden. It explicitly discloses a side effect: 'drafts the spec on first call', which alerts the agent that this is not a pure read operation. It does not fully describe all state changes or return behavior, but this is meaningful disclosure for a short description.

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?

The description is a single, tightly written sentence with the main action front-loaded and the side effect contained in a parenthetical. Every word earns its place, and there is no redundant filler.

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?

For a simple one-parameter tool, the description covers the action, the purpose, and an important first-call side effect. It could additionally clarify how chunks are delivered or what the agent should do after receiving them, but given the low complexity and the sibling workflow, it is mostly complete.

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%, and the description does not explain how 'project_id' should be used or where it comes from. The parameter name is fairly self-explanatory, but the description adds no semantic value beyond the schema's 'Project Id' title, so it fails to compensate for the lack of schema descriptions.

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

Purpose5/5

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

The description uses a specific verb ('Get') and specific resource ('next spec chunk') and clearly states the purpose: 'to show the user for sign-off'. The parenthetical 'drafts the spec on first call' adds an important distinguishing behavioral detail, setting it apart from related tools like review_spec_chunk.

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?

The description gives clear context for when to use the tool: when the next spec chunk needs to be presented to the user for sign-off. It does not provide explicit exclusions or name alternatives, but the 'next chunk' phrasing implies the workflow position without ambiguity.

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

reset_taskA

Reset a BLOCKED (or any) task back to pending so run can retry it.

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idYes
project_idYes

TDQS

A4/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden of disclosing behavior. It explicitly states that the tool changes task state to pending, applies to ANY task (not just BLOCKED ones), and exists to support run retries. This is honest and useful, though it omits details like reversibility or side effects on the run.

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?

It is a single, efficiently front-loaded sentence. Every phrase earns its place: the state transition, the scope, and the purpose. There is no redundant or filler content.

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?

For a simple mutation tool with no output schema, the description captures the core action and intent. It is incomplete only in that it does not explain how to source project_id or when it would be inappropriate to reset a task. The gaps are not severe, but they keep it from being fully self-sufficient.

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?

The schema has 0% description coverage, so the description needed to compensate. It does not mention task_id or project_id at all, leaving the agent to infer their meaning solely from the property names and titles. This is minimal but not zero, since task_id is self-explanatory given the tool name.

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

Purpose5/5

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

The description uses a specific verb ('Reset') with a clear resource ('task') and a precise state transition ('BLOCKED (or any) task back to pending'). It also states the intent ('so run can retry it'), making the tool's role clear and distinguishable from siblings like health, status, or run.

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?

It provides clear context: use this tool to move a task to pending so the run can retry it. It does not explicitly list exclusions or alternatives, but no sibling appears to compete directly with this action, so the context is sufficient.

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

review_spec_chunkA

Approve or revise the current spec chunk. 'approve' advances; 'revise' redrafts with feedback.

ParametersJSON Schema
NameRequiredDescriptionDefault
decisionYes
feedbackNo
project_idYes

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations provided, the description carries the burden of behavioral disclosure and does reveal key behaviors: 'approve' advances the state, 'revise' redrafts with feedback. It does not state prerequisites, side effects on surrounding data, or error conditions, which are clear gaps. It also implies feedback is needed for revision, but the schema marks it optional, adding some ambiguity.

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?

The description is two sentences with no wasted words. It front-loads the core action and then clarifies the decision semantics. Every sentence earns its place.

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?

The description is adequate for a simple tool with three parameters and no output schema, but it omits details about prerequisites, what constitutes the 'current spec chunk', and what happens after approval or revision. It also does not address potential errors or edge cases like submitting 'revise' without feedback. Given no annotations, this is a minimum-viable level of completeness.

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 schema has 0% description coverage, so the description must add meaning. It interprets the 'decision' parameter by naming two specific values ('approve' and 'revise') and explains their effects. It also clarifies that feedback is used during revision. It does not elaborate on project_id, but that parameter is self-explanatory from its title.

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 clear action ('Approve or revise') on a specific resource ('current spec chunk') and distinguishes the two modes with their effects. It does not explicitly contrast with sibling tools like next_spec_chunk or approve_plan, but the resource and action are specific enough to differentiate from most tools.

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 description explains when to use the tool implicitly by describing the action and the effects of the decision parameter. It does not provide explicit exclusions or compare against sibling tools such as next_spec_chunk, which may also advance, leaving some ambiguity about which tool to pick. However, the two decision modes are clearly mapped to their outcomes.

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

runA

Run the subagent-driven execution loop: implementer -> server-verified TDD gate -> reviewer, per task. 'until' stops after N tasks; 'max_agent_calls' and 'max_budget_usd' cap spend. Requires an approved plan. Long-running; streams progress; checkpoints per step.

ParametersJSON Schema
NameRequiredDescriptionDefault
untilNo
project_idYes
max_budget_usdNo
max_agent_callsNo

TDQS

A4.4/5.0
Behavior4/5

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, and it delivers: it flags the plan prerequisite, that the call is long-running, that it streams progress, and that it checkpoints per step. It does not contradict any structured data. Minor gaps remain around failure modes and post-run return behavior, but for a mutation/execution tool with zero annotation coverage this is strong disclosure.

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?

Two sentences with zero wasted words. The first is front-loaded with the core purpose and pipeline, and the second efficiently packs the parameter semantics plus the three key behavioral notes. 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?

Complete for an execution-loop tool: purpose, all cap parameters, the plan prerequisite, and runtime behaviors (long-running, streaming, checkpoints) are all covered. Missing only a note on what the agent receives on completion or on failure/rollback behavior, which matter given there is no output schema to fall back on. Minor gap, not a blocking one.

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?

Schema description coverage is 0%, so the description must compensate, and it does for 3 of 4 parameters: it explains that 'until' stops after N tasks and that 'max_agent_calls' and 'max_budget_usd' cap spend. Only project_id is left implicit, which is reasonable given the plan prerequisite. This adds genuine meaning beyond the bare type names in the schema.

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

Purpose5/5

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

States a specific verb ('Run') and a concrete resource: the subagent-driven execution loop, spelled out as 'implementer -> server-verified TDD gate -> reviewer, per task'. This pipeline description cleanly differentiates the tool from siblings like make_plan, approve_plan, status, and health, so an agent can select it correctly without opening the schema.

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 clear context on prerequisite state: 'Requires an approved plan', which implicitly routes the agent to call this only after approve_plan. It also explains the purpose of the cap parameters. However, it does not explicitly name alternatives or list when-not-to-use conditions, so the guidance is contextual rather than exclusionary.

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

start_projectA

Begin a design-first project. Creates state and returns the first interview questions. Ask the user these; do NOT write code yet.

ParametersJSON Schema
NameRequiredDescriptionDefault
briefYes
repo_pathYes

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations provided, the description must carry the burden of behavioral disclosure. It does disclose that the tool mutates state ('Creates state'), returns interview questions, and that code should not be written yet. However, it does not explain persistence, failure modes, idempotency, or what happens if the project already exists, so the transparency is only partial.

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?

The description is short, front-loaded with the primary purpose, and every sentence adds value. It states what happens, what to do next, and what not to do, all in three concise sentences with no filler.

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?

For a simple two-parameter tool with no output schema or annotations, the description covers the core workflow reasonably well. However, the absence of parameter explanations and the lack of guidance about when this tool should be called relative to siblings like submit_answers leaves notable gaps for an agent making a fully informed call.

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

Parameters1/5

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

The schema has 0% description coverage, and the tool description does not explain what 'brief' or 'repo_path' should contain. The parameter names are suggestive, but the description adds no meaning beyond the schema, leaving the agent to guess the required format and semantics.

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

Purpose5/5

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

The description clearly states a specific action and resource: 'Begin a design-first project,' and it concretely says the tool 'creates state and returns the first interview questions.' This distinguishes it from siblings like make_plan, run, and approve_plan, which are later workflow steps.

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?

It gives clear context: this is the first step of a design-first project and returns interview questions for the user. It also instructs the agent to ask the user these questions and explicitly says 'do NOT write code yet,' which helps with when-not behavior. It does not name alternatives like submit_answers, but the workflow context is clear.

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

statusC

Report a project's current phase and task progress.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYes

TDQS

C2.7/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 of behavioral disclosure. It states what information is reported (phase and task progress) but does not clarify whether the operation is read-only, whether it has side effects, or what the output format looks like. This is a minimal disclosure, insufficient for a clear behavioral understanding.

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?

The description is a single concise sentence with no redundant words, front-loading the core purpose. It earns top marks for efficiency and structure.

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?

With no output schema, no annotations, and zero parameter documentation, the description must provide a complete mental model. It only mentions what is reported, not how to call it, what to expect in return, or any prerequisites. For a simple one-param tool it is minimal but not fully adequate, warranting a 2.

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

Parameters1/5

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

Schema description coverage is 0% and the description does not explain the project_id parameter beyond what the property name implies. The agent gets no guidance on the format, requirements, or how to obtain a valid project_id, so the description fails to compensate for the schema gap.

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 clearly states the verb 'report' and the resource 'a project's current phase and task progress', making the tool's purpose distinct from siblings like health or start_project. It does not confuse with other tools, so a 4 is appropriate rather than a 5 because it lacks an explicit comparison to siblings.

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 guidance is given on when to use this tool versus alternatives such as list_projects or health. The context of when to invoke status vs. others is left entirely to the agent's inference, so this dimension scores low.

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

submit_answersA

Submit the user's answers to the current discovery questions. Returns either more questions or advances the project to the SPEC phase.

ParametersJSON Schema
NameRequiredDescriptionDefault
answersYes
project_idYes

TDQS

A3.9/5.0
Behavior3/5

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

With no annotations available, the description carries the full burden of behavioral disclosure. It does reveal that the tool can change project state (advance to SPEC) and explains the return behavior. However, it omits details such as whether answers are validated, how the order of answers maps to questions, and whether the action is idempotent.

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?

The description is a single, well-structured sentence that front-loads the action and includes the key outcome. It contains no filler or redundant phrasing, and every clause contributes to the agent's understanding.

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?

For a simple two-parameter tool, the description covers the core workflow adequately. However, the absence of an output schema and annotations means the agent is left without details on how the returned 'more questions' are structured or how answers should be formatted, which could require additional inference during invocation.

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?

Schema description coverage is 0%, so the description must compensate. It adds meaning to 'answers' by clarifying they are the user's responses to current discovery questions, but it does not explain formatting, ordering, or required count. 'project_id' is left completely to the schema, relying on the parameter name alone.

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

Purpose5/5

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

The description uses a specific verb ('Submit') and a clear resource ('the user's answers to the current discovery questions'), and further clarifies the two possible outcomes: more questions or advancing to the SPEC phase. This distinguishes it from the listed sibling tools, which concern planning, approval, and project lifecycle actions.

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?

The description clearly situates the tool in the discovery question flow: after questions are presented, this tool submits the user's answers. It does not explicitly name when not to use it or list alternatives, but the intended context is unambiguous enough for an agent to select it over 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. 11 tool updatesv0.1.0
    • First observedapprove_plan
    • First observedhealth
    • First observedlist_projects
    • First observedmake_plan
    • First observednext_spec_chunk
    • First observedreset_task
    • First observedreview_spec_chunk
    • First observedrun
    • First observedstart_project
    • First observedstatus
    • First observedsubmit_answers

TDQS

A3.7/5.0

Scored across 11 tools

Disambiguation5/5

Each tool maps to a distinct phase or concern: liveness, discovery Q&A, spec chunk retrieval/review, plan generation/approval, execution, task reset, status, and project listing. Pairings like make_plan/approve_plan and next_spec_chunk/review_spec_chunk are sequential rather than overlapping, and the descriptions reinforce their roles.

Naming Consistency4/5

Most tools follow a verb_noun pattern (start_project, submit_answers, approve_plan, reset_task, list_projects), but health, status, run, and next_spec_chunk deviate by using bare nouns, a bare verb, or a noun-phrase without an action verb. The overall style is still readable and mostly predictable.

Tool Count5/5

11 tools fit the server's staged workflow—discovery, spec, plan, execute, and observe—and each serves a clear purpose. There is no obvious bloat; even the health and list_projects tools are reasonable utility surfaces.

Completeness4/5

The core lifecycle is well covered: start_project, submit_answers, next_spec_chunk, review_spec_chunk, make_plan, approve_plan, run, reset_task, and status form a coherent path with no dead ends. Minor gaps exist, such as no explicit cancel/stop for a running execution or a revision path for an already-approved plan/spec, but these can likely be worked around.

Maintenance

ActivitySlowing
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    Not graded
    maintenance
    Autonomous TDD coding agent that converts specifications into feature lists and implements them using test-driven development with pause/resume capabilities, live progress monitoring, and automatic git commits.
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    A methodology and MCP server for agent-driven software development where humans write specs and agents implement code, enforced by six mechanical gates to ensure spec validity, contracts, tests, and review.
    4 npm
    MIT