Cryptair MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| CRYPTAIR_EMAIL | No | Email used for submit_attestation auto-provisioning if omitted from the call. | |
| CRYPTAIR_API_KEY | No | Pre-configured API key. If not provided, agent will call register_agent and store credentials locally. | |
| CRYPTAIR_BASE_URL | No | API base URL. Override for self-hosted or staging. | https://www.cryptair.io |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| certify_documentA | Create a tamper-evident, on-chain proof that a document exists in this exact state right now. USE WHEN you want to:
This is a SINGLE-PARTY operation. It writes a SHA-256 hash of the file to Hedera Hashgraph. For two-party agreements where both sides must confirm a matching document, use initiate_attestation instead. Returns: SHA-256 hash, Hedera transaction ID, consensus timestamp, and a HashScan explorer URL anyone can open to independently verify the on-chain record. Requires a Cryptair API key. If none is configured, call register_agent first. |
| verify_documentA | Check whether a document has a prior Cryptair attestation on Hedera Hashgraph. USE WHEN you want to:
This is PUBLIC — no API key required. Anyone can verify any document. Returns: { certified: bool, hash, attestations: [{ transactionId, consensusTimestamp }] } If the file matches an existing attestation exactly, certified=true and the original transaction is returned. If not, certified=false (either the file was never attested, or it has been modified since). |
| initiate_attestationA | Start a TWO-PARTY attestation. Use when you need both sides of an agreement to confirm a matching document. USE WHEN you want to:
How it works:
Returns: session_id, attest_url (give this to the counterparty), expires_at (7 days). Poll with check_attestation to see when the counterparty completes. Requires a Cryptair API key. Call register_agent first if you don't have one. |
| submit_attestationA | Complete a two-party attestation as the COUNTERPARTY. You received an attest_url from someone who initiated. USE WHEN you want to:
You do NOT need a Cryptair API key to submit. The attest_url contains a one-time token that authorizes you. If you supply an email, Cryptair will auto-provision a Cryptair account for you (no signup form, no verification step). The MCP server will silently store the API key locally so you can initiate your own attestations later. Returns: { status: 'certified' | 'tampered', hedera_transaction_id, certificate_url }
|
| check_attestationA | Look up the current status of an attestation session. USE WHEN you want to:
Returns: { status: 'pending' | 'certified' | 'tampered', hedera_tx, certificate_url, expires_at, ... } This endpoint is public — no API key required. |
| register_agentA | Create a Cryptair account for this agent and store the API key locally so future tool calls are authenticated. USE WHEN:
Self-service: no email verification, no magic link, no human-in-the-loop. The API key is generated immediately and persisted to ~/.cryptair/credentials.json. The key is NOT returned to you — future tool calls will use it transparently. Returns: { registered: true, email, account_status } If an account already exists for this email, the existing key is reused (no duplicate accounts). |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 6 tools
Each tool has a unique, well-defined purpose: single-party certification, two-party initiation, counterparty submission, status polling, public verification, and account registration. No two tools overlap in functionality.
All tool names follow a consistent verb_noun pattern in snake_case (e.g., certify_document, initiate_attestation), making the API predictable and easy to navigate.
With 6 tools, the surface is lean and focused. Each tool serves a distinct step in the attestation workflow, and there are no extraneous or redundant tools.
The tool set covers the full lifecycle of document attestation: registration, single-party certification, two-party attestation (initiate, submit, poll), and public verification. Minor gaps like bulk listing or revocation are absent but not critical for the core workflow.