swarm-mcp
suspec-mcp
Тонкий MCP stdio-адаптер для доступа без оболочки к детерминированному проверщику Suspec. Тонкость — это фича.
Он требует контракт проверок 0.26.0, проверяет каждый JSON-payload CLI и сохраняет упорядоченные отчёты
и код выхода.
Инструменты
suspec_check
Запускает один процесс CLI над упорядоченным непустым массивом абсолютных путей артефактов. Frontmatter type:
определяет поведение.
Вход | Значение |
| упорядоченные непустые абсолютные основные пути |
| абсолютный путь к спецификации для путей задач |
|
|
Входные данные спецификаций, задач, планов изменений и кампаний получают свои проверки CLI. Инвентаризация, аудит,
исследования и панель возвращают checked: false. Отсутствующие и неизвестные типы отклоняются.
Один вызов сохраняет межфайловые проверки, такие как C002. Пути задач используют общий specPath; каждая задача
должна указывать эту спецификацию. Неверная связка связанных файлов приводит к структурированному отказу CLI с ok: false.
Каждый результат артефакта повторяет свой тип. Только опциональный финальный отчёт (file set) не содержит типа.
suspec_get_checks
Возвращает версию контракта, а также идентификатор и серьёзность каждой основной проверки в кратком режиме. Используйте
responseFormat: "detailed" для имён. Тот же контракт доступен по адресу suspec://checks.
Запуск и чтение ресурсов требуют точного контракта 0.26.0 при коде выхода 0. Сбой ресурса вызывает исключение,
а не возвращает документ об ошибке в качестве содержимого ресурса.
Related MCP server: governed-mcp
Конверт
Каждый успешный вызов адаптера возвращает:
ok: работал ли CLI и выдал ли допустимый payload, а не чисты ли диагностические данные;source: точную команду и код выхода;data: проверенный подробный вывод или краткую проекцию;опциональный
note;responseFormat.
ok означает, что адаптер сработал, а не что артефакт хорош. Проверка с блокирующими диагностиками остаётся
ok: true; изучайте data.level, диагностики и source.exitCode.
Коды выхода CLI 0, 1 и 2 относятся к контракту. Любой другой код выхода — это сбой запуска адаптера.
stdout в форме JSON не согласует новый контракт. Структурированные ошибки CLI принимаются только при коде выхода 2.
Установка
Требуется Node.js 22.6 или новее и suspec CLI. Ни один из пакетов не опубликован.
git clone https://github.com/jcosta33/suspec-mcp
cd suspec-mcp
corepack enable
pnpm install --frozen-lockfileНастройте абсолютные точки входа, чтобы GUI-клиенты не зависели от 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 не предоставляет интерфейс настройки, хранения, продвижения,
жизненного цикла или оркестрации.
Безопасность
Основные и сопутствующие пути должны быть абсолютными и не содержать управляющих символов, символов форматирования или разделителей строк.
Адаптер передаёт фиксированный массив аргументов без оболочки.
До CLI доходят только
checkи поддерживаемые флаги связанных операций или контракта.setupотклоняется до запуска подпроцесса.Поверхность проверок CLI доступна только для чтения.
Сервер может читать любой путь, доступный его процессу. Права файловой системы — это граница безопасности, а не рекомендация. Согласуйте права процесса с границей доверия клиента или применяйте песочницу ОС.
Разработка
Расхождение фикстур устраняется использованием реального 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 записывает git HEAD CLI, полный хэш грязного рабочего дерева и хэш бинарного файла.
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