Pramiti Docs

MCP Verify

Neutral, offline verifier for SEP-2828 signed execution records

pramiti-mcp-verify is a standalone, offline verifier for SEP-2828 signed execution records — the paired decision/outcome records a governing MCP server or proxy emits for every tool call (modelcontextprotocol#2828).

It is deliberately vendor-neutral: your auditor can check a Praxom attestation export without trusting Pramiti — or anyone. The only dependencies are rfc8785 (JSON canonicalization) and cryptography.

What it verifies

  1. Signatures — detached ES256/HS256 over the JCS-canonical record body (ES256 as raw r||s in 128 lowercase hex chars).
  2. Instance bindingbackLink.attestationDigest recomputation against the SEP-2787 attestation, or a named, versioned fallback projection.
  3. Pairing — the decision and outcome records reference each other: shared backLink, plus the outcome's decisionDigest over the full signed decision record.
  4. Consistency — enum validity; a block decision paired with an executed outcome is rejected as a contradiction.
  5. Result commitmentsArgsProjection self-consistency (projectionDigest over the projection bytes).

Install

pip install pramiti-mcp-verify

Usage

# Verify a Praxom export bundle (POST /attestations/export, format=sep2828)
pramiti-mcp-verify bundle.json --pubkey es256_public.pem

Exit code 0 when every record verifies, 1 otherwise; a JSON summary is printed to stdout either way.

Accepted bundle shapes: the Praxom export bundle ({"spec": "SEP-2828", "records": [...]}), a bare {"decision": ..., "outcome": ...} pair, or a list of pairs.

Not the flight-recorder verifier

pramiti-fr verify checks the vendor-embedded Flight Recorder store. pramiti-mcp-verify (this tool) checks SEP-2828 wire records from an enterprise proxy. Different stores, different audiences, deliberately separate CLIs.

See also: Attestation Store for how Praxom produces these records.

On this page