swarm-mcp
suspec-mcp
Suspec の決定的チェッカーにシェルなしでアクセスするための、薄い MCP stdio アダプターです。薄さが特徴です。
チェックコントラクト 0.26.0 を要求し、すべての CLI JSON ペイロードを検証し、順序付けられたレポートと終了ステータスを保持します。
ツール
suspec_check
絶対アーティファクトパスの順序付き非空配列に対して、1 つの CLI プロセスを実行します。フロントマターの type: が動作を選択します。
入力 | 意味 |
| 順序付き非空の絶対プライマリパス |
| タスクパス用の絶対スペック |
|
|
Spec、task、change-plan、campaign の入力は CLI チェックを受けます。Inventory、audit、research、panel は checked: false を返します。欠落した型と不明な型は拒否されます。
1 回の呼び出しは C002 などのファイル横断チェックを保持します。タスクパスは 1 つの specPath を共有し、すべてのタスクがそのスペックを指定する必要があります。無効なコンパニオンペアリングは、ok: false を含む CLI の構造化された拒否を生成します。
すべてのアーティファクト結果は自身の型を繰り返します。型を持たないのは、オプションの最後の (file set) レポートだけです。
suspec_get_checks
簡潔モードで、コントラクトのバージョンと各コアチェックの ID および重大度を返します。名前を取得するには responseFormat: "detailed" を使用します。同じコントラクトは suspec://checks で利用できます。
起動時とリソース読み取りでは、終了コード 0 で正確なコントラクト 0.26.0 が必要です。リソースの失敗は、エラードキュメントをリソースコンテンツとして返す代わりにスローします。
Related MCP server: governed-mcp
エンベロープ
アダプターの呼び出しが成功するたびに、以下を返します:
ok: CLI が実行され、有効なペイロードを生成したかどうか。診断がクリーンかどうかではありません。source: 正確なコマンドと終了コード。data: 検証済みの詳細出力または簡潔なプロジェクション。オプションの
note。responseFormat。
ok はアダプターが機能したことを意味し、アーティファクトが良好であることを意味しません。ブロッキング診断のあるチェックも ok: true のままです。data.level、診断、source.exitCode を確認してください。
CLI の終了コード 0、1、2 はコントラクトに属します。その他の終了コードはアダプターの起動失敗です。JSON 形式の stdout は新しいコントラクトを交渉しません。構造化された CLI エラーは終了コード 2 の場合のみ受け入れられます。
インストール
Node.js 22.6 以降と suspec CLI が必要です。どちらのパッケージも公開されていません。
git clone https://github.com/jcosta33/suspec-mcp
cd suspec-mcp
corepack enable
pnpm install --frozen-lockfileGUI クライアントがシェル PATH に依存しないように、絶対エントリポイントを構成します:
{
"mcpServers": {
"suspec": {
"command": "/absolute/path/to/suspec-mcp/bin/suspec-mcp.js",
"args": ["--suspec-bin", "/absolute/path/to/suspec-cli/bin/suspec.js"]
}
}
}CLI の優先順位:
フラグ | 環境変数 | デフォルト |
|
|
|
各ツール呼び出しは完全なアーティファクトパスを提供します。サーバーはリポジトリ、ワークスペース、構成、ストアをバインドしません。これはアダプターであり、第二の製品ブレインではありません。
~/.agents/artifacts/<workspace>/ に特別な実行時意味はありません。ユーザーレベルのポリシーインストールは CLI の役割です:suspec setup を直接実行してください。MCP はセットアップ、ストレージ、プロモーション、ライフサイクル、オーケストレーションの表面を公開しません。
セキュリティ
プライマリパスとコンパニオンパスは絶対パスであり、制御文字、フォーマット文字、行区切り文字を含んではいけません。
アダプターはシェルを使用せず、固定の引数配列を渡します。
checkとサポートされているコンパニオンまたはコントラクトのフラグのみが CLI に到達します。setupはサブプロセスが開始する前に拒否されます。CLI のチェック表面は読み取り専用です。
サーバーはプロセスがアクセスできる任意のパスを読み取ることができます。ファイルシステムの権限はセキュリティ境界であり、提案ではありません。プロセスの権限をクライアントの信頼境界に合わせるか、OS のサンドボックスを適用してください。
開発
フィクスチャのドリフトには実際の CLI を使用します。手書きの一致は何も証明しません。SUSPEC_BIN を絶対 CLI ソースパスに設定してください。そうしない場合、suspec-cli という名前の兄弟パッケージがディスカバリを満たす可能性があります。生成は他のパッケージを拒否します。
export SUSPEC_BIN=/absolute/path/to/suspec-cli/bin/suspec.js
pnpm install
pnpm test:run
pnpm gate
pnpm fixturestest/fixtures/provenance.json は CLI の git HEAD、完全なダーティワークツリーハッシュ、バイナリハッシュを記録します。scripts/generate-fixtures.mjs が出力をキャプチャし、テストはすべてのフィクスチャを src/suspec/contract.ts を通じて解析します。フィクスチャは生成され、手編集されることはありません。
ライセンス
MIT
Available Tools
10 toolsswarm_check_fileCheck one artifact fileARead-onlyIdempotent
Run the Swarm checks contract over one file (spec / task / review / change-plan). Returns diagnostics, never a verdict.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | workspace-relative path to the artifact file |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| noVerdictIssued | Yes | |
| noVerdictNote | Yes | |
| source | Yes | |
| data | No | |
| derived | No | |
| note | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnly, idempotent, non-destructive, and not open-world. The description adds that it returns diagnostics and never a verdict, which is useful behavioral context beyond 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 immediately states the action and key details, with no unnecessary words.
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 simple one-parameter tool with full annotations and an output schema, the description provides all necessary context: what files it applies to, what it returns, and that it does not produce a verdict.
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 baseline is 3. The description does not add extra meaning beyond the schema's 'workspace-relative path' definition; it only lists file types which are not part of the parameter description.
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 clearly states the tool runs a checks contract on one file of specified types (spec/task/review/change-plan) and returns diagnostics, not a verdict. This distinguishes it from the sibling tool 'swarm_check_workspace' which likely checks the entire workspace.
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 that this tool is for single file checks and contrasts with the workspace-level sibling, but it does not explicitly state when not to use it or provide named alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
swarm_check_workspaceCheck the whole workspaceARead-onlyIdempotent
Run the Swarm checks contract over every spec + change plan. Returns diagnostics, never a verdict.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| noVerdictIssued | Yes | |
| noVerdictNote | Yes | |
| source | Yes | |
| data | No | |
| derived | No | |
| note | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint, destructiveHint, and idempotentHint. The description adds value by clarifying the output is diagnostics (not a verdict), providing behavioral insight beyond 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?
A single, front-loaded sentence that efficiently communicates the tool's purpose and output with no extraneous detail.
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 zero-parameter tool with comprehensive annotations and an output schema, the description is fully adequate. It explains what the tool does and what it returns.
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?
No parameters exist, so the baseline is 4. The description correctly avoids unnecessary parameter information.
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 clearly states it runs the Swarm checks contract over every spec and change plan, specifying the scope as the whole workspace, which distinguishes it from siblings like swarm_check_file.
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 its use for a workspace-level check and notes 'never a verdict,' which hints at when not to use it (if a verdict is needed). However, no explicit alternatives or exclusions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
swarm_get_checksGet the checks contractARead-onlyIdempotent
The checks contract — version + the core checks (id/name/severity). What review must satisfy.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| noVerdictIssued | Yes | |
| noVerdictNote | Yes | |
| source | Yes | |
| data | No | |
| derived | No | |
| note | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true, so the safety profile is clear. The description adds the specific return content (version and core checks) and the purpose ('what review must satisfy'), providing mild additional behavioral context beyond 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 very short (two phrases) and front-loaded with the key information. However, the second phrase 'What review must satisfy' could be integrated more clearly. Minimal redundancy, but structure could be improved for readability.
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 there are no parameters, annotations are present, and an output schema exists, the description sufficiently explains what the tool returns. It covers the essential purpose and content. No major gaps, but could mention that it is a static contract definition.
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?
No parameters exist (schema coverage 100% vacuously). The description does not need to explain parameters. According to guidelines, with 0 parameters, baseline is 4, which is appropriate as no additional param info is required.
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 clearly states the tool retrieves 'the checks contract' including version and core checks (id/name/severity), and explains it defines what a review must satisfy. This distinguishes it from sibling tools like swarm_check_file or swarm_get_review, which operate on specific checks or reviews.
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 explicit guidance on when to use this tool versus alternatives. The description does not mention situations where this tool is preferred or why it should be called instead of swarm_get_review or swarm_check_file. The agent must infer usage from the title alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
swarm_get_reviewGet a parsed review packetARead-onlyIdempotent
The review packets status, coverage rows, and verify blocks. Read-only; the verdict is the humans.
| Name | Required | Description | Default |
|---|---|---|---|
| task | Yes | task id or stem (the review is reviews/<stem>.md) |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| noVerdictIssued | Yes | |
| noVerdictNote | Yes | |
| source | Yes | |
| data | No | |
| derived | No | |
| note | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds 'Read-only' and 'the verdict is the human`s' beyond the annotations (readOnlyHint, destructiveHint, idempotentHint). It reinforces the read-only nature and provides context about the human role, aligning with annotations without contradiction.
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 extremely concise, using one sentence and a parenthetical to convey the tool's purpose and key behavior. Every word adds value, making it easy for an AI agent to parse.
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 presence of an output schema, the description adequately covers what the tool returns (status, coverage rows, verify blocks) and its read-only nature. No further details are necessary for this simple get tool.
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?
The single parameter 'task' is fully described in the schema (100% coverage). The description does not add new semantic information about the parameter beyond what the schema already provides, so baseline score 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 clearly states the tool retrieves a review packet's status, coverage rows, and verify blocks. It distinguishes itself from sibling tools by specifying these components, making the purpose unambiguous.
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 notes 'Read-only; the verdict is the human`s,' implying the tool should be used for reading without modification. It provides context but does not explicitly list when not to use or alternatives, though siblings like swarm_reconcile_review serve different purposes.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
swarm_get_specGet a parsed specARead-onlyIdempotent
The spec`s frontmatter, requirements (id + line + named verify command), and sections. Read-only.
| Name | Required | Description | Default |
|---|---|---|---|
| spec | Yes | spec id (e.g. SPEC-auth) |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| noVerdictIssued | Yes | |
| noVerdictNote | Yes | |
| source | Yes | |
| data | No | |
| derived | No | |
| note | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true, destructiveHint=false, idempotentHint=true. The description adds context by listing the specific components returned (frontmatter, requirements, sections) and reiterates 'Read-only', consistent with annotations. No contradictions.
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 concise (one sentence) and front-loaded with key information. Minor formatting issue with apostrophe ('spec`s') does not hinder understanding. Could be slightly more polished.
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 simple getter tool with one parameter, good annotations, and an output schema, the description covers the returned data. It lacks details on error handling or response format, but overall it is adequate.
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?
The input schema fully covers the single parameter 'spec' with a description ('spec id (e.g. SPEC-auth)'), so baseline is 3. The description does not add further parameter details, which is acceptable given 100% coverage.
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 clearly states that the tool retrieves a parsed spec, including frontmatter, requirements (with id, line, named verify command), and sections. It also explicitly marks it as read-only, distinguishing it from sibling tools like swarm_check_file or swarm_get_checks.
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 for retrieving spec details but does not provide explicit guidance on when to use this tool over siblings or when not to use it. Given nine sibling tools, some direction would be beneficial.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
swarm_get_statusSwarm workspace boardARead-onlyIdempotent
The derived workspace board — specs, their tasks, and review status. Read-only; no verdict.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| noVerdictIssued | Yes | |
| noVerdictNote | Yes | |
| source | Yes | |
| data | No | |
| derived | No | |
| note | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true. The description adds minimal value by repeating 'Read-only; no verdict', but does not contradict 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 sentence that front-loads the purpose with no wasted words. Every part is essential.
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 an output schema exists, the description adequately explains the return value ('specs, their tasks, and review status'). It does not need to detail format or additional behavior.
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?
With 0 parameters and 100% schema description coverage, the description does not need to add parameter information. Baseline for 0 params is 4.
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 clearly states 'The derived workspace board — specs, their tasks, and review status', specifying the verb ('get' implied in name) and resource, distinguishing it from sibling tools like swarm_get_spec or swarm_get_task.
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 read-only usage with 'Read-only; no verdict', but does not explicitly state when to use this tool versus siblings like swarm_get_checks or swarm_reconcile_review. No alternatives are named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
swarm_get_taskGet a parsed task packetARead-onlyIdempotent
The task packet`s scope, affected areas, claimed changes, and frontmatter (id/source/status). Read-only.
| Name | Required | Description | Default |
|---|---|---|---|
| task | Yes | task id or stem |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| noVerdictIssued | Yes | |
| noVerdictNote | Yes | |
| source | Yes | |
| data | No | |
| derived | No | |
| note | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool as read-only, idempotent, and non-destructive. The description adds value by detailing the specific data returned (scope, affected areas, etc.), but could further disclose behavior like error handling or response format.
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 two concise sentences, front-loading the key information about what is returned and noting it's read-only. No extraneous words.
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 simplicity (one parameter, output schema present, full annotations), the description sufficiently covers its purpose and return data. Could mention that output schema defines full structure, but not necessary.
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?
The single parameter 'task' has a schema description 'task id or stem', which matches the description. With 100% schema coverage, the description adds no new information beyond the schema, resulting in a baseline score of 3.
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 explicitly states the tool retrieves a parsed task packet and lists its components (scope, affected areas, claimed changes, frontmatter). This clearly distinguishes it from siblings like swarm_get_spec or swarm_check_file.
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 provides no guidance on when to use this tool versus alternatives like swarm_get_spec or swarm_scan_task. No when/when-not or prerequisite information is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
swarm_reconcile_reviewReconcile a review packet vs task/spec/diffARead-onlyIdempotent
Reconcile a finished run: compare task, spec, review packet, and git diff. Returns coverage gaps, empty-evidence Pass rows, scope drift, and self-report mismatches as facts + a derived human-attention list. Never issues a final verdict — a human or an independent reviewer owns the result.
| Name | Required | Description | Default |
|---|---|---|---|
| task | Yes | task id or stem (the CLI reviews `tasks/<stem>.md`) | |
| base | No | the base branch/commit to diff the worktree against |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| noVerdictIssued | Yes | |
| noVerdictNote | Yes | |
| source | Yes | |
| data | No | |
| derived | No | |
| note | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint, destructiveHint, idempotentHint, and openWorldHint. The description adds behavioral context: the tool returns specific types of issues and does not issue a final verdict. This complements annotations without contradiction.
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 three sentences, front-loading the action and inputs, then listing outputs, and finally clarifying constraints. Every sentence adds value with no unnecessary words.
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?
With an output schema present, the description need not detail return values. It covers purpose, inputs, outputs, and behavioral constraints sufficiently for the tool's complexity, given rich annotations and schema.
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 schema adequately describes the two parameters. The description adds minor context (e.g., task is a stem, base is a branch/commit) but does not significantly enhance understanding beyond the 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 clearly states the tool reconciles a finished run by comparing task, spec, review packet, and git diff. It lists specific outputs (coverage gaps, empty-evidence Pass rows, scope drift, self-report mismatches, human-attention list) and distinguishes itself by explicitly stating it never issues a final verdict, setting it apart from sibling tools.
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 indicates when to use ('Reconcile a finished run') and specifies that the tool does not give a final verdict, implying a human or independent reviewer should act on the output. However, it does not explicitly compare to alternatives or state when not to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
swarm_scan_taskScan a task in progress (reconcile vs the diff)ARead-onlyIdempotent
Reconcile a task against its spec and the worktree diff to surface coverage gaps, out-of-scope changes, and self-report mismatches — before a review packet exists. Same engine as reconcile_review. Never a verdict. If the task has no live worktree, returns a structured "not runnable here" result, not an error.
| Name | Required | Description | Default |
|---|---|---|---|
| task | Yes | task id or stem (the CLI reviews `tasks/<stem>.md`) | |
| base | No | the base branch/commit to diff the worktree against |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| noVerdictIssued | Yes | |
| noVerdictNote | Yes | |
| source | Yes | |
| data | No | |
| derived | No | |
| note | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond annotations (readOnlyHint, destructiveHint, idempotentHint), the description adds key behavioral traits: 'Never a verdict' and the non-error result for absent worktree. These clarify the tool's safe, read-only, and consistent behavior without contradicting 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?
Three sentences with no fluff. The first sentence front-loads the core purpose and output. The second provides sibling context. The third edge case. Every sentence is essential.
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 (2 params, simple), the description covers purpose, output (structured result), edge cases, and relationship to sibling. Output schema exists, so no need to detail return format.
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% and parameters are fully described. The description does not add new semantic details beyond what the schema provides, such as the format of 'task' or 'base'. Baseline 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?
Clearly states the tool reconciles a task against its spec and worktree diff to surface coverage gaps, out-of-scope changes, and self-report mismatches. Differentiates from sibling swarm_reconcile_review by noting 'Same engine as reconcile_review' and adding context 'before a review packet exists' and 'Never a verdict'.
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?
Explicitly says when to use ('before a review packet exists') and what the tool does not do ('Never a verdict'). Mentions an edge case behavior ('returns a structured not runnable here result, not an error'). Does not explicitly list alternatives, but the sibling reference provides differentiation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
swarm_validate_review_packetValidate a review packet (structure + evidence)ARead-onlyIdempotent
Run the review-file checks (C012 coverage, C013 verify-evidence) over a review packet: structure, status, and that Pass rows carry evidence. The diff-aware half (out-of-scope, self-report) comes from reconcile_review when a worktree exists. Returns diagnostics, never a verdict.
| Name | Required | Description | Default |
|---|---|---|---|
| review | Yes | workspace-relative path to the review packet file |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| noVerdictIssued | Yes | |
| noVerdictNote | Yes | |
| source | Yes | |
| data | No | |
| derived | No | |
| note | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true, and the description adds that the tool 'Returns diagnostics, never a verdict,' clarifying the output type. This complements the annotations without contradiction.
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 consists of two concise, front-loaded sentences. The first sentence states the core purpose, and the second clarifies scope and output. Every word adds value, with no wasted text.
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 has a single parameter, 100% schema coverage, an output schema (though not shown), and simple behavior, the description adequately covers what the tool does, what it checks, and what it returns. It is complete for its complexity level.
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?
The sole parameter 'review' is fully described in the input schema as 'workspace-relative path to the review packet file' (100% coverage). The description does not add additional semantic context beyond what the schema provides, so a baseline score 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 explicitly states the tool runs specific review-file checks (C012 coverage, C013 verify-evidence) on a review packet, covering structure, status, and evidence for Pass rows. It also distinguishes from sibling tool reconcile_review, which handles diff-aware checks. This clearly defines the tool's purpose and differentiates it from others.
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 indicates when to use this tool (for structure and evidence checks) and notes that diff-aware checks come from reconcile_review, providing implicit guidance on alternatives. However, it does not explicitly state when not to use this tool, missing a clear exclusion criterion.
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.
10 tool updates
v0.1.0- First observed
swarm_check_file - First observed
swarm_check_workspace - First observed
swarm_get_checks - First observed
swarm_get_review - First observed
swarm_get_spec - First observed
swarm_get_status - First observed
swarm_get_task - First observed
swarm_reconcile_review - First observed
swarm_scan_task - First observed
swarm_validate_review_packet
TDQS
Scored across 10 tools
Each tool has a clearly distinct purpose: checking files vs workspace, getting different entities (checks, review, spec, status, task), reconciling reviews, scanning tasks, and validating packets. No overlapping functionality.
All tools follow the consistent pattern 'swarm_verb_noun' using snake_case. Verbs are appropriate (check, get, reconcile, scan, validate) and nouns are specific, making the set predictable and easy to navigate.
10 tools is well-scoped for a server focused on analysis and verification of specifications, tasks, and reviews. Each tool serves a necessary function without redundancy or bloat.
The tool surface covers all essential operations for the server's analysis purpose: checking, retrieving all relevant entities, reconciling, scanning, and validating. No obvious gaps given the read-only/analysis scope.
Maintenance
Related MCP Connectors
MCP server providing access to the Scorecard API to evaluate and optimize LLM systems.
Guarded MCP server for agent-readable business truth, provenance, readiness, and discovery.
Evidence-readiness MCP server: validate, audit, and score briefs, memos, and evidence packs.
MCP server for AI agents to plan, verify, and deploy Cloudflare-native apps.
Related MCP Servers
- AlicenseAqualityAmaintenanceMCP server exposing memory search, index, and stats tools for agents, with honesty guards to prevent re-litigation of settled decisions.5103 PyPI6AGPL 3.0
- FlicenseNot gradedqualityDmaintenanceMCP server that enforces governance on agentic decisions with auditable evidence records, providing tools for understanding, calibrating confidence, and navigating handoffs based on policy.-
- AlicenseAqualityBmaintenanceA local-first MCP server for retrieving a small evidence set and recording reviewed conclusions, policy-gated and redacted without giving an agent general filesystem access.5MIT
- AlicenseNot gradedqualityDmaintenanceMCP server that exposes Elephant Accountability's audit tiers, EVI v0.9 methodology, fit assessment, proof points, and agent-initiated audit requests to AI agents.MIT