Skip to main content

Standalone offline verifier for SEP-2828 signed execution records (MCP decision/outcome pairs)

Project description

pramiti-mcp-verify

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).

Verifies, with no vendor dependency (rfc8785 + cryptography only):

  1. Signatures — detached ES256/HS256 over the JCS-canonical record body excluding signature (ES256 as raw r||s in 128 lowercase hex chars).
  2. Instance bindingbackLink.attestationDigest recomputation against the SEP-2787 attestation, or against a named, versioned fallback projection (tools_call_params_plus_meta_authorization_binding_v1, praxom_payload_hash_binding_v1).
  3. Pairing — Check A (shared backLink) + Check B (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).

Usage

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

# Run a record_conformance_v0-layout vector suite against this implementation
pramiti-mcp-verify --vectors tests/vectors/sep2828/record_conformance_v0

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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pramiti_mcp_verify-0.1.0.tar.gz (15.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pramiti_mcp_verify-0.1.0-py3-none-any.whl (12.4 kB view details)

Uploaded Python 3

File details

Details for the file pramiti_mcp_verify-0.1.0.tar.gz.

File metadata

  • Download URL: pramiti_mcp_verify-0.1.0.tar.gz
  • Upload date:
  • Size: 15.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.30 {"installer":{"name":"uv","version":"0.11.30","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for pramiti_mcp_verify-0.1.0.tar.gz
Algorithm Hash digest
SHA256 9e3ac5e8c83ad933c4c0f3cadc9f4368e4420e8168e266a7372125f5444e5ed6
MD5 e460044280ba6da2299efed5a52f7eed
BLAKE2b-256 62e39683c619635f1d45de53ce6121f35134fdd2b31a583d515d08980facc3d7

See more details on using hashes here.

File details

Details for the file pramiti_mcp_verify-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: pramiti_mcp_verify-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 12.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.30 {"installer":{"name":"uv","version":"0.11.30","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for pramiti_mcp_verify-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 1cf34708183e6eb607cd287c660ce6f2a2b8deb4bbfe80b8ea531febe0b5aaae
MD5 3363ad356674ada106cbd95c61b9f499
BLAKE2b-256 9b6c9387cf3ac84fb1da3287178b6c4e578754750619630357d0ceefa39f00ba

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page