mcpbeat Sign in

Bitcoin Signals MCP Server

by coinbucha Your server? Claim it
not responding

Bitcoin Signals is listed as active in the registry but did not answer our last check. It exposes 10 tools. Last commit 8 Sep 2026.

Leading non-price Bitcoin signals over MCP: sovereign, hiring, hashrate. Not financial advice.

Uptime history 91 days of history · worst day 0%
91 days agonow
2.2%
Uptime 24h
2 of 92 checks
10
Tools
read from the server
178 ms
Response time
average over 24h
0
Stars
last commit 8 Sep 2026

What changed 26

Every tool that appeared, vanished or quietly changed what it asks for. Recorded since 11 August 2026. No other catalogue keeps this.

29 Oct a tool description was rewritten get_treasury_holdings
25 Oct a tool appeared get_bitcoin_company_calendar
18 Oct 2 tool descriptions were rewritten get_signal_history, sovereign_diff
9 Oct 9 tool descriptions were rewritten get_daily_brew, get_etf_flows, get_hiring_signal and 6 more
8 Oct 6 tool descriptions were rewritten get_daily_brew, get_network_signal, get_sovereign_reserves and 3 more
3 Oct a tool appeared sovereign_diff
12 Sep a tool appeared get_signal_history
27 Aug a tool description was rewritten get_etf_flows
27 Aug a tool changed version
15 Aug a tool changed version
and 2 more, back to 11 August 2026

Bitcoin Signals does not always answer

Over the last week it answered 8.0% of our checks. We check every 15 minutes, so you hear about the next outage within the hour — not from your users.

Three servers free · no card

Connect this server

Endpoint below is the one we actually reach during checks — not the one copied from a README. Last verified 1 min ago.

run in your terminal
claude mcp add bitcoin-signals --transport http https://coinbucha.com/api/mcp
Settings → Connectors → Add custom connector, then paste this address
https://coinbucha.com/api/mcp
~/.codex/config.toml
[mcp_servers.bitcoin-signals]
url = "https://coinbucha.com/api/mcp"
.cursor/mcp.json
{
  "mcpServers": {
    "bitcoin-signals": {
      "url": "https://coinbucha.com/api/mcp"
    }
  }
}
.vscode/mcp.json
{
  "servers": {
    "bitcoin-signals": {
      "type": "http",
      "url": "https://coinbucha.com/api/mcp"
    }
  }
}

Available tools 10

Read directly from the server with tools/list, grouped by what they act on. If a tool disappears, we record the date.

sovereign
get_sovereign_reserves
Nation-state Bitcoin holdings, ranked largest first. Returns { as_of, btc_price_usd, count, sovereigns[], disclaimer, attribution, source_terms }; each row carries country_name, country_code, holdings_btc, status, tier (1 = largest holders), framework, sources[], its own as_of, and source_quality (primary = confirmed against the state's own publication; secondary = reported, not confirmed at source — derived from that row's sources[]). Filter by country name or ISO code, or by tier. Example: {"country": "US"} or {"tier": 1} — call with {} for the full ranking. CoinGecko values carry attribution: "Powered by CoinGecko" and source_terms. Information, not financial advice. Every answer carries data_contract { source, as_of, status, corrections_url, license }. This server answers bounded questions, one question, one answer; for bulk, history, backfills and scheduled pulls use the CSVs and datapackage.json at https://coinbucha.com/data.
sovereign_diff
What changed between two frozen, immutable sovereign-reserve snapshots. Takes optional { from, to } snapshot dates (YYYY-MM-DD); defaults to the two newest. Returns { status, as_of, from, to, counts, added[], removed[], changed[], envelope[], disclaimer, cite }, where each changed row carries country_code, country_name, source_quality { from, to } and changes[] of { field, basis (reported | derived), from, to }. With fewer than two snapshots it returns status "insufficient_snapshots" and diff: null — not an empty diff. Example: {"from": "2026-09-04", "to": "2026-10-01"}. CoinGecko values carry attribution: "Powered by CoinGecko" and source_terms. The whole frozen series in one call: the per-call x402 route /api/paid/sovereign-snapshots (USDC); the per-date snapshot files stay free. Information, not financial advice. Every answer carries data_contract { source, as_of, status, corrections_url, license }. This server answers bounded questions, one question, one answer; for bulk, history, backfills and scheduled pulls use the CSVs and datapackage.json at https://coinbucha.com/data.
bitcoin
get_bitcoin_company_calendar
Next results dates and SEC 10-Q/10-K filing windows of listed bitcoin holders (MSTR, COIN, MARA, HOOD and others): dates and windows from issuer and exchange sources. Takes optional { ticker, days_ahead (1-60, default 60) }. Returns { as_of, today, days_ahead, ticker, count, available, truncated, events[], full, disclaimer, cite, data_contract }; up to 5 events, soonest first, each with ticker, issuer, event_type, event_name, date_status, source_url, checked and either event_date (an issuer-announced date) or window_start/window_end with the SEC rule (a statutory window — never a date). date_status is the record's, verbatim: announced_primary_confirmed, occurred_primary_confirmed or unknown_exact_date_statutory_window. Example: {"ticker": "MSTR"} or {"days_ahead": 14}. Every row with history, rule locators and recorded outcomes: the per-call x402 route /api/paid/calendar (USDC), named with its price in `full`; the same rows stay free as JSON and CSV. Information, not financial advice. Every answer carries data_contract { source, as_of, status, corrections_url, license }. This server answers bounded questions, one question, one answer; for bulk, history, backfills and scheduled pulls use the CSVs and datapackage.json at https://coinbucha.com/data.
daily
get_daily_brew
The day's machine-readable digest of the whole signal set — the CoinBucha Daily Brew. Takes no arguments. Returns { date, btc_price_usd, headline, signals_summary[], attribution, source_terms }, one summary line per signal with its strength, direction and one-line why. Example: {}. CoinGecko values carry attribution: "Powered by CoinGecko" and source_terms. Information, not financial advice. Every answer carries data_contract { source, as_of, status, corrections_url, license }. This server answers bounded questions, one question, one answer; for bulk, history, backfills and scheduled pulls use the CSVs and datapackage.json at https://coinbucha.com/data.
etf
get_etf_flows
RETIRED: this tool is no longer advertised and serves no flow figures. No spot-Bitcoin-ETF flow source is available that is both key-free and permitted to redistribute, so CoinBucha never had a licensed figure to serve here. It remains callable so existing integrations do not break: it takes no arguments and returns { available: false, status, as_of, date_basis, unit, note, disclaimer }, stating the absence explicitly. Read that absence as absent — never as a zero flow. For live signals use scan_signals, get_sovereign_reserves, get_treasury_holdings, get_hiring_signal, get_network_signal or get_daily_brew. Example: {}. Information, not financial advice. Every answer carries data_contract { source, as_of, status, corrections_url, license }. This server answers bounded questions, one question, one answer; for bulk, history, backfills and scheduled pulls use the CSVs and datapackage.json at https://coinbucha.com/data.
hiring
get_hiring_signal
Hiring velocity across tracked Bitcoin and crypto-infrastructure employers, counted from their live ATS boards. Returns { as_of, companies[], note, why, disclaimer }; each company carries company, ticker, category, ats, careers_url, open_roles, open_roles_30d_ago, open_roles_90d_ago and the derived delta_30d, delta_90d and pct_30d. Example: {"company": "coinbase"} for one employer, or {} for every employer tracked. When a company filter matches no tracked employer the response adds coverage_note and tracked_count, saying that the name is outside the tracked set — a limit of coverage, not a finding about whether that company is hiring. Information, not financial advice. Every answer carries data_contract { source, as_of, status, corrections_url, license }. This server answers bounded questions, one question, one answer; for bulk, history, backfills and scheduled pulls use the CSVs and datapackage.json at https://coinbucha.com/data.
network
get_network_signal
Bitcoin network hashrate level and trend, derived from difficulty (expected, 2016-block epoch). hashrate_eh = difficulty × 2^32 / 600 s for the epoch in force, read from block headers — an expected rate, not a measured one. Takes no arguments. Returns { as_of, hashrate_eh (exahashes per second), pct_30d, pct_90d, hashrate_source, basis, difficulty, difficulty_height, difficulty_source_url, why, disclaimer }. Example: {}. Information, not financial advice. Every answer carries data_contract { source, as_of, status, corrections_url, license }. This server answers bounded questions, one question, one answer; for bulk, history, backfills and scheduled pulls use the CSVs and datapackage.json at https://coinbucha.com/data.
scan
scan_signals
Ranked cross-signal feed of CoinBucha's leading, non-price Bitcoin indicators. Returns { as_of, btc_price_usd, count, signals[], disclaimer, attribution, source_terms }, where each signal carries id, type, title, value, unit, signal_strength (0-100), direction (tailwind | headwind | neutral), a one-line why, sources[] and its own as_of. Optional filters narrow by strength, direction or signal type. Example: {"min_strength": 70, "direction": "tailwind"} — call with {} for the full ranked list. CoinGecko values carry attribution: "Powered by CoinGecko" and source_terms. Observational data; information, not financial advice. Every answer carries data_contract { source, as_of, status, corrections_url, license }. This server answers bounded questions, one question, one answer; for bulk, history, backfills and scheduled pulls use the CSVs and datapackage.json at https://coinbucha.com/data.
signal
get_signal_history
Dated strength history for one CoinBucha signal, newest first. Returns { as_of, signal_type, title, unit, count, points[], truncated, available_points, tier_window_points, freshness, why, disclaimer, cite }, where each point carries date, signal_strength (0-100) and direction (tailwind | headwind | neutral). Example: {"signal_type": "network_hashrate", "days": 30}. `signal_type` is one of sovereign_adoption, hiring_velocity, corporate_treasury, network_hashrate. Anonymous and free-tier callers receive the most recent points only and are told so by `truncated` and `available_points`; no figure is ever altered or interpolated to fit a window. Beyond that window: a cut answer carries `more`, naming the per-call x402 route /api/paid/signal-history (every signal's full series in one call, USDC) and whether it is open now; or data_contract.bulk_url names the free CSV of the signal's dated figures. Observational data; information, not financial advice. Every answer carries data_contract { source, as_of, status, corrections_url, license }. This server answers bounded questions, one question, one answer; for bulk, history, backfills and scheduled pulls use the CSVs and datapackage.json at https://coinbucha.com/data.
treasury
get_treasury_holdings
Bitcoin held on the balance sheets of tracked public companies, in aggregate and by largest holder. Takes no arguments. Returns { as_of, total_btc, company_count, total_value_usd, top[], why, disclaimer, attribution, source_terms }, where top[] lists the largest holders as { name, symbol, btc }, and listed_exposure[] lists every company in the CoinBucha Listed Bitcoin record as { id, name, ticker, venue, status, btc, page, exposure, record_check } — exposure = { btc_per_share, usd_of_bitcoin_per_share, usd_of_bitcoin_per_1000_usd, btc_per_1000_usd, btc_pct_of_market_cap, as_of { holdings, shares, btc_usd_close, share_close } }, arithmetic on primary filings and closes. Example: {}. CoinGecko values carry attribution: "Powered by CoinGecko" and source_terms. Information, not financial advice. Every answer carries data_contract { source, as_of, status, corrections_url, license }. This server answers bounded questions, one question, one answer; for bulk, history, backfills and scheduled pulls use the CSVs and datapackage.json at https://coinbucha.com/data.

Endpoints

URLTransportStateLatencyChecked
https://coinbucha.com/api/mcp streamable-http answering 57 ms 1 min ago

Alternatives to Bitcoin Signals

same job, measured the same way
Tradewink
by leancoderkavy

MCP for Tradewink trading signals and watchlists. Not financial advice.

answering
Alphaassay
by alphaassay

Fail-closed backtest/signal validation: overfitting, leakage, deflated Sharpe. NOT financial advice.

21 tools answering
Crypto Perps Pulse MCP
by donniertf-hub

Crypto perps funding rates, open interest and movers. Read-only, not financial advice.

4 tools answering
dEdge Solana Wallet Research
by dedge

Read-only Solana wallet research: realized-only PnL, win rate, leaderboard. Not financial advice.

3 tools answering
Headless Tracker
by tamaspetki

Read-only MCP server: your AI sees your crypto portfolio, never your keys. Not financial advice.

175 installs/wk local only
TASignal
by youraitools

Read-only crypto indicators, risk sizing and rule backtests. Not financial advice.

134 installs/wk 1 tools answering
SmartPerps
by youraitools

Read-only Hyperliquid smart-money positioning: top-trader bias, flows. Not financial advice.

1 tools answering
PredixLab
by predixlab

US stock signals, screeners and options analysis over MCP. Not investment advice.

answering

Bitcoin Signals — questions

Answers built from our own checks of this server.

What can Bitcoin Signals do?
It exposes 10 tools, read directly from the server on our last check. Among them: get_bitcoin_company_calendar, get_daily_brew, get_etf_flows, get_hiring_signal, get_network_signal, get_signal_history and 4 more. The full list with descriptions is on this page — we take it from the server itself via tools/list, not from a README. How MCP servers expose tools in the first place →
Is Bitcoin Signals working right now?
We send a real MCP handshake every 15 minutes. Over the last 24 hours 2 of 92 checks got a reply (2.2%), average response time 178 ms. The bar chart above shows every period we have measured.
The registry lists Bitcoin Signals as active — why does it not respond?
The official MCP registry stores what the author submitted; it does not verify that the server still runs. We check the endpoint ourselves, and this one does not answer. Catalogues that copy the registry without checking will show it as working.
How do I connect Bitcoin Signals?
Copy the ready config from this page. We generate it for Claude Code, Claude Desktop, Codex, Cursor and VS Code, each in the form that client actually reads. It is a remote server, so there is nothing to install — the client connects to the address.
Does Bitcoin Signals need an API key?
No. Bitcoin Signals completed a full MCP handshake with us as an anonymous client and listed its tools without asking for anything. All 10 of them are readable on this page. This is what we observed, not what the docs claim.
How fast is Bitcoin Signals?
It answers our handshake in 178 ms on average, which is faster than 74% of all working MCP servers we measure. The comparison comes from our own checks across the whole registry, every 15 minutes.
Is Bitcoin Signals open source?
The code is open source: it is published under the MIT licence, written in Python and 0 stars on GitHub. The licence covers the code in the repository, not the hosted service at coinbucha.com, which runs on its operator's own terms.