io.github.bitcompare/mcp-server
REMOTE · API.BITCOMPARE.NET · 2 COMPONENTS · SCANNED SEP 20
Crypto yield data for AI agents: lending, savings, staking, borrowing & stablecoin rates. 18 tools.
Available components
How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →
Endpoint Security94
- The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
- Authorisation is enforced on tool calls, advertised via RFC 9728 protected-resource metadata. Discovery is public, which costs nothing: no tool can be invoked without a token. View diagnostics → Pass
- HTTPS is enforced; there's no plaintext access path. View diagnostics → Pass
- The HSTS (Strict-Transport-Security) header is present. View diagnostics → Pass
- DNSSEC check failed: this domain isn't protected by DNSSEC. See how to fix → View diagnostics → Fail
- The authorisation server offers only Dynamic Client Registration (RFC 7591), which MCP 2026-07-28 deprecated in favour of Client ID Metadata Documents. View diagnostics → Partial
Transport & Reachability100
- Verified streamable-http transport via a live MCP handshake. View diagnostics → Pass
Schema Quality & AI Usability79
- AI-judged instruction clarity (excellent).Pass
- Tool/resource definitions use about 1755 tokens (~83/item across 21 items; 21 tools + 0 resources), lean.Pass
- 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 Coverage98
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 94% of tool parameters carry a description.Partial
- Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Tool Safety100
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- We read all 21 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
- An AI judge read all 21 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
How do I install the io.github.bitcompare/mcp-server server?
io.github.bitcompare/mcp-server is a hosted endpoint at https://api.bitcompare.net/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
remote · api.bitcompare.net
claude mcp add --transport http bitcompare-mcp-server 'https://api.bitcompare.net/mcp'
{
"mcpServers": {
"bitcompare-mcp-server": {
"url": "https://api.bitcompare.net/mcp"
}
}
} {
"servers": {
"bitcompare-mcp-server": {
"type": "http",
"url": "https://api.bitcompare.net/mcp"
}
}
} [mcp_servers.bitcompare-mcp-server] url = "https://api.bitcompare.net/mcp"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"bitcompare-mcp-server": {
"type": "remote",
"url": "https://api.bitcompare.net/mcp",
"enabled": true
}
}
} openclaw mcp add bitcompare-mcp-server --url 'https://api.bitcompare.net/mcp' --transport streamable-http
mcp_servers:
bitcompare-mcp-server:
url: "https://api.bitcompare.net/mcp" {
"McpServers": {
"bitcompare-mcp-server": {
"Transport": "http",
"Url": "https://api.bitcompare.net/mcp"
}
}
} assistant mcp add bitcompare-mcp-server -t streamable-http -u 'https://api.bitcompare.net/mcp'
{
"mcpServers": {
"bitcompare-mcp-server": {
"type": "http",
"url": "https://api.bitcompare.net/mcp"
}
}
} The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.
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.
- 4 Sept 26 0
- HSTS header: unverified → pass ▲ security
- Authorization: unverified → pass ▲ security
- Injection markers: unverified → pass ▲ security
- Stability: unverified → pass ▲ security
- TLS certificate: unverified → pass ▲ security
- Transport: fail → pass ▲ security
- Endpoint reachability: unreachable → reachable ▲ functional
- Tool coverage: unverified → 100 ▲ functional
- MCP protocol: unverified → pass ▲ functional
- 3 Sept 26 0
- Endpoint reachability: reachable → unreachable ▼ security
- Authorization: pass → unverified ▼ security
- Stability: pass → unverified ▼ security
- Tool safety: pass → unverified ▼ security
- HSTS header: pass → unverified ▼ security
- TLS certificate: pass → unverified ▼ security
- Transport: pass → fail ▼ security
- Tool coverage: 100 → unverified ▼ functional
- Capabilities: pass → unverified ▼ functional
- First check of Schema quality: unverified functional
- 26 Aug 26 +2
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 25 Aug 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 88 to 91.
- 23 Aug 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 81 to 84.
- 18 Aug 26 0
- Schema quality: 69 → 83 ▼ functional
- Tool coverage: 100% → 94% ▼ functional
- New tool “list_earn_products” functional
- New tool “get_rate_changes” functional
- New tool “stablecoin_earn_benchmark” functional
- 11 Aug 26 0
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 31 Jul 26 0
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
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 20 Sept 2026 · Probed https://api.bitcompare.net/mcp
TLS valid
Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .
| Subject | Issuer | Valid from | Valid until | Key | Signature | Serial |
|---|---|---|---|---|---|---|
| CN=api.bitcompare.net | CN=YR1,O=Let's Encrypt,C=US | 18 Sept 2026 | 17 Dec 2026 | RSA 4096 | SHA256-RSA | 6a6d7d8d712a22a4e3a839086deaaddf74f |
| SANs: api.bitcompare.net | ||||||
| CN=YR1,O=Let's Encrypt,C=US (CA) | CN=Root YR,O=ISRG,C=US | 3 Sept 2025 | 2 Sept 2028 | RSA 2048 | SHA256-RSA | a20253f15f2691c05dc1ce13b9bcca4e |
| CN=Root YR,O=ISRG,C=US (CA) | CN=ISRG Root X1,O=Internet Security Research Group,C=US | 13 May 2026 | 2 Sept 2032 | RSA 4096 | SHA256-RSA | f24b6d17f9d9ad7cb1c9fea78782699f |
Background: What to check on a remote MCP endpoint →
DNSSEC insecure
Validation of api.bitcompare.net. — Not signed
| Zone | DS | Keys | Algorithms | Outcome |
|---|---|---|---|---|
| . | trust_anchor | 20326, 38696 | 8, 8 | Verified |
| net. | present | 37331 | 13 | Verified |
| bitcompare.net. | absent | Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation |
Authentication Enforced and verified
The endpoint asked for a token and published valid RFC 9728 metadata describing how to get one.
| Result | Enforced and verified |
|---|---|
| Enforced | On tool calls |
| HTTP status | 200 |
WWW-Authenticate challenge Bearer realm="api.bitcompare.net", error="invalid_token", resource_metadata="https://api.bitcompare.net/.well-known/oauth-protected-resource"
Bearer realm="api.bitcompare.net", error="invalid_token", resource_metadata="https://api.bitcompare.net/.well-known/oauth-protected-resource" | Header | Value |
|---|---|
| strict-transport-security | max-age=31536000; includeSubDomains; preload |
| content-security-policy | default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests |
| x-content-type-options | nosniff |
| x-frame-options | DENY |
| referrer-policy | no-referrer |
Protected resource metadata
| Document | https://api.bitcompare.net/.well-known/oauth-protected-resource |
|---|---|
| Retrieved | Yes |
| Resource | https://api.bitcompare.net/mcp |
| Authorisation server | https://api.bitcompare.net |
Background: How OAuth 2.1 works in the 2026 MCP spec →
Transports 2 probes
| Transport | URL | Outcome | Status | Location |
|---|---|---|---|---|
| streamable-http | https://api.bitcompare.net/mcp | Verified | 200 | |
| http (plaintext) | http://api.bitcompare.net/mcp | HTTPS enforced | 301 | https://api.bitcompare.net/mcp |
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 →
coin_history Historical coin price chart ~57
Historical price timeseries for a coin. (Current plan: up to 1825 days of history.)
| Name | Type | Req | Description |
|---|---|---|---|
| coinId | string | yes | Canonical coin id (e.g. "bitcoin") |
| days | integer | – | Days of history |
| Name | Type | Req | Description |
|---|---|---|---|
| data | object | yes | – |
No examples provided.
fear_greed_index Fear & Greed index ~21
Current Fear & Greed index value and historical trend.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| classification | string | yes | Label, e.g. `Greed`, `Neutral`, `Extreme Fear` |
| history | array | – | Recent trend of the index |
| updatedAt | string | – | – |
| value | integer | yes | Current index, 0 (extreme fear) to 100 (extreme greed) |
No examples provided.
get_coin Get coin metadata ~46
Full metadata for a coin: description, links, categories, market data, developer stats.
| Name | Type | Req | Description |
|---|---|---|---|
| coinId | string | yes | Canonical coin id or slug (e.g. "bitcoin") |
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | Canonical coin ID (e.g. `bitcoin`) |
| marketCap | number | – | Market cap in USD |
| name | string | yes | Human-readable name (e.g. `Bitcoin`) |
| price | number | – | Current spot price in USD |
| rank | integer | – | Market cap rank (1 = largest) |
| symbol | string | yes | Trading symbol (e.g. `btc`) |
No examples provided.
get_price Aggregated exchange price ~59
Current aggregated price for one or more symbols, computed from multiple exchange feeds.
| Name | Type | Req | Description |
|---|---|---|---|
| symbols | – | yes | Single symbol or array of symbols (e.g. "btc" or ["btc","eth"]) |
| vs | string | – | Quote currency, default "usd" |
| Name | Type | Req | Description |
|---|---|---|---|
| count | integer | yes | – |
| prices | array | yes | – |
| timestamp | string | yes | – |
No examples provided.
get_price_by_symbol Aggregated price for a single symbol ~81
Aggregated exchange price for one symbol, plus the raw per-provider prices that fed the aggregate. Use get_price for multiple symbols in one call.
| Name | Type | Req | Description |
|---|---|---|---|
| region | string | – | Optional region filter for provider selection |
| symbol | string | yes | Single coin symbol, e.g. "btc" |
| vs | string | – | Quote currency, default "usd" |
| Name | Type | Req | Description |
|---|---|---|---|
| data | object | yes | – |
No examples provided.
get_rate_by_symbol Get rates for a single symbol ~125
Fetch all provider rates for a specific coin symbol. Optionally filter by category — pass category="lending"/"borrowing"/"staking" for yield questions, since unfiltered results mix in spot prices (category="price").
| Name | Type | Req | Description |
|---|---|---|---|
| category | string | – | Filter to a single product category. Without it, results mix spot prices (category="price") in with yields — pass "lending"/"borrowing"/"staking" for yield-only results. |
| symbol | string | yes | Coin symbol, case-insensitive (e.g. "btc" or "eth") |
| Name | Type | Req | Description |
|---|---|---|---|
| data | object | yes | – |
No examples provided.
get_rate_changes Rate change feed (observations) ~187
The immutable rate-change log: every material yield move with full provenance (previous rate, raw value, multiplier, collection method, confidence, base/bonus split). Time-ascending pages via cursor. Unfiltered windows are capped at 31 days — filter by provider or symbol to walk deep history. Use for "what changed since X?" and audit trails.
| Name | Type | Req | Description |
|---|---|---|---|
| category | string | – | – |
| cursor | string | – | Opaque cursor from a previous page |
| limit | integer | – | Page size, default 100 |
| provider | string | – | Filter to one provider (enables deep ranges) |
| since | string | yes | ISO date/datetime lower bound (required), e.g. "2026-08-01" |
| symbol | string | – | Filter to one symbol, e.g. "USDC" |
| until | string | – | ISO upper bound, default now |
| Name | Type | Req | Description |
|---|---|---|---|
| data | array | yes | – |
| pagination | object | yes | – |
No examples provided.
get_rate_history Historical rates ~164
Historical rate timeseries for a symbol. Recent history (~30 days) is per-tick; older history is daily granularity. Depth is clamped to your plan (up to 365 days on Pro) and bounded by how far back data has been recorded. (Current plan: up to 1825 days of history.)
| Name | Type | Req | Description |
|---|---|---|---|
| days | integer | – | Days of history. Clamped server-side to your plan (Free 7, Starter 30, Growth 90, Pro 365, Enterprise 1825) and bounded by available data. Points within ~30 days are per-tick; older points are daily. |
| provider | string | – | Provider slug to scope to, case-insensitive |
| symbol | string | yes | Coin symbol, case-insensitive |
| Name | Type | Req | Description |
|---|---|---|---|
| data | object | yes | – |
No examples provided.
get_rates Get current rates ~181
List current rates across providers, optionally filtered by symbol, category, or provider. For "what is the best yield on BTC right now?" style questions, ALWAYS pass category="lending"/"borrowing"/"staking" — an unfiltered call mostly returns spot prices (category="price"), not yields.
| Name | Type | Req | Description |
|---|---|---|---|
| category | string | – | Filter by product category. IMPORTANT for yield questions: without this filter, most returned rows are category="price" (spot prices), not yields. Pass category="lending", "borrowing", or "staking" t… |
| limit | integer | – | Max results, default 100 |
| provider | string | – | Filter by provider slug, case-insensitive |
| symbol | string | – | Filter by coin symbol, case-insensitive (e.g. "btc" or "BTC") |
| Name | Type | Req | Description |
|---|---|---|---|
| data | object | yes | – |
No examples provided.
list_coins List coins ~58
Paginated list of coins with optional name/symbol search.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | Page size, default 20 |
| page | integer | – | Page, default 1 |
| search | string | – | Search by name or symbol |
| Name | Type | Req | Description |
|---|---|---|---|
| coins | array | yes | – |
No examples provided.
list_earn_products Canonical earn products & variants ~171
The canonical earn product graph: products (provider × asset × category) with their term variants — lockups, tiers, minimum deposits, payout schedules, withdrawal notice, TVL, promo flags — each carrying collection method, confidence (0-100 with bands), verification timestamps, and geo eligibility resolved from variant overrides or provider defaults. Use for "what are the actual terms behind this rate?"
| Name | Type | Req | Description |
|---|---|---|---|
| category | string | – | – |
| limit | integer | – | Page size, default 50 |
| min_confidence | integer | – | Only products with at least one variant at/above this confidence |
| offset | integer | – | – |
| provider | string | – | Filter to one provider, e.g. "nexo" |
| symbol | string | – | Filter to one symbol, e.g. "BTC" |
| Name | Type | Req | Description |
|---|---|---|---|
| data | object | yes | – |
No examples provided.
list_providers List rate providers ~46
All rate providers, optionally filtered by product category.
| Name | Type | Req | Description |
|---|---|---|---|
| category | string | – | Filter to providers that offer this category |
| limit | integer | – | Max results, default 100 |
| Name | Type | Req | Description |
|---|---|---|---|
| providers | array | yes | – |
No examples provided.
market_summary Global market summary ~30
One-call summary of total market cap, 24h volume, BTC/ETH dominance, and recent trend.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| btcDominance | number | yes | BTC share of total market cap, 0-100 |
| ethDominance | number | yes | ETH share of total market cap, 0-100 |
| totalMarketCapUsd | number | yes | Combined market cap of all tracked coins |
| trend24h | number | – | 24h trend as a decimal (0.02 = +2%) |
| volume24hUsd | number | yes | Combined 24h trading volume |
No examples provided.
resolve_symbol Resolve symbol to canonical coin ~72
Map an exchange-specific or ambiguous symbol to bitcompare's canonical coin id. Useful when an exchange uses a non-standard ticker.
| Name | Type | Req | Description |
|---|---|---|---|
| context | string | – | Source exchange or quote currency to disambiguate (e.g. "kraken", "binance") |
| symbol | string | yes | Exchange-specific or ambiguous symbol |
| Name | Type | Req | Description |
|---|---|---|---|
| coinId | string | yes | Canonical Bitcompare coin ID |
| input | string | yes | The raw symbol that was queried |
| name | string | yes | Coin display name |
| symbol | string | yes | Canonical symbol |
No examples provided.
resolve_symbols_batch Batch resolve symbols ~63
Resolve up to 100 symbols in a single request. Requires a plan with bulk endpoints enabled.
| Name | Type | Req | Description |
|---|---|---|---|
| context | string | – | Source exchange or quote currency applied to every input symbol |
| symbols | array | yes | Up to 100 symbols to resolve in a single request |
| Name | Type | Req | Description |
|---|---|---|---|
| resolved | array | yes | – |
No examples provided.
similar_coins Similar coins ~60
Coins related to the given coin by category/sector similarity.
| Name | Type | Req | Description |
|---|---|---|---|
| coinId | string | yes | Canonical coin id to find related coins for (e.g. "bitcoin") |
| limit | integer | – | Max related coins to return, default 10 |
| Name | Type | Req | Description |
|---|---|---|---|
| coins | array | yes | – |
No examples provided.
stablecoin_earn_benchmark Bitcompare Earn Index (BEI-Stable) ~152
The Bitcompare Earn Index for stablecoins: median USDC/USDT lending APY across servable providers, with CeFi/DeFi splits, TVL-weighted variant, deltas, and an immutable daily history. Use for "what does stablecoin yield pay right now / how has it trended?" — this is the citable market reference, not a single provider quote.
| Name | Type | Req | Description |
|---|---|---|---|
| history_days | integer | – | Request the daily series for the last N days instead of the headline. Anonymous/free access is clamped to the most recent 90 days. |
| segment | string | – | Restrict to one segment. Omit for the headline across overall + CeFi + DeFi. |
| Name | Type | Req | Description |
|---|---|---|---|
| data | object | yes | – |
No examples provided.
stablecoin_index Stablecoin stability leaderboard ~34
Ranked stablecoin leaderboard with stability scores, peg deviation, and market cap.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | Default 50 |
| Name | Type | Req | Description |
|---|---|---|---|
| stablecoins | array | yes | Ranked stablecoin leaderboard |
No examples provided.
stablecoin_peg_stability Stablecoin peg stability ~58
Peg deviation history and stability stats for a stablecoin.
| Name | Type | Req | Description |
|---|---|---|---|
| period | string | – | Stability window, default "30d" |
| symbol | string | yes | Stablecoin symbol (e.g. "usdt", "usdc") |
| Name | Type | Req | Description |
|---|---|---|---|
| deviation | number | yes | Current peg deviation in basis points |
| history | array | yes | Recent peg deviation samples |
| pegTarget | number | yes | Target peg in USD (typically 1.0) |
| symbol | string | yes | – |
No examples provided.
top_coins Top coins by market cap ~32
Top N coins ordered by market capitalisation.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | Number of coins, default 100 |
| Name | Type | Req | Description |
|---|---|---|---|
| coins | array | yes | – |
No examples provided.
top_movers Top gainers/losers ~58
Biggest 24h gainers and losers within a rank segment.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | Number of gainers and losers to return on each side, default 10 |
| segment | string | – | Rank segment, default "top100" |
| Name | Type | Req | Description |
|---|---|---|---|
| gainers | array | yes | Top 24h gainers in the requested segment |
| losers | array | yes | Top 24h losers in the requested segment |
No examples provided.
What is the io.github.bitcompare/mcp-server server?
io.github.bitcompare/mcp-server is listed in the public MCP registry as io.github.bitcompare/mcp-server. Crypto yield data for AI agents: lending, savings, staking, borrowing & stablecoin rates. 18 tools. This page covers its hosted endpoint (https://api.bitcompare.net/mcp).
Is the io.github.bitcompare/mcp-server server safe to use?
io.github.bitcompare/mcp-server scores 94 out of 100 on VerifyMCP. 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.bitcompare/mcp-server server expose?
io.github.bitcompare/mcp-server exposes 21 tools: get_rates, get_rate_by_symbol, get_rate_history, list_providers, get_coin, and 16 more. Their descriptions and schemas cost roughly 1,755 tokens of context every time the server is loaded.
Does the io.github.bitcompare/mcp-server server require authentication?
Yes. io.github.bitcompare/mcp-server asked us for credentials when we connected, so you will need to authorise it in your MCP client before it can do anything.
Is the io.github.bitcompare/mcp-server server still maintained?
io.github.bitcompare/mcp-server is still listed as active in the MCP registry. We last reached this channel on 20 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.