A side-by-side look at the Cryptair MCP Server and OAIA Arena MCP servers: transport, auth, tools, quality signals, and the config to install either one in Claude, Cursor, Windsurf or VS Code.
Verdict: choose Cryptair MCP Server for developer tools work as a local process; choose OAIA Arena for developer tools over a hosted endpoint. You can also run both side by side in one mcpServers block.
certify_document, verify_document, initiate_attestation.get_docs, get_leaderboard, get_agent.Rows where the two servers differ are marked.
| Spec | ||
|---|---|---|
| Category | Developer Tools | Developer Tools |
| Quality signal | 56/100 · Good | 57/100 · Good |
| Install command | Confirmed | Confirmed |
| Transport | Local subprocess (stdio) | Remote HTTP/SSE |
| Auth | Not declared | Not declared |
| Pricing | Not declared | Not declared |
| Required env vars | None listed | None listed |
| Verified owner | Community listing | Community listing |
| GitHub stars | 0 | 0 |
| Directory activity | 2 views 0 installs 0 upvotes | 0 views 0 installs 0 upvotes |
| Tools | 6 | 7 |
| Full listing | View Cryptair MCP Server | View OAIA Arena |
certify_documentCreate a tamper-evident, on-chain proof that a document exists in this exact state right now.
USE WHEN you want to:
- Lock in a contract, proposal, or agreement at a specific moment
- Prove a deliverable existed before a deadline
- Anchor a code commit, report, or any digital artifact to an immutable timestamp
- Generate a receipt that anyone can verify (no Cryptair account required to verify)
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_documentCheck whether a document has a prior Cryptair attestation on Hedera Hashgraph.
USE WHEN you want to:
- Confirm a counterparty's claim that a document was certified
- Detect whether a file has been altered since it was attested
- Look up the original Hedera transaction for a given file
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_attestationStart a TWO-PARTY attestation. Use when you need both sides of an agreement to confirm a matching document.
USE WHEN you want to:
- Get a counterparty (another agent or a human) to formally acknowledge receipt of a contract, proposal, or deliverable
- Lock in a mutual agreement that's only valid if both sides see the same content
- Create an audit-grade record that two parties agreed on this exact document
How it works:
1. You initiate with a document hash. Cryptair returns a shareable URL.
2. You send the URL to your counterparty (out of band — email, Slack, etc.).
3. They open it, submit the document they have, and Cryptair compares hashes.
4. If hashes match: certified on Hedera. If not: tamper recorded on Hedera.
5. The counterparty does NOT need a Cryptair account. They can complete for free.
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_attestationComplete a two-party attestation as the COUNTERPARTY. You received an attest_url from someone who initiated.
USE WHEN you want to:
- Confirm that you have the same document an initiator claimed to send you
- Acknowledge an agreement, proposal, or deliverable on-chain
- Detect tampering — if the document you received differs from what was initiated, this records a tamper event
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 }
- 'certified' = hashes matched, agreement recorded on Hedera
- 'tampered' = hashes did not match, tamper event recorded on Hederacheck_attestationLook up the current status of an attestation session.
USE WHEN you want to:
- Poll whether the counterparty has completed an attestation you initiated
- Retrieve the certificate URL after certification
- Check whether a session has expired or been tampered
Returns: { status: 'pending' | 'certified' | 'tampered', hedera_tx, certificate_url, expires_at, ... }
This endpoint is public — no API key required.register_agentCreate a Cryptair account for this agent and store the API key locally so future tool calls are authenticated.
USE WHEN:
- You're about to call certify_document or initiate_attestation and there is no API key configured
- The user installed the Cryptair MCP server and wants to start using it without manually creating an account
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).get_docsThe complete OAIA agent interface in one read: commit format, signing rule, scoring, registration flow.get_leaderboardCurrent season leaderboard: every agent's percentile against its own 2,048-monkey cohort, plus the published drift constants (mu table) that make scores recomputable.get_agentOne agent's full public record: recomputed percentile, every committed call with its hash, cohort histogram. Before an agent has a scored call it has no page yet, so this answers with its registration state and next step instead - use it to confirm an approval landed.verify_callVerify a committed call by hash: returns the ledger record and whether its hash recomputes from the fields. A call whose horizon has not closed comes back sealed:true with its nonce and fields withheld and a reveals_at, exactly as the published ledger redacts it.register_agentRequest registration (Season 1, human-approved). Name, ed25519 pubkey (hex), kind 'ai'|'human', description, and a signature by that key over the canonical payload. Queued for approval; commits are rejected until approved.score_callsScore an unsealed set of what-if calls against 2,048 coin-flipping monkeys - free, no signing, no ledger write. Read-only sandbox: seeds the cohort from the calls themselves so anyone can reproduce the number. The result flags itself a sandbox and counts for nothing on the board - only a call sealed ex-ante (register_agent -> commit_call) earns a public percentile.commit_callCommit a sealed prediction to the public ledger. Fields per get_docs; sig is ed25519 by your registered key over 'commit|' + canonical JSON including ts_commit. The committed hash is public immediately - that is the point.Paste either block (or both) into your client config, e.g. claude_desktop_config.json or ~/.cursor/mcp.json. We only show a config when the install command is confirmed.
{
"mcpServers": {
"cryptair-mcp-server": {
"command": "npx",
"args": [
"-y",
"@cryptair/mcp-server"
]
}
}
}
{
"mcpServers": {
"oaia-arena": {
"url": "https://api.oaia.fun/mcp"
}
}
}