npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@purplesquirrel/hedera-mcp

v0.5.0

Published

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 trans

Downloads

754

Readme

hedera-mcp

hedera-mcp

MCP Registry npm license

Comprehensive Model Context Protocol server for Hedera (Hashgraph). Full coverage of every core Hedera service — Account, Token (HTS), Consensus (HCS), Smart Contract (EVM), File, Schedule, and Network — exposed as 73 MCP tools any AI agent (Claude, Cursor, etc.) can call.

Build-only. Never holds keys. Reads hit the public Mirror Node REST API (no auth). Writes return an unsigned, frozen transaction (base64) for you to sign and submit with your own wallet/SDK/CLI. This server never sees a private key and never executes anything.


Why this exists

The official Hedera Agent Kit ships a preconfigured MCP server, but its tool surface is intentionally small (balance, transfer, deploy). This server fills the gap with end-to-end coverage of the Hedera API, organized for developer education and agent-driven onboarding — so a developer can go from "certified" to "shipping their first HTS token / HCS topic / contract" inside a single AI session.

| Service | Official starter MCP | hedera-mcp | |---|---|---| | Account | balance | create, transfer, update, delete, allowances, info, balances, NFTs | | Token (HTS) | transfer, deploy | create FT/NFT, mint, burn, transfer, associate, freeze, KYC, pause, wipe, delete, info | | Consensus (HCS) | — | create/update/delete topic, submit + read messages | | Smart contract | — | deploy, execute, eth_call read, info | | File | — | create, append, delete, info | | Schedule | — | create, sign, delete, info | | Network | — | tx lookup, nodes, fees, supply, exchange rate, decode |

Security model

  • Reads → public Mirror Node REST. No keys, no account required.
  • Writes → the tool constructs the transaction, freezes it for offline signing, and returns base64 bytes plus a human summary. You inspect it (hedera_decode_transaction), then sign and submit yourself.
  • The only optional environment input is HEDERA_OPERATOR_ID — an account id, used as the default payer/treasury when building. Never a key.

This mirrors the posture of goat-network-mcp: safe to run anywhere, safe to give to an autonomous agent.

Published on npm and the MCP Registry as io.github.ExpertVagabond/hedera-mcp.

Install

Run directly with npx (no clone needed):

npx @purplesquirrel/hedera-mcp

Or from source:

npm install
npm run build

Configure (Claude Desktop / Claude Code)

{
  "mcpServers": {
    "hedera": {
      "command": "npx",
      "args": ["-y", "@purplesquirrel/hedera-mcp"],
      "env": {
        "HEDERA_NETWORK": "testnet",
        "HEDERA_OPERATOR_ID": "0.0.1234"
      }
    }
  }
}

| Env var | Default | Notes | |---|---|---| | HEDERA_NETWORK | testnet | mainnet | testnet | previewnet | | HEDERA_OPERATOR_ID | (unset) | Optional default payer/treasury account id (not a key) | | HEDERA_MIRROR_URL | per-network | Override Mirror Node REST base (e.g. a private/HGraph node) |

Build-only workflow

agent calls hedera_create_fungible_token
        │
        ▼
hedera-mcp builds + freezes the TokenCreateTransaction
        │
        ▼
returns base64 (unsigned)  ──►  you sign in HashPack / SDK / CLI  ──►  submit to Hedera

Inspect anything before signing:

hedera_decode_transaction { transactionBase64: "<bytes>" }
→ { type: "TokenCreateTransaction", transactionId, nodeAccountIds, maxTransactionFee, ... }

Tool catalog (73)

Account (8): create_account · transfer_hbar · update_account · delete_account · approve_hbar_allowance · get_account_info · get_account_balance · get_account_nfts

Token / HTS (23): create_fungible_token · create_nft_collection · mint_fungible · mint_nft · burn_token · transfer_token · transfer_nft · associate_token · dissociate_token · freeze_token_account · unfreeze_token_account · grant_kyc · revoke_kyc · pause_token · unpause_token · wipe_token · delete_token · update_token · token_airdrop · reject_token · approve_token_allowance · approve_nft_allowance · get_token_info · get_nft_info

Consensus / HCS (6): create_topic · submit_message · update_topic · delete_topic · get_topic_info · get_topic_messages

Smart contract / EVM (6): deploy_contract · execute_contract · update_contract · delete_contract · query_contract · get_contract_info — execute_contract & query_contract are ABI-aware (pass { abi, functionName, args }; calldata encoded + results decoded automatically)

File (4): create_file · append_file · update_file · delete_file

Schedule (4): create_schedule · sign_schedule · delete_schedule · get_schedule_info

Network / utility (7): prng · get_transaction · get_network_nodes · get_exchange_rate · get_network_supply · get_network_fees · decode_transaction

Analytics (Mirror Node reads, 14): get_block · get_blocks · get_account_transactions · get_token_balances · get_token_nfts · get_nft_history · get_account_allowances · get_account_token_allowances · get_account_nft_allowances · get_contract_results · get_contract_state · get_network_stake · search_accounts_by_pubkey · get_account_by_evm

Resources (4)

Besides tools, the server exposes addressable, keyless MCP resources agents can read by URI:

hedera://network/exchange-rate · hedera://network/supply · hedera://account/{accountId} · hedera://token/{tokenId}

Examples & learning

  • examples/TUTORIAL.mdBuild on Hedera in 5 prompts (the certified→shipping learning path)
  • examples/agent-demo.md — wire into Claude Desktop and build by asking; node examples/agent-sim.mjs prints a reproducible agent transcript
  • examples/scenarios/ — unique use cases, each runnable + Mirror Node-verified: HCS notary, AI agent audit trail, agent-to-agent payments, self-taxing token

Verification

  • npm run lint / npm run build — clean against @hashgraph/sdk 2.81.0
  • node test-battle.mjs — 72/73 in the auto-discovery suite (1 skip: query_contract needs a known ABI, verified separately) → all 73 tools verified
  • node test-live.mjs10/10 write paths executed on testnet, Mirror Node-verified
  • node test-battle-live.mjsbattle mode: 31/31 operations on testnet across two accounts (full token lifecycle incl. freeze/KYC/pause/wipe, NFT, topic, file, scheduled transfer requiring a 2nd signer, PRNG), Mirror Node-verified
  • node test-contract.mjs — real Solidity contract compiled → deployed → executed → read end-to-end (store(42)retrieve() = 42), confirming the full EVM path and query_contract
  • node test-contract-abi.mjsABI-aware query_contract: fed a raw ABI, it auto-encodes/decodes — answer() → 73 (uint), title() → "hedera-mcp" (string), ping() → 73 (pure)

Development

npm run lint       # tsc --noEmit
npm run build      # compile to dist/
node test-smoke.mjs    # MCP stdio: live Mirror Node read + build-only write + decode
node demo.mjs          # narrated "developer's first session" walkthrough (build-only)
node test-execute.mjs  # LIVE testnet submit (needs a throwaway key in .env — see below)

Live execution verification

test-execute.mjs proves the build-only output is real: the MCP server builds an unsigned transaction, the harness signs it with a throwaway testnet key from .env and submits it, then confirms the result independently via Mirror Node. The server stays build-only the whole time — only the test harness ever touches a key.

HEDERA_NETWORK=testnet
HEDERA_OPERATOR_ID=0.0.xxxxxx
HEDERA_OPERATOR_KEY=302e0201...    # rotate/discard after verifying

Get a free testnet account at portal.hedera.com.

Built on @hashgraph/sdk and @modelcontextprotocol/sdk.

License

MIT © Matthew Karsten