DefaultVerifier MCP
Verifies signed SAR v0.1 settlement receipts offline using Ed25519 signatures and bundled key registry.
README
DefaultVerifier MCP — Phase A
Agent-native MCP server for DefaultVerifier. Phase A starts with verification, not emission.
What this is
An MCP server that exposes DefaultVerifier's verification surface to AI agents. It verifies signed SAR v0.1 settlement receipts locally — offline, no network required.
Doctrine:
Capability ≠ Authority
Authority ≠ Execution
Execution ≠ Verification
Verification must leave evidence
Phase A tools
verify_receipt
Verify a signed SAR v0.1 receipt locally.
- Offline — no network calls
- Canonicalizes using RFC 8785 / JCS
- Verifies Ed25519 signature against bundled public key registry
- Returns typed result with
status(tool outcome) andverdict(issuer's signed outcome)
Key semantics:
status=PASSmeans the signature and digest are cryptographically validverdictis the issuer-signed outcome from the receipt itself (PASS/FAIL/INDETERMINATE)- A valid FAIL receipt returns
{ status:"PASS", verdict:"FAIL" } - A tampered receipt returns
{ status:"INVALID" }
get_verification_log
Return entries from DefaultVerifier's local verification log (/var/www/html/verified.json).
- Local file only in Phase A
- Preserves the file's disclaimer and non-endorsement language
- Does not add endorsement language
Boundaries (what DefaultVerifier does NOT claim)
- Does not prove payment finality
- Does not prove legal settlement finality
- Does not execute tasks
- Does not approve actions
- Does not release or custody funds
- Does not imply partnership, endorsement, or official integration
- Does not issue TrustScores
How to run
npm install
npm test # run self-tests (requires all tests to pass before commit)
npm start # starts on 127.0.0.1:3013 (dev only — do not deploy directly)
Health check: curl http://127.0.0.1:3013/healthz
MCP endpoint: http://127.0.0.1:3013/mcp
Local-first design
verify_receipt requires no network. It uses:
keys/sar-keys.json— bundled public key registry (kid-01, kid-02, kid-03)- Node.js built-in
cryptofor Ed25519 verification canonicalizenpm package (RFC 8785/JCS) for byte-for-byte parity with the Python verifier
Key registry
Includes three production keys:
sar-prod-ed25519-01— original keysar-prod-ed25519-02— rotation 2sar-prod-ed25519-03— current key (used by recent receipts)
Fixtures
| File | Expected result |
|---|---|
sar-v0.1-pass.json |
status PASS, verdict PASS |
sar-v0.1-fail.json |
status PASS, verdict FAIL |
sar-v0.1-indeterminate.json |
status PASS, verdict INDETERMINATE |
sar-v0.1-current-kid03.json |
status PASS, kid sar-prod-ed25519-03 |
tampered-receipt.json |
status INVALID |
Future phases
- Phase B:
resolve_receipt— resolve a receipt_id to its canonical source - Phase C:
resolve_chain— follow a receipt chain - Phase D:
check_issuer— issuer registry lookup - Phase E:
emit_receipt_optional— optional emission surface - Phase F: TrustProfile
Port assignment
Dev port: 127.0.0.1:3013 (not proxied — do not expose without nginx config review)
Production settlement-witness-mcp remains on port 3003 and is not modified by this repo.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.