73
/ 100
20 days ago
glama

mcp-witness

Cryptographic proof of every AI decision. An immutable, verifiable audit trail MCP server.

Is this your MCP?

Claim it to get a verified publisher badge, a free copy of our full audit findings, and direct contact for any high-priority issues we find.

Install from

M8ven verifies MCPs across every public registry — install directly from whichever one you prefer.

// key findings
No credential exfiltration, no sensitive file access, no obfuscation
Static analysis found nothing flowing your secrets to unexpected places.
Open source with a license and README
Anyone can audit the code, the license is declared, and the publisher documents what it does.
🔐
You'll be asked for 9 credentials: PINATA_API_KEY, PINATA_API_SECRET, MCP_WITNESS_JWT_PUBLIC_KEY, MCP_WITNESS_JWT_PRIVATE_KEY, MCP_WITNESS_API_KEY, MCP_WITNESS_ENCRYPTION_KEY, MCP_WITNESS_HMAC_KEY, MCP_WITNESS_SIGNING_KEY, MCP_WITNESS_REQUIRE_PERSISTENT_KEY
These are read from process.env at runtime. Make sure you trust where they’ll be sent.
// required environment variables
This server reads these from process.env. You'll be asked to provide them before it can run.
configTSA_URL
🔐 secretPINATA_API_KEY
🔐 secretPINATA_API_SECRET
🔐 secretMCP_WITNESS_JWT_PUBLIC_KEY
🔐 secretMCP_WITNESS_JWT_PRIVATE_KEY
configMCP_WITNESS_JWT_MAX_AGE
configMCP_WITNESS_JWT_ISSUER
configMCP_WITNESS_JWT_AUDIENCE
configMCP_WITNESS_DEFAULT_ACCESS
configMCP_WITNESS_REQUIRE_AUTH
configMCP_WITNESS_API_KEYS
🔐 secretMCP_WITNESS_API_KEY
configMCP_WITNESS_READ_ONLY
configMCP_WITNESS_ALLOW_ANON_WRITES
configMCP_WITNESS_DB"": "~/.mcp-witness/witness.db",
configMCP_WITNESS_CHECKPOINT_INTERVAL"": "1000",
configMCP_WITNESS_DASHBOARD_PORT
configMCP_WITNESS_DASHBOARD_ORIGIN
configMCP_WITNESS_TRUST_STORE
configMCP_WITNESS_LOG_FORMAT"": "json"
configMCP_WITNESS_LOG_LEVEL
configMCP_WITNESS_ANCHOR_STRICT
🔐 secretMCP_WITNESS_ENCRYPTION_KEYEncryption at rest is opt-in. Set (32-byte hex) to
configMCP_WITNESS_DEK
🔐 secretMCP_WITNESS_HMAC_KEY2. Configure HMAC: export =$(openssl rand -hex 32)
🔐 secretMCP_WITNESS_SIGNING_KEY1. Set a signing key: export =$(openssl rand -hex 32)
configMCP_WITNESS_ALLOW_INTERNAL_WEBHOOKS
configMCP_WITNESS_EXPORT_DIR
configMCP_WITNESS_BACKENDe =postgresql \
configMCP_WITNESS_PG_URLe =postgresql://user:pass@host:5432/db \
configMCP_WITNESS_METRICS_HOST
🔐 secretMCP_WITNESS_REQUIRE_PERSISTENT_KEY(or =false to keep ephemeral keys).
configMCP_WITNESS_FAIL_ON_STARTUP_VERIFICATION_FAILURE
configMCP_WITNESS_REQUIRE_HMAC
configMCP_WITNESS_AUTO_ANCHOR"": "false",
configMCP_WITNESS_CLEANUP_INTERVAL
configMCP_WITNESS_MAX_PAYLOAD_SIZE
configMCP_WITNESS_ORG_ID
configMCP_WITNESS_PG_POOL_MIN
configMCP_WITNESS_PG_POOL_MAX
configMCP_WITNESS_WEBHOOK_URL"": "https://alerts.example.com/witness",
configMCP_WITNESS_SLACK_WEBHOOK_URL
// full audit trail
The full breakdown of what we checked, the deductions that landed, the network hosts, the dependency advisories, and concrete fix guidance is available to verified publishers.
// improvement guidance — verified publishers only
We have 3 concrete improvements we can share with the publisher of this MCP. Each comes with specific guidance to raise the trust score.
// embed badge in your README
[![M8ven Score](https://m8ven.ai/badge/mcp/edwiniac-mcp-witness-1t1p83)](https://m8ven.ai/mcp/edwiniac-mcp-witness-1t1p83)
commit: 21459afc3255eafa45afb36dd95c38d50f1c4067
code hash: 0c7d079c9d8bb27abeb55878858cc0608977bf56322992a95d6f9209c0e59bf9
verified: 6/17/2026, 11:31:39 AM
view raw JSON →