KeyHalve - verify sealed documents
Server Details
Free, no-account verification of KeyHalve-sealed documents. Read-only; never receives keys.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
- Repository
- keyhalve/keyhalve-mcp
- GitHub Stars
- 0
- Server Listing
- KeyHalve verify-MCP
Available Tools
3 toolskeyhalve_explainARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| topic | No | Optional single topic; omit for the overview. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With annotations providing readOnlyHint=true, the description adds value by detailing exactly what the explanation covers (blind rail, three-share custody, commitments, revocation) and the optional topic focus. It does not contradict the read-only hint, and while it omits return format details, that is acceptable for a read-only explanatory tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, information-dense sentence that front-loads the core purpose and includes substantive details (the trust rationale). Every clause adds value, with no filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one optional parameter, full schema coverage, and no output schema, the description is complete. It explains the tool's purpose, the scope of the explanation, and the optional topic behavior, which is sufficient for correct use. Sibling context is not strictly necessary for an explanation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers the single parameter (topic) with an enum and description, plus the parent description adds 'Optionally focused on one topic' - somewhat redundant. With 100% schema coverage, baseline 3 is appropriate; the description does not add new parameter semantics beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Plain-language explanation of what a KeyHalve verification verdict means', which uses a specific verb (explain) and resource (verdict). It clearly distinguishes from sibling tools keyhalve_status and keyhalve_verify by focusing on understanding rather than checking or verifying.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context: it is meant for explaining a verification verdict and why it can be trusted. It does not explicitly state alternatives or when not to use it, but the purpose is unambiguous enough that an agent would know when to invoke it. A minor gap is the lack of explicit 'use verify for actual verification' note.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
keyhalve_statusARead-onlyInspect
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?"
| Name | Required | Description | Default |
|---|---|---|---|
| document_id | Yes | The document id, e.g. vp_…, kh_…, cb_…. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and openWorldHint, so the description's additional 'status only, no integrity or rail checks' provides useful context about what the tool does NOT do, going beyond the annotations. It also clarifies that it reports 'outside its validity window' as a status. Non contradicting and adds value, though it doesn't detail response format or error behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the core function, and every clause is informative. It includes the status outcomes, the sibling comparison, and usage guidance without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description partially covers return values by listing possible statuses (active, revoked, outside validity window) and even includes reason/time for revoked. For a simple status tool with one param, this is reasonably complete, though it doesn't specify exact response structure or error handling.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the single parameter, and the schema already explains the document_id format with examples. The description just says 'by id' without adding further semantic detail, so it doesn't elevate beyond the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description starts with 'Live status of a KeyHalve-sealed document by id' which specifies the verb (status check), resource (document), and scope (live status with three outcome categories). It explicitly contrasts with keyhalve_verify, noting this tool is 'lighter' and does not perform integrity or rail checks, clearly distinguishing it from siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It directly states when to use this tool: 'Use for "is this still good right now?"' and differentiates from keyhalve_verify by saying it's status-only vs. full verification. This gives explicit usage context and an implicit alternative, which is strong guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
keyhalve_verifyARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| input | Yes | A KeyHalve verify URL, QR-code text, or bare document id. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint and openWorldHint annotations, the description discloses critical behavioral traits: '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.' This adds significant privacy context and clarifies the tool's non-decrypting nature, which is beyond what annotations provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded, starting with the core purpose. It uses three sentences to cover inputs, outputs, and a critical behavioral constraint, with no wasted words. Every sentence provides actionable information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given a single-parameter tool with no output schema, the description is highly complete: it enumerates all accepted input types, lists the specific return fields (existence, live status, ciphertext integrity, attestation, validity window, issuer trust context), and explains the non-decryption behavior. This fully contextualizes the tool's operation and results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema describes the parameter as 'A KeyHalve verify URL, QR-code text, or bare document id.' The description adds specific id prefixes (vp_…, kh_…, cb_…) and clarifies that it accepts the raw text of a QR code, enhancing the schema's coverage. With 100% schema coverage, this extra detail justifies a score above the baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Verify a KeyHalve-sealed document.' It specifies the exact verb (Verify) and resource (KeyHalve-sealed document), and lists accepted input forms. However, it does not explicitly distinguish itself from sibling tools like keyhalve_status or keyhalve_explain, so it lacks direct sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context: it is for verifying sealed documents and returns a cryptographic verdict. It explains what inputs are accepted but does not explicitly state when to use this tool versus alternatives, nor does it mention exclusions or conditions. Thus, usage is implied rather than explicitly guided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
3 tool updates
- First observed
keyhalve_explain - First observed
keyhalve_status - First observed
keyhalve_verify
Frequently Asked Questions
Claiming proves that you control a remote MCP connector. It does not move, proxy, or interrupt the server.
Open the connector listing, choose Claim ownership, and sign in to Glama.
Complete one verification method:
GitHub identity — fastest for official registry listings. For a namespace such as
io.github.alice/server, link the matching GitHub user, then choose Claim with GitHub. An organization namespace such asio.github.acme/serveralso needs that organization to have installed the Glama AI GitHub App and approved its permissions, because GitHub discloses organization membership only to apps it has installed. Use HTTP or DNS when it has not.HTTP challenge — works when you can deploy a public file. Generate a token, publish the exact JSON Glama shows at
/.well-known/glama.jsonon the same origin as the connector, then choose Check HTTP challenge.DNS challenge — works when you control DNS but cannot change the server. Generate a token, create the exact TXT record Glama shows, wait for it to propagate, then choose Check DNS challenge.
After verification, Glama sends a confirmation email and gives you access to listing details, thumbnails, health checks, and analytics. Keep the HTTP file or DNS record in place: Glama periodically checks it and ownership remains verified while the token is discoverable.
The HTTP ownership file has this structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"claim": "glama_claim_..."
}Claim tokens are opaque, stable, and bound to the signed-in Glama account. They contain no email address or other personal information. If Glama can no longer discover a verified HTTP or DNS token, it starts a seven-day grace period before removing claim-based access. Restore the same token during that period to keep ownership verified. Never publish an email address, Glama session token, GitHub token, or connector credential as ownership proof.
If verification fails, confirm that you copied the current token exactly. The HTTP file must be public, return valid JSON with a successful HTTP response, and stay on the connector's origin. DNS changes may need more time to propagate. A claim cannot transfer to a different origin or hostname: if the connector target changes, Glama starts the grace period and the new target must be claimed separately after the previous claim is released.
For a connector linked to the official MCP Registry, registry updates continue to replace its name, description, and URL by default. After claiming, open Manage connector and enable Use Glama listing details as the source of truth if edits made on Glama should be preserved. Categories and thumbnails are always managed on Glama; registry linkage and technical connection settings continue to sync.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
To improve your MCP server's ranking:
Claim ownership of the server listing
Complete the server profile with an accurate description and thumbnail
Provide a test profile so Glama can connect to and evaluate the server
Keep tool definitions clear and complete to earn a high Tool Definition Quality Score (TDQS)
Route real usage through the Glama Gateway; more recorded successful server uses also improve the ranking
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!
Related MCP Connectors
Read-only verifier for 25 ProofRelay MCP tools and non-confidential evidence bundles.
Verify Seal AI decision receipts: signed evidence anyone can check, no account needed.
Privacy-first document verification anchored to the public ledger.
Find governed AI capabilities and verify signed receipts. Read-only, no account.
Related MCP Servers
- AlicenseAqualityFmaintenanceRead-only ProofRelay MCP verifier for non-confidential evidence bundles. Exposes 22 public-safe tools, 11 resources, and 11 prompts for bundle integrity checks, receipt-chain review, checkpoint recommendations, MCP risk metadata review, and real-estate closing proof-pack readiness.5MIT
- AlicenseNot gradedqualityCmaintenanceEnables offline verification that a supplied DSH workflow adhered to declared duty-separation constraints, producing a redacted, content-addressed JSON verdict.MIT
- AlicenseNot gradedqualityBmaintenanceVerifies MEOK AI Labs compliance attestations (DORA, NIS2, CRA, EU AI Act, etc.) using HMAC-SHA256. Enables piping a signed certificate on stdin to get VALID/INVALID output.1MIT
- FlicenseNot gradedqualityCmaintenanceEnables read-only verification of Foster Rx certificates against the public Ed25519 trust anchor, returning verdicts such as verified, signature_invalid, not_found, or tool_fault, and also allows retrieval of certificate records and trust anchor material.-
Glama MCP Gateway
Add one secure layer between your agents and this server.
TDQS
Each tool has a clearly distinct purpose: explain provides plain-language context, status gives a quick live check, and verify performs full cryptographic verification. There is no overlap or ambiguity between them.
All tools follow a consistent pattern with the 'keyhalve_' prefix and descriptive verbs (explain, status, verify). The use of 'status' as a noun is slightly atypical but doesn't break the convention.
Three tools is perfectly scoped for a verification-focused server. Each tool earns its place, covering explanation, quick status, and full verification without redundancy.
The domain is document verification, and the three tools cover the entire user journey: understanding the verdict (explain), checking current status (status), and performing a full verified check (verify). No management operations are expected for this read-only verification service.