Back to Browse

Keyhalve MCP Server

Developer ToolsModerate5.2MCP RegistryLocalRemote
Free

Server data from the Official MCP Registry

Free, no-account verification of KeyHalve-sealed documents. Read-only; never receives keys.

About

Free, no-account verification of KeyHalve-sealed documents. Read-only; never receives keys.

Remote endpoints: streamable-http: https://mcp.keyhalve.com/mcp

Security Report

5.2
Moderate5.2Moderate Risk

KeyHalve verify-MCP is a well-designed, security-conscious MCP server with strong cryptographic practices and proper architectural safeguards against key material leakage. The code is hand-auditable, stateless, and implements fail-closed verification logic. Minor code quality issues around error handling breadth and incomplete input validation do not materially impact security posture. Supply chain analysis found 3 known vulnerabilities in dependencies (0 critical, 3 high severity). Package verification found 1 issue (1 critical, 0 high severity).

7 files analyzed · 10 issues found

Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.

Permissions Required

This plugin requests these system permissions. Most are normal for its category.

HTTP Network Access

Connects to external APIs or services over the internet.

env_vars

Check that this permission is expected for this type of plugin.

Unverified package source

We couldn't verify that the installable package matches the reviewed source code. Proceed with caution.

How to Install & Connect

Available as Local & Remote

This plugin can run on your machine or connect to a hosted endpoint. during install.

Documentation

View on GitHub

From the project's GitHub README.

KeyHalve verify-MCP

Free, public, no-account MCP server that lets any AI verify KeyHalve-sealed documents — from any platform on the rail (ValidPay, CheckBooks, …). Seal = the door (a platform's paid MCP). Verify = the room (this one, free forever).

  • Endpoint: https://mcp.keyhalve.com/mcp (Streamable HTTP, stateless)
  • Tools: keyhalve_verify · keyhalve_status · keyhalve_explain — all read-only, no auth

The blindness rule

This server never receives decryption keys. A verify URL carries the holder's key share in the #key= fragment; parseInput discards any fragment before any other logic runs, and the response says so. Verification here covers everything provable without the key:

CheckMeaning
statusactive / revoked (with reason) on the issuing platform
ciphertext integritySHA-256 of the served ciphertext = commitment recorded at issuance (v2)
rail attestationEd25519-verified against the pinned rail key; dual-sign content binding when present
time lockvalidity window judged client-side (Patent D semantics)
issuer trustfail-closed: declared at best, never proof

Reading the sealed contents still happens only in the holder's browser — exactly like the web verifier. The overall verdict fails closed: any failed check → FAILED — DO NOT TRUST.

Design notes

  • Zero runtime dependencies. WebCrypto only; the whole protocol layer is hand-auditable. Same reasoning as the pinned-key rail client in keyhalve-website.
  • Stateless. No sessions, no SSE, no KV, no cookies; every POST gets application/json. Request bodies are never logged.
  • Tenant-neutral. Platforms come from the same manifest data as the web verifier (TENANT_MANIFEST in src/verifier.ts); onboarding a platform = one data entry.
  • Fail closed. Unreachable rail, malformed share, partial dual-sign binding, unknown id prefix — all report NOT verified, never a soft pass.

Develop / deploy

npm ci
npm run typecheck && npm test   # 32 tests
npm run dev                      # wrangler dev

Deploys are manual (deploy.yml via workflow_dispatch, same discipline as rail/console). Needs the CLOUDFLARE_API_TOKEN repo secret; the route mcp.keyhalve.com is a custom domain on the business CF account (same account as the watchdog scheduler).

Directory submissions (Mike-gated)

Submitting to the Claude Connectors Directory / ChatGPT App Directory is an outward-facing step — prepared separately, goes out only on Mike's go.

Listings

Directory-listing assets live in this repo — reuse them, don't invent copy:

  • llms-install.md — AI-agent install steps (Cline's AI-driven install; also the canonical per-client snippets).
  • glama.json — Glama claim file (maintainers; their live schema is maintainers-only).
  • assets/icon-400.png — 400×400 icon (white split-circle glyph on Ink #0E1116, from the brand kit).
  • Descriptions must stay byte-consistent with src/tools.ts and pass the approved-claims register (no "split key", no "tamper-proof", no issuer-identity claims).

Reviews

No reviews yet

Be the first to review this server!