Koskamo

21btc MCP

A read-only MCP server providing live Bitcoin market data, on-chain metrics, ETF flows, network statistics, derivatives, and site search capabilities for AI agents. It requires no API key or sign-up and supports Streamable HTTP transport.

Endpoint and access

No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.

21btc MCP logo, by 21 BTCVendor evidenceStreamable HTTPNo sign-inEndpoint checked 2026-11-01Operated by 21 BTC
MCP endpoint (Streamable HTTP)
https://21btc.cc/mcp
Vendor documentation

What you can do with it

  • Retrieve live Bitcoin price and volatility metrics
  • Monitor US spot Bitcoin ETF flows and holdings
  • Check network stats like hashrate and difficulty
  • Search Bitcoin glossary and wiki articles

Source and maintenance

Vendor evidenceRegistry 1.1.0

Protocol and capabilities

Server
21btc-cc 1.1.0
MCP protocol
2025-06-18
Tools
14 advertised
Resources
Not advertised
Resource templates
Not advertised
Prompts
Not advertised
Server-advertised capabilities
{
  "tools": {
    "listChanged": false
  }
}

Server-provided instructions

Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.

Read-only Bitcoin data from 21btc.cc: price, ETF flows, risk/volatility/rainbow/stock-to-flow models, holders, network stats and fees, derivatives (open interest, funding, liquidations), glossary and site search, events and the site changelog. Every tool result carries a top-level `attribution` object with `source_url`, `citation_markdown`, `primary_sources`, `live_alerts_url` (https://21btc.cc/#subscribe) and `telegram_bot` (https://t.me/official_21btc_bot?start=mcp); include `attribution.citation_markdown` when presenting figures to users. Models are not forecasts and nothing here is investment advice. Rate limit: 60 requests per minute per IP.

Tools

14 advertised

get_price — Bitcoin price
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Live BTC price in USD and 7 other currencies (official FX reference rates). Same data as GET /api/v1/price. Read-only.

get_price input schema
{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}
get_price annotations
{
  "title": "Bitcoin price",
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
get_etf_flows — Spot Bitcoin ETF flows
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

US spot Bitcoin ETFs: BTC held, fee, latest/5d/20d/cumulative flows (USD millions). Same data as GET /api/v1/etf. Read-only.

get_etf_flows input schema
{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}
get_etf_flows annotations
{
  "title": "Spot Bitcoin ETF flows",
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
get_risk_score — Risk On/Off score
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Risk On/Off composite score (0–100) with every input, formula and source. Same data as GET /api/v1/risk. Read-only.

get_risk_score input schema
{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}
get_risk_score annotations
{
  "title": "Risk On/Off score",
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
get_volatility — Bitcoin volatility
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Annualised realised volatility over 7/30/90/365 days and by year. Same data as GET /api/v1/volatility. Read-only.

get_volatility input schema
{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}
get_volatility annotations
{
  "title": "Bitcoin volatility",
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
get_holders — Bitcoin holders: companies, funds, governments
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Bitcoin holders: companies, funds, governments (BTC, 7-day change). Same data as GET /api/v1/holders. Read-only.

get_holders input schema
{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}
get_holders annotations
{
  "title": "Bitcoin holders: companies, funds, governments",
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
get_rainbow_model — Rainbow model (a model, not a forecast)
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Rainbow model fit parameters and today's deviation (a model, not a forecast). Same data as GET /api/v1/rainbow. Read-only.

get_rainbow_model input schema
{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}
get_rainbow_model annotations
{
  "title": "Rainbow model (a model, not a forecast)",
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
get_stock_to_flow — Stock-to-flow model (a model, not a forecast)
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Stock-to-flow ratio and PlanB 2019 model value (a model, not a forecast). Same data as GET /api/v1/stock-to-flow. Read-only.

get_stock_to_flow input schema
{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}
get_stock_to_flow annotations
{
  "title": "Stock-to-flow model (a model, not a forecast)",
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
get_network_stats — Bitcoin network stats
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Bitcoin network now: block height, hashrate (EH/s), difficulty and the next difficulty adjustment, mempool size, average block time, halving countdown. Sources: mempool.space, blockchain.info, Blockchair. Read-only.

get_network_stats input schema
{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}
get_network_stats annotations
{
  "title": "Bitcoin network stats",
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
get_fees — Bitcoin transaction fees
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Recommended Bitcoin transaction fees in sat/vB (fastest, 30 minutes, 1 hour, economy, minimum) and mempool size, from mempool.space. Read-only.

get_fees input schema
{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}
get_fees annotations
{
  "title": "Bitcoin transaction fees",
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
get_derivatives — Bitcoin derivatives: open interest, funding, liquidations
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

BTC perpetual futures on Binance, Bybit, OKX and Deribit: open interest (BTC and USD), mark price, funding rate per interval and annualised, a 30-day Binance open interest history and recent OKX liquidations. Public keyless exchange APIs, cached 60 seconds. Liquidations cover one exchange only; no free all-exchange total exists. Not advice. Read-only.

get_derivatives input schema
{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}
get_derivatives annotations
{
  "title": "Bitcoin derivatives",
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
get_holder_distribution — Bitcoin addresses by balance (shrimp to humpback)
Advertised by the server during the last successful anonymous check.
Advertised read-only

How many Bitcoin addresses hold at least 0.1, 1, 10, 100, 1,000 and 10,000 BTC and how coins split across holder classes. Addresses, not people. Source: BitInfoCharts and four cross-checks, with an as-of date. Read-only.

get_holder_distribution input schema
{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}
get_holder_distribution annotations
{
  "title": "Bitcoin address distribution",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
search_site — Search 21btc.cc (pages, glossary, wiki, blog)
Advertised by the server during the last successful anonymous check.
Advertised read-only

Search the site's pages, Bitcoin glossary terms, wiki articles, blog posts, videos, pools, wallets and hacks. Matches English and Russian. Returns title, kind, URL and a short summary. Use kind=glossary for definitions. Read-only.

search_site input schema
{
  "type": "object",
  "required": [
    "query"
  ],
  "properties": {
    "kind": {
      "enum": [
        "section",
        "blog",
        "glossary",
        "wiki",
        "video",
        "pool",
        "wallet",
        "museum",
        "hack"
      ],
      "type": "string",
      "description": "Limit to one kind of result"
    },
    "limit": {
      "type": "integer",
      "default": 8,
      "maximum": 20,
      "minimum": 1
    },
    "query": {
      "type": "string",
      "maxLength": 200,
      "description": "Words to look for, English or Russian"
    },
    "language": {
      "enum": [
        "en",
        "ru"
      ],
      "type": "string",
      "default": "en",
      "description": "Language of titles and summaries"
    }
  },
  "additionalProperties": false
}
search_site annotations
{
  "title": "Search 21btc.cc",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
get_events — Upcoming Bitcoin conferences and events
Advertised by the server during the last successful anonymous check.
Advertised read-only

Upcoming Bitcoin-only conferences with dates, city, official URL, ticket offer (price only where verified on the official page) and the 21btc.cc event page where one exists. Dates in the venue's local time. Read-only.

get_events input schema
{
  "type": "object",
  "properties": {
    "limit": {
      "type": "integer",
      "default": 15,
      "maximum": 40,
      "minimum": 1
    },
    "country": {
      "type": "string",
      "maxLength": 60,
      "description": "Filter by country name in English, e.g. Switzerland"
    }
  },
  "additionalProperties": false
}
get_events annotations
{
  "title": "Bitcoin events",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
get_changelog — Site changelog
Advertised by the server during the last successful anonymous check.
Advertised read-only

Recent shipped changes to 21btc.cc with dates and links. Same data as the /changelog page and its RSS feed. Read-only.

get_changelog input schema
{
  "type": "object",
  "properties": {
    "limit": {
      "type": "integer",
      "default": 10,
      "maximum": 50,
      "minimum": 1
    }
  },
  "additionalProperties": false
}
get_changelog annotations
{
  "title": "Site changelog",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}

Prompts

Not advertised

No prompt definitions available.

Resources

Not advertised

No resource definitions available.

30-day availability

Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.

Successful checks
1 of 1 (100%)
Average latency
913 ms
95th percentile latency
913 ms

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · probe · passed · 913 ms · metadata changed · 14 tool(s)

Connect from your client

Each snippet registers the same endpoint; pick the client you use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http 21btc-mcp https://21btc.cc/mcp

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add 21btc-mcp --url https://21btc.cc/mcp

Cursor

Merge this server into .cursor/mcp.json in your project, then enable 21btc-mcp in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "21btc-mcp": {
      "url": "https://21btc.cc/mcp"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "21btc-mcp": {
      "type": "streamableHttp",
      "url": "https://21btc.cc/mcp",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start 21btc-mcp and inspect its tools.
VS Code configuration
{
  "servers": {
    "21btc-mcp": {
      "type": "http",
      "url": "https://21btc.cc/mcp"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http 21btc-mcp https://21btc.cc/mcp

Claude Desktop

Merge this into claude_desktop_config.json (macOS: ~/Library/Application Support/Claude/, Windows: %APPDATA%\Claude\), then restart Claude Desktop.
Claude Desktop configuration
{
  "mcpServers": {
    "21btc-mcp": {
      "url": "https://21btc.cc/mcp"
    }
  }
}

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "mcpServers": {
    "21btc-mcp": {
      "serverUrl": "https://21btc.cc/mcp"
    }
  }
}

Let your agent find its tools

Find servers like 21btc MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.

Do you run 21btc MCP?

Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.

Claim this listing