io.github.bitcompare/mcp-server
REMOTE · API.BITCOMPARE.NET · 2 COMPONENTS · SCANNED AUG 3
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 →
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 Usability77
- AI-judged instruction clarity (excellent).Pass
- Tool/resource definitions use about 1245 tokens (~69/item across 18 items; 18 tools + 0 resources), lean.Pass
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management18
- Stability check failed: schema churn in the 8 days we've observed: 1 tool removals, 1 breaking changes, 0 auth/transport breaks, 1 additions. See how to fix → Fail
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
- Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.
remote · api.bitcompare.net
claude mcp add --transport http bitcompare-mcp-server 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": {
"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.
- 3 Aug 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 14 to 18.
- 1 Aug 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 8 to 11.
- 31 Jul 26 +5
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 30 Jul 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
- 27 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
- 26 Jul 26 72
First indexed and scored.
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 3 Aug 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=YR2,O=Let's Encrypt,C=US | 19 Jul 2026 | 17 Oct 2026 | RSA 4096 | SHA256-RSA | 551fd0d0ccb2a8830c2063deaeca3a65cd1 |
| SANs: api.bitcompare.net | ||||||
| CN=YR2,O=Let's Encrypt,C=US (CA) | CN=Root YR,O=ISRG,C=US | 3 Sept 2025 | 2 Sept 2028 | RSA 2048 | SHA256-RSA | 4ebd24947e24d394802d84a52fd5b319 |
| 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 |
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 |
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.
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_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_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_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.