Ackrite
Ackrite
ACKRITE. DEMUÉSTRALO.
Un servidor MCP que hace que los agentes de IA demuestren sus suposiciones antes de actuar según ellas.
Ackrite es una utilidad de verificación centrada para agentes de IA. No intenta resolver todos los problemas, buscar respuestas convenientes ni inventar corroboraciones. En cambio, cuestiona una afirmación técnica del agente usando solo la evidencia que se le ha proporcionado, distingue hechos de hipótesis, identifica la prueba que falta y recomienda la comprobación más pequeña que pueda resolver la cuestión.
Su propósito es prevenir un modo de fallo habitual: un agente ve un error, supone la causa, reescribe con confianza la mitad del sistema y solo entonces descubre que la suposición era errónea. Ackrite empuja al agente hacia la evidencia, experimentos específicos, cambios acotados e incertidumbre explícita.
Ackrite hace | Ackrite no hace |
Clasifica afirmaciones a partir de la evidencia proporcionada | Inventa, obtiene o implica evidencia que no se le ha dado |
Detecta contradicciones y suposiciones sin respaldo | Presenta una inferencia como un hecho |
Cuestiona reescrituras y la expansión del alcance antes de la implementación | Aplica cambios de código o llama a sistemas externos |
Mantiene un historial de verificación acotado dentro del proceso | Persiste un gran sistema de memoria o depende de L-Dopa |
Enmascara secretos comunes de la salida de diagnóstico | Garantiza la detección perfecta de secretos para cada formato de credencial personalizado |
Por qué existe
La confianza de un agente no es evidencia. Una afirmación como «la API eliminó la autenticación nativa» suele ser una hipótesis útil, pero se vuelve peligrosa cuando se trata como un hecho establecido y se usa para justificar una reescritura. Ackrite plantea cuatro preguntas concretas:
¿Qué establece realmente la evidencia proporcionada?
¿Qué contradice la afirmación, si es que algo la contradice?
¿Qué suposición está haciendo el trabajo?
¿Cuál es la comprobación empírica más pequeña que se debe ejecutar a continuación?
El resultado es deliberadamente conciso para poder volver a colocarlo directamente en la ventana de contexto del agente.
Related MCP server: footnote
Estados de las afirmaciones
Ackrite utiliza un modelo de clasificación deliberadamente conservador.
Estado | Significado | Umbral de evidencia |
| La evidencia directa proporcionada de alta fiabilidad respalda la afirmación. | Al menos un elemento directo de alta fiabilidad, como un resultado de prueba específico, una respuesta HTTP, un comportamiento observado o un hecho proporcionado por el usuario. |
| La evidencia directa proporcionada respalda la afirmación, pero sigue siendo limitada en alcance o fiabilidad. | Evidencia directa de apoyo sin un elemento de alta fiabilidad que la cualifique. |
| La afirmación puede ser cierta, pero el material es indirecto, neutral o inferido. | Solo evidencia neutral o inferencia. |
| Ninguna evidencia de apoyo proporcionada establece la afirmación. | No hay evidencia relevante. |
| Al menos un elemento de evidencia proporcionado contradice la afirmación. | La contradicción tiene prioridad hasta que se reconcilie. |
Regla fundamental: Ackrite nunca convierte una inferencia en un hecho. En su lugar, señala el límite entre la observación y la conclusión.
Arquitectura
Ackrite es intencionadamente pequeño. La frontera MCP, el análisis de dominio, el manejo de evidencia y el estado acotado son independientes para que las reglas de verificación puedan probarse sin un cliente MCP en ejecución.
Capa | Ubicación | Responsabilidad |
Transporte y esquemas MCP |
| Registra cinco herramientas y las sirve a través de la entrada/salida estándar. |
Orquestación de herramientas |
| Produce respuestas listas para el agente: desafío, verificación, auditoría, plan de prueba y comprobación de la realidad. |
Modelo de evidencia |
| Normaliza la procedencia, la fiabilidad, la polaridad, los extractos y el enmascaramiento de secretos. |
Análisis de afirmaciones |
| Determina el estado, la confianza, las suposiciones, la prueba que falta y la siguiente acción. |
Historial de sesión |
| Mantiene un registro acotado en el proceso de afirmaciones, evidencia, intentos, conclusiones y suposiciones no resueltas. |
Pruebas |
| Ejercita la lógica de dominio y el comportamiento real del cliente/servidor stdio de MCP. |
Ackrite está implementado en TypeScript utilizando los paquetes oficiales de servidor y cliente MCP para TypeScript. Expone un servidor stdio: un cliente inicia Ackrite como subproceso e intercambia mensajes JSON-RPC a través de la entrada y salida estándar, que es un transporte MCP estándar. [1] [2]
Instalación
Ackrite requiere Node.js 20 o posterior.
git clone https://github.com/mshanghai570/Ackrite.git
cd Ackrite
npm install
npm run buildInicie el servidor directamente después de compilar:
npm startEl proceso se comunica a través de la entrada/salida estándar, por lo que puede parecer inactivo al ejecutarse en un terminal. Esto es lo esperado: su cliente MCP proporciona las solicitudes. Mantenga los registros normales fuera de la salida estándar; MCP stdio la reserva para los mensajes de protocolo. [1]
Configuración del cliente MCP
Compile primero el proyecto y luego añada una entrada como la siguiente a la configuración de su cliente MCP. Reemplace /absolute/path/to/Ackrite por el directorio que contiene este repositorio.
{
"mcpServers": {
"ackrite": {
"command": "node",
"args": ["/absolute/path/to/Ackrite/dist/index.js"]
}
}
}Si su cliente admite la ejecución de scripts del paquete, el comando equivalente es node dist/index.js con el repositorio como directorio de trabajo. Ackrite no acepta credenciales ni realiza llamadas de red en v0.1.
Herramientas disponibles
Las cinco herramientas se declaran de solo lectura y devuelven tanto texto JSON legible como contenido estructurado. Aceptan un sessionId opcional; use el mismo valor durante una investigación relacionada para conservar el historial acotado dentro del proceso en ejecución.
Herramienta | Úsela cuando | Resultado principal |
| Un agente hace una afirmación técnica y necesita ser cuestionado. | Estado, confianza, evidencia que respalda y contradice, suposiciones, prueba que falta y siguiente acción. |
| Necesita un registro de evidencia estructurado para una afirmación. | Lo que se sabe, lo que se asume, lo que se contradice, lo que falta y el experimento decisivo. |
| Se propone un cambio de código o un plan de implementación. | Hallazgos concisos sobre reescrituras innecesarias, alcance, suposiciones de contrato de API, trabajo sensible a la seguridad, detalle del manejo de errores y pruebas. |
| Quiere la evidencia mínima necesaria para establecer una afirmación. | Una lista de verificación de prueba específica del dominio de la afirmación y un experimento falsable. |
| Un agente puede estar atascado, repitiéndose o afirmando un éxito demasiado pronto. | El fallo de razonamiento más importante primero, además de riesgos observados adicionales. |
Entrada de evidencia compartida
Pase la evidencia explícitamente en lugar de incrustarla en un contexto no estructurado. context puede proporcionar información de fondo, pero no se cuenta como prueba.
{
"type": "http_response",
"source": "staging request, 2026-08-27",
"content": "POST /v1/session returned 401 with code AUTH_REQUIRED.",
"polarity": "contradicts",
"reliability": 0.9
}Campo | Requerido | Descripción |
| No | Uno de |
| No | Una etiqueta de procedencia concisa, como un nombre de prueba, una fuente de registro o una ubicación de código. |
| Sí | La observación, el extracto, el resultado o la inferencia proporcionados. |
| No |
|
| No | Número evaluado por quien llama de |
Ejemplos de interacción
Cuestionar una afirmación de API sin respaldo
Afirmación: «La API ya no admite la autenticación nativa.»
{
"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 responde con CONTRADICTED, conserva ambas procedencias y recomienda inspeccionar el flujo de autenticación antiguo antes de reemplazar el cliente. No concluye que la autenticación nativa exista ni que el flujo antiguo sea aplicable; eso excedería la evidencia proporcionada.
Auditar una propuesta de reescritura
{
"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."
}
]
}La auditoría señala el mayor nivel de evidencia exigido por la reescritura, la suposición de contrato de API sin respaldo, la falta de un plan de pruebas y el cambio de tema aparentemente no relacionado. No afirma haber inspeccionado src/auth.ts ni src/theme.ts a menos que su contenido se haya proporcionado como evidencia.
Romper un bucle de fallos repetidos
{
"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." }
]
}El problema principal es una estrategia repetida. Ackrite recomienda detenerse, identificar la suposición que hace que el reemplazo parezca necesario y verificar esa suposición en lugar de intentar la misma intervención otra vez.
Modelo de fiabilidad y seguridad
Ackrite es deliberadamente conservador. En v0.1 no realiza escaneo de repositorios, solicitudes HTTP, consultas de documentación externa, ejecución de código ni reparación autónoma. Cada conclusión incluye la procedencia que la limita al material proporcionado por quien llama. La evidencia que falta es un resultado, no un error que ocultar.
El servidor enmascara los patrones comunes de credenciales antes de devolver el texto de diagnóstico, incluidos los valores de autorización bearer/basic, asignaciones similares a contraseñas, prefijos de token comunes, claves de cadena de consulta y campos de clave de API. Esto es defensa en profundidad, no un permiso para enviar secretos reales. No envíe credenciales de producción a las herramientas de diagnóstico.
El almacén de sesiones es local al proceso y limitado: conserva las afirmaciones, la evidencia, los intentos, las conclusiones y las suposiciones sin resolver recientes para un máximo de 32 sesiones con nombre. Cada colección por sesión está limitada, las sesiones usadas hace más tiempo se expulsan y todo el historial se pierde cuando el proceso termina. Esto mantiene v0.1 útil para una investigación centrada sin convertirse en una plataforma de memoria.
Desarrollo
Command | Purpose |
| Instalar las dependencias de desarrolo y de ejecución. |
| Compilar TypeScript a |
| Ejecutar una comprobación estricta de TypeScript sin generar salida. |
| Compilar, ejecutar pruebas unitarias, poner a prueba el descubrimiento de herramientas MCP e invocar cada herramienta mediante un subproceso stdio real. |
| Iniciar Ackrite compilado mediante stdio. |
| Observar los archivos fuent de TypeScript durante el desarrolo. |
El conjunto de pruebas incluye cobertura positiva y negativa para la clasificación de afirmaciones, evidencia contradictoria, afirmaciones no respaldadas, redacción, estado limitado, cada herramienta principal, fallos repetidos, inicio del servidor, descubrimiento de herramientas y llamadas a herramientas a través del protocolo MCP.
Limitaciones
El análisis de Ackrite es determinista y está basado en la evidencia, en lugar de ser un sistema completo de razonamiento autónomo. La herramienta audit revisa descripciones de una propuesta; no es un analizador estático y no inspecciona un árbol de trabajo. La detección de estrategias repetidas utiliza términos normalizados de las descripciones de intentos proporcionadas, por lo que intentos semánticamente idénticos pero con una redacción muy diferente pueden no agruparse. Las reglas de redacción de secretos cubren patrones comunes, pero no pueden reconocer todos los formatos propietarios de credenciales.
Ackrite solo usa stdio en v0.1. Está diseñado para permanecer independiente de L-Dopa y de otros servidores MCP. Un futuro transporte HTTP, capa de persistencia o adaptador consciente del repositorio debe seguir siendo opcional y debe preservar las mismas garantías de no fabricación y de redacción.
Licencia
Ackrite se publica bajo la Licencia MIT.
Referencias
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