Skip to main content
Glama
junxit

mcp-bitcoin

by junxit

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
MCP_BITCOIN_NETWORKNoNetwork to use: mainnet, testnet, signet, regtest.mainnet
MCP_BITCOIN_TIMEOUTNoPer-backend request timeout in seconds.30
MCP_BITCOIN_CORE_URLNoBitcoin Core RPC URL. Omit credentials to use cookie auth.
MCP_BITCOIN_TOR_PROXYNoSOCKS5 proxy URL for routing all backend connections through Tor; server fails to start if unreachable.
MCP_BITCOIN_ESPLORA_URLNoEsplora API base URL.
MCP_BITCOIN_MEMPOOL_URLNomempool.space API base URL.
MCP_BITCOIN_ELECTRUM_URLNoElectrum server URL, e.g. ssl://host:50002 or tcp://host:50001.
MCP_BITCOIN_ALLOW_MNEMONICNoSet to 'true' to enable seed-phrase and private-key tools.false
MCP_BITCOIN_CORE_COOKIE_PATHNoOverride the .cookie location.auto
MCP_BITCOIN_FAILOVER_COOLDOWNNoInitial backoff for a failed backend in seconds.60
MCP_BITCOIN_PROVIDER_PRIORITYNoComma-separated failover order for backends.core,electrum,mempool,esplora
MCP_BITCOIN_ELECTRUM_ALLOW_SELF_SIGNEDNoAccept self-signed certificates for Electrum (unauthenticated).false

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
pingA

Check server health and which backends are reachable.

Start here when other tools report backend errors.

list_backendsA

List configured backends, their reachability and their capabilities.

convert_unitsA

Convert between Bitcoin units. Works offline.

Args: amount: Amount to convert, e.g. "0.001". from_unit: Source unit: btc, mbtc, bit or sat. to_unit: Target unit: btc, mbtc, bit or sat.

generate_mnemonicA

Generate a new BIP-39 seed phrase. Works offline.

Requires MCP_BITCOIN_ALLOW_MNEMONIC=true, because the generated phrase is returned into the conversation and therefore into your client's transcript. Never use a phrase generated this way for real funds — use a hardware wallet or an offline generator.

Args: word_count: 12, 15, 18, 21 or 24. Defaults to 24.

validate_mnemonicA

Check a BIP-39 phrase's word count, wordlist and checksum. Works offline.

Args: mnemonic: The space-separated seed phrase to check.

derive_addressesA

Derive addresses from an xpub (preferred) or a seed phrase. Works offline.

Passing an xpub/ypub/zpub is the safe path and needs no special permission. Passing a mnemonic requires MCP_BITCOIN_ALLOW_MNEMONIC=true.

Args: source: An xpub/ypub/zpub, or a BIP-39 mnemonic. passphrase: Optional BIP-39 passphrase; only used with a mnemonic. address_type: legacy, nested_segwit, native_segwit or taproot. account: BIP-44 account index. change: 0 for receiving addresses, 1 for change. start_index: First address index. count: How many addresses to derive, up to 500. network: Override the server's network for this call.

derive_from_pathA

Derive one key at an arbitrary BIP-32 path, in every address format.

Works offline. Private keys are never returned.

Args: source: An xpub/ypub/zpub, or a BIP-39 mnemonic. path: A BIP-32 path such as "m/84'/0'/0'/0/0". passphrase: Optional BIP-39 passphrase; only used with a mnemonic. network: Override the server's network for this call.

derive_xpubA

Extract an account xpub/ypub/zpub from a seed phrase. Works offline.

Requires MCP_BITCOIN_ALLOW_MNEMONIC=true. Run this once, keep the xpub, and every later address query can stay watch-only.

Args: mnemonic: The BIP-39 seed phrase. standard: bip44, bip49, bip84 or bip86. passphrase: Optional BIP-39 passphrase. account: Account index. network: Override the server's network for this call.

derive_entropy_bip85A

Derive a deterministic child seed or entropy from a master seed (BIP-85).

Works offline. Requires MCP_BITCOIN_ALLOW_MNEMONIC=true.

Args: mnemonic: The master BIP-39 seed phrase. index: Derivation index; each index gives a different child. passphrase: Optional BIP-39 passphrase for the master seed. child_mnemonic_words: Set to 12/15/18/21/24 to derive a child seed phrase. Leave unset to derive raw hex entropy instead. num_bytes: Entropy length, 16-64, when deriving raw entropy.

decode_wifA

Show the public key and addresses for a WIF private key. Works offline.

Requires MCP_BITCOIN_ALLOW_MNEMONIC=true. The private key is not echoed back.

Args: wif: The WIF-encoded private key. network: Override the server's network for this call.

get_address_from_pubkeyA

Convert a hex public key to an address. Works offline.

Args: pubkey: Hex-encoded public key, compressed or uncompressed. address_type: legacy, nested_segwit, native_segwit, taproot, or "all". network: Override the server's network for this call.

get_balanceA

Get an address's confirmed and unconfirmed balance. Needs a backend.

Args: address: The Bitcoin address to look up. network: Override the server's network for this call.

get_utxosA

List an address's unspent outputs. Needs a backend.

Args: address: The Bitcoin address to look up. min_confirmations: Exclude UTXOs below this confirmation count. network: Override the server's network for this call.

get_tx_historyA

Get an address's transaction history, newest first. Needs a backend.

Paginates by cursor: pass the returned next_cursor as after_txid to page on.

Args: address: The Bitcoin address to look up. limit: How many transactions to return, up to 100. after_txid: Continue after this txid, from a previous next_cursor. network: Override the server's network for this call.

get_transactionA

Fetch and decode a transaction by txid. Needs a backend.

Args: txid: The 64-hex-character transaction ID. network: Override the server's network for this call.

get_raw_transactionB

Fetch a transaction's raw hex. Needs a backend.

Args: txid: The 64-hex-character transaction ID. network: Override the server's network for this call.

decode_raw_transactionA

Decode raw transaction hex, showing destinations. Works offline.

Args: raw_tx: The raw transaction hex. network: Override the server's network for address rendering.

get_blockA

Fetch a block header by hash or height. Needs a backend.

Args: block: A block hash, or a block height as a number. network: Override the server's network for this call.

get_block_heightA

Get the current chain tip height. Needs a backend.

Args: network: Override the server's network for this call.

validate_addressA

Check whether an address is valid and which network it belongs to.

Works offline.

Args: address: The address to check. network: Compare against this network instead of the server default.

decode_scriptA

Decode a scriptPubKey to its type and address. Works offline.

Args: script_hex: The hex-encoded script. network: Override the server's network for address rendering.

decode_psbtA

Decode a PSBT, showing every destination, the fee and signing status.

Works offline. Use this to check where funds are going before signing in your wallet. This server cannot sign or broadcast.

Args: psbt: The base64-encoded PSBT. network: Override the server's network for address rendering.

estimate_feeA

Estimate the fee rate to confirm within a number of blocks. Needs a backend.

Args: target_blocks: Desired confirmation target, 1 to 1008. network: Override the server's network for this call.

get_recommended_feesA

Get economy, normal and priority fee rates. Needs a backend.

Args: network: Override the server's network for this call.

get_fee_histogramC

Get the mempool fee distribution. Needs a backend.

Args: network: Override the server's network for this call.

get_mempool_infoA

Get mempool size, vsize and minimum fee rate. Needs a backend.

Args: network: Override the server's network for this call.

get_mempool_entryA

Get mempool details for an unconfirmed transaction. Needs a backend.

Args: txid: The 64-hex-character transaction ID. network: Override the server's network for this call.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A3.6/5.0

Scored across 27 tools

Disambiguation4/5

Most tools target a distinct resource/action, and the descriptions clearly specify inputs and outputs. A few pairs such as get_transaction/get_raw_transaction/decode_raw_transaction and estimate_fee/get_recommended_fees are close enough that an agent could pick the wrong one without reading carefully.

Naming Consistency4/5

The vast majority follow a clean snake_case verb_noun pattern: get_*, decode_*, derive_*, and validate_* are consistent. The pattern is only slightly interrupted by bare ping and list_backends, and by a minor mix of list_ vs get_ for similar lookup operations.

Tool Count3/5

27 tools is on the heavy side for a single server, even for a broad Bitcoin domain; the health tools and the fee/mempool cluster could plausibly be consolidated. Each tool has a distinguishable purpose, so the count feels borderline rather than chaotic.

Completeness4/5

The server covers mnemonic handling, key derivation, address/script/PSBT decoding, balances, UTXOs, history, transactions, blocks, fees, and mempool state—strong coverage for a read-only Bitcoin utility. The main gaps are transaction building/broadcasting and block-transaction listing, though the server explicitly positions itself as non-signing and non-broadcasting.

Maintenance

ActivityMaintained
ResponsivenessNo issues