Comprehensive MCP server for Hedera (Hashgraph) — full coverage of Account, Token (HTS), Consensus (HCS), Smart Contract (EVM), File, Schedule, and Network services. Reads via Mirror Node (keyless); writes are build-only (returns unsigned serialized transactions). Never holds keys.
22 tools with consistent naming (verb_noun pattern: hedera_get_*, hedera_create_*, hedera_transfer_*, hedera_*). All tools have descriptions (avg ~80 chars, within baseline 34-392). Input schemas present for all tools with typed parameters and descriptions. However, output schemas are NOT documented, responses are free-text serialized transactions or JSON strings without declared structure. Error handling returns generic 'Error: {message}' without recovery guidance or categorization. No tool annotations (readOnlyHint/destructiveHint/idempotentHint) despite clear risk levels (READ_ONLY, WRITE, IRREVERSIBLE). Parameter descriptions are minimal (e.g., 'Token ID' vs 'Token ID (format: 0.0.X where X is numeric)').
Build an unsigned token association transaction
Build an unsigned token burn transaction
Build an unsigned account creation transaction
Build an unsigned HTS fungible token creation transaction
Build an unsigned HTS NFT collection creation transaction
Build an unsigned schedule creation transaction
Build an unsigned HCS topic creation transaction
Output schemas not documented. Tools return free-text serialized transactions (base64) or JSON strings without declared structure. LLMs cannot plan downstream operations or extract chaining IDs (e.g., tokenId from create_fungible_token response).
No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite explicit risk levels (READ_ONLY, WRITE, IRREVERSIBLE). LLMs cannot distinguish safe reads from destructive writes without annotations.
Error handling returns generic 'Error: {message}' without recovery guidance, categorization (retryable/user-fixable/fatal), or actionable next steps. LLMs cannot self-correct or plan recovery.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 62 | 2026-07-28+ | v2 |
Decode and inspect an unsigned transaction from base64
Build an unsigned token freeze transaction
Get the latest blocks from the network
Get the current HBAR to USD exchange rate from the network
Get token information from the Mirror Node
Build an unsigned KYC grant transaction
Build an unsigned NFT mint transaction
Build an unsigned PRNG transaction to get a random number
Build an unsigned schedule sign transaction
Build an unsigned HCS message submission transaction
Build an unsigned token airdrop transaction (HIP-904)
Build an unsigned HBAR transfer transaction
Build an unsigned NFT transfer transaction
Build an unsigned token transfer transaction
Build an unsigned token unfreeze transaction
Parameter descriptions are minimal (e.g., 'Token ID', 'Account ID') without format constraints, ranges, or examples. LLMs lack guidance on valid formats (0.0.X notation, length limits, character restrictions).
No dry-run or confirmation step for irreversible operations (burn_token, freeze_token_account). Agents cannot preview consequences before execution.