Counterparty MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| SIGNER_ADDRESS | No | Bitcoin address for the signing key | |
| COUNTERPARTY_NODE | No | Counterparty node URL | https://api.counterparty.io:4000 |
| SIGNER_PRIVATE_KEY | No | WIF-encoded private key for signing |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| resources | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_balancesA | Get all Counterparty token balances for a Bitcoin address |
| get_balanceA | Get the balance of a specific asset for a Bitcoin address |
| get_asset_infoA | Get metadata for a Counterparty asset (supply, divisibility, issuer, description, etc.) |
| get_asset_balancesB | Get all balances for a specific asset across all holders |
| get_assetsC | Search or list Counterparty assets |
| get_issuancesA | Get the issuance history for a Counterparty asset |
| get_owned_assetsB | Get all assets issued/owned by a specific address |
| get_ordersC | Get orders on the Counterparty DEX (default: open) |
| get_orderA | Get details of a specific DEX order by its transaction hash |
| get_order_matchesA | Get matches for a specific DEX order |
| get_orders_by_pairA | Get the order book for a specific trading pair on the DEX |
| get_asset_ordersB | Get all DEX orders involving a specific asset |
| get_address_ordersA | Get all DEX orders placed by a specific address |
| get_dispensersB | Get Counterparty dispensers (default: open) |
| get_dispenserA | Get details of a specific dispenser by its transaction hash |
| get_dispensers_by_assetA | Get dispensers for a specific asset (default: open) |
| get_address_dispensersA | Get all dispensers created by a specific address |
| get_dispensesA | Get dispense records (purchases) for a specific dispenser |
| get_dividendsA | Get dividend distributions for a specific asset |
| get_address_transactionsA | Get transaction history for a Bitcoin address on Counterparty |
| get_sendsA | Get all sends (token transfers) from a specific address |
| get_transactionA | Get details of a specific Counterparty transaction by its hash |
| get_utxo_balancesA | Get Counterparty token balances attached to a specific UTXO |
| get_latest_blockA | Get the latest block information from the Counterparty node |
| compose_sendC | Compose a transaction to send Counterparty tokens to an address |
| compose_mpmaA | Compose a multi-party multi-asset send transaction. Sends multiple assets to multiple destinations in a single transaction. All three arrays must be the same length. |
| compose_orderA | Compose a DEX order to trade Counterparty assets. IMPORTANT: give_quantity and get_quantity are TOTAL amounts, not per-unit prices. The price per unit is the ratio between them. Example: to buy 1000 TOKENA at 0.5 XCP each, set give_asset=XCP, give_quantity=50010^8 (500 XCP total), get_asset=TOKENA, get_quantity=1000. Example: to sell 50 XCP for BTC at 0.001 BTC per XCP, set give_asset=XCP, give_quantity=5010^8, get_asset=BTC, get_quantity=50*100000 (0.05 BTC total). |
| compose_cancelA | Compose a transaction to cancel an open DEX order |
| compose_btcpayA | Compose a BTC payment for a matched DEX order. Used to complete BTC trades on the DEX. |
| compose_issuanceA | Compose a transaction to issue (create) a new Counterparty asset, or update an existing one. |
| compose_dispenserA | Compose a transaction to create, open, or close a dispenser. Dispensers automatically sell tokens for BTC. |
| compose_dispenseA | Compose a transaction to buy from a dispenser by sending BTC to it |
| compose_dividendB | Compose a transaction to distribute dividends to all holders of an asset |
| compose_broadcastB | Compose a transaction to broadcast a text message or numeric value to the Counterparty network |
| compose_sweepA | Compose a transaction to sweep all assets and/or BTC from one address to another |
| compose_destroyA | Compose a transaction to permanently destroy (burn) Counterparty tokens |
| compose_fairminterA | Compose a transaction to create a fair minting launch for a new asset. For XCP-420 compliant launches, use compose_xcp420_fairminter instead. |
| compose_xcp420_fairminterA | Compose a XCP-420 compliant fair launch. XCP-420 is a community standard that enforces fixed parameters: 10M supply, 4.2M soft cap, 0.1 XCP per mint, 1000 tokens per mint, 1000 block duration, no premine, no commission, burn payment, locked supply. Only the asset name, start block, and description are configurable. |
| compose_fairmintC | Compose a transaction to mint tokens from an active fair minter |
| compose_attachA | Compose a transaction to attach Counterparty tokens to a specific UTXO |
| compose_detachA | Compose a transaction to detach Counterparty tokens from a UTXO back to an address |
| compose_movetoutxoA | Compose a transaction to move a UTXO (and any attached tokens) to a new output |
| broadcast_transactionA | Broadcast a signed Bitcoin transaction to the network via the Counterparty node |
| get_fee_estimateA | Get current Bitcoin fee rates in sat/vB. Queries the Counterparty node first, falls back to mempool.space. Use the returned values directly as sat_per_vbyte in compose tools. |
| decode_transactionA | Decode a raw Bitcoin transaction hex into its components (inputs, outputs, etc.) |
| unpack_transactionA | Decode and unpack a Counterparty message from a raw transaction, revealing the embedded Counterparty data |
| get_server_infoA | Get Counterparty node status, version, and network information |
| api_requestA | Make a raw API request to any Counterparty REST endpoint not covered by the other tools. Full API reference: https://raw.githubusercontent.com/CounterpartyXCP/counterparty-core/refs/heads/master/apiary.apib — Example: endpoint="/v2/blocks/last", method="GET" |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| protocol-overview | Overview of Counterparty protocol concepts, asset types, DEX, dispensers, and transaction lifecycle |
| xcp420-standard | XCP-420 fair launch standard — fixed parameters for safe, fair, repeatable token launches |
| quick-start | Step-by-step workflows for common Counterparty operations (send tokens, create assets, dispensers, DEX orders) |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/XCP/mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server