Skip to main content
Glama
elwsls

io.github.elwsls/verifiable-claim-seed

by elwsls

verifiable-claim-seed

Contrato de declaración verificable por máquina + puerta de enlace de cero dependencias + muestra real. Reproducible ≠ verificable: repro+frozen prueban la consistencia interna; la corrección externa la lleva el ancla. Primero el agente: lee ai-catalog.json antes de este archivo para el manifiesto legible por máquina.

mcp-name: io.github.elwsls/verifiable-claim-seed

instalación

pip install verifiable-claim-seed     # zero dependencies, Python stdlib only
verify-claim self-test                # prove the gate works in this environment

O clona el repositorio y ejecuta la puerta directamente:

python3 verifiable_claim_seed/verify_claim.py self-test

Related MCP server: judgment-pack-runtime

puntos de entrada

rol

ruta

contrato

verifiable_claim_seed/schema/verifiable-claim-v1.schema.json

puerta

verifiable_claim_seed/verify_claim.py

muestra real·aeroespacial

verifiable_claim_seed/claims/VC-20260815-001.json(altitud orbital de la ISS, derived+frozen+repro)

muestra real·salud

verifiable_claim_seed/claims/VC-20260823-001.json(origen de los 10 000 pasos, ancla text-quote)· verifiable_claim_seed/claims/VC-20260823-002.json(pasos-mortalidad aplanada, ancla text-quote)

datos congelados

verifiable_claim_seed/data/iss_20260814.tle

instantáneas de origen

verifiable_claim_seed/data/wcrf-10000-steps-20260823.html(instantánea de origen 001)· verifiable_claim_seed/data/pmc-9289978-20260823.html(instantánea de origen 002)

script de reproducción

verifiable_claim_seed/scripts/verify_iss.py

servidor MCP

verifiable_claim_seed/mcp_server.py(stdio, comando verifiable-claim-mcp / verifiable-claim-seed)

simulación de agente MCP

verifiable_claim_seed/mcp_agent_sim.py(simula un agente desconocido recorriendo toda la cadena MCP, verificación utilizable sin intervención humana)

manifiesto de registro MCP

server.json(io.github.elwsls/verifiable-claim-seed, PyPI/stdio)

exposición·concepto

docs/news-appendix.md(muestra humana, no es una declaración de máquina——verify_tier es independiente del tier del esquema, no participa en la puerta)

exposición·comunicado de prensa

docs/news-release-10000-steps.md(muestra humana·comunicado de prensa, no es una declaración de máquina, corresponde a VC-20260823-001/002)

exposición·declaración académica

docs/academic-claim-10000-steps.md(muestra humana·declaración académica, no es una declaración de máquina, corresponde a VC-20260823-001/002)

verificar

verify-claim self-test                              # pip 安装后
verify-claim verify <claim.json> [--report out.json]
# 仓库内直接跑:
python3 verifiable_claim_seed/verify_claim.py self-test

Códigos de salida: 0 todo correcto / 1 fallo grave (estructura/formato/archivos referenciados por la declaración faltantes) / 2 uso·entorno (argumentos de línea de comandos/archivo de declaración a verificar faltante) / 3 violación del contrato de evidencia (hash no coincide/reproducción no coincide).

Semántica de rutas: las rutas data//scripts/ dentro de la declaración se resuelven relativas a la raíz del paquete (directorio del script de la puerta), no relativas al JSON de la declaración. Antes de verificar una declaración de un solo archivo copiada desde fuera, mantén la estructura completa del repositorio o coloca la declaración completa de vuelta en verifiable_claim_seed/claims/. Ancla text-quote con instantánea de bytes: anchor.mode=text-quote debe incluir quote + locator + snapshot + snapshot_sha256 (ruta del archivo de instantánea de origen + hash de 64 caracteres). La puerta verifica byte a byte el hash de la instantánea y extrae el texto de la instantánea para una comparación compacta con «normalización de caracteres tipográficos + eliminación de espacios en blanco»——la cita textual debe existir realmente en la instantánea congelada (las entidades HTML/espacios renderizados no causan falsos positivos). La máquina verifica «la cita está en esta instantánea»; si la instantánea es realmente la fuente real aún requiere verificación humana/AI. repro.script es Python: repro.script se ejecuta con python3 (subprocess, tiempo de espera 120s)——el script debe ser Python. Sin sandbox: la puerta no aísla, las rutas pueden atravesar la raíz del paquete y se ejecuta con los permisos del llamador; la seguridad depende completamente de «solo verificar declaraciones en las que confías». Nota de cero dependencias: verify_claim.py es el validador real (stdlib puro, no depende de la librería jsonschema); schema/*.json son las especificaciones del contrato——ambos son verificados por la máquina en el self-test «sincronización del contrato schema-gate» para que no se desvíen. anchor.sha256 también está fijado: si apunta a un archivo dentro del repositorio, se verifica byte a byte (fallo rc3). Nota de seguridad: verify ejecuta realmente el repro.script de la declaración. Solo verifica declaraciones en las que confías; verificar una declaración de fuente no confiable equivale a ejecutar su código arbitrario en tu máquina. Límite de diseño: la puerta verifica «el script produce su salida declarada», no «el script calcula correctamente»——un repro.script falsificado que imprima el hash correcto + los valores esperados puede pasar rc0. La integridad proviene de los bytes de entrada congelados (anchor/frozen) y la autoconsistencia de la declaración, no de las matemáticas. «Solo verificar declaraciones en las que confías» es por tanto un requisito de seguridad, no un adorno.

servidor MCP

verifiable-claim-mcp (o el alias de inicio del registro verifiable-claim-seed) expone tres herramientas (stdio, cero dependencias):

  • self_test — autocomprobación de la puerta, PASS/FAIL + número de casos

  • validate — verificación de estructura + hash, no ejecuta scripts (usa esto para declaraciones no confiables)

  • verify — verificación completa, requiere explícitamente allow_execution=true (ejecutará el repro.script de la declaración, es decir, código arbitrario); sin esa bandera se rechaza siempre

Registro MCP: server.json (io.github.elwsls/verifiable-claim-seed, PyPI/stdio).

Conexión con Claude Code (después de pip install)——coloca .mcp.json en la raíz del proyecto (el repositorio ya incluye un ejemplo), las tres herramientas se cargan automáticamente en nuevas sesiones:

{ "mcpServers": { "verifiable-claim-seed": { "command": "python3", "args": ["verifiable_claim_seed/mcp_server.py"] } } }

También se puede usar uvx verifiable-claim-seed (después de la publicación en PyPI). Verificación de extremo a extremo con un agente desconocido: descubre las tres herramientas → validate sin ejecución → verify rechaza sin allow_execution → pasa con la bandera.

Licencia: MIT. Cero dependencias (stdlib de Python).

Available Tools

3 tools
self_testA

Run the gate self-test: proves the tool works in this environment. Returns passed/exit_code/output.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It does disclose the return shape (passed/exit_code/output), which is useful, but it says nothing about whether the operation is safe/side-effect-free, whether it requires any setup, or how to interpret the passed/exit_code fields. For a zero-parameter self-test this is acceptable but minimal.

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?

Two short clauses with zero filler. The action verb is front-loaded and the return format is stated in a compact second clause. Every word earns its place; nothing is redundant.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is trivial in complexity: zero parameters, no annotations, no output schema, no nested objects. The description covers what it does, why it exists, and what it returns. The only minor gap is a potential note on how to interpret exit_code/passed beyond the raw field names, which is a small omission for an otherwise simple tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, which sets a baseline of 4 per the rubric. Schema coverage of properties is trivially 100% with an empty object, so there is nothing for the description to add about parameters. The description instead correctly documents the return format, which is more valuable here.

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?

States a specific action ('Run the gate self-test') on a clear resource and adds purpose ('proves the tool works in this environment'). It is implicitly distinct from the sibling tools validate and verify, since it tests the environment/tool itself rather than validating some external input. Loses a point only for not explicitly contrasting with those siblings, but the purpose is unambiguous.

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?

No guidance on when to call this tool versus the siblings validate or verify. There is a weak implication (use it to prove the environment works) but no explicit when-to-use, no exclusions, and no mention of whether this should be run before other tools or as a diagnostic. The agent must infer usage context.

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

validateB

Check a claim's structure and anchor/frozen hashes WITHOUT executing any code. Safe for untrusted claims. Args: claim (claim JSON text) or claim_path (absolute file path).

ParametersJSON Schema
NameRequiredDescriptionDefault
claimNoClaim document as JSON text
claim_pathNoAbsolute path to a claim JSON file

TDQS

B3.3/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It discloses that no code is executed and explicitly labels the tool safe for untrusted claims, which are key behavioral traits. However, it omits the expected return format, error behavior, and any side effects (beyond implying read-only). This is adequate but not comprehensive for an unannotated tool.

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 two concise sentences with zero waste. The core purpose and safety disclaimer are front-loaded, and argument types follow immediately. Every phrase 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?

The tool is simple, but with no output schema, the description should explain what a successful or failed validation looks like (e.g., return value). It also omits any assumptions about file existence or claim format constraints. Given the tool's narrow scope, it's moderately complete but leaves the agent guessing about results.

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 both parameters are already documented. The description restates 'claim (claim JSON text)' and 'claim_path (absolute file path)' without adding new meaning beyond the schema. It clarifies the input types but adds marginal value over the existing parameter descriptions.

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 checks a claim's structure and anchor/frozen hashes without executing code. It uses a specific verb ('Check') and names the resource. While it doesn't explicitly contrast with siblings (self_test, verify), the safety note and 'WITHOUT executing any code' hint at differentiation, making the purpose unambiguous.

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 context (safe for untrusted claims) but gives no guidance on when to use this tool versus alternatives like verify or self_test. There is no mention of exclusions or prerequisites, leaving the agent to infer appropriate usage from name alone.

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

verifyA

Full verification of a claim, INCLUDING executing its repro.script as arbitrary code with no sandbox. REQUIRES allow_execution=true; otherwise refused. Only call this on claims you trust. Args: claim or claim_path, allow_execution.

ParametersJSON Schema
NameRequiredDescriptionDefault
claimNoClaim document as JSON text
claim_pathNoAbsolute path to a claim JSON file
allow_executionYesMust be true; verify is refused without it

TDQS

A4.7/5.0
Behavior5/5

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

The description explicitly discloses that executing repro.script as arbitrary code with no sandbox carries security risk, and that it requires a permission flag. This is critical behavioral information beyond what annotations would provide (and no annotations are present, so the description carries full burden). It also states the refusal condition, fully disclosing the tool's execution behavior.

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 three sentences long, with the most critical information (execution risk and requirement) front-loaded. Every sentence adds value: what it does, the critical requirement, and the trust caveat. No filler or repetition of schema details.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with three parameters, no output schema, and no annotations, the description covers the essential context: what it does, the dangerous execution behavior, the mandatory flag, and a safety warning. The only minor gap is not describing the return value, but since there's no output schema, the description could have stated what it returns; however, the primary usage risks are fully covered, and the tool is a verification action where the result is likely self-evident. Given the high stakes, this is comprehensive.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents each parameter's type and purpose. The description adds clarifications: allow_execution must be true and is required, claim and claim_path are alternatives for specifying the claim. It doesn't add syntax examples or detailed formats, but given the schema is complete, this is adequate. The description reinforces the critical flag without redundancy.

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 clearly states the tool performs 'full verification of a claim' and explicitly mentions executing its repro.script as arbitrary code with no sandbox, which is a specific, high-stakes action. It also names its core requirement (allow_execution=true) and contrasts with siblings like validate and self_test by emphasizing execution, distinguishing it clearly.

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

Usage Guidelines4/5

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

The description includes explicit conditions: 'REQUIRES allow_execution=true; otherwise refused' and 'Only call this on claims you trust.' This provides clear when-to-use guidance, though it doesn't explicitly name alternatives like validate or self_test as safer options. The context is strong enough for an agent to infer the trade-offs, but a direct comparison would improve it.

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. 3 tool updatesv1.3.1
    • First observedself_test
    • First observedvalidate
    • First observedverify

TDQS

A3.9/5.0

Scored across 3 tools

Disambiguation5/5

Each tool has a distinct purpose: self_test for environment validation, validate for safe structural checks, and verify for full execution-based verification. The descriptions clearly differentiate the safe versus risky operations, leaving no ambiguity.

Naming Consistency4/5

Tool names are single verbs (validate, verify) while self_test is a compound, creating a slight inconsistency. However, all names are clear action-oriented verbs and follow a predictable style, making the deviation minor.

Tool Count5/5

Three tools is well-scoped for a specialized verification server. Each tool serves a necessary function without redundancy or excess, fitting the server's narrow purpose perfectly.

Completeness4/5

The toolset covers the core verification lifecycle: environment testing, safe validation, and full execution-based verification. A minor gap is the absence of any claim creation or modification tools, but these may be out of scope for a verification-focused server.

Maintenance

ActivitySlowing
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables defining and verifying evidence contracts for claims in READMEs, releases, or product pages using constrained verifiers and generating hash-chained receipts and reports.
    5 npm
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    Serves offline document validation and evaluation operations of the Judgment Pack Specification to MCP clients over stdio, enabling agents to validate and evaluate JPS documents as tool calls. Supports conformance validation, experimental evaluation with disposition and error classes, and corpus testing.
    2
    Apache 2.0
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables MCP clients to locally verify nomue Protocol Release 1 Welch Records, performing scoped structural, digest, admissibility, computability, and two-sided Welch recomputation checks over stdio without requiring accounts, API keys, or network access.
    30 npm
    Apache 2.0
  • A
    license
    A
    quality
    B
    maintenance
    Provides read-only access to CWI's trust infrastructure, enabling Gear Ledger provenance queries, agent trust scoring via the Verdict Engine, and NEEDLE DROP ledger hash-chain verification over stdio.
    7
    MIT