Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

io.github.XCP/mcp-server

NPM · @21E14/MCP-SERVER

Interact with Counterparty — the token protocol on Bitcoin. Query, compose, sign.

Available components

0 this week 80 Trust /100

Last scanned (50 minutes ago)

Scores higher than 66% of npm servers

Category Crypto and Web3

Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →

Supply Chain Security81
  • No malware found by supply-chain analysis.Pass
  • CVE check failed: a known high-severity CVE affects @modelcontextprotocol/sdk 1.26.0, a direct dependency. A fixed version is available. View diagnostics → Fail
  • No install/post-install scripts declared.Pass
  • 30 of 98 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency44
Schema Quality & AI Usability85
  • 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
  • AI-judged instruction clarity (good).Pass
  • Context-footprint check failed: tool/resource definitions use about 5441 tokens (~106/item across 51 items; 48 tools + 3 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management100
  • No destabilizing schema changes in the last 30 days.Pass
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • All 2 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.Pass
  • An AI judge read all 50 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 2 Nov 26 0
    • Stability: 0.97 → pass security
  • 1 Nov 26 0
    • Stability: pass → 0.97 functional
  • 29 Oct 26 0
    • CVE-2026-118663 affects this package: high ▼ security
  • 28 Oct 26 0
    • GHSA-f897-62hf-6gxq affects this package: high ▼ security
  • 26 Oct 26 0
    • Stability: 0.97 → pass security
  • 25 Oct 26 0
    • Stability: pass → 0.97 functional
  • 24 Oct 26 0
    • CVE-2023-54404 affects this package: high ▼ security
  • 21 Oct 26 0
    • CVE-2026-111771 affects this package: high ▼ security
    • CVE-2026-111768 affects this package: high ▼ security
    • CVE-2026-111769 affects this package: high ▼ security
    • CVE-2026-111767 affects this package: high ▼ security
Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 5 Nov 2026 · Analysed npm/@21e14/mcp-server@1.0.1

Provenance No attestation

The registry publishes no build provenance for this version, so there is nothing to verify.

Result No attestation
Ecosystem npm

Background: How many MCP packages publish verified provenance →

Vulnerabilities 8 findings
ID CVE Severity Vector Fix available
GHSA-rmxm-3fg6-px4f CVE-2026-118663 medium CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N yes
GHSA-22jm-h49p-29qw CVE-2026-111767 high CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:L/A:L yes
GHSA-46jr-4wx8-v453 CVE-2026-111768 high CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H yes
GHSA-6prh-2h8m-c8cw CVE-2026-111769 medium CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:L/A:N yes
GHSA-6qxp-vccf-f47h CVE-2026-104850 high CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N yes
GHSA-f897-62hf-6gxq high CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H yes
GHSA-rvq5-wwqv-78pq CVE-2026-111771 medium CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:N yes
GHSA-mrhx-c7xc-m3w5 CVE-2023-54404 high CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H yes

Background: What a vulnerability scan can and cannot prove →

Dependencies 98 packages
Packages resolved 98
Stale 30
Tree resolution Complete

Background: SBOMs and build attestations, explained →

MCP tools · 48 exposed · ~5,264 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
api_request ~128

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"

NameTypeReqDescription
endpointstringyesAPI endpoint path (e.g. /v2/blocks/last, /v2/addresses/{addr}/credits)
methodstring–HTTP method
paramsobject–Query parameters (for GET) or body fields (for POST)

No output schema declared.

No examples provided.

broadcast_transaction ~34

Broadcast a signed Bitcoin transaction to the network via the Counterparty node

NameTypeReqDescription
raw_transactionstringyesSigned raw transaction hex

No output schema declared.

No examples provided.

compose_attach ~148

Compose a transaction to attach Counterparty tokens to a specific UTXO

NameTypeReqDescription
addressstringyesSource Bitcoin address
assetstringyesAsset to attach
destination_voutinteger–Output index to attach to
inputs_setstring–Comma-separated UTXOs to use as inputs (txid:vout)
quantityintegeryesRaw integer amount to attach. For divisible: human amount * 10^8.
sat_per_vbytenumber–Fee rate in satoshis per virtual byte (e.g. 1, 5.5, 0.15). Check get_fee_estimate for current market rates.

No output schema declared.

No examples provided.

compose_broadcast ~185

Compose a transaction to broadcast a text message or numeric value to the Counterparty network

NameTypeReqDescription
addressstringyesSource Bitcoin address
fee_fractionnumber–Fee fraction for bet matching
inputs_setstring–Comma-separated UTXOs to use as inputs (txid:vout)
inscriptionstring–Base64-encoded inscription data (requires P2TR address)
mime_typestring–MIME type for inscription (e.g. image/png, text/plain)
sat_per_vbytenumber–Fee rate in satoshis per virtual byte (e.g. 1, 5.5, 0.15). Check get_fee_estimate for current market rates.
textstringyesText to broadcast
timestampinteger–Unix timestamp
valuenumber–Numeric value

No output schema declared.

No examples provided.

compose_btcpay ~126

Compose a BTC payment for a matched DEX order. Used to complete BTC trades on the DEX.

NameTypeReqDescription
addressstringyesSource Bitcoin address
inputs_setstring–Comma-separated UTXOs to use as inputs (txid:vout)
order_match_idstringyesID of the order match to pay for
sat_per_vbytenumber–Fee rate in satoshis per virtual byte (e.g. 1, 5.5, 0.15). Check get_fee_estimate for current market rates.

No output schema declared.

No examples provided.

compose_cancel ~117

Compose a transaction to cancel an open DEX order

NameTypeReqDescription
addressstringyesSource Bitcoin address (must be order creator)
inputs_setstring–Comma-separated UTXOs to use as inputs (txid:vout)
offer_hashstringyesTransaction hash of the order to cancel
sat_per_vbytenumber–Fee rate in satoshis per virtual byte (e.g. 1, 5.5, 0.15). Check get_fee_estimate for current market rates.

No output schema declared.

No examples provided.

compose_destroy ~146

Compose a transaction to permanently destroy (burn) Counterparty tokens

NameTypeReqDescription
addressstringyesSource Bitcoin address
assetstringyesAsset to destroy
inputs_setstring–Comma-separated UTXOs to use as inputs (txid:vout)
quantityintegeryesRaw integer amount to destroy. For divisible: human amount * 10^8.
sat_per_vbytenumber–Fee rate in satoshis per virtual byte (e.g. 1, 5.5, 0.15). Check get_fee_estimate for current market rates.
tagstring–Optional tag/memo for the destruction

No output schema declared.

No examples provided.

compose_detach ~99

Compose a transaction to detach Counterparty tokens from a UTXO back to an address

NameTypeReqDescription
destinationstringyesDestination Bitcoin address
sat_per_vbytenumber–Fee rate in satoshis per virtual byte (e.g. 1, 5.5, 0.15). Check get_fee_estimate for current market rates.
utxostringyesUTXO identifier (txid:vout)

No output schema declared.

No examples provided.

compose_dispense ~140

Compose a transaction to buy from a dispenser by sending BTC to it

NameTypeReqDescription
addressstringyesSource Bitcoin address (buyer)
dispenserstringyesDispenser address to buy from
inputs_setstring–Comma-separated UTXOs to use as inputs (txid:vout)
quantityintegeryesAmount of BTC to send in satoshis (1 BTC = 100000000)
sat_per_vbytenumber–Fee rate in satoshis per virtual byte (e.g. 1, 5.5, 0.15). Check get_fee_estimate for current market rates.

No output schema declared.

No examples provided.

compose_dispenser ~237

Compose a transaction to create, open, or close a dispenser. Dispensers automatically sell tokens for BTC.

NameTypeReqDescription
addressstringyesSource Bitcoin address
assetstringyesAsset to dispense
escrow_quantityintegeryesRaw integer total amount to load into dispenser. For divisible: human amount * 10^8. Use 0 when closing.
give_quantityintegeryesRaw integer amount of asset per dispense. For divisible: human amount * 10^8. Use 0 when closing.
inputs_setstring–Comma-separated UTXOs to use as inputs (txid:vout)
mainchainrateintegeryesBTC price per dispense (in satoshis). Use 0 when closing.
open_addressstring–Open dispenser on a different address
sat_per_vbytenumber–Fee rate in satoshis per virtual byte (e.g. 1, 5.5, 0.15). Check get_fee_estimate for current market rates.
statusinteger–0=open, 10=close

No output schema declared.

No examples provided.

compose_dividend ~155

Compose a transaction to distribute dividends to all holders of an asset

NameTypeReqDescription
addressstringyesSource Bitcoin address
assetstringyesAsset whose holders will receive dividends
dividend_assetstringyesAsset to distribute as dividend
inputs_setstring–Comma-separated UTXOs to use as inputs (txid:vout)
quantity_per_unitintegeryesRaw integer amount of dividend asset per unit held. For divisible: human amount * 10^8.
sat_per_vbytenumber–Fee rate in satoshis per virtual byte (e.g. 1, 5.5, 0.15). Check get_fee_estimate for current market rates.

No output schema declared.

No examples provided.

compose_fairmint ~142

Compose a transaction to mint tokens from an active fair minter

NameTypeReqDescription
addressstringyesSource Bitcoin address
assetstringyesAsset to mint
inputs_setstring–Comma-separated UTXOs to use as inputs (txid:vout)
quantityinteger–Raw integer amount to mint. For divisible: human amount * 10^8. If omitted, mints max allowed.
sat_per_vbytenumber–Fee rate in satoshis per virtual byte (e.g. 1, 5.5, 0.15). Check get_fee_estimate for current market rates.

No output schema declared.

No examples provided.

compose_fairminter ~510

Compose a transaction to create a fair minting launch for a new asset. For XCP-420 compliant launches, use compose_xcp420_fairminter instead.

NameTypeReqDescription
addressstringyesSource Bitcoin address
assetstringyesAsset name to create
burn_paymentboolean–Whether payment is burned (true) or sent to issuer (false)
descriptionstring–Asset description
divisibleboolean–Whether the asset is divisible (8 decimal places)
end_blockinteger–Block height when minting ends
hard_capinteger–Raw integer max total supply. For divisible: human amount * 10^8.
inputs_setstring–Comma-separated UTXOs to use as inputs (txid:vout)
inscriptionstring–Base64-encoded inscription data (requires P2TR address)
lock_quantityboolean–Lock supply so no further issuance is possible
max_mint_per_addressinteger–Raw integer max per address. For divisible: human amount * 10^8.
max_mint_per_txinteger–Raw integer max per tx. For divisible: human amount * 10^8.
mime_typestring–MIME type for inscription (e.g. image/png, text/plain)
minted_asset_commissionnumber–Commission fraction (0-1) on minted assets
premint_quantityinteger–Raw integer amount to premint to issuer. For divisible: human amount * 10^8.
priceinteger–Raw integer price per mint in the payment asset (XCP). For XCP: human amount * 10^8 (e.g. 0.1 XCP = 10000000).
quantity_by_priceinteger–Raw integer tokens received per price payment. For divisible: human amount * 10^8.
sat_per_vbytenumber–Fee rate in satoshis per virtual byte (e.g. 1, 5.5, 0.15). Check get_fee_estimate for current market rates.
soft_capinteger–Raw integer soft cap. For divisible: human amount * 10^8.
soft_cap_deadline_blockinteger–Deadline block for reaching soft cap. Must be less than end_block.
start_blockinteger–Block height when minting starts

No output schema declared.

No examples provided.

compose_issuance ~291

Compose a transaction to issue (create) a new Counterparty asset, or update an existing one.

NameTypeReqDescription
addressstringyesSource Bitcoin address (will be the issuer)
assetstringyesAsset name to create (4-12 uppercase chars, cannot start with A; or A + numeric ID for free numeric assets)
descriptionstring–Asset description (max 52 chars)
divisibleboolean–Whether the asset is divisible (8 decimal places)
inputs_setstring–Comma-separated UTXOs to use as inputs (txid:vout)
inscriptionstring–Base64-encoded inscription data (requires P2TR address)
lockboolean–Lock the asset (no further issuance)
mime_typestring–MIME type for inscription (e.g. image/png, text/plain)
quantityintegeryesRaw integer amount to issue. For divisible: human amount * 10^8. For indivisible: whole number. Use 0 for metadata-only updates.
resetboolean–Reset the asset
sat_per_vbytenumber–Fee rate in satoshis per virtual byte (e.g. 1, 5.5, 0.15). Check get_fee_estimate for current market rates.
transfer_destinationstring–Transfer asset ownership to this address

No output schema declared.

No examples provided.

compose_movetoutxo ~103

Compose a transaction to move a UTXO (and any attached tokens) to a new output

NameTypeReqDescription
destinationstring–Destination Bitcoin address
sat_per_vbytenumber–Fee rate in satoshis per virtual byte (e.g. 1, 5.5, 0.15). Check get_fee_estimate for current market rates.
utxostringyesUTXO identifier (txid:vout)

No output schema declared.

No examples provided.

compose_mpma ~217

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.

NameTypeReqDescription
addressstringyesSource Bitcoin address
assetsstringyesComma-separated asset names, one per recipient (e.g. "XCP,PEPECASH,XCP")
destinationsstringyesComma-separated destination addresses, one per recipient
inputs_setstring–Comma-separated UTXOs to use as inputs (txid:vout)
memostring–Optional memo to attach
memo_is_hexboolean–Whether memo is hex-encoded
quantitiesstringyesComma-separated raw integer quantities, one per recipient. For divisible assets: human amount * 10^8.
sat_per_vbytenumber–Fee rate in satoshis per virtual byte (e.g. 1, 5.5, 0.15). Check get_fee_estimate for current market rates.

No output schema declared.

No examples provided.

compose_order ~218

Compose a DEX order to trade Counterparty assets. Creates a limit order on the decentralized exchange.

NameTypeReqDescription
addressstringyesSource Bitcoin address
expirationintegeryesNumber of blocks until order expires (max 8064, ~2 months)
get_assetstringyesAsset to receive/buy
get_quantityintegeryesRaw integer amount to receive. For divisible assets: human amount * 10^8. For BTC: satoshis.
give_assetstringyesAsset to give/sell
give_quantityintegeryesRaw integer amount to give. For divisible assets: human amount * 10^8. For BTC: satoshis.
inputs_setstring–Comma-separated UTXOs to use as inputs (txid:vout)
sat_per_vbytenumber–Fee rate in satoshis per virtual byte (e.g. 1, 5.5, 0.15). Check get_fee_estimate for current market rates.

No output schema declared.

No examples provided.

compose_send ~231

Compose a transaction to send Counterparty tokens to an address

NameTypeReqDescription
addressstringyesSource Bitcoin address
assetstringyesAsset to send (e.g. XCP, PEPECASH)
destinationstringyesDestination Bitcoin address
inputs_setstring–Comma-separated UTXOs to use as inputs (txid:vout)
memostring–Optional memo to attach
memo_is_hexboolean–Whether memo is hex-encoded
no_dispenseboolean–If true, prevent this send from triggering a dispenser on the destination address
quantityintegeryesRaw integer amount. For divisible assets: multiply human amount by 10^8 (e.g. 1.0 XCP = 100000000). For indivisible: use whole number. Check get_asset_info for divisibility.
sat_per_vbytenumber–Fee rate in satoshis per virtual byte (e.g. 1, 5.5, 0.15). Check get_fee_estimate for current market rates.

No output schema declared.

No examples provided.

compose_sweep ~149

Compose a transaction to sweep all assets and/or BTC from one address to another

NameTypeReqDescription
addressstringyesSource Bitcoin address
destinationstringyesDestination Bitcoin address
flagsinteger–Bitfield: 1=transfer balances, 2=transfer ownership, 4=transfer BTC
inputs_setstring–Comma-separated UTXOs to use as inputs (txid:vout)
memostring–Optional memo
sat_per_vbytenumber–Fee rate in satoshis per virtual byte (e.g. 1, 5.5, 0.15). Check get_fee_estimate for current market rates.

No output schema declared.

No examples provided.

compose_xcp420_fairminter ~238

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.

NameTypeReqDescription
addressstringyesSource Bitcoin address
assetstringyesAsset name to create (4-12 uppercase chars, cannot start with A)
descriptionstring–Asset description
inputs_setstring–Comma-separated UTXOs to use as inputs (txid:vout)
sat_per_vbytenumber–Fee rate in satoshis per virtual byte (e.g. 1, 5.5, 0.15). Check get_fee_estimate for current market rates.
start_blockintegeryesBlock height when minting starts. Must be a future block. Minting runs for exactly 1000 blocks.

No output schema declared.

No examples provided.

decode_transaction ~37

Decode a raw Bitcoin transaction hex into its components (inputs, outputs, etc.)

NameTypeReqDescription
raw_transactionstringyesRaw transaction hex to decode

No output schema declared.

No examples provided.

get_address_dispensers ~88

Get all dispensers created by a specific address

NameTypeReqDescription
addressstringyesBitcoin address
cursorstring–Pagination cursor from previous response
limitinteger–Number of results to return
offsetinteger–Number of results to skip
statusstring–Status: 0=open, 1=closed, 10=closing

No output schema declared.

No examples provided.

get_address_orders ~75

Get all DEX orders placed by a specific address

NameTypeReqDescription
addressstringyesBitcoin address
cursorstring–Pagination cursor from previous response
limitinteger–Number of results to return
offsetinteger–Number of results to skip
statusstring–Order status filter

No output schema declared.

No examples provided.

get_address_transactions ~65

Get transaction history for a Bitcoin address on Counterparty

NameTypeReqDescription
addressstringyesBitcoin address
cursorstring–Pagination cursor from previous response
limitinteger–Number of results to return
offsetinteger–Number of results to skip

No output schema declared.

No examples provided.

get_asset_balances ~66

Get all balances for a specific asset across all holders

NameTypeReqDescription
assetstringyesAsset name
cursorstring–Pagination cursor from previous response
limitinteger–Number of results to return
offsetinteger–Number of results to skip

No output schema declared.

No examples provided.

get_asset_info ~52

Get metadata for a Counterparty asset (supply, divisibility, issuer, description, etc.)

NameTypeReqDescription
assetstringyesAsset name (e.g. XCP, PEPECASH, A12345)

No output schema declared.

No examples provided.

get_asset_orders ~74

Get all DEX orders involving a specific asset

NameTypeReqDescription
assetstringyesAsset name
cursorstring–Pagination cursor from previous response
limitinteger–Number of results to return
offsetinteger–Number of results to skip
statusstring–Order status filter

No output schema declared.

No examples provided.

get_assets ~63

Search or list Counterparty assets

NameTypeReqDescription
cursorstring–Pagination cursor from previous response
limitinteger–Number of results to return
namedboolean–Filter to named assets only
offsetinteger–Number of results to skip

No output schema declared.

No examples provided.

get_balance ~48

Get the balance of a specific asset for a Bitcoin address

NameTypeReqDescription
addressstringyesBitcoin address
assetstringyesAsset name (e.g. XCP, PEPECASH)

No output schema declared.

No examples provided.

get_balances ~65

Get all Counterparty token balances for a Bitcoin address

NameTypeReqDescription
addressstringyesBitcoin address
cursorstring–Pagination cursor from previous response
limitinteger–Number of results to return
offsetinteger–Number of results to skip

No output schema declared.

No examples provided.

get_dispenser ~31

Get details of a specific dispenser by its transaction hash

NameTypeReqDescription
hashstringyesDispenser transaction hash

No output schema declared.

No examples provided.

get_dispensers ~78

Get Counterparty dispensers (default: open)

NameTypeReqDescription
cursorstring–Pagination cursor from previous response
limitinteger–Number of results to return
offsetinteger–Number of results to skip
statusstring–Status: 0=open, 1=closed, 10=closing

No output schema declared.

No examples provided.

get_dispensers_by_asset ~91

Get dispensers for a specific asset (default: open)

NameTypeReqDescription
assetstringyesAsset name
cursorstring–Pagination cursor from previous response
limitinteger–Number of results to return
offsetinteger–Number of results to skip
statusstring–Status: 0=open, 1=closed, 10=closing

No output schema declared.

No examples provided.

get_dispenses ~68

Get dispense records (purchases) for a specific dispenser

NameTypeReqDescription
cursorstring–Pagination cursor from previous response
hashstringyesDispenser transaction hash
limitinteger–Number of results to return
offsetinteger–Number of results to skip

No output schema declared.

No examples provided.

get_dividends ~63

Get dividend distributions for a specific asset

NameTypeReqDescription
assetstringyesAsset name
cursorstring–Pagination cursor from previous response
limitinteger–Number of results to return
offsetinteger–Number of results to skip

No output schema declared.

No examples provided.

get_fee_estimate ~39

Get the current Bitcoin fee rate estimate from the Counterparty node

NameTypeReqDescription
conf_targetinteger–Confirmation target in blocks (default 3)

No output schema declared.

No examples provided.

get_issuances ~65

Get the issuance history for a Counterparty asset

NameTypeReqDescription
assetstringyesAsset name
cursorstring–Pagination cursor from previous response
limitinteger–Number of results to return
offsetinteger–Number of results to skip

No output schema declared.

No examples provided.

get_latest_block ~20

Get the latest block information from the Counterparty node

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

get_order ~32

Get details of a specific DEX order by its transaction hash

NameTypeReqDescription
order_hashstringyesOrder transaction hash

No output schema declared.

No examples provided.

get_order_matches ~75

Get matches for a specific DEX order

NameTypeReqDescription
cursorstring–Pagination cursor from previous response
limitinteger–Number of results to return
offsetinteger–Number of results to skip
order_hashstringyesOrder transaction hash
statusstring–Match status filter

No output schema declared.

No examples provided.

get_orders ~67

Get orders on the Counterparty DEX (default: open)

NameTypeReqDescription
cursorstring–Pagination cursor from previous response
limitinteger–Number of results to return
offsetinteger–Number of results to skip
statusstring–Order status filter

No output schema declared.

No examples provided.

get_orders_by_pair ~103

Get the order book for a specific trading pair on the DEX

NameTypeReqDescription
asset1stringyesFirst asset (e.g. XCP)
asset2stringyesSecond asset (e.g. PEPECASH)
cursorstring–Pagination cursor from previous response
limitinteger–Number of results to return
offsetinteger–Number of results to skip
statusstring–Order status filter

No output schema declared.

No examples provided.

get_owned_assets ~65

Get all assets issued/owned by a specific address

NameTypeReqDescription
addressstringyesBitcoin address
cursorstring–Pagination cursor from previous response
limitinteger–Number of results to return
offsetinteger–Number of results to skip

No output schema declared.

No examples provided.

get_sends ~66

Get all sends (token transfers) from a specific address

NameTypeReqDescription
addressstringyesBitcoin address
cursorstring–Pagination cursor from previous response
limitinteger–Number of results to return
offsetinteger–Number of results to skip

No output schema declared.

No examples provided.

get_server_info ~21

Get Counterparty node status, version, and network information

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

get_transaction ~30

Get details of a specific Counterparty transaction by its hash

NameTypeReqDescription
tx_hashstringyesTransaction hash

No output schema declared.

No examples provided.

get_utxo_balances ~41

Get Counterparty token balances attached to a specific UTXO

NameTypeReqDescription
utxostringyesUTXO identifier (txid:vout)

No output schema declared.

No examples provided.

unpack_transaction ~62

Decode and unpack a Counterparty message from a raw transaction, revealing the embedded Counterparty data

NameTypeReqDescription
block_indexinteger–Block index for context (optional)
raw_transactionstringyesHex data to unpack (raw transaction hex or Counterparty data hex)

No output schema declared.

No examples provided.

Install

How do I install the io.github.XCP/mcp-server server?

io.github.XCP/mcp-server runs locally as an npm package, launched with npx -y @21e14/mcp-server. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

npm · @21e14/mcp-server

# add to Claude Code
claude mcp add xcp-mcp-server -- npx -y @21e14/mcp-server
Common questions

What is the io.github.XCP/mcp-server server?

io.github.XCP/mcp-server is listed in the public MCP registry as io.github.XCP/mcp-server. Interact with Counterparty, the token protocol on Bitcoin. Query, compose, sign. This page covers its npm package (@21e14/mcp-server).

Is the io.github.XCP/mcp-server server safe to use?

io.github.XCP/mcp-server scores 80 out of 100 on VerifyMCP. We recorded 8 known advisories against it as of 5 November 2026. It declares no install or post-install scripts. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the io.github.XCP/mcp-server server expose?

io.github.XCP/mcp-server exposes 48 tools: get_balances, get_balance, get_asset_info, get_asset_balances, get_assets, and 43 more. Their descriptions and schemas cost roughly 5,264 tokens of context every time the server is loaded.

Is the io.github.XCP/mcp-server server still maintained?

io.github.XCP/mcp-server is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

What licence is the io.github.XCP/mcp-server server under?

io.github.XCP/mcp-server declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.