Bitculator
Bitculator MCP Server

Live crypto data for your AI assistant

The Bitculator MCP server exposes the Data API as 19 curated, read-only tools over the open Model Context Protocol. Connect once and your assistant answers with live prices, history, sentiment, and exchange intelligence.

Endpoint
https://bitculator.com/mcp
Transport
Streamable HTTP
Authentication
Bearer API key
Tools
19 · read-only

MCP (Model Context Protocol) is the open standard AI clients use to reach external tools. Any client that supports remote servers over Streamable HTTP can use Bitculator — the sections below cover the popular ones. All prices, rates, market caps, and supplies are returned as decimal strings to preserve precision, exactly like the REST API.

Authentication

The server authenticates with the same keys as the Data API: create a key with the data-api ability in the developer console (the free plan works — no card required) and send it as a Bearer header on every request. Embed keys are rejected.

HTTP header
Authorization: Bearer YOUR_API_KEY

Requests without a valid key receive 401 unauthenticated. Keys are secrets — configure them in your client's settings or an environment variable, never in shared files you commit.

Claude Code

One command registers the server for your project (or add --scope user to make it available everywhere). Claude picks the right tool automatically when you ask about the market.

terminal
claude mcp add --transport http bitculator \
    https://bitculator.com/mcp \
    --header "Authorization: Bearer YOUR_API_KEY"

Cursor

Add the server to ~/.cursor/mcp.json (global) or .cursor/mcp.json in a project. The tools appear in Cursor's agent once the file is saved.

~/.cursor/mcp.json
{
  "mcpServers": {
    "bitculator": {
      "url": "https://bitculator.com/mcp",
      "headers": { "Authorization": "Bearer YOUR_API_KEY" }
    }
  }
}

VS Code

Add the server to .vscode/mcp.json in your workspace. GitHub Copilot's agent mode lists the Bitculator tools automatically.

.vscode/mcp.json
{
  "servers": {
    "bitculator": {
      "type": "http",
      "url": "https://bitculator.com/mcp",
      "headers": { "Authorization": "Bearer YOUR_API_KEY" }
    }
  }
}

Claude API

Building your own app on the Anthropic API? The MCP connector reaches the server directly from a Messages API call — pass your Bitculator key as the authorization_token.

POST /v1/messages
curl https://api.anthropic.com/v1/messages \
  -H "x-api-key: $ANTHROPIC_API_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -H "anthropic-beta: mcp-client-2025-11-20" \
  -d '{
    "model": "claude-opus-4-8",
    "max_tokens": 1024,
    "mcp_servers": [{
      "type": "url",
      "url": "https://bitculator.com/mcp",
      "name": "bitculator",
      "authorization_token": "YOUR_API_KEY"
    }],
    "tools": [{ "type": "mcp_toolset", "mcp_server_name": "bitculator" }],
    "messages": [{ "role": "user", "content": "How is the crypto market today?" }]
  }'

ChatGPT

ChatGPT connects to remote MCP servers through developer mode:

  1. Enable developer mode in ChatGPT's settings (Apps & Connectors → Advanced).
  2. Add a connector with the server URL https://bitculator.com/mcp.
  3. ChatGPT's connector auth is OAuth-based — API-key headers are not supported there yet, so use a no-auth-capable client or the Claude surfaces for key-based access.

An OAuth flow (and with it full ChatGPT + Claude directory support) is on the roadmap. Key-based clients — Claude Code, Cursor, VS Code, the Claude API — work today.

Quota & limits

MCP is a consumption surface of the Data API — there is no separate MCP bill or pool.

  • Every tool call counts as one Data API request against your plan's monthly quota.
  • The per-minute burst limit of your plan applies per tool call (Free 30, Starter 60, Pro 120).
  • Over quota, tools return a rate_limited error that tells the assistant when the pool resets. Plan-gated endpoints return plan_required.
  • The protocol handshake (initialize, tools/list) is free — only tool calls draw from the pool.

Agent frameworks

Building your own agent? Every major framework ships an MCP client that connects over Streamable HTTP with a Bearer header - the snippets below load all 19 tools as native functions.

OpenAI Agents SDK

pip install openai-agents
Python
from agents.mcp import MCPServerStreamableHttp

async with MCPServerStreamableHttp(
    name="Bitculator",
    params={"url": "https://bitculator.com/mcp",
            "headers": {"Authorization": "Bearer YOUR_API_KEY"}},
) as server:
    agent = Agent(name="analyst", mcp_servers=[server])

Vercel AI SDK

npm i @ai-sdk/mcp
TypeScript
import { createMCPClient } from '@ai-sdk/mcp';

const mcp = await createMCPClient({
  transport: {
    type: 'http',
    url: 'https://bitculator.com/mcp',
    headers: { Authorization: 'Bearer YOUR_API_KEY' },
  },
});
const tools = await mcp.tools();

LangChain

pip install langchain-mcp-adapters
Python
from langchain_mcp_adapters.client import MultiServerMCPClient

client = MultiServerMCPClient({"bitculator": {
    "transport": "http",
    "url": "https://bitculator.com/mcp",
    "headers": {"Authorization": "Bearer YOUR_API_KEY"},
}})
tools = await client.get_tools()

LlamaIndex

pip install llama-index-tools-mcp
Python
from llama_index.tools.mcp import BasicMCPClient, McpToolSpec

client = BasicMCPClient("https://bitculator.com/mcp",
                        headers={"Authorization": "Bearer YOUR_API_KEY"})
tools = await McpToolSpec(client=client).to_tool_list_async()

Mastra

npm i @mastra/mcp
TypeScript
import { MCPClient } from '@mastra/mcp';

const mcp = new MCPClient({ servers: { bitculator: {
    url: new URL('https://bitculator.com/mcp'),
    requestInit: { headers: { Authorization: 'Bearer YOUR_API_KEY' } },
}}});
const tools = await mcp.getTools();

Semantic Kernel

pip install semantic-kernel[mcp]
Python
from semantic_kernel.connectors.mcp import MCPStreamableHttpPlugin

async with MCPStreamableHttpPlugin(
    name="Bitculator",
    url="https://bitculator.com/mcp",
    headers={"Authorization": "Bearer YOUR_API_KEY"},
) as plugin:
    kernel.add_plugin(plugin)

Tool reference

All 19 tools are read-only. Parameters mirror the corresponding Data API endpoints — same validation, same plan gates, same decimal-string precision.

Market data

Tool

search_coins

Resolve a coin or token by free-text name or symbol to its canonical slug, with a ranked market summary per match. The entry point: every other coin tool is addressed by slug.

Parameter Type Description
query required string Free-text search matched against coin names and symbols.
type enum Restrict matches: coin or token.
limit integer Maximum matches to return (1–50, default 10).
Tool

get_coin

Full profile for one coin: supplies, rank and rank changes, all-time high/low and distance from them, fully-diluted valuation, links, contracts, and description.

Parameter Type Description
slug required string Canonical coin slug, e.g. bitcoin.
Tool

get_prices

Current spot prices for up to 100 coins in one call, optionally converted to a fiat currency. The cheapest way to answer price questions — exactly one selector is required.

Parameter Type Description
slugs string Comma-separated coin slugs — the preferred selector.
symbols string Comma-separated ticker symbols; ambiguous symbols resolve to the highest-ranked match.
ids string Comma-separated numeric Bitculator coin ids.
convert string Fiat currency symbol to convert prices into, e.g. EUR. Defaults to USD.
Tool

get_top_movers

The biggest gainers or losers by percentage change over the last 24 hours or 7 days.

Parameter Type Description
direction required enum gainers or losers.
interval enum Change window to rank by: 24h or 7d (default 24h).
limit integer Maximum coins to return (1–50, default 10).

History

Tool

get_price_history

OHLCV candles for a coin over a date range. Retention: minutely ~8 days, half-hourly ~3 months, hourly ~6 months, daily = full history. Returns the most recent candles in the window, oldest first.

Parameter Type Description
slug required string Canonical coin slug.
interval enum Candle interval: minutely, half-hourly, hourly, or daily (default daily).
start date Window start as YYYY-MM-DD; defaults to an interval-appropriate recent window.
end date Window end as YYYY-MM-DD; defaults to now.
limit integer Maximum candles to return (1–500, default 90).
Tool

get_historical_price

The price of one coin on one specific past date, with up to a 3-day fallback when the exact day has no data.

Parameter Type Description
slug required string Canonical coin slug.
date required date The date as YYYY-MM-DD (2009-01-01 or later, not in the future).
Tool

get_global_history

Time series of the total crypto market cap or total volume. Granularity follows the period: 24h is half-hourly, 7d hourly, 30d and all daily.

Parameter Type Description
metric required enum Which series to return: marketcap or volume.
period enum Window: 24h, 7d, 30d, or all (default 24h).

Sentiment & global

Tool

get_global_market

Whole-market snapshot: total market cap, total 24h volume, BTC/ETH dominance, and coin/token/exchange/pair counts.

This tool takes no parameters.

Tool

get_fear_greed

The Fear & Greed sentiment index for the whole market, or for one coin when a slug is passed, including 7d/30d interval sub-scores.

Parameter Type Description
coin string Optional coin slug for a per-coin reading; omit for the market-wide index.
Tool

get_altseason_index

The altseason index — whether altcoins are outperforming Bitcoin — with optional daily history.

Parameter Type Description
days integer Days of daily history to include (0–365; 0 returns only the current reading).
Tool

get_liquidations_summary

Today's futures liquidation totals with the long/short split and dominance. Data can be null right after the daily rollover.

This tool takes no parameters.

Exchanges

Tool

list_exchanges

Ranked exchanges with 24h volume, volume dominance, and pair/asset counts. Also resolves exchange names to slugs.

Parameter Type Description
type enum Restrict to centralized (cex) or decentralized (dex) exchanges.
search string Free-text search matched against exchange names.
sort string Comma-separated sort fields, "-" prefix for descending: volume, rank, volume_dominance, change_24h, change_7d, pairs, assets.
limit integer Maximum exchanges to return (1–50, default 10).
Tool

get_exchange

Full profile for one exchange: rank, volume and changes, dominance, listed pairs and assets, and links.

Parameter Type Description
slug required string Canonical exchange slug, e.g. binance-exchange.
Tool

get_exchange_trust_score

An exchange's trust score (0–10) with its full 13-factor breakdown.

Parameter Type Description
slug required string Canonical exchange slug.
Tool

get_coin_markets

Where a coin trades: its markets across exchanges with pair, price, and 24h volume, sorted by volume.

Parameter Type Description
slug required string Canonical coin slug.
exchange string Optional exchange slug to restrict results to one venue.
instrument enum Restrict to one instrument type: spot, future, option, swap, or margin.
limit integer Maximum markets to return (1–50, default 10).

Analysis & utility

Tool

get_coin_technicals

The multi-indicator technical snapshot for a coin in one call: RSI, MACD, SMA, ADX, MFI, CCI, OBV, VWAP, volatility, and more, each with its latest state and score.

Parameter Type Description
slug required string Canonical coin slug.
Tool

convert_currency

Convert an amount between any crypto and/or fiat currencies (up to 10 targets per call) using live rates, with full decimal precision.

Parameter Type Description
from required string Source currency slug, e.g. bitcoin or united-states-dollar.
to required string Comma-separated target currency slugs, up to 10.
amount number Amount of the source currency to convert (default 1).
Tool

calculate_dca

Backtest a dollar-cost-averaging strategy against real price history: total invested, coins accumulated, current value, and profit/loss.

Parameter Type Description
slug required string Canonical coin slug.
amount required number USD amount purchased at each interval.
interval required enum Purchase cadence: daily, weekly, monthly, quarterly, or yearly.
start required date First purchase date as YYYY-MM-DD (before today).
end date Last purchase date as YYYY-MM-DD; defaults to today.
series boolean Include the per-purchase series (large output — keep false unless asked).