Skip to main content
Glama

BCH MCP Server

A comprehensive Bitcoin Cash (BCH) MCP server powered by mainnet-js. Provides wallet management, balance checking, sending BCH, CashTokens (genesis, minting, burning, sending), escrow contracts, QR codes, and transaction utilities.

๐ŸŒ Live Server

Production URL: https://mcp.cashlabs.dev/mcp

Endpoint

URL

MCP Endpoint

https://mcp.cashlabs.dev/mcp

Health Check

https://mcp.cashlabs.dev/health

Server Info

https://mcp.cashlabs.dev/

MCP Card

https://mcp.cashlabs.dev/.well-known/mcp.json

MCP Client Configuration

{
  "mcpServers": {
    "bch-mcp": {
      "url": "https://mcp.cashlabs.dev/mcp"
    }
  }
}

๐Ÿ“‹ Available Tools (40+)

๐Ÿ” Wallet Management

Tool

Description

Example Input

wallet_create

Create a new random wallet

{ "network": "testnet", "type": "seed" }

wallet_from_id

Get wallet info from walletId

{ "walletId": "wif:testnet:..." }

wallet_from_seed

Restore wallet from mnemonic

{ "seedPhrase": "word1 word2...", "network": "testnet" }

wallet_from_wif

Restore wallet from WIF private key

{ "wif": "cNfsP...", "network": "testnet" }

wallet_watch_only

Create watch-only wallet

{ "cashaddr": "bchtest:qq...", "network": "testnet" }

get_deposit_address

Get deposit addresses

{ "walletId": "wif:testnet:..." }

get_public_key

Get public key and hash

{ "walletId": "wif:testnet:..." }

๐Ÿ’ฐ Balance & UTXOs

Tool

Description

Example Input

get_balance

Get wallet balance

{ "walletId": "wif:testnet:...", "unit": "bch" }

get_utxos

Get unspent transaction outputs

{ "walletId": "wif:testnet:..." }

get_max_amount_to_send

Get max sendable amount

{ "walletId": "wif:testnet:...", "outputCount": 1 }

๐Ÿ“ค Sending Transactions

Tool

Description

Example Input

send

Send BCH to addresses

{ "walletId": "...", "to": [{ "cashaddr": "...", "value": 0.001, "unit": "bch" }] }

send_max

Send all funds to address

{ "walletId": "...", "address": "bchtest:qq..." }

op_return_send

Send with OP_RETURN data

{ "walletId": "...", "data": ["MEMO", "Hello"] }

encode_transaction

Build tx without broadcasting

{ "walletId": "...", "to": [...] }

submit_transaction

Broadcast signed tx hex

{ "walletId": "...", "transactionHex": "0200..." }

๐Ÿ“œ History & Blockchain

Tool

Description

Example Input

get_history

Get transaction history

{ "walletId": "...", "unit": "bch", "count": 10 }

get_raw_history

Get raw tx history

{ "walletId": "..." }

get_block_height

Get current block height

{ "network": "testnet" }

decode_transaction

Decode tx by hash/hex

{ "transaction": "abc123...", "loadInputValues": true }

๐Ÿช™ CashTokens (Fungible & NFT)

Tool

Description

Example Input

token_genesis

Create new token category

{ "walletId": "...", "amount": "1000000", "capability": "minting" }

token_send

Send tokens

{ "walletId": "...", "tokenId": "...", "amount": "100", "cashaddr": "..." }

token_mint

Mint new NFT tokens

{ "walletId": "...", "tokenId": "...", "requests": [...] }

token_burn

Burn tokens

{ "walletId": "...", "tokenId": "...", "amount": "10" }

get_token_balance

Get token balance

{ "walletId": "...", "tokenId": "..." }

get_all_token_balances

Get all FT balances

{ "walletId": "..." }

get_nft_token_balance

Get NFT count

{ "walletId": "...", "tokenId": "..." }

get_all_nft_token_balances

Get all NFT balances

{ "walletId": "..." }

get_token_utxos

Get token UTXOs

{ "walletId": "...", "tokenId": "..." }

get_token_deposit_address

Get token deposit address

{ "walletId": "..." }

๐Ÿ”’ Escrow Contracts

Tool

Description

Example Input

escrow_create

Create escrow contract

{ "arbiterAddr": "...", "buyerAddr": "...", "sellerAddr": "...", "amount": "10000" }

escrow_get_balance

Get escrow balance

{ "contractId": "escrow:testnet:..." }

escrow_spend

Release to seller

{ "contractId": "...", "wif": "..." }

escrow_refund

Refund to buyer

{ "contractId": "...", "wif": "..." }

โœ๏ธ Signing & Verification

Tool

Description

Example Input

sign_message

Sign message with wallet

{ "walletId": "...", "message": "Hello World" }

verify_message

Verify message signature

{ "walletId": "...", "message": "...", "signature": "..." }

๐Ÿ’ฑ Price & Conversion

Tool

Description

Example Input

get_bch_price

Get current BCH/USD price

{}

convert_currency

Convert BCH/SAT/USD

{ "amount": 100, "from": "usd", "to": "sat" }

๐Ÿ› ๏ธ Utilities

Tool

Description

Example Input

qr_address

Generate QR code for address

{ "address": "bchtest:qq...", "size": 256 }

validate_address

Validate BCH address

{ "address": "bchtest:qq..." }

wait_for_transaction

Wait for incoming tx

{ "walletId": "..." }

wait_for_balance

Wait for target balance

{ "walletId": "...", "value": 0.01, "unit": "bch" }

๐Ÿงช Testnet

Tool

Description

Example Input

get_testnet_satoshis

Get free testnet coins

{ "walletId": "..." }

return_testnet_satoshis

Return coins to faucet

{ "walletId": "..." }


๐Ÿ“š MCP Resources (21 Documentation Guides)

Agents can fetch documentation resources for context:

Core Guides

Resource URI

Description

docs://overview

BCH MCP Server overview and quick start

docs://wallets

Wallet management - create, restore, watch-only

docs://transactions

Sending BCH - standard, max, OP_RETURN

docs://cashtokens

CashTokens - genesis, mint, send, burn

docs://escrow

Escrow contracts for secure transactions

docs://utilities

QR codes, price conversion, signing

Reference Guides

Resource URI

Description

docs://bch-basics

Bitcoin Cash fundamentals - units, confirmations

docs://addresses

Address formats - CashAddr, token addresses

docs://smart-contracts

CashScript - escrow, multisig, covenants

docs://bcmr

BCMR - token metadata registries

docs://network

Network info - mainnet, testnet, nodes

Developer Resources

Resource URI

Description

docs://api-reference

Complete API reference for all tools

docs://examples

Code examples for common operations

docs://faq

Frequently asked questions

docs://developer-resources

Tools, APIs, explorers, community

docs://security

Security best practices

CashScript Documentation

Resource URI

Description

docs://cashscript

What is CashScript - smart contract language

docs://cashscript-language

Language reference - types, operators, statements

docs://cashscript-globals

Global variables - tx introspection, time locks

docs://cashscript-covenants

Covenants guide - restrict spending, state

docs://cashscript-sdk

TypeScript SDK - Contract, TransactionBuilder


๐Ÿš€ Quick Start

Using the Live Server

Connect your MCP client to https://mcp.cashlabs.dev/mcp

Local Development

# Install dependencies
npm install

# Build the server
npm run build

# Start the server
npm start

The server will be available at http://localhost:8081.

Docker

# Build the image
docker build -t bch-mcp-server .

# Run the container
docker run -d -p 8081:8081 --name bch-mcp bch-mcp-server

๐ŸŒ Deployment to Digital Ocean

Prerequisites

  • A Digital Ocean Droplet (Ubuntu 22.04 recommended)

  • A domain name (optional, for SSL)

  • SSH access to your droplet

Quick Deploy

# SSH into your droplet
ssh root@your-droplet-ip

# Clone the repository
git clone https://github.com/nickthelegend/bch-mcp.git
cd bch-mcp

# Make deployment script executable and run
chmod +x run.sh
./run.sh

DNS Configuration

Add an A Record in your DNS provider:

  • Host: mcp (or @ for root)

  • Value: Your Droplet's IP address

  • TTL: 300


๐Ÿ“ก API Endpoints

Method

Endpoint

Description

POST

/mcp

Main MCP endpoint for tool calls

GET

/health

Health check endpoint

GET

/

Server info and endpoints

GET

/.well-known/mcp.json

MCP server card (metadata)

GET

/.well-known/mcp-config

MCP configuration schema


๐Ÿ”ง Environment Variables

Variable

Default

Description

PORT

8081

Server port

DEBUG

false

Enable debug logging

NODE_ENV

production

Node environment


๐Ÿ“– Usage Examples

Create a Testnet Wallet

{
  "tool": "wallet_create",
  "input": { "network": "testnet", "type": "seed" }
}

Get Free Testnet Coins

{
  "tool": "get_testnet_satoshis",
  "input": { "walletId": "wif:testnet:cNfsP..." }
}

Send BCH

{
  "tool": "send",
  "input": {
    "walletId": "wif:testnet:...",
    "to": [
      { "cashaddr": "bchtest:qq...", "value": 1000, "unit": "sat" }
    ]
  }
}

Create CashToken

{
  "tool": "token_genesis",
  "input": {
    "walletId": "wif:testnet:...",
    "amount": "1000000",
    "capability": "minting"
  }
}

Create Escrow Contract

{
  "tool": "escrow_create",
  "input": {
    "arbiterAddr": "bchtest:qq...",
    "buyerAddr": "bchtest:qq...",
    "sellerAddr": "bchtest:qq...",
    "amount": "50000",
    "network": "testnet"
  }
}

๐Ÿ“ฆ Monitoring

# Check server health
curl https://mcp.cashlabs.dev/health

# View container logs
docker logs -f bch-mcp-server

๐Ÿ”„ Updating

# Pull latest changes
git pull

# Rebuild and restart
docker stop bch-mcp-server
docker rm bch-mcp-server
docker build -t bch-mcp-server .
docker run -d --name bch-mcp-server --network mcp-net --restart unless-stopped -e PORT=8081 bch-mcp-server

๐Ÿ“œ License

MIT

๐Ÿ‘ค Author

nickthelegend

-
security - not tested
F
license - not found
-
quality - not tested

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/CashLabs-Dev/bch-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server