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: Veritas MCP

断言状态

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

取值可以是 codeloghttp_requesthttp_responsetest_resultdocumentationobserved_behavioruser_factinferenceother

source

一个简洁的来源标签,例如测试名称、日志来源或代码位置。

content

所提供的观察、摘录、结果或推断。

polarity

supportscontradictsneutral;默认为 neutral,以避免猜测。

reliability

调用方评估的数字,范围为 01;默认为 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.tssrc/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

Install Server
A
license - permissive license
B
quality
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    Universal Search-First Knowledge Acquisition Plugin for LLMs. Enables real-time web search and deep page browsing via MCP or CLI. Zero-cost, privacy-first, supports DuckDuckGo, Bing, Google, Brave, Wikipedia, Arxiv, YouTube, Reddit and more.
    2
    13
    16
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables AI agents to conduct evidence-grounded forensic triage of compromised hosts, with architectural safeguards against evidence spoliation and hallucinated findings, supporting self-correction and chain of custody.
    MIT
  • 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

View all related MCP servers

Related MCP Connectors

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/mshanghai570/Ackrite'

If you have feedback or need assistance with the MCP directory API, please join our Discord server