CAT
/MCP
SkillsMCPMarketplacesDigestToolsAdvertise

This week in Claude

Every Monday: Claude Code, Agent SDK, MCP, and the Anthropic platform moves worth your time.

Skills by Category
Frontend DevelopmentBackend & APIsTesting & QASecurityDevOps & CI/CDGit & Pull RequestsDocumentationCode Review & QualityAI & Agent BuildingSkill Development
MCP Servers by Category
Sales & MarketingWeb & Browser AutomationDatabasesAI & LLM ToolsCloud & InfrastructureCommunication & MessagingDeveloper ToolsDesign & CreativeDocuments & KnowledgeSearch & Web Crawling
Marketplaces by Category
AI Agents & OrchestrationLLM IntegrationDevelopment ToolsFrontend & UIBackend & APIsDatabasesTesting & Code QualityDevOps & CloudSecurity & ComplianceGit & Version Control

Cross AI Tools

Discover Claude Code plugins, extensions, and tools. Automatically updated directory of Anthropic Claude AI marketplaces with development tools, productivity plugins, and integrations.

Resources

  • Browse Skills
  • Browse MCP Servers
  • Browse Marketplaces
  • Plugins Reference

Community

  • About
  • Tools
  • Feedback
  • Privacy Policy
  • Advertise

Built for the Claude Code community with Claude Code by @mertduzgun

Independent project, not affiliated with Anthropic

DERO MCP Server

dhebp/dero-mcp-server
230 toolsSTDIO, HTTPregistry active
Summary

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.

Install to Claude Code

verified
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.

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

CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
Keep your Mac awake
Keep your Mac awake
Keep your Mac awake while Claude Code and 40+ AI agents run. Sleeps when they're idle.
One time payment $9 →
Context.devContext.dev
Context.dev
Integrate web data into your AI product. One API to scrape website & brand data.
Get API Key Now →
Make your agent a DeFi expert
Make your agent a DeFi expert
Agent, run crypto. Access onchain data & trade routes via 1inch.
Install now →
Make money from your Skills
Make money from your Skills
On Capafy, your Skill runs online 24/7 as an agent product, and you get paid every time someone uses it.
Start earning →
AppSignal
AppSignal
Monitor with ease. Code with confidence.
Start Free Trial →
CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
Keep your Mac awake
Keep your Mac awake
Keep your Mac awake while Claude Code and 40+ AI agents run. Sleeps when they're idle.
One time payment $9 →
Context.devContext.dev
Context.dev
Integrate web data into your AI product. One API to scrape website & brand data.
Get API Key Now →
Make your agent a DeFi expert
Make your agent a DeFi expert
Agent, run crypto. Access onchain data & trade routes via 1inch.
Install now →
Make money from your Skills
Make money from your Skills
On Capafy, your Skill runs online 24/7 as an agent product, and you get paid every time someone uses it.
Start earning →
AppSignal
AppSignal
Monitor with ease. Code with confidence.
Start Free Trial →

Tools

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

verified live30 tools
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
txs_hashes*array
List of transaction hashes (hex)
decode_as_jsoninteger
Optional: decode each tx as JSON when non-zero
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
scidstring
Asset SCID hex; omit for native DERO
address*string
DERO address (dero1… or deto1…)
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
variablesboolean
Include stored variables (default true)
topoheightinteger
Topo height; omit or use -1 for latest
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)
query*string
Search text (e.g., "wallet rpc", "tela deployment", "deropay webhooks")
productstring
Optional docs product filter: derod | tela | hologram | deropayone of derod · tela · hologram · deropay
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
slug*string
Doc slug relative to pages/ (e.g., "rpc-api/daemon-rpc-api", "tutorials/first-app", "dero-pay/quick-start")
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
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
scid*string
64-char hex Smart Contract ID of a TELA-DOC-1 file contract
offsetinteger
Byte offset into the extracted file content; use next_offset to paginate large files
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").
product_hintstring
Optional bias toward one product (derod | tela | hologram | deropay) when known.one of derod · tela · hologram · deropay
limit_per_productinteger
Cap per-product search results before merging. Default 2.
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
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.
include_breakdownboolean
Default true. Set false to return raw estimate numbers only.
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.
tx_hash*string
64-char hex transaction hash
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.
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
tx_hashstring
64-char hex transaction hash to audit.
block_hashstring
64-char hex block hash to audit.
topoheightinteger
Topological height of a block to audit.
proof_stringstring
Optional `deroproof…` / DERO bech32 string to also decode and check.
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.
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
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 addresses).
tx_hashstring
TX hash to forge against. Daemon fetches the TX hex + ring members. Mutually exclusive with tx_hex.
ring_slotinteger
Which ring slot 0..ring_size-1 the forged proof should resolve to. Defaults to 0.default: 0
amount_derostring
Target display amount in signed DERO (5 fractional digits = atomic precision). Negative values demonstrate the uint64 wraparound. Default "-1".default: -1

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 + 11 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.4.4 · Transports: stdio (default, npm package) · streamable-http (--http, for self-hosting)


What is an MCP server

An MCP server (Model Context Protocol) is a small program that gives your AI assistant — Claude Desktop, Cursor, OpenCode, ChatGPT with Custom Connectors — the ability to call specific tools on your behalf. Instead of the AI talking about DERO from memory, it can actually look things up: fetch a block, read a contract, search the docs, trace a transaction, estimate a deploy.

You install it once and point your AI host at it. From then on, every DERO question you ask in chat hits live chain data and the bundled docs corpus — not the AI's training cutoff.

What is DERO

If you're new to DERO: it's a privacy-first L1 blockchain — often described as a private alternative to Ethereum for builders who want smart contracts without a transparent ledger, or as a Monero alternative for users who want account-based privacy with native programmability instead of UTXO-only payments. Homomorphically encrypted balances. Ring signatures hide senders. Zero-knowledge range proofs (Bulletproofs) hide amounts. There is no public transaction graph. The current mainnet is DERO Stargate.

Full docs: derod.org

About this server

Model Context Protocol (MCP) server that exposes read-only and analysis calls against a DERO Stargate daemon JSON-RPC endpoint. Ships as a stdio process for local MCP hosts (Claude Desktop, Cursor, OpenCode) or in streamable-HTTP mode behind a domain (e.g. mcp.derod.org) for ChatGPT Custom Connectors, Cursor hosted mode, and any agent that needs a remote URL. See deploy/ for a reference self-hosted deployment.

Quick start

Get a working DERO MCP connection in under 5 minutes.

What you need

  • Node.js 20+ (install) — verify with node --version.
  • An MCP host — Claude Desktop, Cursor, OpenCode, or ChatGPT with Custom Connectors. This walkthrough uses Claude Desktop; the JSON config below works identically in Cursor and OpenCode.
  • Optional: a local DERO daemon. If one is running on 127.0.0.1:10102, the server detects and uses it automatically; otherwise it falls back to a public RPC, so it works with zero setup. Run your own for production — how to.

1. Open your MCP host's config

HostWhere
Claude Desktop (macOS)~/Library/Application Support/Claude/claude_desktop_config.json
Claude Desktop (Windows)%APPDATA%\Claude\claude_desktop_config.json
CursorSettings → MCP → Add Server
OpenCodeSettings → MCP → Add Server

Create the file if it doesn't exist.

2. Add the DERO MCP server

{
  "mcpServers": {
    "dero-daemon": {
      "command": "npx",
      "args": ["-y", "dero-mcp-server"]
    }
  }
}

This uses npx to fetch and run the latest published version — no manual install or build required.

The server auto-detects a local node at 127.0.0.1:10102. To pin a specific daemon (custom port or a remote URL), add an env block:

"env": { "DERO_DAEMON_URL": "http://127.0.0.1:10102" }

3. Restart your MCP host

Fully quit and reopen — not just refresh. MCP servers load at startup.

4. Verify it works

In a new chat:

"What's the current DERO chain height?"

A number back means you're connected. If you see an error, confirm the config file path is correct and your host was fully restarted (not just refreshed).

Once it's working, jump to Try a prompt for a full tour.


What you can do with it

Once installed, your MCP host can do all of these on your behalf — in natural language, no JSON-RPC needed:

  • Inspect the chain — blocks, transactions, mempool, encrypted balances, registered names
  • Analyze smart contracts — read code and state, classify the pattern, estimate deploy gas, pull relevant DVM-BASIC docs in one call
  • Trace transactions — look up any hash, confirm inclusion, classify the kind (transfer / SC install / SC call)
  • Explore the on-chain web (TELA) — discover apps by name (vault.tela → SCID), browse what's deployed, inspect an app's manifest and files, and read the actual on-chain HTML/JS/CSS — no separate indexer to run
  • Search the docs — across all four DERO sites (derod, tela, hologram, deropay)
  • Run composite analyses — chain health, claim audits, docs path recommendations, deploy pre-flights — each returns curated DERO docs citations alongside the data

Try a prompt

After installing and restarting your MCP host, paste any of these. Start simple and work up.

Basic

Single-tool questions that verify the install and exercise live queries.

"What's the current DERO chain height?"

"Resolve the DERO name 'engram' to an address."

"Find the documentation page on Bulletproofs."

"What does the smart contract at SCID 0000…0001 do?"

Intermediate

Composite tools that fan out into multiple primitives and return a synthesized answer with citations.

"Explain the smart contract at SCID 0000000000000000000000000000000000000000000000000000000000000001 — what it does, its functions, and which DVM-BASIC docs are relevant."

"Trace transaction with full context — confirmation, classification, and what it touched."

"What's the right reading path for someone new to DERO smart contracts who wants to deploy a DVM-BASIC contract?"

"Estimate the gas cost to deploy this DVM source: "

TELA — the decentralized web on DERO

TELA apps are full web apps (HTML/CSS/JS) deployed entirely on-chain. The server discovers and reads them with no external indexer — the first discovery query runs a one-time ~15s scan, then it's instant.

"What's the SCID for vault.tela?"

"What TELA apps exist on DERO? Show me a few."

"Inspect the TELA app at SCID — what is it, who made it, and what files does it have?"

"Show me the actual HTML of that app's index.html."

For multi-step agent recipes, per-tool guidance, error contract, and the composite-first rule, see SKILL.md.

Not included (by design): wallet RPC (transfer, scinvoke), DERO.SendRawTransaction, DERO.SubmitBlock. Those can move funds or consensus data; add them only with explicit user consent and a locked-down setup.

See also

  • SKILL.md — per-tool agent runbook: composite-first rule, structured error contract, citation rules, agent-loop recipes, port reference.
  • POSITIONING.md — who DERO MCP is for, who it isn't, comparison vs ACP / Stripe / Crossmint / Skyfire, privacy posture.

Requirements

  • Node.js 20+
  • A reachable DERO daemon with RPC enabled (local node or your own remote URL).

Install & build

cd dero-mcp-server
npm install
npm run build

Run (auto-detects a local node at 127.0.0.1:10102, else public fallback, when DERO_DAEMON_URL is unset):

node dist/index.js

Or set an explicit URL (e.g. your local daemon):

DERO_DAEMON_URL=http://127.0.0.1:10102 node dist/index.js

Daemon resolution is local-first: with DERO_DAEMON_URL unset, the server uses a local node at 127.0.0.1:10102 if it answers, else the baked-in third-party public RPC (82.65.143.182:10102). Prefer your own node for privacy.

Strip a trailing /json_rpc if you paste a full JSON-RPC URL — this server appends /json_rpc.

HTTP mode (self-hosted)

For clients that can't launch a local subprocess — ChatGPT Custom Connectors, Cursor hosted mode, n8n / Zapier integrations — run the server in streamable-HTTP mode and put it behind your own domain:

DERO_MCP_AUTH_TOKEN=$(openssl rand -base64 48) \
  dero-mcp-server --http
# [dero-mcp-server] HTTP listening on 127.0.0.1:8787 (POST /mcp · GET /health)
VariableDefaultDescription
DERO_MCP_HTTPunsetSet to 1 (or pass --http) to start in HTTP mode.
DERO_MCP_HTTP_PORT8787Listen port.
DERO_MCP_HTTP_HOST127.0.0.1Listen address. Use 0.0.0.0 to bind publicly (do not without auth + TLS upstream).
DERO_MCP_AUTH_TOKENunsetIf set, every /mcp request must carry Authorization: Bearer <token>. Constant-time compared.

For a turnkey deploy with Caddy + auto-TLS + Docker Compose, see deploy/README.md. It's a self-hosting reference for mcp.derod.org-style instances — anyone can fork and run their own.

The stdio transport (below) and the HTTP transport share the same underlying server factory, so the tool surface, response shapes, and error codes are identical across both.

Claude Desktop (same pattern for OpenCode and Cursor)

Add to claude_desktop_config.json (macOS: ~/Library/Application Support/Claude/claude_desktop_config.json):

{
  "mcpServers": {
    "dero-daemon": {
      "command": "node",
      "args": ["/ABSOLUTE/PATH/TO/dero-mcp-server/dist/index.js"]
    }
  }
}

Optional: add "env": { "DERO_DAEMON_URL": "http://127.0.0.1:10102" } to pin a specific daemon. Not needed if your local node uses the default port — the server auto-detects it.

Restart Claude Desktop (or your OpenCode/Cursor host).

Cursor (or OpenCode)

In Cursor Settings → MCP (or OpenCode MCP settings), add a server that runs the same command / args / env as above.

OpenCode

In OpenCode MCP settings, add a server with the same command / args / env as above.

Environment

VariableDefaultDescription
DERO_DAEMON_URL(local-first auto-detect)Daemon base URL (no /json_rpc required). Unset → local node at 127.0.0.1:10102 if reachable, else public fallback (82.65.143.182:10102). Set to pin a specific endpoint.
DERO_DOCS_ROOTbundled indexOptional dev override: path to a local dero-docs clone to index live MDX instead of the shipped bundle.

Maintainer: bundled docs

Docs tools read from data/docs-index.json, committed in this repo and shipped with the npm package. Rebuild the index when dero-docs changes:

npm run release:docs-check
git add data/docs-index.json && git commit -m "Refresh bundled docs index."

Or run Refresh docs bundle under Actions to open a PR. Pushes to dero-docs main can trigger that workflow via repository_dispatch when MCP_DOCS_SYNC_TOKEN is configured on the docs repo.

After merging a bundle update: bump the patch version in package.json and server.json, then npm publish --otp=... and mcp-publisher publish.

Testing

# Check daemon connectivity
npm run doctor

# MCP surface contract checks (tools/resources/prompts + error probe)
npm run smoke:mcp

# Docs retrieval checks (bundled index — no clone required)
npm run smoke:docs

# Run flow tests (10 RPC checks)
npm run test:flows

# Typecheck
npm run typecheck

Flow tests run against the default public RPC. Set DERO_DAEMON_URL to test against your own daemon.

CI runs on every push and PR — see .github/workflows/ci.yml.

Official MCP Registry

Publish flow (maintainers):

mcp-publisher validate
mcp-publisher login github
mcp-publisher publish

Verify listing:

curl "https://registry.modelcontextprotocol.io/v0.1/servers?search=io.github.DHEBP/dero-mcp-server"

MCP Surface

  • Tools (32): 21 daemon read/analysis primitives + 11 composites, including TELA app inspection (tela_inspect, tela_get_doc_content), TELA discovery (dero_durl_to_scid, dero_tela_list_apps), and docs retrieval (dero_docs_search, dero_docs_get_page, dero_docs_list)
  • Resources (4): dero://mcp/server-info, dero://mcp/safety-boundary, dero://mcp/example-flows, dero://mcp/composites
  • Prompts (5): network_health_check, inspect_smart_contract, trace_transaction, find_dero_docs_for_intent, estimate_deploy_for_contract

Error Contract

When a tool call fails, the server returns a structured error payload in tool content:

{
  "ok": false,
  "tool": "dero_get_sc",
  "_meta": {
    "error": {
      "code": "RPC_UNREACHABLE",
      "hint": "Confirm daemon is running and reachable, then rerun `npm run doctor`.",
      "retryable": true,
      "raw": "fetch failed"
    }
  }
}

Common code values:

  • INVALID_INPUT
  • RPC_INVALID_PARAMS
  • RPC_METHOD_NOT_FOUND
  • RPC_HTTP_ERROR
  • RPC_UNREACHABLE
  • RPC_INVALID_RESPONSE
  • TOOL_EXECUTION_ERROR

Roadmap

  • Optional wallet-RPC tools behind DERO_ENABLE_WALLET_RPC=1 + separate URL.
  • Stricter typing / OpenAPI-derived tool schemas.
  • TELA-aware contract tooling (INDEX/DOC inspection, on-chain app discovery).

License

MIT

Featured
CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
Keep your Mac awake
Keep your Mac awake
Keep your Mac awake while Claude Code and 40+ AI agents run. Sleeps when they're idle.
One time payment $9 →
Context.devContext.dev
Context.dev
Integrate web data into your AI product. One API to scrape website & brand data.
Get API Key Now →
Make your agent a DeFi expert
Make your agent a DeFi expert
Agent, run crypto. Access onchain data & trade routes via 1inch.
Install now →
Make money from your Skills
Make money from your Skills
On Capafy, your Skill runs online 24/7 as an agent product, and you get paid every time someone uses it.
Start earning →
AppSignal
AppSignal
Monitor with ease. Code with confidence.
Start Free Trial →
Registryactive
Packagedero-mcp-server
TransportSTDIO, HTTP
Resources4
Prompts5
Tools verifiedJun 10, 2026
UpdatedJun 10, 2026
View on GitHub