dhebp avatar

DERO MCP Server

dhebp/dero-mcp-server

Connects Claude to the DERO privacy blockchain via daemon JSON-RPC. Exposes 21 read-only primitives (blocks, transactions, mempool, smart contract state, registered names) plus 7 composite tools that bundle multi-step queries with documentation lookups. Ships with a full DERO docs index covering derod, DVM-BASIC smart contracts, and the Stargate mainnet. Auto-detects local nodes at 127.0.0.1:10102 or falls back to a public endpoint. Runs stdio for Claude Desktop and Cursor, or streamable HTTP for remote integrations. No wallet RPC or transaction submission by design. Useful if you're building on DERO and want Claude to pull live chain data, analyze contracts, or surface docs without leaving the chat.

GitHub stars
2
tools
30
transport
STDIO, HTTP
last updated
Aug 21, 2026

Install

From registry metadata
$ npx add-mcp https://mcp.derod.org/mcp --name dero

Run in your terminal. add-mcp asks which agents to add it to (Claude Code, Codex, Cursor and more). Add -g to install it for every project.

Review the command, arguments and environment values before installing. MCP servers run with your local permissions.

Other ways

Claude Code

$ claude mcp add --transport http dero https://mcp.derod.org/mcp

Run in your terminal. Add --scope user to make it available in every project.

Tools

Verified live · 30 tools

Verified live against the running server on Jun 10, 2026.

dero_daemon_pingDERO daemon connectivity check via DERO.Ping. When to call: as the first step in any chain investigation to confirm the daemon is reachable. Call before dero_get_info if you are unsure whether DERO_DAEMON_URL is correctly configured. Input Requirements: none. Output: a "Pong"...

DERO daemon connectivity check via DERO.Ping. When to call: as the first step in any chain investigation to confirm the daemon is reachable. Call before dero_get_info if you are unsure whether DERO_DAEMON_URL is correctly configured. Input Requirements: none. Output: a "Pong"...

No parameters. Call it with no arguments.

dero_daemon_echoEcho strings through the daemon via DERO.Echo. Useful for round-trip sanity checks. When to call: when you need to confirm that string payloads reach the daemon intact (e.g. before debugging a malformed call to a more complex tool). PREFER dero_daemon_ping for a lighter-weight...1 params

Echo strings through the daemon via DERO.Echo. Useful for round-trip sanity checks. When to call: when you need to confirm that string payloads reach the daemon intact (e.g. before debugging a malformed call to a more complex tool). PREFER dero_daemon_ping for a lighter-weight...

Parameters* required
words*array
Strings to echo back
dero_get_infoGet DERO daemon and chain metadata: height, topoheight, stableheight, difficulty, version, network, mempool size, and total supply (DERO.GetInfo). When to call: first thing in any chain-state investigation or sync-health check. Call this BEFORE dero_get_sc, dero_get_transactio...

Get DERO daemon and chain metadata: height, topoheight, stableheight, difficulty, version, network, mempool size, and total supply (DERO.GetInfo). When to call: first thing in any chain-state investigation or sync-health check. Call this BEFORE dero_get_sc, dero_get_transactio...

No parameters. Call it with no arguments.

dero_get_heightGet the current block heights: tip height, stable height (finalized), and topoheight (canonical ordering) via DERO.GetHeight. When to call: when you need a quick height snapshot without the full chain-info payload. PREFER dero_get_info when you also need network, version, or d...

Get the current block heights: tip height, stable height (finalized), and topoheight (canonical ordering) via DERO.GetHeight. When to call: when you need a quick height snapshot without the full chain-info payload. PREFER dero_get_info when you also need network, version, or d...

No parameters. Call it with no arguments.

dero_get_block_countGet the total block count via DERO.GetBlockCount. This is a tip count, not a topoheight. When to call: when you need just the block count (e.g. for delta math against a reference height). PREFER dero_get_height when you need tip and stable heights together. Input Requirements:...

Get the total block count via DERO.GetBlockCount. This is a tip count, not a topoheight. When to call: when you need just the block count (e.g. for delta math against a reference height). PREFER dero_get_height when you need tip and stable heights together. Input Requirements:...

No parameters. Call it with no arguments.

dero_get_last_block_headerGet the header of the current tip block via DERO.GetLastBlockHeader (no full block body). When to call: when you need tip block metadata (hash, miner, timestamp, difficulty) without the transactions or miner_tx payload. PREFER dero_get_block when you need transactions or the m...

Get the header of the current tip block via DERO.GetLastBlockHeader (no full block body). When to call: when you need tip block metadata (hash, miner, timestamp, difficulty) without the transactions or miner_tx payload. PREFER dero_get_block when you need transactions or the m...

No parameters. Call it with no arguments.

dero_get_blockFetch a full block (header + miner_tx + transactions + topo position) by height OR hash via DERO.GetBlock. When to call: when investigating a specific block or verifying a transaction's inclusion. Call dero_get_height first if you do not have a target height. PREFER citing der...2 params

Fetch a full block (header + miner_tx + transactions + topo position) by height OR hash via DERO.GetBlock. When to call: when investigating a specific block or verifying a transaction's inclusion. Call dero_get_height first if you do not have a target height. PREFER citing der...

Parameters* required
hashstring
64-char hex block hash
heightinteger
Block height
dero_get_block_header_by_topo_heightGet a block header by topological height (canonical ordering) via DERO.GetBlockHeaderByTopoHeight. When to call: when you need a header keyed by topo position rather than chain height. Topoheight is the canonical ordering used by DERO indexers; height is the consensus block he...1 params

Get a block header by topological height (canonical ordering) via DERO.GetBlockHeaderByTopoHeight. When to call: when you need a header keyed by topo position rather than chain height. Topoheight is the canonical ordering used by DERO indexers; height is the consensus block he...

Parameters* required
topoheight*integer
Topological height
dero_get_block_header_by_hashGet a block header by its 64-char hex hash via DERO.GetBlockHeaderByHash. When to call: when you have a block hash (e.g. from a tx confirmation) and need its header without the full block body. PREFER dero_get_block when you also need the txs or miner_tx. Input Requirements (C...1 params

Get a block header by its 64-char hex hash via DERO.GetBlockHeaderByHash. When to call: when you have a block hash (e.g. from a tx confirmation) and need its header without the full block body. PREFER dero_get_block when you also need the txs or miner_tx. Input Requirements (C...

Parameters* required
hash*string
Block top hash (hex)
dero_get_tx_poolList pending mempool transaction hashes via DERO.GetTxPool. When to call: when checking unconfirmed activity, watching for a specific tx to land, or estimating mempool pressure. NOTE: `tx_hashes` may be `null` or an empty array when the mempool is empty — treat both as "no pen...

List pending mempool transaction hashes via DERO.GetTxPool. When to call: when checking unconfirmed activity, watching for a specific tx to land, or estimating mempool pressure. NOTE: `tx_hashes` may be `null` or an empty array when the mempool is empty — treat both as "no pen...

No parameters. Call it with no arguments.

dero_get_random_addressGet random registered addresses from the chain (used for ring construction in private transfers) via DERO.GetRandomAddress. When to call: when building a transfer ring in external wallet tooling, or sampling chain participants. Optional asset SCID limits sampling to holders of...1 params

Get random registered addresses from the chain (used for ring construction in private transfers) via DERO.GetRandomAddress. When to call: when building a transfer ring in external wallet tooling, or sampling chain participants. Optional asset SCID limits sampling to holders of...

Parameters* required
scidstring
Optional asset smart-contract id (hex)
dero_get_transactionFetch one or more transactions by hash via DERO.GetTransaction. Each tx is returned with confirmation status, block hash, and (optionally) decoded JSON fields. When to call: when tracing a tx by hash. Pair with dero_get_sc when the tx invokes a contract. PREFER citing dero_doc...2 params

Fetch one or more transactions by hash via DERO.GetTransaction. Each tx is returned with confirmation status, block hash, and (optionally) decoded JSON fields. When to call: when tracing a tx by hash. Pair with dero_get_sc when the tx invokes a contract. PREFER citing dero_doc...

Parameters* required
decode_as_jsoninteger
Optional: decode each tx as JSON when non-zero
txs_hashes*array
List of transaction hashes (hex)
dero_get_encrypted_balanceGet the ENCRYPTED balance blob for a DERO address at a topo height via DERO.GetEncryptedBalance. CRITICAL: this returns an opaque encrypted blob, NOT a cleartext balance. Only the wallet holding the spend key can decrypt it. Do NOT present the encrypted bytes as a balance to t...3 params

Get the ENCRYPTED balance blob for a DERO address at a topo height via DERO.GetEncryptedBalance. CRITICAL: this returns an opaque encrypted blob, NOT a cleartext balance. Only the wallet holding the spend key can decrypt it. Do NOT present the encrypted bytes as a balance to t...

Parameters* required
address*string
DERO address (dero1… or deto1…)
scidstring
Asset SCID hex; omit for native DERO
topoheight*integer
Use -1 for latest chain tip
dero_get_scRead smart contract state (code and/or stored variables) by SCID via DERO.GetSC. This is the primary entry point for any contract inspection on DERO. When to call: as the first step in any DVM contract investigation. Pair with dero_docs_search("DVM-BASIC") to interpret the ret...4 params

Read smart contract state (code and/or stored variables) by SCID via DERO.GetSC. This is the primary entry point for any contract inspection on DERO. When to call: as the first step in any DVM contract investigation. Pair with dero_docs_search("DVM-BASIC") to interpret the ret...

Parameters* required
codeboolean
Include contract source (default true)
scid*string
64-char hex Smart Contract ID
topoheightinteger
Topo height; omit or use -1 for latest
variablesboolean
Include stored variables (default true)
dero_get_gas_estimateEstimate gas (compute + storage) for transfers, SC deploys, or SC invokes via DERO.GetGasEstimate. This is a PRE-FLIGHT check; nothing is submitted. When to call: BEFORE any wallet-side transfer/scinvoke (using external wallet tooling) to size fees, OR when explaining deploy c...4 params

Estimate gas (compute + storage) for transfers, SC deploys, or SC invokes via DERO.GetGasEstimate. This is a PRE-FLIGHT check; nothing is submitted. When to call: BEFORE any wallet-side transfer/scinvoke (using external wallet tooling) to size fees, OR when explaining deploy c...

Parameters* required
scstring
SC source to deploy
sc_rpcarray
SC invocation arguments (entrypoint, SC_ID, etc.)
signerstring
Signer address used for estimation
transfersarray
Optional transfer list
dero_name_to_addressResolve a DERO on-chain registered name to its address via DERO.NameToAddress. When to call: when a user supplies a human-readable name (e.g. "myname") instead of a `dero1.../deto1...` address. Input Requirements (CRITICAL): - `name` MUST be a non-empty string. Resolution is c...2 params

Resolve a DERO on-chain registered name to its address via DERO.NameToAddress. When to call: when a user supplies a human-readable name (e.g. "myname") instead of a `dero1.../deto1...` address. Input Requirements (CRITICAL): - `name` MUST be a non-empty string. Resolution is c...

Parameters* required
name*string
Registered name
topoheight*integer
Use -1 for latest
dero_get_block_templateGet a mining block template for a miner payout address via DERO.GetBlockTemplate. When to call: ONLY when you are actually mining. PREFER dero_get_last_block_header for general chain-tip inspection. Input Requirements (CRITICAL): - `wallet_address` MUST be a valid DERO address...3 params

Get a mining block template for a miner payout address via DERO.GetBlockTemplate. When to call: ONLY when you are actually mining. PREFER dero_get_last_block_header for general chain-tip inspection. Input Requirements (CRITICAL): - `wallet_address` MUST be a valid DERO address...

Parameters* required
blockboolean
Include block blob
minerstring
Optional miner id / label
wallet_address*string
Miner payout DERO address
dero_decode_proof_stringDecode any DERO bech32 string (`dero…`, `deto…`, `deroi…`, `detoi…`, or `deroproof…`) into its constituent parts: HRP, network, compressed public key, and any embedded RPC arguments (CBOR-encoded). For `deroproof…` strings the "public key" is a derived blinder point used in th...1 params

Decode any DERO bech32 string (`dero…`, `deto…`, `deroi…`, `detoi…`, or `deroproof…`) into its constituent parts: HRP, network, compressed public key, and any embedded RPC arguments (CBOR-encoded). For `deroproof…` strings the "public key" is a derived blinder point used in th...

Parameters* required
proof_string*string
Full bech32 string with HRP, e.g. "deroproof1qyy…" or "dero1abc…". Whitespace is trimmed.
dero_docs_searchSearch the bundled DERO documentation index across derod, tela, hologram, and deropay (145+ pages). In-process — no network round trip. When to call: when you need authoritative docs to answer a DERO question, OR before constructing a citation in your response. Call this BEFOR...4 params

Search the bundled DERO documentation index across derod, tela, hologram, and deropay (145+ pages). In-process — no network round trip. When to call: when you need authoritative docs to answer a DERO question, OR before constructing a citation in your response. Call this BEFOR...

Parameters* required
limitinteger
Max matches (default 8, max 25)
productstring
Optional docs product filter: derod | tela | hologram | deropayone of derod · tela · hologram · deropay
query*string
Search text (e.g., "wallet rpc", "tela deployment", "deropay webhooks")
sectionstring
Optional section slug prefix (e.g., "rpc-api", "guides", "dero-pay")
dero_docs_get_pageGet a single bundled docs page by slug, with plain-text content and headings. When to call: AFTER dero_docs_search has returned a candidate slug, OR when you have a known slug from a prior citation. PREFER dero_docs_search first when you only have a topic in mind. Input Requir...3 params

Get a single bundled docs page by slug, with plain-text content and headings. When to call: AFTER dero_docs_search has returned a candidate slug, OR when you have a known slug from a prior citation. PREFER dero_docs_search first when you only have a topic in mind. Input Requir...

Parameters* required
offsetinteger
Byte offset into the page plaintext. Use 0 (or omit) for the first chunk; pass next_offset from a prior response to continue reading a long page.
productstring
Optional product scope to disambiguate duplicate slugsone of derod · tela · hologram · deropay
slug*string
Doc slug relative to pages/ (e.g., "rpc-api/daemon-rpc-api", "tutorials/first-app", "dero-pay/quick-start")
dero_docs_listList indexed bundled docs pages across all four products with slugs, titles, and canonical URLs. When to call: when surveying available docs (e.g. "what TELA tutorials exist?"), OR when you need a slug catalog before invoking dero_docs_get_page. PREFER dero_docs_search when yo...2 params

List indexed bundled docs pages across all four products with slugs, titles, and canonical URLs. When to call: when surveying available docs (e.g. "what TELA tutorials exist?"), OR when you need a slug catalog before invoking dero_docs_get_page. PREFER dero_docs_search when yo...

Parameters* required
limitinteger
Max pages returned (default 120, max 500)
productstring
Optional docs product filter: derod | tela | hologram | deropayone of derod · tela · hologram · deropay
diagnose_chain_healthComposite: run a four-step chain (DERO.Ping → DERO.GetInfo → DERO.GetHeight → DERO.GetTxPool) and return a single narrative health report with chain metadata, mempool snapshot, machine-readable signals, and curated docs citations. When to call: as the first step in any chain-s...1 params

Composite: run a four-step chain (DERO.Ping → DERO.GetInfo → DERO.GetHeight → DERO.GetTxPool) and return a single narrative health report with chain metadata, mempool snapshot, machine-readable signals, and curated docs citations. When to call: as the first step in any chain-s...

Parameters* required
include_tx_poolboolean
Include mempool snapshot in narrative and response. Default true.
explain_smart_contractComposite: fetch a DERO smart contract (code + variables + balances) and return its function surface, a classification of the contract pattern (tela_index | tela_doc | token | registry | minimal | generic), a plain-language narrative, and curated DVM docs citations re-ordered...2 params

Composite: fetch a DERO smart contract (code + variables + balances) and return its function surface, a classification of the contract pattern (tela_index | tela_doc | token | registry | minimal | generic), a plain-language narrative, and curated DVM docs citations re-ordered...

Parameters* required
scid*string
64-char hex Smart Contract ID
topoheightinteger
Optional topo height; omit for latest tip
tela_inspectComposite: fetch a TELA contract by SCID (DERO.GetSC code + variables) and parse it as either a TELA-INDEX-1 app manifest or a TELA-DOC-1 file contract, auto-detecting which standard it is from the stored keys. TELA is DERO's on-chain web-app platform: an INDEX is the app mani...2 params

Composite: fetch a TELA contract by SCID (DERO.GetSC code + variables) and parse it as either a TELA-INDEX-1 app manifest or a TELA-DOC-1 file contract, auto-detecting which standard it is from the stored keys. TELA is DERO's on-chain web-app platform: an INDEX is the app mani...

Parameters* required
scid*string
64-char hex Smart Contract ID of a TELA-INDEX-1 or TELA-DOC-1 contract
topoheightinteger
Optional topo height; omit for the latest committed state
tela_get_doc_contentComposite: fetch the actual file content stored in a TELA-DOC-1 contract. A DOC's file (HTML/CSS/JS/...) lives inside a DVM-BASIC comment block in the contract code — NOT in a stored variable — so this tool fetches DERO.GetSC, confirms the SCID is a DOC, and extracts the file...3 params

Composite: fetch the actual file content stored in a TELA-DOC-1 contract. A DOC's file (HTML/CSS/JS/...) lives inside a DVM-BASIC comment block in the contract code — NOT in a stored variable — so this tool fetches DERO.GetSC, confirms the SCID is a DOC, and extracts the file...

Parameters* required
offsetinteger
Byte offset into the extracted file content; use next_offset to paginate large files
scid*string
64-char hex Smart Contract ID of a TELA-DOC-1 file contract
topoheightinteger
Optional topo height; omit for latest committed state
recommend_docs_pathComposite: take a natural-language intent, fan out parallel scoped searches across the bundled docs for all four DERO products (derod, tela, hologram, deropay), boost any product_hint matches by 1.5×, and return a ranked recommendation list with per-result rationale plus ready...3 params

Composite: take a natural-language intent, fan out parallel scoped searches across the bundled docs for all four DERO products (derod, tela, hologram, deropay), boost any product_hint matches by 1.5×, and return a ranked recommendation list with per-result rationale plus ready...

Parameters* required
intent*string
Natural-language description of what the user wants to do (e.g. "deploy a TELA app", "trace a transaction by hash", "verify a webhook signature").
limit_per_productinteger
Cap per-product search results before merging. Default 2.
product_hintstring
Optional bias toward one product (derod | tela | hologram | deropay) when known.one of derod · tela · hologram · deropay
estimate_deploy_costComposite: send a DVM-BASIC contract source to the daemon's gas estimator, then return the raw estimate alongside a plain-text breakdown (what each gas number means), the parsed contract surface, and curated DVM deploy docs as citations. When to call: BEFORE asking a wallet to...3 params

Composite: send a DVM-BASIC contract source to the daemon's gas estimator, then return the raw estimate alongside a plain-text breakdown (what each gas number means), the parsed contract surface, and curated DVM deploy docs as citations. When to call: BEFORE asking a wallet to...

Parameters* required
include_breakdownboolean
Default true. Set false to return raw estimate numbers only.
sc*string
DVM-BASIC contract source to deploy. MUST be the full contract (Function ... End Function blocks), not a function body alone.
signerstring
Optional dero1.../deto1... signer for the eventual deploy tx.
trace_transaction_with_contextComposite: look up a DERO transaction by hash, classify its confirmation status (confirmed | mempool | unknown) and kind (sc_install | transfer_or_invocation | coinbase | unknown), extract the SC surface inline when the tx is a contract install, and stitch the right DERO tx +...3 params

Composite: look up a DERO transaction by hash, classify its confirmation status (confirmed | mempool | unknown) and kind (sc_install | transfer_or_invocation | coinbase | unknown), extract the SC surface inline when the tx is a contract install, and stitch the right DERO tx +...

Parameters* required
decodeboolean
Pass decode_as_json=1 to the daemon. Default true. Decoded JSON view is informational; the raw hex always comes back.
include_sc_contextboolean
When true (default), runs the SC-install surface extraction inline when the tx contains contract code. SC invocation arg decoding is NOT performed in either mode; see module docs.
tx_hash*string
64-char hex transaction hash
audit_chain_artifact_claimComposite: audit a chain artifact (block topoheight, block hash, TX hash, and/or proof string) end-to-end. Returns a verdict (`cited_in_false_claim` | `clean`), the actual on-chain facts (block reward, TX acceptance status), an optional proof-string decode, a relayable narrati...5 params

Composite: audit a chain artifact (block topoheight, block hash, TX hash, and/or proof string) end-to-end. Returns a verdict (`cited_in_false_claim` | `clean`), the actual on-chain facts (block reward, TX acceptance status), an optional proof-string decode, a relayable narrati...

Parameters* required
block_hashstring
64-char hex block hash to audit.
include_forge_demoboolean
When true AND tx_hash is provided, also forge a fresh demo proof for the same TX (via dero_forge_demo_proof) and embed it under `forge_demo`. Closes the rebuttal loop in one tool call. Default false.
proof_stringstring
Optional `deroproof…` / DERO bech32 string to also decode and check.
topoheightinteger
Topological height of a block to audit.
tx_hashstring
64-char hex transaction hash to audit.
dero_forge_demo_proofComposite: build a fresh `deroproof…` display object for ANY chosen transaction, ring slot, and amount — including negative amounts that uint64-wrap into the trillions. The forged string is constructed locally from public chain data (no wallet, no keys, no broadcast). On an un...4 params

Composite: build a fresh `deroproof…` display object for ANY chosen transaction, ring slot, and amount — including negative amounts that uint64-wrap into the trillions. The forged string is constructed locally from public chain data (no wallet, no keys, no broadcast). On an un...

Parameters* required
amount_derostring
Target display amount in signed DERO (5 fractional digits = atomic precision). Negative values demonstrate the uint64 wraparound. Default "-1".default: -1
ring_slotinteger
Which ring slot 0..ring_size-1 the forged proof should resolve to. Defaults to 0.default: 0
tx_hashstring
TX hash to forge against. Daemon fetches the TX hex + ring members. Mutually exclusive with tx_hex.
tx_hexstring
Raw TX bytes as hex (skip the daemon round-trip). Mutually exclusive with tx_hash. When provided, ring_receiver_address is omitted from the response (the hex carries publickey pointers, not full ad...

Sponsors

Readme

DERO MCP server

A read-only Model Context Protocol server for the DERO privacy blockchain — a private-by-default Layer 1 with encrypted balances, private smart contracts (DVM-BASIC), and no public transaction graph. 21 daemon primitives + 12 composite tools (including TELA on-chain app inspection and dURL→SCID discovery), with a bundled documentation index spanning derod, tela, hologram, and deropay.

MCP Registry CI dero-mcp-server MCP server

Registry listing: io.github.DHEBP/dero-mcp-server · Version: 0.6.0 · Transports: stdio (default, npm package) · streamable-http (--http, for self-hosting)


What is an MCP server


View the full README on GitHub

Details

Repository
github.com/dhebp/dero-mcp-server
Website
derod.org
Package
dero-mcp-server
Transport
STDIO, HTTP
Registry
MCP registry, active
Resources
4
Prompts
5
Tools verified
Jun 10, 2026