# Bitview [Health: Active]

**Category:** 💰 Finance & Fintech  
**Repository:** https://github.com/bitcoinresearchkit/mono  
**GitHub Stars:** 177  
**Views:** 0  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/bitview

## Description
Read-only Bitcoin blockchain, mempool, market, and on-chain analytics.

## Tools
Capabilities this server exposes over MCP:

- **get_address** — Bitcoin: Balance and transaction counts. Supports P2PKH, P2SH, P2WPKH, P2WSH, P2TR and P2A addresses, and P2PK public keys in hex (33 or 65 bytes).
- **get_address_confirmed_txs** — Bitcoin: Get the newest confirmed transactions for an address, up to `max_txs` (25 by default and at most). For pagination, request `GET /api/address/{address}/txs/chain/{after_txid}` with the last returned txid.
- **get_address_confirmed_txs_after** — Bitcoin: Get the next confirmed transactions strictly older than `after_txid`, up to `max_txs` (25 by default and at most); a txid outside the address's history answers `[]` (Esplora-canonical pagination form, matches mempool.space).
- **get_address_hash_prefix_matches** — Bitcoin: Find addresses by address type and by the first 1-16 hex nibbles of RapidHash v3 over the raw address payload bytes. Intended for privacy-preserving client-side wallet discovery without sending raw addresses or xpubs. Fetch metadata with `GET /api/address/{address}`.
- **get_address_mempool_txs** — Bitcoin: Get unconfirmed transactions for an address from the mempool, newest first, up to `max_txs` (50 by default and at most).
- **get_address_txs** — Bitcoin: Get transaction history for an address, newest first: up to `max_txs` (50 by default and at most), mempool transactions first and confirmed ones filling the rest. To continue, pass the last returned txid as `after_txid`, or request `GET /api/address/{address}/txs/chain/{after_txid}` for confirmed history.
- **get_address_utxos** — Bitcoin: Get unspent transaction outputs (UTXOs) for an address, including unconfirmed ones; outputs that mempool transactions spend are left out.
- **get_block** — Bitcoin: Details of a block by hash: height, time, transaction count, size, weight, and difficulty.
- **get_block_by_timestamp** — Bitcoin: Find the block with the greatest header timestamp at or before the given UNIX timestamp, choosing the earliest height on ties.
- **get_block_fee_rates** — Bitcoin: Get block fee rate percentiles (min, 10th, 25th, median, 75th, 90th, max) for a time period, each a whole sat/vB (`/precise` for 3 decimals).
- **get_block_fee_rates_precise** — Bitcoin: Get block fee rate percentiles (min, 10th, 25th, median, 75th, 90th, max) for a time period, each in sat/vB to 3 decimals.
- **get_block_fees** — Bitcoin: Get average total fees per block for a time period.
- **get_block_hash_by_height** — Bitcoin: Block hash as plain text.
- **get_block_header** — Bitcoin: Returns the hex-encoded 80-byte block header.
- **get_block_rewards** — Bitcoin: Get average coinbase reward (subsidy + fees) per block for a time period.
- **get_block_sizes_weights** — Bitcoin: Get average block sizes and weights for a time period.
- **get_block_status** — Bitcoin: Whether the block is in the best chain and, if so, its height and the hash of the next block. A block outside the best chain (orphaned or unknown) reports `in_best_chain: false`.
- **get_block_tip_hash** — Bitcoin: Hash of the latest block.
- **get_block_tip_height** — Bitcoin: Height of the latest block.
- **get_block_txid** — Bitcoin: Retrieve a single transaction ID at a specific index within a block. Returns plain text txid.
- **get_block_txs_from_index** — Bitcoin: Up to 25 transactions starting at `start_index`, a multiple of 25.
- **get_block_v1** — Bitcoin: Returns block details with extras by hash.
- **get_blocks** — Bitcoin: The last 10 blocks.
- **get_blocks_from_height** — Bitcoin: Retrieve up to 10 blocks going backwards from the given height. For example, height=100 returns blocks 100, 99, 98, ..., 91. Height=0 returns only block 0. A height past the tip is not found.
- **get_blocks_v1** — Bitcoin: Retrieve the last 15 blocks with extended data including pool identification and fee statistics.
- **get_blocks_v1_from_height** — Bitcoin: Retrieve up to 15 blocks with extended data going backwards from the given height: the published blocks among the 15 heights ending at it, so fewer (or none) past the tip.
- **get_cpfp** — Bitcoin: Returns ancestors and descendants for a CPFP (Child Pays For Parent) transaction, including the effective fee rate of the package. A mempool transaction answers its live package; a confirmed one its package among its block's transactions; an unknown transaction, or a confirmed one without relatives in its block, `{"ancestors":[]}`.
- **get_difficulty_adjustment** — Bitcoin: Get current difficulty adjustment progress and estimates.
- **get_difficulty_adjustments** — Bitcoin: Every difficulty adjustment in the chain's history.
- **get_difficulty_adjustments_by_period** — Bitcoin: Get historical difficulty adjustments for a time period.
- **get_fullrbf_replacements** — Bitcoin: Same response shape as `GET /api/v1/replacements`, but limited to trees where at least one predecessor was non-signaling (full-RBF).
- **get_hashrate** — Bitcoin: Get network hashrate and difficulty data for all time.
- **get_hashrate_by_period** — Bitcoin: Get network hashrate and difficulty data for a time period.
- **get_historical_price** — Bitcoin: Completed four-hour BTC/USD closes, newest first as mempool.space lists them, labeled by interval end, from the first priced interval (2010-08-16). With a UNIX timestamp, returns the latest nonempty completed close at or before it; before the first close returns an empty list. The current partial interval is excluded. USD only (`currency` accepts `USD`); exchangeRates is empty.
- **get_mempool** — Bitcoin: Current mempool backlog: transaction count, total virtual size, total fees, and fee histogram.
- **get_mempool_blocks** — Bitcoin: Projected blocks for fee estimation, up to eight as mempool.space's. Block 0 is Bitcoin Core's `getblocktemplate` selection; the rest are packed after it as Core's block assembler packs (whole CPFP chunks by feerate, in dependency order, within Core's default weight and sigop budgets), ranked by the node's signed modified fees (including `prioritisetransaction`; mining options shape block 0 only), with paid fees in the statistics. The last holds whatever is left: more than a block when the mempool is busy. `GET /api/mempool-blocks/{index}` serves each with its transactions, except such a last one.
- **get_mempool_recent** — Bitcoin: Get the last 10 transactions to enter the mempool.
- **get_pool** — Bitcoin: Block counts and mining shares by time period for one pool.
- **get_pool_blocks** — Bitcoin: Get up to 100 recent blocks mined by a specific pool.
- **get_pool_blocks_from_height** — Bitcoin: Get up to 100 blocks mined by a specific pool strictly below the given height (pass the last height of a page to get the next one).
- **get_pool_hashrate** — Bitcoin: Get hashrate history for a specific mining pool.
- **get_pool_ranking** — Bitcoin: Get mining pool statistics for a time period.
- **get_pools** — Bitcoin: Every known mining pool.
- **get_pools_hashrate** — Bitcoin: Get weekly hashrate data, over the whole chain, of the mining pools that mined in the last week, by time and then their weekly rank.
- **get_pools_hashrate_by_period** — Bitcoin: Get weekly hashrate data, for a time period, of the mining pools that mined in the last week, by time and then their weekly rank.
- **get_precise_fees** — Bitcoin: Recommended fee rates by confirmation target, with up to three decimal places and support for sub-sat/vB rates.
- **get_prices** — Bitcoin: Returns bitcoin latest price (on-chain derived, USD only).
- **get_replacements** — Bitcoin: Returns up to 25 most-recent RBF replacement trees across the whole mempool. Each entry has the shape of `replacements` in `GET /api/v1/tx/{txid}/rbf`.
- **get_reward_stats** — Bitcoin: Get mining reward statistics for the last N blocks including total rewards, fees, and transaction count.
- **get_series** — Bitcoin: History of an on-chain metric, by the series id from `search_series`: rows selected by a range of positions, dates or timestamps, as JSON or CSV.
- **get_series_bulk** — Bitcoin: Fetch multiple series in a single request. Supports filtering by index and date range. Returns an array of SeriesData objects. For a single series, use `get_series` instead.
- **get_series_count** — Bitcoin: Returns the number of series available per index type.
- **get_series_info** — Bitcoin: Returns the optional description, supported indexes, the indexes whose values can be null, the value type, and the optional unit (what the value type measures) for the specified series. The decoded series name is limited to 1024 UTF-8 bytes.
- **get_series_latest** — Bitcoin: Current value of an on-chain metric, by the series id from `search_series`. Returns the value alone, not inside a SeriesData object.
- **get_series_len** — Bitcoin: Get series data length
- **get_series_version** — Bitcoin: Returns the vector's schema/computation version, not its length or latest update. Appends and reorgs do not by themselves change this version.
- **get_sync_status** — Bitcoin: Returns a coherent local index snapshot and a separately observed Bitcoin Core tip height. The two heights can differ during indexing or a reorg. Conditional requests refresh these observations before validation.
- **get_transaction_times** — Bitcoin: First-seen UNIX timestamps in seconds, in request order, of transactions in the mempool or that recently left it other than by replacement (mined ones included); 0 otherwise.
- **get_tx** — Bitcoin: Full details of a transaction by txid: inputs, outputs, fee, size, and confirmation status.
- **get_tx_hex** — Bitcoin: Hex-encoded serialized transaction.
- **get_tx_merkle_proof** — Bitcoin: Merkle inclusion proof of a confirmed transaction in its block.
- **get_tx_merkleblock_proof** — Bitcoin: Get the merkleblock proof for a transaction (BIP37 format, hex encoded).
- **get_tx_outspend** — Bitcoin: Whether the output has been spent and, if so, the spending transaction details. An output no known transaction holds is unspent.
- **get_tx_outspends** — Bitcoin: Spend statuses in output-index order.
- **get_tx_rbf** — Bitcoin: Returns the RBF replacement tree for a transaction, if any. Both `replacements` and `replaces` are null when the tx has no known RBF history within the mempool monitor's retention window. A history past 63 versions or 4,096 transactions comes cut to its newest part, its root marked `"truncated": true`.
- **get_tx_status** — Bitcoin: Retrieve the confirmation status of a transaction. Returns whether the transaction is confirmed and, if so, the block height, hash, and timestamp. A transaction not in the chain, pending or unknown, is `{"confirmed":false}`.
- **get_txid_by_index** — Bitcoin: Retrieve the transaction ID (txid) at a given global transaction index. Returns the txid as plain text.
- **get_urpd** — Bitcoin: URPD (UTXO realized price distribution: how much supply last moved at each price) for a cohort at a block height or the last block of a UTC day. Returns `{ height, hash, date, cohort, weight, aggregation, close, supply, buckets }` where `buckets` is columns, `{ price, supply, realized_cap, unrealized_pnl }`, one entry per bucket in ascending price: the same block header and columnar layout as `GET /api/utxo-set/{point}`. `close`, `price`, `realized_cap`, and `unrealized_pnl` are USD; `supply` is BTC. `unrealized_pnl` can be negative. Bucket `realized_cap` and `unrealized_pnl` value each coin at its creation price on the price grid (four significant digits of the price in cents, within 0.05% of the exact price), rounded to the cent per bucket, so the buckets need not sum to the realized cap series. With a `wakefulness` or `mobility` `weight`, `supply` is the weighted supply (whole satoshis) and the bucket values follow it.
- **get_urpd_latest** — Bitcoin: URPD (UTXO realized price distribution: how much supply last moved at each price) for the latest published block; `date` echoes the date served. Fields, units, price-grid rounding and weighting as in `GET /api/urpd/{cohort}/{point}`.
- **get_utxo_set_diff** — Bitcoin: What a block (`840000`) or a UTC day's published blocks (`YYYY-MM-DD`) changed in the UTXO set. Returns `{ first, last, hash, date, created, spent }`: `created` has one row per block, `spent` one row per creation height, each as columnar `height`, `count` and `supply` (BTC). The set after block `first - 1` plus `created` minus `spent` is the set after block `last`.
- **list_indexes** — Bitcoin: Returns every index a series can be read at, by the name series routes take.
- **list_series** — Bitcoin: Paginated flat list of all available series names.
- **list_urpd_cohorts** — Bitcoin: Every URPD cohort once a UTXO set is published (none before): the age aggregates (`all`, `sth`, `lth`, `age_under_4m`, ...), then the age bands from the youngest (`age_under_1h`, `age_1h_to_1d`, ...).
- **search_series** — Bitcoin: Find on-chain metrics by plain words: MVRV, realized price, SOPR, NUPL, supply held by long-term or short-term holders, coin age, addresses by balance, hashrate, fees, volume, and thousands more. Start here for any metric question: it returns the series ids to pass to `get_series_latest` or `get_series`. Results prioritize whole query words in names, then descriptions, then fuzzy names, then fuzzy descriptions. Word order does not matter. Descriptions provide cohort terminology and formulas. The decoded q parameter is limited to 1024 UTF-8 bytes.
- **validate_address** — Bitcoin: Validate a Bitcoin address and get information about its type and scriptPubKey. Returns `isvalid: false` with an error message for invalid addresses; a string that isn't 2 to 130 letters and digits answers 400.

## Claude Desktop Quick Installation
Remote MCP endpoint (confidence: high). Install path detected from listing signals. Add as a URL/SSE server in your client:

```json
"mcpServers": {
  "bitview": {
    "url": "https://mcp.bitview.space/"
  }
}
```

## Documentation

## What Bitview does

Bitview MCP server gives AI agents query access to Bitcoin data. Its tools cover address metadata, confirmed and unconfirmed transactions, UTXOs, blocks, block headers, fee rates, rewards, sizes, weights, chain status, and difficulty adjustments. The interface is read-only, so it is suited to investigation, monitoring, and analysis rather than wallet control or transaction submission.

Address tools accept common Bitcoin address types, including P2PKH, P2SH, P2WPKH, P2WSH, P2TR, and P2A, along with compressed or uncompressed P2PK public keys represented as hexadecimal. Address history can include mempool transactions and confirmed transactions, with cursor-based continuation using a transaction ID.

## How it works

The hosted Bitview deployment is available through the MCP endpoint at `https://mcp.bitview.space/`. The service also provides a web application, REST API, OpenAPI document, and command-line and language clients. Its underlying Bitview application turns Bitcoin Core data into a local data platform using the Bitcoin Research Kit, indexing components, analytics plugins, a query layer, and generated clients.

For local deployment, Bitview reads from a Bitcoin Core mainnet node with RPC access and complete `blk*.dat` files from genesis. The default setup builds an indexed view of the chain and serves its API and showcases on port 3110, bound to the local machine unless the server binding is changed. The MCP tools expose selected query operations over that data rather than mutation operations.

## Setup and configuration

The hosted endpoint requires no account or authentication. A compatible MCP client can be configured to connect to the endpoint directly.

To self-host the daemon on Linux or macOS, install it with Rust and start it with:

```bash
rustup update && RUSTFLAGS="-C target-cpu=native" cargo install --locked bitviewd
bitviewd
```

A full self-hosted deployment needs a mainnet Bitcoin Core node with RPC enabled, the complete block-file history, approximately 290 GiB for Bitview in addition to Bitcoin Core storage and growth, and 16 GB of RAM recommended for a full sync. The repository also supports custom compositions and plugins through its Rust-based Bitview and BRK components.

## Tools and capabilities

- Inspect address balances, transaction counts, UTXOs, confirmed history, and mempool history.
- Discover addresses by type and RapidHash v3 prefixes without sending raw addresses or extended public keys.
- Retrieve recent blocks, blocks by height, block hashes, headers, transaction IDs, and block transactions by index.
- Check block status, chain tip height, chain tip hash, and block timestamps.
- Analyze fee-rate percentiles, average block fees, rewards, sizes, and weights over selected periods.
- Review difficulty adjustment progress and historical adjustments.
- Examine CPFP ancestors, descendants, and effective package fee rates.

Most list operations impose bounded result sizes. Address history supports continuation with `after_txid`; block transaction retrieval uses a starting index in increments of 25.

## Limitations and notes

Bitview is read-only: its MCP tools query Bitcoin state and analytics but do not send transactions or alter the chain. Some results distinguish confirmed chain data from live mempool data, and block-status queries identify whether a block belongs to the best chain. Self-hosting has substantial storage and synchronization requirements because it processes the Bitcoin Core chain from genesis. The hosted instance is the simpler option for agents that only need remote queries.

_Full upstream README: https://allmcps.com/mcp/bitview/readme_

