Skip to main content
Glama

Ackrite

ACKRITE. 证明它。

一个 MCP 服务器,让 AI 代理在依据其假设采取行动之前先证明这些假设。

Ackrite 是一个专注于验证的 AI 代理工具。它不会试图解决所有问题、搜索现成答案或编造佐证。相反,它仅使用提供给它的证据来挑战代理的技术断言,区分事实与假说,识别缺失的证明,并推荐能够了结该问题的最小下一步检查。

它的目的是防止一种常见的失败模式:代理看到一个错误,臆断原因,自信地重写系统的一半,然后才发现假设是错误的。Ackrite 推动代理走向证据、有针对性的实验、有范围的变更和明确的不确定性。

Ackrite 所做的

Ackrite 不会做的

根据提供的证据对断言进行分类

捏造、获取或暗示它未被给予的证据

检测矛盾与缺乏支持的假设

将推断当作事实呈现

在实施前挑战重写和范围蔓延

应用代码变更或调用外部系统

跟踪有界的进程内验证历史

持久化大型记忆系统或依赖 L-Dopa

从诊断输出中对常见机密进行脱敏

保证对每种自定义凭据格式都能做到完美的机密检测

为什么存在

代理的自信不是证据。诸如“API 移除了原生身份验证”这样的断言通常是一个有用的假说,但当它被当作既定事实并用来证明重写合理时,就会变得危险。Ackrite 会提出四个聚焦的问题:

  1. 所提供的证据实际上证明了什么?

  2. 有何与断言相矛盾之处?(如果有的话)

  3. 是哪个假设在起作用?

  4. 接下来要运行的最小实证检查是什么?

结果刻意保持简洁,足以直接放回代理的上下文窗口中。

Related MCP server: footnote

断言状态

Ackrite 使用一种刻意保守的分类模型。

状态

含义

证据门槛

KNOWN

直接且高可靠性的已提供证据支持该断言。

至少一个高可靠性的直接项目,例如聚焦的测试结果、HTTP 响应、观察到的行为或用户提供的事实。

SUPPORTED

已提供的直接证据支持该断言,但范围或可靠性仍然有限。

没有合格高可靠性项目的直接支持性证据。

PLAUSIBLE

该断言可能属实,但材料是间接、中立或推断性的。

仅限中立证据或推断。

UNVERIFIED

没有已提供的支持性证据能够确立该断言。

没有相关证据。

CONTRADICTED

至少有一条已提供的证据与该断言相矛盾。

矛盾在得到调和之前具有优先权。

根本规则: Ackrite 从不把推断升级为事实。它只标注观察与结论之间的边界。

架构

Ackrite 刻意保持小巧。MCP 边界、领域分析、证据处理和有限状态彼此分离,这样无需运行 MCP 客户端就能测试验证规则。

层

位置

职责

MCP 传输与模式

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

注册五个工具并通过标准输入/输出提供服务。

工具编排

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 中不接收任何凭据,也不发起任何网络调用。

可用工具

所有五个工具都被声明为只读,并同时返回可读的 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.1 中,它不执行仓库扫描、HTTP 请求、外部文档查询、代码执行或自主修复。每个结论都包含来源信息,将其限定在调用方提供的材料内。证据缺失是一个结果,而不是需要掩盖的错误。

服务器在返回诊断文本之前,会对常见的凭据模式进行脱敏,包括 bearer/basic 授权值、类似密码的赋值、常见令牌前缀、查询字符串键和 API 密钥字段。这是纵深防御——而不是允许发送真实机密。不要将生产凭据提交给诊断工具。

The session store is process-local and bounded: it retains recent claims, evidence, attempts, conclusions, and unresolved assumptions for up to 32 named sessions. Each per-session collection is capped, least-recently-used sessions are evicted, and all history is lost when the process exits. This keeps v0.1 useful for a focused investigation without becoming a memory platform.

Development

命令

用途

npm install

安装开发与运行时依赖。

npm run build

将 TypeScript 编译到 dist/ 目录。

npm run check

运行严格的 TypeScript 检查,不生成任何输出。

npm test

构建、运行单元测试、执行 MCP 工具发现,并通过真实的 stdio 子进程调用每个工具。

npm start

通过 stdio 启动编译后的 Ackrite。

npm run dev

开发期间监听 TypeScript 源码。

测试套件对声明分类、矛盾证据、无支撑的声明、脱敏、有界状态、每个核心工具、重复失败、服务器启动、工具发现以及通过 MCP 协议进行的工具调用,均提供了正向与负向覆盖。

Limitations

Ackrite 的分析是确定性且由证据驱动的,而不是一个完整的自主推理系统。audit 工具审查的是提案的描述;它不是静态分析器,也不会检查工作树。重复策略检测使用来自所提供尝试描述的规范化术语,因此语义相同但措辞差异很大的尝试可能不会被归为一组。秘密脱敏规则覆盖常见模式,但无法识别每一种专有凭据格式。

Ackrite 在 v0.1 中仅使用 stdio。它被设计为独立于 L-Dopa 和其他 MCP 服务器。未来的 HTTP 传输、持久化层或感知仓库的适配器都应保持可选启用,并且必须保留相同的不捏造与脱敏保证。

License

Ackrite 根据 MIT 许可证 发布。

References

[1] Model Context Protocol — Transports

[2] Official 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