Skip to main content
Glama

Ackrite

ACKRITE. 証明せよ。

AIエージェントが行動する前にその前提を証明させるMCPサーバー。

Ackriteは、AIエージェント向けの焦点を絞った検証ユーティリティです。あらゆる問題を解決しようとしたり、都合のよい答えを探したり、裏付けをでっち上げたりすることはありません。その代わり、提供された証拠のみを使ってエージェントの技術的主張に異議を唱え、事実と仮説を区別し、欠落している証明を特定し、問題に決着をつけられる最小の次のチェックを推奨します。

その目的は、よくある失敗パターンを防ぐことです。エージェントがエラーを見て原因を推測し、自信を持ってシステムの半分を書き換え、その後になって初めて推測が間違っていたことに気づく、というパターンです。Ackriteはエージェントを、証拠、的を絞った実験、範囲を限定した変更、明示的な不確実性へと導きます。

Ackriteが行うこと

Ackriteが行わないこと

提供された証拠から主張を分類する

与えられていない証拠をでっち上げたり、取得したり、暗示したりしない

矛盾や根拠のない前提を検出する

推論を事実として提示しない

実装前に書き換えやスコープの拡大に異議を唱える

コード変更を適用したり、外部システムを呼び出したりしない

境界付きのプロセス内検証履歴を追跡する

大規模なメモリシステムを永続化したり、L-Dopaに依存したりしない

診断出力から一般的なシークレットをマスクする

あらゆるカスタム資格情報形式に対して完璧なシークレット検出を保証しない

なぜ存在するのか

エージェントの自信は証拠ではありません。「APIがネイティブ認証を削除した」のような主張は、多くの場合有益な仮説ですが、確定した事実として扱われ、書き換えを正当化するために使われると危険になります。Ackriteは、4つの絞り込まれた質問をします:

  1. 提供された証拠は、実際に何を立証しているのか?

  2. 主張と矛盾するものは何か(もしあれば)?

  3. どの前提が結論を支えているのか?

  4. 次に実行すべき最小の実証チェックは何か?

その結果は、エージェントのコンテキストウィンドウに直接そのまま戻せるように、意図的に簡潔にしています。

Related MCP server: footnote

主張ステータス

Ackriteは、意図的に保守的な分類モデルを使用します。

ステータス

意味

証拠の閾値

KNOWN

直接的な高信頼性の提供証拠が主張を裏付けている。

焦点を絞ったテスト結果、HTTPレスポンス、観察された動作、ユーザー提供の事実など、高信頼性の直接的な項目が少なくとも1つあること。

SUPPORTED

直接的な提供証拠が主張を裏付けているが、範囲または信頼性において限定的である。

該当する高信頼性項目を伴わない直接的な裏付け証拠があること。

PLAUSIBLE

主張は真実である可能性があるが、資料が間接的、中立的、または推測によるものである。

中立的な証拠または推論のみ。

UNVERIFIED

提供された裏付け証拠が主張を立証していない。

関連する証拠がない。

CONTRADICTED

少なくとも1つの提供された証拠項目が主張と矛盾している。

矛盾が解消されるまで、矛盾が優先される。

基本原則: Ackriteは、推論を事実に格上げすることは決してありません。その代わりに、観察と結論の境界にラベルを付けます。

アーキテクチャ

Ackriteは意図的に小さく作られています。MCPバウンダリ、ドメイン分析、証拠処理、境界付き状態が分離されているため、検証ルールをMCPクライアントを起動せずにテストできます。

レイヤー

場所

責務

MCPトランスポートとスキーマ

src/mcp/server.ts, src/index.ts

5つのツールを登録し、標準入出力を介して提供する。

ツールオーケストレーション

src/tools/verification-tools.ts

エージェントがそのまま使えるチャレンジ、検証、監査、証明計画、現実確認のレスポンスを生成する。

証拠モデル

src/core/evidence.ts

来歴、信頼性、極性、抜粋、シークレットのマスクを正規化する。

主張分析

src/core/claim-analysis.ts

ステータス、信頼度、前提、欠落している証明、次のアクションを決定する。

セッション履歴

src/core/state.ts

主張、証拠、試行、結論、未解決の前提の境界付きプロセス内記録を維持する。

テスト

test/ackrite.test.mjs

ドメインロジックと実際のMCP stdioクライアント/サーバー動作を検証する。

Ackriteは、公式のMCP TypeScriptサーバーパッケージとクライアントパッケージを使用してTypeScriptで実装されています。stdioサーバーを公開します。クライアントはAckriteをサブプロセスとして起動し、標準入力と標準出力を介してJSON-RPCメッセージを交換します。これは標準的なMCPトランスポートです。[1] [2]

インストール

AckriteにはNode.js 20以降が必要です。

git clone https://github.com/mshanghai570/Ackrite.git
cd Ackrite
npm install
npm run build

ビルド後、サーバーを直接起動します:

npm start

このプロセスは標準入出力で通信するため、ターミナルで実行するとアイドル状態に見えることがあります。これは想定どおりです。リクエストを提供するのはMCPクライアントです。通常のログは標準出力に出力しないでください。MCP stdioは標準出力をプロトコルメッセージ用に予約しています。[1]

MCPクライアントのセットアップ

まずプロジェクトをビルドし、次にMCPクライアント設定に以下のようなエントリを追加します。/absolute/path/to/Ackrite を、このリポジトリを含むディレクトリに置き換えてください。

{
  "mcpServers": {
    "ackrite": {
      "command": "node",
      "args": ["/absolute/path/to/Ackrite/dist/index.js"]
    }
  }
}

クライアントがパッケージスクリプトの実行をサポートしている場合、同等のコマンドは、リポジトリを作業ディレクトリとする node dist/index.js です。Ackriteはv0.1では資格情報を受け付けず、ネットワーク呼び出しも行いません。

利用可能なツール

5つのツールはすべて読み取り専用として宣言されており、読み取り可能なJSONテキストと構造化コンテンツの両方を返します。オプションの sessionId を受け付けます。関連する調査中は同じ値を使用して、実行中のプロセス内に境界付き履歴を保持してください。

ツール

使用する場面

主な結果

ackrite

エージェントが技術的主張を行い、その主張に異議を唱える必要があるとき。

ステータス、信頼度、裏付け証拠と矛盾証拠、前提、欠落している証明、次のアクション。

verify

主張に対する構造化された証拠台帳が必要なとき。

判明していること、前提とされていること、矛盾していること、欠落していること、そして決定的な実験。

audit

コード変更または実装計画が提案されたとき。

不要な書き換え、スコープ、API契約の前提、セキュリティ上重要な作業、エラー処理の詳細、テストに関する簡潔な所見。

prove_it

主張を立証するために必要な最小限の証拠が欲しいとき。

主張のドメイン固有の証明チェックリストと反証可能な実験。

reality_check

エージェントが行き詰まっていたり、同じことを繰り返していたり、成功を早まって主張していたりする可能性があるとき。

最初に最も重要な推論の失敗を示し、さらに観察された追加リスクを示す。

共有証拠入力

証拠は、構造化されていないコンテキストに埋め込むのではなく、明示的に渡してください。context は背景情報を提供できますが、証明としてはカウントされません。

{
  "type": "http_response",
  "source": "staging request, 2026-08-27",
  "content": "POST /v1/session returned 401 with code AUTH_REQUIRED.",
  "polarity": "contradicts",
  "reliability": 0.9
}

フィールド

必須

説明

type

いいえ

code、log、http_request、http_response、test_result、documentation、observed_behavior、user_fact、inference、other のいずれか。

source

いいえ

テスト名、ログソース、コード位置など、簡潔な来歴ラベル。

content

はい

提供された観察結果、抜粋、結果、または推論。

polarity

いいえ

supports、contradicts、neutral のいずれか。推測を避けるため、デフォルトは neutral。

reliability

いいえ

呼び出し元が評価する 0 から 1 の数値。デフォルトは 0.7。

対話例

根拠のないAPI主張に異議を唱える

主張:「APIはもはやネイティブ認証をサポートしていません。」

{
  "claim": "The API no longer supports native authentication.",
  "evidence": [
    {
      "type": "code",
      "source": "current client",
      "content": "The current client implementation does not obtain credentials.",
      "polarity": "supports"
    },
    {
      "type": "observed_behavior",
      "source": "older working application",
      "content": "The older application successfully signs in.",
      "polarity": "contradicts",
      "reliability": 0.9
    }
  ]
}

Ackriteは CONTRADICTED で応答し、両方の来歴を保持し、クライアントを置き換える前に古い認証フローを調査することを推奨します。ネイティブ認証が存在する、または古いフローが適用可能であると結論付けることはありません。それは提供された証拠を超えることになるからです。

書き換え提案を監査する

{
  "reportedProblem": "Login returns an unexpected response.",
  "proposal": "Rewrite the authentication client to replace the API endpoint integration.",
  "proposedChanges": [
    {
      "path": "src/auth.ts",
      "description": "Rewrite authentication client and route handling."
    },
    {
      "path": "src/theme.ts",
      "description": "Change unrelated color palette."
    }
  ]
}

監査は、書き換えに求められるより高い証拠基準、根拠のないAPI契約の前提、欠落しているテスト計画、そして明らかに無関係なテーマ変更を指摘します。src/auth.ts や src/theme.ts の内容が証拠として提供されない限り、それらを調査したとは主張しません。

繰り返される失敗ループを断ち切る

{
  "sessionId": "auth-investigation",
  "reasoning": "The rewrite will work and the issue is fixed.",
  "attempts": [
    { "approach": "Replace the auth client", "outcome": "Failed with timeout." },
    { "approach": "Replace the auth client", "outcome": "Failed with timeout again." },
    { "approach": "Replace the auth client", "outcome": "Failed with the same timeout." }
  ]
}

主な問題は、同じ戦略を繰り返していることです。Ackriteは、いったん停止し、置き換えが必要に見える原因となっている前提を特定し、同じ介入を再び試みるのではなく、その前提を検証することを推奨します。

信頼性とセキュリティモデル

Ackriteは意図的に保守的です。v0

セッションストアはプロセスローカルかつ上限付きです。最近の主張、証拠、試行、結論、未解決の前提を最大32の名前付きセッションに保持します。各セッションのコレクションには上限があり、最も長期間未使用のセッションから排除され、プロセスが終了するとすべての履歴が失われます。これにより、v0.1 はメモリプラットフォームになることなく、対象を絞った調査に有用であり続けます。

開発

コマンド

目的

npm install

開発用および実行時依存関係をインストールします。

npm run build

TypeScript を dist/ にコンパイルします。

npm run check

出力を生成せずに厳格な TypeScript チェックを実行します。

npm test

ビルド、単体テストの実行、MCP ツールディスカバリの実施、および実際の stdio サブプロセス経由での全ツールの呼び出しを行います。

npm start

コンパイル済みの Ackrite を stdio 経由で起動します。

npm run dev

開発中に TypeScript ソースを監視します。

テストスイートには、主張の分類、矛盾する証拠、裏付けのない主張、秘匿化、上限付き状態、各コアツール、繰り返し発生する失敗、サーバー起動、ツールディスカバリ、MCP プロトコル経由のツール呼び出しに関する正常系および異常系のカバレッジが含まれます。

制限事項

Ackrite の分析は、完全な自律推論システムではなく、決定論的かつエビデンス駆動です。audit ツールは提案の説明をレビューします。これは静的解析ツールではなく、作業ツリーを検査しません。繰り返し戦略の検出は、提供された試行の説明から正規化した用語を使用するため、意味的に同一でも表現が大きく異なる試行はグループ化されない可能性があります。シークレットの秘匿化ルールは一般的なパターンをカバーしますが、すべてのプロプライエタリな認証情報形式を認識できるわけではありません。

Ackrite は v0.1 では stdio のみを使用します。L-Dopa や他の MCP サーバーから独立した状態を保つように設計されています。将来の HTTP トランスポート、永続化レイヤー、またはリポジトリ対応アダプターは、オプトインのままであるべきであり、同じ捏造防止と秘匿化の保証を維持しなければなりません。

ライセンス

Ackrite は MIT ライセンス の下でリリースされています。

参考文献

[1] Model Context Protocol — トランスポート

[2] 公式 Model Context Protocol TypeScript SDK

Available Tools

5 tools
ackriteChallenge a claimA
Read-onlyIdempotent

Classify a technical claim from supplied evidence. Returns support, contradiction, assumptions, missing evidence, and the next action.

ParametersJSON Schema
NameRequiredDescriptionDefault
claimYesThe technical claim to examine.
contextNoBackground context. Context is not treated as evidence by itself.
evidenceNoSupplied evidence only. Ackrite does not invent or fetch evidence.
sessionIdNoOptional bounded in-process session identifier; defaults to 'default'.
expectedBehaviorNoExpected behavior, if relevant.
observedBehaviorNoObserved behavior, if relevant.

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already signal read-only, idempotent, non-destructive behavior, so the description does not need to repeat safety traits. It adds value by promising concrete outputs—support, contradiction, assumptions, missing evidence, and next action—which is useful 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.

Conciseness5/5

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

The description is one front-loaded sentence with no filler; the primary action appears first and the output summary follows. Every clause 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?

Given six parameters and no output schema, the description gives a helpful list of result categories but not their structure or semantics. It leaves the agent to infer how evidence, context, and output fields interrelate, so it is minimally viable but not complete.

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 100%, so the baseline applies; the description does not introduce meaning beyond what the schema already provides. It merely names claim and evidence, which are also documented in the input schema.

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

Purpose4/5

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

The description uses a specific action ('Classify... from supplied evidence') and names the object (technical claim), so the purpose is immediately clear. However, it does not contrast itself with the sibling tools verify, audit, prove_it, and reality_check, so it lacks explicit differentiation.

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?

'From supplied evidence' implies the tool is appropriate when evidence is available and a claim needs classification, but there is no when-not-to-use guidance or mention of alternatives. The boundary against verify/audit/prove_it/reality_check is left entirely to inference.

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

auditAudit a proposed implementationA
Read-onlyIdempotent

Challenge a proposed code change for scope creep, rewrites, contract assumptions, security implications, error handling, and missing validation.

ParametersJSON Schema
NameRequiredDescriptionDefault
evidenceNoEvidence establishing the problem or contract.
proposalYesProposed implementation or change plan.
sessionIdNoOptional bounded in-process session identifier.
proposedChangesNoConcrete, file-level changes to classify.
reportedProblemNoObserved bug or requirement the change is intended to address.

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, and the description does not contradict these. It adds the audit dimensions, which clarifies what the tool evaluates, but it does not disclose broader behavioral traits such as output format, failure modes, or assumptions beyond the listed criteria.

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 dense sentence that front-loads the action and packs the six audit dimensions into a compact list. Every phrase contributes meaningful guidance and nothing is redundant.

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 sufficient to understand the tool's high-level purpose but omits anything about expected output, return value, or how evidence and proposedChanges should be used. Given the tool's complexity and lack of an output schema, some additional context would help an agent call it effectively.

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 100%, so the schema already documents all parameters thoroughly. The description does not add parameter-specific guidance, which is acceptable at the baseline of 3 because no parameter meaning is left undocumented.

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 begins with the specific verb 'Challenge' and the resource 'a proposed code change,' then enumerates the exact audit dimensions (scope creep, rewrites, contract assumptions, security, error handling, validation). This makes the tool's purpose unmistakable and differentiates it from a plain 'verify' or 'prove' tool.

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

Usage Guidelines3/5

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

The description clearly implies this tool is for critically reviewing proposed implementations, but it does not state when to prefer it over siblings like verify, prove_it, or reality_check, nor does it mention when not to use it. Usage context is present but alternatives are not addressed.

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

prove_itPlan the minimum proofA
Read-onlyIdempotent

Define the smallest direct evidence set and experiment required to establish a technical claim without speculation.

ParametersJSON Schema
NameRequiredDescriptionDefault
claimYesThe technical claim to examine.
scopeNoClaim domain; inferred from the claim when omitted.
contextNoBackground context. Context is not treated as evidence by itself.
evidenceNoSupplied evidence only. Ackrite does not invent or fetch evidence.
sessionIdNoOptional bounded in-process session identifier; defaults to 'default'.
expectedBehaviorNoExpected behavior, if relevant.
observedBehaviorNoObserved behavior, if relevant.

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive, and closed-world behavior. The description still adds value by stating the output is deliberately minimal ('smallest...direct') and excludes speculation, which clarifies that the tool will not invent evidence or padded plans. No contradiction.

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?

Single sentence, grammatically tight, with the key constraints front-loaded and no filler. Every word 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?

For a tool with seven parameters and no output schema, the description captures the high-level purpose but leaves out what the returned proof plan actually contains and how optional evidence/context influence the output. The title and schema help, but the description alone is not fully sufficient.

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?

All parameters have schema descriptions (100% coverage), so the baseline applies. The description itself adds no parameter-level details; it only states the overall goal, which the schema already encodes.

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 uses a specific verb ('Define') and a concrete object ('smallest direct evidence set and experiment') tied to 'technical claim,' so an agent can identify the core action. It does not explicitly distinguish prove_it from the sibling tools, so it stops short of 5.

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

Usage Guidelines3/5

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

The phrase 'required to establish a technical claim' implies the tool is for planning proof rather than executing verification, but it gives no explicit when-to-use/when-not-to-use guidance and names no alternative sibling such as verify, audit, or reality_check. This is implied usage at best.

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

reality_checkSanity-check current reasoningA
Read-onlyIdempotent

Detect repeated failed strategies, contradictions, unsupported conclusions, untested success claims, and premature rewrites from supplied reasoning and session history.

ParametersJSON Schema
NameRequiredDescriptionDefault
attemptsNoNew attempts to add to session history.
evidenceNoEvidence relevant to the current reasoning.
reasoningNoCurrent reasoning or status update to inspect.
sessionIdNoOptional bounded in-process session identifier.

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds value beyond these by naming the categories of failure the tool inspects, giving the agent a concrete sense of what the tool evaluates. It does not contradict 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.

Conciseness5/5

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

A single dense sentence front-loads the tool's purpose and enumerates its detection targets without wasted words. It is appropriately sized for a tool whose parameters are already documented in the schema.

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 understanding what the tool inspects, and the schema covers all parameters clearly. However, with no output schema, the description does not explicitly state what the tool returns (e.g., a list of findings, a pass/fail result), which is a notable gap for an agent deciding how to use the result.

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 100%, with each parameter already documented meaningfully (attempts, evidence, reasoning, sessionId). The description adds minimal parameter-specific detail, but because the schema carries the burden, no further compensation is needed. Baseline 3 is appropriate.

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 opens with a specific verb ('Detect') and enumerates the exact pathologies it looks for: repeated failed strategies, contradictions, unsupported conclusions, untested success claims, and premature rewrites. This clearly states the resource being analyzed (reasoning and session history). It does not explicitly distinguish itself from the sibling analysis tools, but its function is unique enough to be identifiable.

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 implies when to use the tool by referencing 'supplied reasoning and session history', which tells the agent what input should accompany the call. However, it offers no explicit guidance on when not to use it or what alternatives like ackrite, verify, audit, or prove_it are better suited for.

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

verifyVerify a claimB
Read-onlyIdempotent

Separate what is known, assumed, supported, contradicted, and still unverified, then propose a decisive experiment.

ParametersJSON Schema
NameRequiredDescriptionDefault
claimYesThe technical claim to examine.
contextNoBackground context. Context is not treated as evidence by itself.
evidenceNoSupplied evidence only. Ackrite does not invent or fetch evidence.
sessionIdNoOptional bounded in-process session identifier; defaults to 'default'.
expectedBehaviorNoExpected behavior, if relevant.
observedBehaviorNoObserved behavior, if relevant.

TDQS

B3.1/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, covering the safety profile. The description adds the behavioral detail that the tool categorizes evidence and proposes an experiment, which is beyond annotations. However, it does not disclose what happens if no evidence is supplied, or whether the proposed experiment is actionable output or just advice. With annotations handling safety, a 3 is appropriate – the description adds some process context but not deep behavioral nuance.

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

Conciseness4/5

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

The description is a single, efficient sentence that front-loads the core purpose. No wasted words, and it conveys the two main phases (categorization and proposal). It is slightly abstract but structurally sound. Loses a point for not being more concrete about the tool's operation.

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?

For a tool with 6 parameters, a nested evidence array, and no output schema, the description is too high-level. It does not explain how an agent should structure input, what kind of 'decisive experiment' is produced, or what the return value looks like. The schema covers parameters, but the overall workflow and expected output remain ambiguous. An agent would struggle to know what to pass beyond the required claim and how to interpret the result.

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 100%, with each parameter having its own description (e.g., 'claim' described as 'The technical claim to examine'). The tool description adds no parameter-specific details, leaving the schema to carry all parameter semantics. Baseline 3 is correct since the schema fully documents inputs and the description does not contradict or supplement it.

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 tool's action: separating claim-related information into categories and proposing a decisive experiment. The verb 'Separate' combined with 'propose' gives a precise enough purpose. It does not explicitly contrast with sibling tools like ackrite or reality_check, but the title 'Verify a claim' reinforces the intent. Scores 4 rather than 5 because the description could be more explicit about the tool's primary function being analysis of a claim rather than external verification.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus its siblings (ackrite, audit, prove_it, reality_check). It does not mention prerequisites, alternative tools, or scenarios where verification should be attempted via other means. The only implicit usage context is the word 'verify', but that is weak and does not help an agent choose among similar tools.

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. 5 tool updatesv0.1.0
    • First observedackrite
    • First observedaudit
    • First observedprove_it
    • First observedreality_check
    • First observedverify

TDQS

B3.3/5.0

Scored across 5 tools

Disambiguation2/5

ackrite, verify, and prove_it all focus on classifying evidence and determining support/contradiction for technical claims, making their boundaries unclear. reality_check also overlaps by detecting contradictions and unsupported conclusions, leaving audit as the only clearly distinct tool.

Naming Consistency2/5

Tool names use a mix of single-word verbs (verify, audit), an underscored phrase (prove_it), a slang term (ackrite), and a compound noun (reality_check). No consistent verb_noun or naming convention is followed.

Tool Count4/5

Five tools is a reasonable number for the server's apparent scope, and none feel truly redundant on count alone. However, the heavy conceptual overlap means a few tools could potentially be consolidated.

Completeness4/5

The set covers claim classification, evidence verification, code change auditing, proof design, and reasoning pattern analysis, which is fairly comprehensive for a technical-decision support domain. Minor gaps like explicit tracking of evolving assumptions exist, but core workflows are covered.

Maintenance

ActivitySlowing
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables agents to verify their own output mid-task by checking every claim against provided sources, returning supported, partial, unsupported, or contradicted verdicts with exact citations.
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables AI agents to verify claims deterministically by computing arithmetic, ratios, and dates and matching statements against provided sources, returning a confidence ladder of certain, source-backed, or unverifiable.
    MIT