Ackrite
Ackrite
ACKRITE. PROVE IT.
AI 에이전트가 행동하기 전에 자신의 가정을 증명하도록 만드는 MCP 서버.
Ackrite는 AI 에이전트를 위한 검증 유틸리티입니다. 모든 문제를 해결하려 하지 않고, 편리한 답을 찾아 검색하거나 입증 자료를 지어내지 않습니다. 대신 제공된 증거만 사용하여 에이전트의 기술적 주장을 검증하고, 사실과 가설을 구분하며, 빠진 증거를 식별하고, 문제를 해결할 수 있는 가장 작은 다음 검사를 권장합니다.
그 목적은 익숙한 실패 패턴을 방지하는 것입니다. 에이전트가 오류를 보고 원인을 추정한 뒤 자신 있게 시스템의 절반을 다시 작성하고, 그제서야 그 가정이 틀렸음을 발견하는 패턴입니다. Ackrite는 에이전트가 증거, 목표 지향적 실험, 범위가 제한된 변경, 명시적인 불확실성으로 나아가도록 유도합니다.
Ackrite가 하는 일 | Ackrite가 하지 않는 일 |
제공된 증거로부터 주장 분류 | 제공되지 않은 증거를 지어내거나 가져오거나 암시하지 않음 |
모순과 근거 없은 가정 감지 | 추론을 사실로 제시하지 않음 |
구현 전 재작성과 범위 확대 검증 | 코드 변경을 적용하거나 외부 시스템을 호출하지 않음 |
제한된 프로세스 내 검증 기록 추적 | 대규모 메모리 시스템을 유지하거나 L-Dopa에 의존하지 않음 |
진단 출력에서 일반적인 비밀값 편집 | 모든 사용자 정의 자격 증명 형식에 대한 완벽한 비밀값 탐지를 보장하지 않음 |
Wait, let me redo that table properly.
Ackrite가 하는 일 | Ackrite가 하지 않는 일 |
제공된 증거로부터 주장 분류 | 제공되지 않은 증거를 지어내거나 가져오거나 암시하지 않음 |
모순과 근거 없는 가정 감지 | 추론을 사실로 제시하지 않음 |
구현 전 재작성과 범위 확대 검증 | 코드 변경을 적용하거나 외부 시스템을 호출하지 않음 |
제한된 프로세스 내 검증 기록 추적 | 대규모 메모리 시스템을 유지하거나 L-Dopa에 의존하지 않음 |
진단 출력에서 일반적인 비밀값 편집 | 모든 사용자 정의 자격 증명 형식에 대한 완벽한 비밀값 탐지를 보장하지 않음 |
존재 이유
에이전트의 확신은 증거가 아닙니다. “API가 네이티브 인증을 제거했다”와 같은 주장은 종종 유용한 가설이지만, 확립된 사실로 취급되어 재작성을 정당화하는 데 사용되면 위험해집니다. Ackrite는 네 가지 좁은 질문을 던집니다.
제공된 증거가 실제로 입증하는 것은 무엇인가?
주장을 반박하는 것은 무엇인가? (있다면)
어떤 가정이 핵심 역할을 하는가?
다음에 실행할 가장 작은 경험적 검사는 무엇인가?
결과는 에이전트의 컨텍스트 창에 직접 다시 넣을 수 있을 만큼 의도적으로 간결합니다.
Related MCP server: footnote
주장 상태
Ackrite는 의도적으로 보수적인 분류 모델을 사용합니다.
상태 | 의미 | 증거 기준 |
| 직접적이고 신뢰도가 높은 제공 증거가 주장을 뒷받친다. | 신뢰도가 높은 직접 항목이 하나 이상, 예를 들어 목표 지향적 테스트 결과, HTTP 응답, 관찰된 동작, 사용자 제공 사실. |
| 직접 제공된 증거가 주장을 뒷받치지만 범위나 신뢰도가 제한적이다. | 자격을 갖춘 높은 신뢰도 항목 없이 직접적인 뒷받침 증거. |
| 주장이 사실일 수 있지만 자료가 간접적이거나 중립적이거나 추론된 것이다. | 중립적 증거 또는 추론만. |
| 주장을 확립하는 제공된 뒷받침 증거가 없다. | 관련 증거 없음. |
| 제공된 증거 항목 중 하나 이상이 주장과 모순된다. | 모순이 해소될 때까지 모순이 우선한다. |
기본 규칙: Ackrite는 추론을 결코 사실로 격상시키지 않습니다. 대신 관찰과 결론 사이의 경계를 표시합니다.
아키텍처
Ackrite는 의도적으로 작게 설계되었습니다. MCP 경계, 도메인 분석, 증거 처리, 제한된 상태가 분리되어 있어 실행 중인 MCP 클라이언트 없이도 검증 규칙을 테스트할 수 있습니다.
계층 | 위치 | 책임 |
MCP 전송 및 스키마 |
| 다섯 개 도구를 등록하고 표준 입력/출력으로 제공한다. |
도구 오케스트레이션 |
| 에이전트가 바로 사용할 수 있는 도전, 검증, 감사, 증명 계획, 현실 점검 응답을 생성한다. |
증거 모델 |
| 출처, 신뢰도, 극성, 발췌문, 비밀값 편집을 정규화한다. |
주장 분석 |
| 상태, 신뢰 수준, 가정, 빠진 증거, 다음 행동을 결정한다. |
세션 기록 |
| 주장, 증거, 시도, 결론, 해결되지 않은 가정에 대한 제한된 프로세스 내 기록을 유지한다. |
테스트 |
| 도메인 로직과 실제 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를 받으며, 관련 조사 중에는 같은 값을 사용하여 실행 중인 프로세스 내에서 제한된 기록을 유지하세요.
도구 | 사용 시점 | 주요 결과 |
| 에이전트가 기술적 주장을 하고 검증을 받아야 할 때. | 상태, 신뢰 수준, 뒷받침 및 반박 증거, 가정, 빠진 증거, 다음 행동. |
| 주장에 대한 구조화된 증거 원장이 필요할 때. | 알려진 것, 가정된 것, 반박된 것, 빠진 것, 결정적 실험. |
| 코드 변경이나 구현 계획이 제안되었을 때. | 불필요한 재작성, 범위, API 계약 가정, 보안 민감 작업, 오류 처리 세부 사항, 테스트에 대한 간결한 발견 사항. |
| 주장을 확립하는 데 필요한 최소 증거를 원할 때. | 주장 도메인별 증명 체크리스트와 반증 가능한 실험. |
| 에이전트가 막혀 있거나, 같은 말을 반복하거나, 너무 일찍 성공을 주장할 수 있을 때. | 가장 중요한 추론 실패를 먼저 제시하고, 추가로 관찰된 위험. |
공통 증거 입력
증거는 구조화되지 않은 컨텍스트에 포함시키지 말고 명시적으로 전달하세요. 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
}필드 | 필수 | 설명 |
| 아니요 |
|
| 아니요 | 테스트 이름, 로그 소스, 코드 위치와 같은 간결한 출처 표시. |
| 예 | 제공된 관찰, 발췌문, 결과 또는 추론. |
| 아니요 |
|
| 아니요 | 호출자가 평가한 |
예시 상호작용
뒷받침되지 않는 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 키 필드를 포함한 일반적인 자격 증명 패턴을 편집합니다. 이는 심층 방어이지 실제 비밀값을 보내도 된다는 허락이 아닙니다. 진단 도구에 프로덕션 자격 증명을 제출하지 마세요.
세션 저장소는 프로세스 로컬이며 제한적입니다. 최대 32개의 명명된 세션에 대해 최근의 주장, 증거, 시도, 결론 및 미해결 가정을 보유합니다. 각 세션별 컬렉션에는 상한이 있고, 가장 오래 전에 사용된 세션은 축출되며, 프로세스가 종료되면 모든 기록이 손실됩니다. 이는 v0.1이 메모리 플랫폼이 되지 않으면서 집중적인 조사에 유용하게 유지되도록 합니다.
개발
명령 | 목적 |
| 개발 및 런타임 의존성을 설치합니다. |
| TypeScript를 |
| 출력을 생성하지 않고 엄격한 TypeScript 검사를 실행합니다. |
| 빌드하고, 단위 테스트를 실행하고, MCP 도구 검색을 수행하고, 실제 stdio 하위 프로세스를 통해 모든 도구를 호출합니다. |
| 컴파일된 Ackrite를 stdio로 시작합니다. |
| 개발 중 TypeScript 소스를 감시합니다. |
테스트 스위트에는 주장 분류, 모순된 증거, 뒷받침되지 않는 주장, 마스킹, 제한된 상태, 각 핵심 도구, 반복 실패, 서버 시작, 도구 검색, MCP 프로토콜을 통한 도구 호출에 대한 긍정 및 부정 커버리지가 포함됩니다.
제한 사항
Ackrite의 분석은 완전한 자율 추론 시스템이라기보다 결정론적이고 증거 기반입니다. audit 도구는 제안의 설명을 검토합니다. 이는 정적 분석기가 아니며 작업 트리를 검사하지 않습니다. 반복 전략 감지는 제공된 시도 설명에서 정규화된 용어를 사용하므로, 의미적으로 동일하지만 표현이 매우 다른 시도는 그룹화되지 않을 수 있습니다. 비밀 정보 마스킹 규칙은 일반적인 패턴을 다루지만 모든 독점 자격 증명 형식을 인식할 수는 없습니다.
Ackrite는 v0.1에서 stdio만 사용합니다. L-Dopa 및 다른 MCP 서버와 독립적으로 유지되도록 설계되었습니다. 향후 HTTP 전송, 영속성 계층 또는 저장소 인식 어댑터는 옵트인 방식으로 유지되어야 하며 동일한 무날조 및 마스킹 보장을 유지해야 합니다.
라이선스
Ackrite는 MIT License에 따라 배포됩니다.
참조
Available Tools
5 toolsackriteChallenge a claimARead-onlyIdempotent
Classify a technical claim from supplied evidence. Returns support, contradiction, assumptions, missing evidence, and the next action.
| Name | Required | Description | Default |
|---|---|---|---|
| claim | Yes | The technical claim to examine. | |
| context | No | Background context. Context is not treated as evidence by itself. | |
| evidence | No | Supplied evidence only. Ackrite does not invent or fetch evidence. | |
| sessionId | No | Optional bounded in-process session identifier; defaults to 'default'. | |
| expectedBehavior | No | Expected behavior, if relevant. | |
| observedBehavior | No | Observed behavior, if relevant. |
TDQS
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.
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.
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.
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.
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.
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 implementationARead-onlyIdempotent
Challenge a proposed code change for scope creep, rewrites, contract assumptions, security implications, error handling, and missing validation.
| Name | Required | Description | Default |
|---|---|---|---|
| evidence | No | Evidence establishing the problem or contract. | |
| proposal | Yes | Proposed implementation or change plan. | |
| sessionId | No | Optional bounded in-process session identifier. | |
| proposedChanges | No | Concrete, file-level changes to classify. | |
| reportedProblem | No | Observed bug or requirement the change is intended to address. |
TDQS
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.
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.
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.
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.
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.
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 proofARead-onlyIdempotent
Define the smallest direct evidence set and experiment required to establish a technical claim without speculation.
| Name | Required | Description | Default |
|---|---|---|---|
| claim | Yes | The technical claim to examine. | |
| scope | No | Claim domain; inferred from the claim when omitted. | |
| context | No | Background context. Context is not treated as evidence by itself. | |
| evidence | No | Supplied evidence only. Ackrite does not invent or fetch evidence. | |
| sessionId | No | Optional bounded in-process session identifier; defaults to 'default'. | |
| expectedBehavior | No | Expected behavior, if relevant. | |
| observedBehavior | No | Observed behavior, if relevant. |
TDQS
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.
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.
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.
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.
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.
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 reasoningARead-onlyIdempotent
Detect repeated failed strategies, contradictions, unsupported conclusions, untested success claims, and premature rewrites from supplied reasoning and session history.
| Name | Required | Description | Default |
|---|---|---|---|
| attempts | No | New attempts to add to session history. | |
| evidence | No | Evidence relevant to the current reasoning. | |
| reasoning | No | Current reasoning or status update to inspect. | |
| sessionId | No | Optional bounded in-process session identifier. |
TDQS
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.
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.
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.
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.
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.
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 claimBRead-onlyIdempotent
Separate what is known, assumed, supported, contradicted, and still unverified, then propose a decisive experiment.
| Name | Required | Description | Default |
|---|---|---|---|
| claim | Yes | The technical claim to examine. | |
| context | No | Background context. Context is not treated as evidence by itself. | |
| evidence | No | Supplied evidence only. Ackrite does not invent or fetch evidence. | |
| sessionId | No | Optional bounded in-process session identifier; defaults to 'default'. | |
| expectedBehavior | No | Expected behavior, if relevant. | |
| observedBehavior | No | Observed behavior, if relevant. |
TDQS
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.
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.
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.
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.
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.
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.
5 tool updates
v0.1.0- First observed
ackrite - First observed
audit - First observed
prove_it - First observed
reality_check - First observed
verify
TDQS
Scored across 5 tools
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.
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.
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.
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
Related MCP Connectors
MERCATOR Verify: evidence-backed verification and decision support for autonomous agents.
Evidence-backed x402 web verification for AI agents, with auditable decisions for every condition.
Deterministic fact verification for AI agents — checksums & curated data, not guesses.
Real-time fact-check, citation verification, and source-freshness for AI agents.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceEnables agents to verify claims with evidence-based truth scores and confidence levels by running a deterministic pipeline of evidence lanes and adversarial checks.26MIT
- AlicenseNot gradedqualityBmaintenanceEnables 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
- AlicenseNot gradedqualityBmaintenanceEnables 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
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to run evidence QC gates mid-workflow—checking claims, sources, prose, and vault hygiene deterministically before research ships.MIT