KeyHalve - verify sealed documents

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

Should I use this

Quality & Safety

A
Description quality
90%
Schema completeness
97%
Naming quality
80%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Findings (1)

  • LOWTool 'keyhalve_explain' description lacks action verbin keyhalve_explain

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~464Tokens (tool definitions)
~507 BTypical response size
Minimal attention impact (0.36% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "verify": {
      "command": "npx",
      "args": [
        "@keyhalve/verify-mcp"
      ]
    }
  }
}

Runnable packages

npm@keyhalve/verify-mcp0.1.0stdio

Remote endpoints

https://mcp.keyhalve.com/mcpstreamable-http

What it can do

Tool inventory

Tools (3)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢keyhalve_verify(input)

Verify a KeyHalve-sealed document. Accepts a verify URL, the raw text of a KeyHalve QR code, or a document id (vp_…, kh_…, cb_…). Returns the cryptographic verdict: whether the seal exists, its live status (active/revoked/expired), ciphertext integrity against the issuance commitment, the KeyHalve rail's independent attestation, the validity window, and the issuer's trust context. This tool NEVER decrypts sealed contents — any decryption key in the URL fragment is discarded unread; contents are only readable by opening the verify URL in a browser.

Input Schema

{
  "type": "object",
  "properties": {
    "input": {
      "type": "string",
      "description": "A KeyHalve verify URL, QR-code text, or bare document id."
    }
  },
  "required": [
    "input"
  ]
}
🟢keyhalve_status(document_id)

Live status of a KeyHalve-sealed document by id: active, revoked (with reason/time), or outside its validity window. Lighter than keyhalve_verify — status only, no integrity or rail checks. Use for "is this still good right now?"

Input Schema

{
  "type": "object",
  "properties": {
    "document_id": {
      "type": "string",
      "description": "The document id, e.g. vp_…, kh_…, cb_…."
    }
  },
  "required": [
    "document_id"
  ]
}
🟢keyhalve_explain(topic)

Plain-language explanation of what a KeyHalve verification verdict means and why it can be trusted (blind rail, three-share custody, commitments, revocation). Optionally focused on one topic.

Input Schema

{
  "type": "object",
  "properties": {
    "topic": {
      "type": "string",
      "enum": [
        "verdict",
        "blindness",
        "rail",
        "revocation",
        "integrity",
        "issuer_trust",
        "limits"
      ],
      "description": "Optional single topic; omit for the overview."
    }
  }
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded3 tools
verifiedversion not recorded3 tools