com.coinpaprika/coinpaprika — Model Context Protocol (MCP) Server
The com.coinpaprika/coinpaprika MCP server provides on-demand access to CoinPaprika’s cryptocurrency market data API. It supports real-time retrieval of prices, tickers, exchange data, OHLCV candles, and related metadata, designed for AI assistants to fetch market information programmatically with minimal setup.
🛠️ Key Features
Real-time crypto market data access
Endpoints for prices, tickers, exchanges, OHLCV candles, and metadata
MCP server with 31 tools
Topics include ai-tools, crypto-api, market-data, and mcp
🚀 Use Cases
Fetch real-time cryptocurrency prices and tickers
Retrieve exchange data and OHLCV candle data
Use metadata alongside market data for downstream processing
⚡ Developer Benefits
Programmatic access to CoinPaprika market data via MCP
Supports AI assistants (e.g., Claude) for automated data fetching
Installation options: global npm install or direct npx execution
⚠️ Limitations
Documentation excerpt provides setup guidance, but does not specify authentication, rate limits, or tool-by-tool coverage.
List all available coins with id, name, symbol and rank. Use to discover coins or map a name to an id. Does NOT include prices; for prices use getTickers or getTickersById. Read-only; limit caps the number of coins returned. No API key required.
Parameters2
limit
number
optional
Optional. Items per page (default 50, max 250). Server clamps requests above 250.
rationale
string
required
REQUIRED. In 1-2 sentences explain WHY you are calling this tool and what you intend to do with the result. Examples: 'User asked for BTC price; calling getTickersById to fetch current USD value.' 'Building a portfolio dashboard; need OHLCV for ETH last 7 days.' This is logged and reviewed to improve the MCP. Do not include user PII or secrets — use generic descriptions.
Raw schema
{
"type": "object",
"properties": {
"limit": {
"type": "number",
"default": 50,
"description": "Optional. Items per page (default 50, max 250). Server clamps requests above 250."
},
"rationale": {
"type": "string",
"minLength": 20,
"maxLength": 500,
"description": "REQUIRED. In 1-2 sentences explain WHY you are calling this tool and what you intend to do with the result. Examples: 'User asked for BTC price; calling getTickersById to fetch current USD value.' 'Building a portfolio dashboard; need OHLCV for ETH last 7 days.' This is logged and reviewed to improve the MCP. Do not include user PII or secrets — use generic descriptions."
}
},
"required": [
"rationale"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
getCoinById
Get descriptive project information about a coin: description, links, team and tags. Use for 'tell me about Uniswap', 'what is this project'. Does NOT include price; for price and market cap use getTickersById. Read-only; coinId is a canonical id (resolve with resolveId). No API key required.
Parameters2
coinId
string
required
Canonical CoinPaprika coin slug in 'symbol-name' format, e.g. 'btc-bitcoin', 'eth-ethereum', 'ada-cardano'. Do NOT pass ticker symbols ('BTC', 'AAVE') or guess the slug — it is not derivable from the symbol (e.g. AAVE resolves to 'aave-new', which you could not guess). Call search or resolveId first to resolve a symbol or name to its canonical id.
rationale
string
required
REQUIRED. In 1-2 sentences explain WHY you are calling this tool and what you intend to do with the result. Examples: 'User asked for BTC price; calling getTickersById to fetch current USD value.' 'Building a portfolio dashboard; need OHLCV for ETH last 7 days.' This is logged and reviewed to improve the MCP. Do not include user PII or secrets — use generic descriptions.
Raw schema
{
"type": "object",
"properties": {
"coinId": {
"type": "string",
"description": "Canonical CoinPaprika coin slug in 'symbol-name' format, e.g. 'btc-bitcoin', 'eth-ethereum', 'ada-cardano'. Do NOT pass ticker symbols ('BTC', 'AAVE') or guess the slug — it is not derivable from the symbol (e.g. AAVE resolves to 'aave-new', which you could not guess). Call search or resolveId first to resolve a symbol or name to its canonical id."
},
"rationale": {
"type": "string",
"minLength": 20,
"maxLength": 500,
"description": "REQUIRED. In 1-2 sentences explain WHY you are calling this tool and what you intend to do with the result. Examples: 'User asked for BTC price; calling getTickersById to fetch current USD value.' 'Building a portfolio dashboard; need OHLCV for ETH last 7 days.' This is logged and reviewed to improve the MCP. Do not include user PII or secrets — use generic descriptions."
}
},
"required": [
"coinId",
"rationale"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
getCoinEvents
Get the timeline of events for a coin (launches, partnerships, hard forks, conference talks) with dates and descriptions. Use for 'what is happening with X', 'upcoming events for Ethereum', 'X roadmap events'. For prices use getTickersById. Read-only; coinId is a canonical id, limit caps results. No API key required.
Parameters3
coinId
string
required
Canonical CoinPaprika coin slug in 'symbol-name' format, e.g. 'btc-bitcoin', 'eth-ethereum', 'ada-cardano'. Do NOT pass ticker symbols ('BTC', 'AAVE') or guess the slug — it is not derivable from the symbol (e.g. AAVE resolves to 'aave-new', which you could not guess). Call search or resolveId first to resolve a symbol or name to its canonical id.
limit
number
optional
rationale
string
required
REQUIRED. In 1-2 sentences explain WHY you are calling this tool and what you intend to do with the result. Examples: 'User asked for BTC price; calling getTickersById to fetch current USD value.' 'Building a portfolio dashboard; need OHLCV for ETH last 7 days.' This is logged and reviewed to improve the MCP. Do not include user PII or secrets — use generic descriptions.
Raw schema
{
"type": "object",
"properties": {
"coinId": {
"type": "string",
"description": "Canonical CoinPaprika coin slug in 'symbol-name' format, e.g. 'btc-bitcoin', 'eth-ethereum', 'ada-cardano'. Do NOT pass ticker symbols ('BTC', 'AAVE') or guess the slug — it is not derivable from the symbol (e.g. AAVE resolves to 'aave-new', which you could not guess). Call search or resolveId first to resolve a symbol or name to its canonical id."
},
"limit": {
"type": "number",
"default": 50
},
"rationale": {
"type": "string",
"minLength": 20,
"maxLength": 500,
"description": "REQUIRED. In 1-2 sentences explain WHY you are calling this tool and what you intend to do with the result. Examples: 'User asked for BTC price; calling getTickersById to fetch current USD value.' 'Building a portfolio dashboard; need OHLCV for ETH last 7 days.' This is logged and reviewed to improve the MCP. Do not include user PII or secrets — use generic descriptions."
}
},
"required": [
"coinId",
"rationale"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
getCoinExchanges
List the exchanges that LIST a specific coin (venue names only). Use for 'which exchanges list X', 'is X on Coinbase', 'where is X listed'. For where to BUY with per-market price and volume use getCoinMarkets; for the live price use getTickersById. Read-only; coinId is a canonical id, limit caps results. No API key required.
Parameters3
coinId
string
required
Canonical CoinPaprika coin slug in 'symbol-name' format, e.g. 'btc-bitcoin', 'eth-ethereum', 'ada-cardano'. Do NOT pass ticker symbols ('BTC', 'AAVE') or guess the slug — it is not derivable from the symbol (e.g. AAVE resolves to 'aave-new', which you could not guess). Call search or resolveId first to resolve a symbol or name to its canonical id.
limit
number
optional
rationale
string
required
REQUIRED. In 1-2 sentences explain WHY you are calling this tool and what you intend to do with the result. Examples: 'User asked for BTC price; calling getTickersById to fetch current USD value.' 'Building a portfolio dashboard; need OHLCV for ETH last 7 days.' This is logged and reviewed to improve the MCP. Do not include user PII or secrets — use generic descriptions.
Raw schema
{
"type": "object",
"properties": {
"coinId": {
"type": "string",
"description": "Canonical CoinPaprika coin slug in 'symbol-name' format, e.g. 'btc-bitcoin', 'eth-ethereum', 'ada-cardano'. Do NOT pass ticker symbols ('BTC', 'AAVE') or guess the slug — it is not derivable from the symbol (e.g. AAVE resolves to 'aave-new', which you could not guess). Call search or resolveId first to resolve a symbol or name to its canonical id."
},
"limit": {
"type": "number",
"default": 50
},
"rationale": {
"type": "string",
"minLength": 20,
"maxLength": 500,
"description": "REQUIRED. In 1-2 sentences explain WHY you are calling this tool and what you intend to do with the result. Examples: 'User asked for BTC price; calling getTickersById to fetch current USD value.' 'Building a portfolio dashboard; need OHLCV for ETH last 7 days.' This is logged and reviewed to improve the MCP. Do not include user PII or secrets — use generic descriptions."
}
},
"required": [
"coinId",
"rationale"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
getCoinMarkets
Get the specific markets and trading pairs where a coin trades, with per-market price and 24h volume. Use for 'where can I buy X', 'X price on Binance', 'best market for X'. For just the list of exchange names use getCoinExchanges. Read-only; coinId is a canonical id, quotes sets quote currencies, limit caps results. No API key required.
Parameters4
coinId
string
required
Canonical CoinPaprika coin slug in 'symbol-name' format, e.g. 'btc-bitcoin', 'eth-ethereum', 'ada-cardano'. Do NOT pass ticker symbols ('BTC', 'AAVE') or guess the slug — it is not derivable from the symbol (e.g. AAVE resolves to 'aave-new', which you could not guess). Call search or resolveId first to resolve a symbol or name to its canonical id.
quotes
string
optional
limit
number
optional
rationale
string
required
REQUIRED. In 1-2 sentences explain WHY you are calling this tool and what you intend to do with the result. Examples: 'User asked for BTC price; calling getTickersById to fetch current USD value.' 'Building a portfolio dashboard; need OHLCV for ETH last 7 days.' This is logged and reviewed to improve the MCP. Do not include user PII or secrets — use generic descriptions.
Raw schema
{
"type": "object",
"properties": {
"coinId": {
"type": "string",
"description": "Canonical CoinPaprika coin slug in 'symbol-name' format, e.g. 'btc-bitcoin', 'eth-ethereum', 'ada-cardano'. Do NOT pass ticker symbols ('BTC', 'AAVE') or guess the slug — it is not derivable from the symbol (e.g. AAVE resolves to 'aave-new', which you could not guess). Call search or resolveId first to resolve a symbol or name to its canonical id."
},
"quotes": {
"type": "string"
},
"limit": {
"type": "number",
"default": 50
},
"rationale": {
"type": "string",
"minLength": 20,
"maxLength": 500,
"description": "REQUIRED. In 1-2 sentences explain WHY you are calling this tool and what you intend to do with the result. Examples: 'User asked for BTC price; calling getTickersById to fetch current USD value.' 'Building a portfolio dashboard; need OHLCV for ETH last 7 days.' This is logged and reviewed to improve the MCP. Do not include user PII or secrets — use generic descriptions."
}
},
"required": [
"coinId",
"rationale"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
getCoinOHLCVLatest
Get the latest full-day OHLC candle (open, high, low, close and volume) for a coin. Use for 'yesterday's candle for BTC'. For the live spot price use getTickersById. Read-only; coinId must be a canonical id (resolve a bare symbol with resolveId first), quote defaults to usd. No API key required.
Parameters3
coinId
string
required
Canonical CoinPaprika coin slug in 'symbol-name' format, e.g. 'btc-bitcoin', 'eth-ethereum', 'ada-cardano'. Do NOT pass ticker symbols ('BTC', 'AAVE') or guess the slug — it is not derivable from the symbol (e.g. AAVE resolves to 'aave-new', which you could not guess). Call search or resolveId first to resolve a symbol or name to its canonical id.
quote
string
optional
rationale
string
required
REQUIRED. In 1-2 sentences explain WHY you are calling this tool and what you intend to do with the result. Examples: 'User asked for BTC price; calling getTickersById to fetch current USD value.' 'Building a portfolio dashboard; need OHLCV for ETH last 7 days.' This is logged and reviewed to improve the MCP. Do not include user PII or secrets — use generic descriptions.
Raw schema
{
"type": "object",
"properties": {
"coinId": {
"type": "string",
"description": "Canonical CoinPaprika coin slug in 'symbol-name' format, e.g. 'btc-bitcoin', 'eth-ethereum', 'ada-cardano'. Do NOT pass ticker symbols ('BTC', 'AAVE') or guess the slug — it is not derivable from the symbol (e.g. AAVE resolves to 'aave-new', which you could not guess). Call search or resolveId first to resolve a symbol or name to its canonical id."
},
"quote": {
"type": "string",
"default": "usd"
},
"rationale": {
"type": "string",
"minLength": 20,
"maxLength": 500,
"description": "REQUIRED. In 1-2 sentences explain WHY you are calling this tool and what you intend to do with the result. Examples: 'User asked for BTC price; calling getTickersById to fetch current USD value.' 'Building a portfolio dashboard; need OHLCV for ETH last 7 days.' This is logged and reviewed to improve the MCP. Do not include user PII or secrets — use generic descriptions."
}
},
"required": [
"coinId",
"rationale"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
getCoinOHLCVToday
Get today's in-progress OHLC candle for a coin. Use for 'today's high and low for ETH'. For the current spot price use getTickersById; for past candles use getCoinOHLCVHistorical. Read-only; coinId is a canonical id (resolve with resolveId). No API key required.
Parameters3
coinId
string
required
Canonical CoinPaprika coin slug in 'symbol-name' format, e.g. 'btc-bitcoin', 'eth-ethereum', 'ada-cardano'. Do NOT pass ticker symbols ('BTC', 'AAVE') or guess the slug — it is not derivable from the symbol (e.g. AAVE resolves to 'aave-new', which you could not guess). Call search or resolveId first to resolve a symbol or name to its canonical id.
quote
string
optional
rationale
string
required
REQUIRED. In 1-2 sentences explain WHY you are calling this tool and what you intend to do with the result. Examples: 'User asked for BTC price; calling getTickersById to fetch current USD value.' 'Building a portfolio dashboard; need OHLCV for ETH last 7 days.' This is logged and reviewed to improve the MCP. Do not include user PII or secrets — use generic descriptions.
Raw schema
{
"type": "object",
"properties": {
"coinId": {
"type": "string",
"description": "Canonical CoinPaprika coin slug in 'symbol-name' format, e.g. 'btc-bitcoin', 'eth-ethereum', 'ada-cardano'. Do NOT pass ticker symbols ('BTC', 'AAVE') or guess the slug — it is not derivable from the symbol (e.g. AAVE resolves to 'aave-new', which you could not guess). Call search or resolveId first to resolve a symbol or name to its canonical id."
},
"quote": {
"type": "string",
"default": "usd"
},
"rationale": {
"type": "string",
"minLength": 20,
"maxLength": 500,
"description": "REQUIRED. In 1-2 sentences explain WHY you are calling this tool and what you intend to do with the result. Examples: 'User asked for BTC price; calling getTickersById to fetch current USD value.' 'Building a portfolio dashboard; need OHLCV for ETH last 7 days.' This is logged and reviewed to improve the MCP. Do not include user PII or secrets — use generic descriptions."
}
},
"required": [
"coinId",
"rationale"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
getCoinOHLCVHistorical
Get OHLC candles (open, high, low, close, volume) for a coin. Use for 'daily chart last month', 'hourly candles since Jan 1'. For one past price use getTickersHistoricalById; for the latest candle use getCoinOHLCVLatest. Read-only. Params: coinId (required) canonical id like 'btc-bitcoin' (resolve via resolveId); start (required) and end (optional, default now) accept 'yyyy-mm-dd' or ISO 8601; interval (optional, default '24h'): one of '5m', '15m', '30m', '1h', '6h', '12h', '24h'; quote (optional, default 'usd'); limit (optional, default 50, max 250) caps candles. Requires a Starter+ plan (COINPAPRIKA_API_KEY).
Parameters7
coinId
string
required
Canonical CoinPaprika coin slug in 'symbol-name' format, e.g. 'btc-bitcoin', 'eth-ethereum', 'ada-cardano'. Do NOT pass ticker symbols ('BTC', 'AAVE') or guess the slug — it is not derivable from the symbol (e.g. AAVE resolves to 'aave-new', which you could not guess). Call search or resolveId first to resolve a symbol or name to its canonical id.
start
string
required
Required. Start timestamp. Accepts ISO 8601 ('2026-01-15T00:00:00Z') or date-only ('2026-01-15'). UTC.
end
string
optional
Optional end timestamp. Same formats as start. Defaults to now if omitted.
limit
number
optional
Optional. Number of candles (default 50, max 250).
interval
string
optional
Optional. Candle interval. Defaults to '24h' for daily candles.
REQUIRED. In 1-2 sentences explain WHY you are calling this tool and what you intend to do with the result. Examples: 'User asked for BTC price; calling getTickersById to fetch current USD value.' 'Building a portfolio dashboard; need OHLCV for ETH last 7 days.' This is logged and reviewed to improve the MCP. Do not include user PII or secrets — use generic descriptions.
Raw schema
{
"type": "object",
"properties": {
"coinId": {
"type": "string",
"description": "Canonical CoinPaprika coin slug in 'symbol-name' format, e.g. 'btc-bitcoin', 'eth-ethereum', 'ada-cardano'. Do NOT pass ticker symbols ('BTC', 'AAVE') or guess the slug — it is not derivable from the symbol (e.g. AAVE resolves to 'aave-new', which you could not guess). Call search or resolveId first to resolve a symbol or name to its canonical id."
},
"start": {
"type": "string",
"description": "Required. Start timestamp. Accepts ISO 8601 ('2026-01-15T00:00:00Z') or date-only ('2026-01-15'). UTC."
},
"end": {
"type": "string",
"description": "Optional end timestamp. Same formats as start. Defaults to now if omitted."
},
"limit": {
"type": "number",
"default": 50,
"description": "Optional. Number of candles (default 50, max 250)."
},
"interval": {
"type": "string",
"enum": [
"1m",
"5m",
"10m",
"15m",
"30m",
"1h",
"6h",
"12h",
"24h"
],
"default": "24h",
"description": "Optional. Candle interval. Defaults to '24h' for daily candles."
},
"quote": {
"type": "string",
"default": "usd",
"description": "Optional quote currency code (default 'usd'). Examples: 'usd', 'btc', 'eth'."
},
"rationale": {
"type": "string",
"minLength": 20,
"maxLength": 500,
"description": "REQUIRED. In 1-2 sentences explain WHY you are calling this tool and what you intend to do with the result. Examples: 'User asked for BTC price; calling getTickersById to fetch current USD value.' 'Building a portfolio dashboard; need OHLCV for ETH last 7 days.' This is logged and reviewed to improve the MCP. Do not include user PII or secrets — use generic descriptions."
}
},
"required": [
"coinId",
"start",
"rationale"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
getTickers
Get current prices, market caps and 24h changes for the top cryptocurrencies ranked by market cap. Use for 'top 5 coins', 'top crypto today', 'biggest cryptocurrencies', or a market snapshot. For one specific coin use getTickersById. Read-only; quotes sets the quote currencies (default USD), limit caps results. No API key required.
Parameters3
quotes
string
optional
limit
number
optional
rationale
string
required
REQUIRED. In 1-2 sentences explain WHY you are calling this tool and what you intend to do with the result. Examples: 'User asked for BTC price; calling getTickersById to fetch current USD value.' 'Building a portfolio dashboard; need OHLCV for ETH last 7 days.' This is logged and reviewed to improve the MCP. Do not include user PII or secrets — use generic descriptions.
Raw schema
{
"type": "object",
"properties": {
"quotes": {
"type": "string"
},
"limit": {
"type": "number",
"default": 50
},
"rationale": {
"type": "string",
"minLength": 20,
"maxLength": 500,
"description": "REQUIRED. In 1-2 sentences explain WHY you are calling this tool and what you intend to do with the result. Examples: 'User asked for BTC price; calling getTickersById to fetch current USD value.' 'Building a portfolio dashboard; need OHLCV for ETH last 7 days.' This is logged and reviewed to improve the MCP. Do not include user PII or secrets — use generic descriptions."
}
},
"required": [
"rationale"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
getTickersById
Get the current price, market cap, 24h change and volume of one cryptocurrency in USD or another quote currency. Use for 'what is the price of X', 'how much is Bitcoin worth', 'BTC to USD', 'ETH price now'. For past prices use getTickersHistoricalById. Read-only; coinId is a canonical id (resolve a bare symbol with resolveId first), quotes sets the quote currency (default USD). No API key required.
Parameters3
coinId
string
required
Canonical CoinPaprika coin slug in 'symbol-name' format, e.g. 'btc-bitcoin', 'eth-ethereum', 'ada-cardano'. Do NOT pass ticker symbols ('BTC', 'AAVE') or guess the slug — it is not derivable from the symbol (e.g. AAVE resolves to 'aave-new', which you could not guess). Call search or resolveId first to resolve a symbol or name to its canonical id.
quotes
string
optional
rationale
string
required
REQUIRED. In 1-2 sentences explain WHY you are calling this tool and what you intend to do with the result. Examples: 'User asked for BTC price; calling getTickersById to fetch current USD value.' 'Building a portfolio dashboard; need OHLCV for ETH last 7 days.' This is logged and reviewed to improve the MCP. Do not include user PII or secrets — use generic descriptions.
Raw schema
{
"type": "object",
"properties": {
"coinId": {
"type": "string",
"description": "Canonical CoinPaprika coin slug in 'symbol-name' format, e.g. 'btc-bitcoin', 'eth-ethereum', 'ada-cardano'. Do NOT pass ticker symbols ('BTC', 'AAVE') or guess the slug — it is not derivable from the symbol (e.g. AAVE resolves to 'aave-new', which you could not guess). Call search or resolveId first to resolve a symbol or name to its canonical id."
},
"quotes": {
"type": "string"
},
"rationale": {
"type": "string",
"minLength": 20,
"maxLength": 500,
"description": "REQUIRED. In 1-2 sentences explain WHY you are calling this tool and what you intend to do with the result. Examples: 'User asked for BTC price; calling getTickersById to fetch current USD value.' 'Building a portfolio dashboard; need OHLCV for ETH last 7 days.' This is logged and reviewed to improve the MCP. Do not include user PII or secrets — use generic descriptions."
}
},
"required": [
"coinId",
"rationale"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
getTickersHistoricalById
Get a coin's price, market cap and volume at past times as point-in-time snapshots (not OHLC candles). Use for 'price of BTC last Tuesday', 'ETH market cap on 2024-01-01'. For OHLC chart candles use getCoinOHLCVHistorical; for the current price use getTickersById. Read-only. Params: coinId (required) canonical id like 'btc-bitcoin' (resolve via resolveId); start (required) and end (optional, default now) accept 'yyyy-mm-dd' or ISO 8601; interval (optional, default '5m'); quote (optional, default 'usd'); limit (optional, default 50, max 250) caps points. Requires a Starter+ plan (COINPAPRIKA_API_KEY).
Parameters7
coinId
string
required
Canonical CoinPaprika coin slug in 'symbol-name' format, e.g. 'btc-bitcoin', 'eth-ethereum', 'ada-cardano'. Do NOT pass ticker symbols ('BTC', 'AAVE') or guess the slug — it is not derivable from the symbol (e.g. AAVE resolves to 'aave-new', which you could not guess). Call search or resolveId first to resolve a symbol or name to its canonical id.
start
string
required
Required. Start timestamp. Accepts ISO 8601 ('2026-01-15T00:00:00Z') or date-only ('2026-01-15'). UTC.
end
string
optional
Optional end timestamp. Same formats as start. Defaults to now if omitted.
limit
number
optional
Optional. Number of data points (default 50, max 250).
Optional. Sampling interval. Common values: '5m', '15m', '30m', '1h', '6h', '12h', '24h', '7d', '14d', '30d'. Upstream supports additional intervals; consult CoinPaprika docs if you need something outside this list.
rationale
string
required
REQUIRED. In 1-2 sentences explain WHY you are calling this tool and what you intend to do with the result. Examples: 'User asked for BTC price; calling getTickersById to fetch current USD value.' 'Building a portfolio dashboard; need OHLCV for ETH last 7 days.' This is logged and reviewed to improve the MCP. Do not include user PII or secrets — use generic descriptions.
Raw schema
{
"type": "object",
"properties": {
"coinId": {
"type": "string",
"description": "Canonical CoinPaprika coin slug in 'symbol-name' format, e.g. 'btc-bitcoin', 'eth-ethereum', 'ada-cardano'. Do NOT pass ticker symbols ('BTC', 'AAVE') or guess the slug — it is not derivable from the symbol (e.g. AAVE resolves to 'aave-new', which you could not guess). Call search or resolveId first to resolve a symbol or name to its canonical id."
},
"start": {
"type": "string",
"description": "Required. Start timestamp. Accepts ISO 8601 ('2026-01-15T00:00:00Z') or date-only ('2026-01-15'). UTC."
},
"end": {
"type": "string",
"description": "Optional end timestamp. Same formats as start. Defaults to now if omitted."
},
"limit": {
"type": "number",
"default": 50,
"description": "Optional. Number of data points (default 50, max 250)."
},
"quote": {
"type": "string",
"default": "usd",
"description": "Optional quote currency code (default 'usd'). Examples: 'usd', 'btc', 'eth'."
},
"interval": {
"type": "string",
"default": "5m",
"description": "Optional. Sampling interval. Common values: '5m', '15m', '30m', '1h', '6h', '12h', '24h', '7d', '14d', '30d'. Upstream supports additional intervals; consult CoinPaprika docs if you need something outside this list."
},
"rationale": {
"type": "string",
"minLength": 20,
"maxLength": 500,
"description": "REQUIRED. In 1-2 sentences explain WHY you are calling this tool and what you intend to do with the result. Examples: 'User asked for BTC price; calling getTickersById to fetch current USD value.' 'Building a portfolio dashboard; need OHLCV for ETH last 7 days.' This is logged and reviewed to improve the MCP. Do not include user PII or secrets — use generic descriptions."
}
},
"required": [
"coinId",
"start",
"rationale"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
getExchanges
List exchanges tracked by CoinPaprika as a list ranked by rank, each with id, name, trust score, active market count and 24h volume. Use for 'top exchanges by volume', 'biggest crypto exchanges', or to find an exchangeId before calling getExchangeByID. For one exchange's full stats use getExchangeByID; for its trading pairs use getExchangeMarkets. Read-only. Params: quotes (optional, default 'usd') is a comma-separated list of quote currencies for the volume figures, for example 'usd,btc'; limit (optional, default 50, max 250) caps how many exchanges return. No API key required.
Parameters3
quotes
string
optional
limit
number
optional
rationale
string
required
REQUIRED. In 1-2 sentences explain WHY you are calling this tool and what you intend to do with the result. Examples: 'User asked for BTC price; calling getTickersById to fetch current USD value.' 'Building a portfolio dashboard; need OHLCV for ETH last 7 days.' This is logged and reviewed to improve the MCP. Do not include user PII or secrets — use generic descriptions.
Raw schema
{
"type": "object",
"properties": {
"quotes": {
"type": "string"
},
"limit": {
"type": "number",
"default": 50
},
"rationale": {
"type": "string",
"minLength": 20,
"maxLength": 500,
"description": "REQUIRED. In 1-2 sentences explain WHY you are calling this tool and what you intend to do with the result. Examples: 'User asked for BTC price; calling getTickersById to fetch current USD value.' 'Building a portfolio dashboard; need OHLCV for ETH last 7 days.' This is logged and reviewed to improve the MCP. Do not include user PII or secrets — use generic descriptions."
}
},
"required": [
"rationale"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
getExchangeByID
Get details for a specific exchange: 24h volume, market count, trust score, links and fiat support. Use for 'tell me about Binance', 'Coinbase exchange stats', 'is X a trustworthy exchange'. For the pairs traded there use getExchangeMarkets; find the exchange id first with search or getExchanges. Read-only; exchangeId is an exchange id such as binance. No API key required.
Parameters3
exchangeId
string
required
quotes
string
optional
rationale
string
required
REQUIRED. In 1-2 sentences explain WHY you are calling this tool and what you intend to do with the result. Examples: 'User asked for BTC price; calling getTickersById to fetch current USD value.' 'Building a portfolio dashboard; need OHLCV for ETH last 7 days.' This is logged and reviewed to improve the MCP. Do not include user PII or secrets — use generic descriptions.
Raw schema
{
"type": "object",
"properties": {
"exchangeId": {
"type": "string"
},
"quotes": {
"type": "string"
},
"rationale": {
"type": "string",
"minLength": 20,
"maxLength": 500,
"description": "REQUIRED. In 1-2 sentences explain WHY you are calling this tool and what you intend to do with the result. Examples: 'User asked for BTC price; calling getTickersById to fetch current USD value.' 'Building a portfolio dashboard; need OHLCV for ETH last 7 days.' This is logged and reviewed to improve the MCP. Do not include user PII or secrets — use generic descriptions."
}
},
"required": [
"exchangeId",
"rationale"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
getExchangeMarkets
List the trading pairs (markets) on one exchange as a list, each with the pair, base and quote coin ids, latest price, 24h volume and category. Use for 'what pairs trade on Binance', 'markets on Kraken', 'BTC pairs on Coinbase'. For exchange-level stats such as trust score use getExchangeByID; find the exchangeId first with getExchanges. Read-only. Params: exchangeId (required) is an exchange id such as 'binance'; quotes (optional, default 'usd') is a comma-separated list of quote currencies for the figures, e.g. 'usd,btc'; limit (optional, default 50, max 250) caps how many markets return. No API key required.
Parameters4
exchangeId
string
required
quotes
string
optional
limit
number
optional
rationale
string
required
REQUIRED. In 1-2 sentences explain WHY you are calling this tool and what you intend to do with the result. Examples: 'User asked for BTC price; calling getTickersById to fetch current USD value.' 'Building a portfolio dashboard; need OHLCV for ETH last 7 days.' This is logged and reviewed to improve the MCP. Do not include user PII or secrets — use generic descriptions.
Raw schema
{
"type": "object",
"properties": {
"exchangeId": {
"type": "string"
},
"quotes": {
"type": "string"
},
"limit": {
"type": "number",
"default": 50
},
"rationale": {
"type": "string",
"minLength": 20,
"maxLength": 500,
"description": "REQUIRED. In 1-2 sentences explain WHY you are calling this tool and what you intend to do with the result. Examples: 'User asked for BTC price; calling getTickersById to fetch current USD value.' 'Building a portfolio dashboard; need OHLCV for ETH last 7 days.' This is logged and reviewed to improve the MCP. Do not include user PII or secrets — use generic descriptions."
}
},
"required": [
"exchangeId",
"rationale"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
getPeopleById
Get the profile of one person in crypto by id: name, description or bio, teams_count, positions held, and linked projects plus social and code accounts. Use for 'who is Vitalik Buterin', 'background on Charlie Lee', 'projects tied to this founder'. Find the personId first with search or resolveId using type 'people'; this tool needs the exact id, not a name. Read-only. Params: personId (required) is a canonical person id such as 'vitalik-buterin' or 'satoshi-nakamoto'; an unknown id returns not found. No API key required.
Parameters2
personId
string
required
rationale
string
required
REQUIRED. In 1-2 sentences explain WHY you are calling this tool and what you intend to do with the result. Examples: 'User asked for BTC price; calling getTickersById to fetch current USD value.' 'Building a portfolio dashboard; need OHLCV for ETH last 7 days.' This is logged and reviewed to improve the MCP. Do not include user PII or secrets — use generic descriptions.
Raw schema
{
"type": "object",
"properties": {
"personId": {
"type": "string"
},
"rationale": {
"type": "string",
"minLength": 20,
"maxLength": 500,
"description": "REQUIRED. In 1-2 sentences explain WHY you are calling this tool and what you intend to do with the result. Examples: 'User asked for BTC price; calling getTickersById to fetch current USD value.' 'Building a portfolio dashboard; need OHLCV for ETH last 7 days.' This is logged and reviewed to improve the MCP. Do not include user PII or secrets — use generic descriptions."
}
},
"required": [
"personId",
"rationale"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
getTags
List all CoinPaprika tags (categories such as 'defi', 'stablecoin', 'memecoin', 'ai') used to group coins, returned as a list with each tag's id, name, coin_counter and ico_counter. Use for 'what crypto categories exist', 'list market sectors', or to find a tagId before calling getTagById. For the coins inside one tag use getTagById. Read-only. Params: additionalFields (optional, default none) is a comma-separated list of extra sections per tag, valid values 'coins' and 'icos' (example 'coins,icos'; omit for just summaries); limit (optional, default 50, max 250) caps how many tags return. No API key required.
Parameters3
additionalFields
string
optional
limit
number
optional
rationale
string
required
REQUIRED. In 1-2 sentences explain WHY you are calling this tool and what you intend to do with the result. Examples: 'User asked for BTC price; calling getTickersById to fetch current USD value.' 'Building a portfolio dashboard; need OHLCV for ETH last 7 days.' This is logged and reviewed to improve the MCP. Do not include user PII or secrets — use generic descriptions.
Raw schema
{
"type": "object",
"properties": {
"additionalFields": {
"type": "string"
},
"limit": {
"type": "number",
"default": 50
},
"rationale": {
"type": "string",
"minLength": 20,
"maxLength": 500,
"description": "REQUIRED. In 1-2 sentences explain WHY you are calling this tool and what you intend to do with the result. Examples: 'User asked for BTC price; calling getTickersById to fetch current USD value.' 'Building a portfolio dashboard; need OHLCV for ETH last 7 days.' This is logged and reviewed to improve the MCP. Do not include user PII or secrets — use generic descriptions."
}
},
"required": [
"rationale"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
getTagById
Get details for one CoinPaprika tag (a category such as 'defi' or 'stablecoin'): its id, name, description, coin_counter, ico_counter, and optionally the coins and ICOs grouped under it. Use for 'what coins are in the defi tag', 'show the stablecoin category', 'tokens tagged ai'. To list every tag or find a tagId first use getTags. Read-only. Params: tagId (required) is a tag id from getTags such as 'defi'; additionalFields (optional, default none) is a comma-separated list of extra sections, valid values 'coins' and 'icos' (example 'coins,icos'). An unknown tagId returns an error. No API key required.
Parameters3
tagId
string
required
additionalFields
string
optional
rationale
string
required
REQUIRED. In 1-2 sentences explain WHY you are calling this tool and what you intend to do with the result. Examples: 'User asked for BTC price; calling getTickersById to fetch current USD value.' 'Building a portfolio dashboard; need OHLCV for ETH last 7 days.' This is logged and reviewed to improve the MCP. Do not include user PII or secrets — use generic descriptions.
Raw schema
{
"type": "object",
"properties": {
"tagId": {
"type": "string"
},
"additionalFields": {
"type": "string"
},
"rationale": {
"type": "string",
"minLength": 20,
"maxLength": 500,
"description": "REQUIRED. In 1-2 sentences explain WHY you are calling this tool and what you intend to do with the result. Examples: 'User asked for BTC price; calling getTickersById to fetch current USD value.' 'Building a portfolio dashboard; need OHLCV for ETH last 7 days.' This is logged and reviewed to improve the MCP. Do not include user PII or secrets — use generic descriptions."
}
},
"required": [
"tagId",
"rationale"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
getPlatforms
List the smart-contract platforms (blockchains such as ethereum, bnb, polygon) for which CoinPaprika indexes token contracts. Use for 'which chains are supported for contract lookups', 'list contract platforms', or to pick a platform id before calling getContracts. Read-only; limit caps results. No API key required.
Parameters2
limit
number
optional
rationale
string
required
REQUIRED. In 1-2 sentences explain WHY you are calling this tool and what you intend to do with the result. Examples: 'User asked for BTC price; calling getTickersById to fetch current USD value.' 'Building a portfolio dashboard; need OHLCV for ETH last 7 days.' This is logged and reviewed to improve the MCP. Do not include user PII or secrets — use generic descriptions.
Raw schema
{
"type": "object",
"properties": {
"limit": {
"type": "number",
"default": 50
},
"rationale": {
"type": "string",
"minLength": 20,
"maxLength": 500,
"description": "REQUIRED. In 1-2 sentences explain WHY you are calling this tool and what you intend to do with the result. Examples: 'User asked for BTC price; calling getTickersById to fetch current USD value.' 'Building a portfolio dashboard; need OHLCV for ETH last 7 days.' This is logged and reviewed to improve the MCP. Do not include user PII or secrets — use generic descriptions."
}
},
"required": [
"rationale"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
getContracts
List the token contract addresses tracked on one platform as a list, mapping each contract to its CoinPaprika coin id. Use for 'contracts on ethereum', 'what tokens does BSC have', or to map a contract address to a coin id. Find the platformId first with getPlatforms; for one contract's live price use getTickerByContract, and for its history use getHistoricalTickerByContract. Read-only. Params: platformId (required) is a platform id such as 'eth-ethereum' or 'bsc-binance-smart-chain'; limit (optional, default 50, max 250) caps how many contracts return. An unknown platformId returns an error. No API key required.
Parameters3
platformId
string
required
limit
number
optional
rationale
string
required
REQUIRED. In 1-2 sentences explain WHY you are calling this tool and what you intend to do with the result. Examples: 'User asked for BTC price; calling getTickersById to fetch current USD value.' 'Building a portfolio dashboard; need OHLCV for ETH last 7 days.' This is logged and reviewed to improve the MCP. Do not include user PII or secrets — use generic descriptions.
Raw schema
{
"type": "object",
"properties": {
"platformId": {
"type": "string"
},
"limit": {
"type": "number",
"default": 50
},
"rationale": {
"type": "string",
"minLength": 20,
"maxLength": 500,
"description": "REQUIRED. In 1-2 sentences explain WHY you are calling this tool and what you intend to do with the result. Examples: 'User asked for BTC price; calling getTickersById to fetch current USD value.' 'Building a portfolio dashboard; need OHLCV for ETH last 7 days.' This is logged and reviewed to improve the MCP. Do not include user PII or secrets — use generic descriptions."
}
},
"required": [
"platformId",
"rationale"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
getTickerByContract
Get the current price and market data of a token by its contract address (for on-chain and DeFi tokens). Use when you have a contract address (0x...) rather than a name. For history use getHistoricalTickerByContract. Read-only; platformId is the chain (e.g. eth-ethereum) and contractAddress the token address. No API key required.
Parameters3
platformId
string
required
contractAddress
string
required
rationale
string
required
REQUIRED. In 1-2 sentences explain WHY you are calling this tool and what you intend to do with the result. Examples: 'User asked for BTC price; calling getTickersById to fetch current USD value.' 'Building a portfolio dashboard; need OHLCV for ETH last 7 days.' This is logged and reviewed to improve the MCP. Do not include user PII or secrets — use generic descriptions.
Raw schema
{
"type": "object",
"properties": {
"platformId": {
"type": "string"
},
"contractAddress": {
"type": "string"
},
"rationale": {
"type": "string",
"minLength": 20,
"maxLength": 500,
"description": "REQUIRED. In 1-2 sentences explain WHY you are calling this tool and what you intend to do with the result. Examples: 'User asked for BTC price; calling getTickersById to fetch current USD value.' 'Building a portfolio dashboard; need OHLCV for ETH last 7 days.' This is logged and reviewed to improve the MCP. Do not include user PII or secrets — use generic descriptions."
}
},
"required": [
"platformId",
"contractAddress",
"rationale"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
getHistoricalTickerByContract
Get a token's price and market history by its contract address, as a time series. Use for 'token price on 2024-01-01 by address', 'hourly history for a contract'. For its current price use getTickerByContract; by coin id use getTickersHistoricalById. Read-only. Params: platformId (required) chain id like 'eth-ethereum'; contractAddress (required) token address; start (required) and end (optional, default now) accept 'yyyy-mm-dd' or ISO 8601; interval (optional, default '5m'); quote (optional, default 'usd'); limit (optional, default 50, max 250) caps points. Requires a Starter+ plan (COINPAPRIKA_API_KEY).
Parameters8
platformId
string
required
Platform identifier (e.g., 'eth-ethereum', 'bnb-binance-coin'). Use getPlatforms to discover valid platforms.
contractAddress
string
required
Token contract address on the platform. EVM addresses are case-insensitive; Solana addresses are case-sensitive base58.
start
string
required
Required. Start timestamp. Accepts ISO 8601 ('2026-01-15T00:00:00Z') or date-only ('2026-01-15'). UTC.
end
string
optional
Optional end timestamp. Same formats as start. Defaults to now if omitted.
limit
number
optional
Optional. Number of data points (default 50, max 250).
quote
string
optional
Optional quote currency code (default 'usd').
interval
string
optional
Optional. Sampling interval. Common values: '5m', '15m', '30m', '1h', '6h', '12h', '24h', '7d', '14d', '30d'. Upstream supports additional intervals; consult CoinPaprika docs if you need something outside this list.
rationale
string
required
REQUIRED. In 1-2 sentences explain WHY you are calling this tool and what you intend to do with the result. Examples: 'User asked for BTC price; calling getTickersById to fetch current USD value.' 'Building a portfolio dashboard; need OHLCV for ETH last 7 days.' This is logged and reviewed to improve the MCP. Do not include user PII or secrets — use generic descriptions.
Raw schema
{
"type": "object",
"properties": {
"platformId": {
"type": "string",
"description": "Platform identifier (e.g., 'eth-ethereum', 'bnb-binance-coin'). Use getPlatforms to discover valid platforms."
},
"contractAddress": {
"type": "string",
"description": "Token contract address on the platform. EVM addresses are case-insensitive; Solana addresses are case-sensitive base58."
},
"start": {
"type": "string",
"description": "Required. Start timestamp. Accepts ISO 8601 ('2026-01-15T00:00:00Z') or date-only ('2026-01-15'). UTC."
},
"end": {
"type": "string",
"description": "Optional end timestamp. Same formats as start. Defaults to now if omitted."
},
"limit": {
"type": "number",
"default": 50,
"description": "Optional. Number of data points (default 50, max 250)."
},
"quote": {
"type": "string",
"default": "usd",
"description": "Optional quote currency code (default 'usd')."
},
"interval": {
"type": "string",
"default": "5m",
"description": "Optional. Sampling interval. Common values: '5m', '15m', '30m', '1h', '6h', '12h', '24h', '7d', '14d', '30d'. Upstream supports additional intervals; consult CoinPaprika docs if you need something outside this list."
},
"rationale": {
"type": "string",
"minLength": 20,
"maxLength": 500,
"description": "REQUIRED. In 1-2 sentences explain WHY you are calling this tool and what you intend to do with the result. Examples: 'User asked for BTC price; calling getTickersById to fetch current USD value.' 'Building a portfolio dashboard; need OHLCV for ETH last 7 days.' This is logged and reviewed to improve the MCP. Do not include user PII or secrets — use generic descriptions."
}
},
"required": [
"platformId",
"contractAddress",
"start",
"rationale"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
status
Get the CoinPaprika MCP server's status and configuration (uptime, mode, enabled features). Use when asked 'is the server up', 'what mode am I in', 'server status'. This reports the MCP server itself, not the crypto market; for market health use getGlobal. Read-only; takes no parameters and needs no API key.
Parameters1
rationale
string
required
REQUIRED. In 1-2 sentences explain WHY you are calling this tool and what you intend to do with the result. Examples: 'User asked for BTC price; calling getTickersById to fetch current USD value.' 'Building a portfolio dashboard; need OHLCV for ETH last 7 days.' This is logged and reviewed to improve the MCP. Do not include user PII or secrets — use generic descriptions.
Raw schema
{
"type": "object",
"properties": {
"rationale": {
"type": "string",
"minLength": 20,
"maxLength": 500,
"description": "REQUIRED. In 1-2 sentences explain WHY you are calling this tool and what you intend to do with the result. Examples: 'User asked for BTC price; calling getTickersById to fetch current USD value.' 'Building a portfolio dashboard; need OHLCV for ETH last 7 days.' This is logged and reviewed to improve the MCP. Do not include user PII or secrets — use generic descriptions."
}
},
"required": [
"rationale"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
getGlobal
Get a global crypto market overview: total market cap, total 24h volume, Bitcoin dominance, and market-wide 24h change. Use for 'how is the crypto market doing', 'total market cap', 'BTC dominance'. For a single coin's price use getTickersById. Read-only; takes no parameters and needs no API key.
Parameters1
rationale
string
required
REQUIRED. In 1-2 sentences explain WHY you are calling this tool and what you intend to do with the result. Examples: 'User asked for BTC price; calling getTickersById to fetch current USD value.' 'Building a portfolio dashboard; need OHLCV for ETH last 7 days.' This is logged and reviewed to improve the MCP. Do not include user PII or secrets — use generic descriptions.
Raw schema
{
"type": "object",
"properties": {
"rationale": {
"type": "string",
"minLength": 20,
"maxLength": 500,
"description": "REQUIRED. In 1-2 sentences explain WHY you are calling this tool and what you intend to do with the result. Examples: 'User asked for BTC price; calling getTickersById to fetch current USD value.' 'Building a portfolio dashboard; need OHLCV for ETH last 7 days.' This is logged and reviewed to improve the MCP. Do not include user PII or secrets — use generic descriptions."
}
},
"required": [
"rationale"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
search
Broadly search CoinPaprika across coins, exchanges, ICOs, people and tags by name or symbol when the entity type is unknown or you are exploring. Use for 'find anything called X'. If you specifically need a coin's canonical id to fetch its price, prefer resolveId. Read-only; q is the query, categories filters entity types, limit caps results. No API key required.
Optional. Comma-separated category filter: 'currencies', 'exchanges', 'icos', 'people', 'tags'. Omit to search all categories.
modifier
string
optional
Optional. Upstream-specific search modifier.
limit
number
optional
Optional. Items PER CATEGORY (not total). Default 50.
rationale
string
required
REQUIRED. In 1-2 sentences explain WHY you are calling this tool and what you intend to do with the result. Examples: 'User asked for BTC price; calling getTickersById to fetch current USD value.' 'Building a portfolio dashboard; need OHLCV for ETH last 7 days.' This is logged and reviewed to improve the MCP. Do not include user PII or secrets — use generic descriptions.
Raw schema
{
"type": "object",
"properties": {
"q": {
"type": "string",
"description": "Required. Search query (case-insensitive, partial-match)."
},
"categories": {
"type": "string",
"description": "Optional. Comma-separated category filter: 'currencies', 'exchanges', 'icos', 'people', 'tags'. Omit to search all categories."
},
"modifier": {
"type": "string",
"description": "Optional. Upstream-specific search modifier."
},
"limit": {
"type": "number",
"default": 50,
"description": "Optional. Items PER CATEGORY (not total). Default 50."
},
"rationale": {
"type": "string",
"minLength": 20,
"maxLength": 500,
"description": "REQUIRED. In 1-2 sentences explain WHY you are calling this tool and what you intend to do with the result. Examples: 'User asked for BTC price; calling getTickersById to fetch current USD value.' 'Building a portfolio dashboard; need OHLCV for ETH last 7 days.' This is logged and reviewed to improve the MCP. Do not include user PII or secrets — use generic descriptions."
}
},
"required": [
"q",
"rationale"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
resolveId
Resolve a fuzzy coin, exchange, person or tag name or symbol to a ranked list of candidate CoinPaprika ids, best first (take the top one). Call FIRST when you have a bare name or symbol but need an id, since ids are not derivable, then pass the id to getTickersById for price. Returns candidates with id, name, symbol, type and rank; an empty list means no match. Read-only. Params: type (required; one of 'coin', 'exchange', 'people', 'tags') sets entity kind; query (required) is the fuzzy text; limit (optional, default 50, max 250) caps candidates. Answers 'id for AAVE', 'resolve Vitalik'. No API key required.
Parameters4
type
string
required
query
string
required
limit
number
optional
rationale
string
required
REQUIRED. In 1-2 sentences explain WHY you are calling this tool and what you intend to do with the result. Examples: 'User asked for BTC price; calling getTickersById to fetch current USD value.' 'Building a portfolio dashboard; need OHLCV for ETH last 7 days.' This is logged and reviewed to improve the MCP. Do not include user PII or secrets — use generic descriptions.
Raw schema
{
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"coin",
"exchange",
"people",
"tags"
]
},
"query": {
"type": "string"
},
"limit": {
"type": "number",
"default": 50
},
"rationale": {
"type": "string",
"minLength": 20,
"maxLength": 500,
"description": "REQUIRED. In 1-2 sentences explain WHY you are calling this tool and what you intend to do with the result. Examples: 'User asked for BTC price; calling getTickersById to fetch current USD value.' 'Building a portfolio dashboard; need OHLCV for ETH last 7 days.' This is logged and reviewed to improve the MCP. Do not include user PII or secrets — use generic descriptions."
}
},
"required": [
"type",
"query",
"rationale"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
priceConverter
Convert an amount from one crypto or fiat to another at the current rate, e.g. 'how much is 0.5 BTC in USD', 'convert 100 USDC to EUR'. For a plain coin price without an amount, use getTickersById. Read-only; baseCurrencyId and quoteCurrencyId are canonical ids and amount is the quantity to convert. No API key required.
Parameters4
baseCurrencyId
string
required
Required. Source CoinPaprika coin slug (e.g., 'btc-bitcoin'). Full slugs only; symbols like 'BTC' are rejected upstream.
Optional. Amount of base currency to convert (default 1). Passing 0 returns a 0-valued response, which is rarely what you want — use 1 to get a unit-rate quote.
rationale
string
required
REQUIRED. In 1-2 sentences explain WHY you are calling this tool and what you intend to do with the result. Examples: 'User asked for BTC price; calling getTickersById to fetch current USD value.' 'Building a portfolio dashboard; need OHLCV for ETH last 7 days.' This is logged and reviewed to improve the MCP. Do not include user PII or secrets — use generic descriptions.
Raw schema
{
"type": "object",
"properties": {
"baseCurrencyId": {
"type": "string",
"description": "Required. Source CoinPaprika coin slug (e.g., 'btc-bitcoin'). Full slugs only; symbols like 'BTC' are rejected upstream."
},
"quoteCurrencyId": {
"type": "string",
"description": "Required. Target CoinPaprika coin slug (e.g., 'usd-us-dollars', 'eth-ethereum')."
},
"amount": {
"type": "number",
"default": 1,
"description": "Optional. Amount of base currency to convert (default 1). Passing 0 returns a 0-valued response, which is rarely what you want — use 1 to get a unit-rate quote."
},
"rationale": {
"type": "string",
"minLength": 20,
"maxLength": 500,
"description": "REQUIRED. In 1-2 sentences explain WHY you are calling this tool and what you intend to do with the result. Examples: 'User asked for BTC price; calling getTickersById to fetch current USD value.' 'Building a portfolio dashboard; need OHLCV for ETH last 7 days.' This is logged and reviewed to improve the MCP. Do not include user PII or secrets — use generic descriptions."
}
},
"required": [
"baseCurrencyId",
"quoteCurrencyId",
"rationale"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
getCapabilities
Get the server's capabilities, supported workflow patterns, validation rules and recommended tool sequences. Use FIRST to onboard as an agent, or when asked 'what can this server do', 'how should I chain these tools', 'what are the parameter rules'. This describes the MCP server itself, not crypto data.
Parameters1
rationale
string
required
REQUIRED. In 1-2 sentences explain WHY you are calling this tool and what you intend to do with the result. Examples: 'User asked for BTC price; calling getTickersById to fetch current USD value.' 'Building a portfolio dashboard; need OHLCV for ETH last 7 days.' This is logged and reviewed to improve the MCP. Do not include user PII or secrets — use generic descriptions.
Raw schema
{
"type": "object",
"properties": {
"rationale": {
"type": "string",
"minLength": 20,
"maxLength": 500,
"description": "REQUIRED. In 1-2 sentences explain WHY you are calling this tool and what you intend to do with the result. Examples: 'User asked for BTC price; calling getTickersById to fetch current USD value.' 'Building a portfolio dashboard; need OHLCV for ETH last 7 days.' This is logged and reviewed to improve the MCP. Do not include user PII or secrets — use generic descriptions."
}
},
"required": [
"rationale"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
keyInfo
Get details and usage for the CoinPaprika API key you supplied: plan, quota, requests remaining and expiry. Use for 'what plan am I on', 'how many requests are left', 'is my API key valid'. Read-only; takes no parameters. Requires you to supply your own paid-plan CoinPaprika key; without one this hosted server returns a plan-required message instead of calling the API. It reports your key, never the server's.
Parameters1
rationale
string
required
REQUIRED. In 1-2 sentences explain WHY you are calling this tool and what you intend to do with the result. Examples: 'User asked for BTC price; calling getTickersById to fetch current USD value.' 'Building a portfolio dashboard; need OHLCV for ETH last 7 days.' This is logged and reviewed to improve the MCP. Do not include user PII or secrets — use generic descriptions.
Raw schema
{
"type": "object",
"properties": {
"rationale": {
"type": "string",
"minLength": 20,
"maxLength": 500,
"description": "REQUIRED. In 1-2 sentences explain WHY you are calling this tool and what you intend to do with the result. Examples: 'User asked for BTC price; calling getTickersById to fetch current USD value.' 'Building a portfolio dashboard; need OHLCV for ETH last 7 days.' This is logged and reviewed to improve the MCP. Do not include user PII or secrets — use generic descriptions."
}
},
"required": [
"rationale"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
getMappings
Get mappings between CoinPaprika ids and external or legacy identifiers (CoinMarketCap, CoinGecko, CryptoCompare, ISIN, DTI) so you can reconcile ids across systems. Use for 'map CoinPaprika ids to X', 'id crosswalk', 'external id mapping'. Read-only; every parameter is an optional filter for that provider's id, and supplying more than one narrows the result. Requires your own Business-plan CoinPaprika key; without one this hosted server returns a plan-required message.
Parameters7
coinpaprika
string
optional
coinmarketcap
string
optional
coingecko
string
optional
cryptocompare
string
optional
isin
string
optional
dti
string
optional
rationale
string
required
REQUIRED. In 1-2 sentences explain WHY you are calling this tool and what you intend to do with the result. Examples: 'User asked for BTC price; calling getTickersById to fetch current USD value.' 'Building a portfolio dashboard; need OHLCV for ETH last 7 days.' This is logged and reviewed to improve the MCP. Do not include user PII or secrets — use generic descriptions.
Raw schema
{
"type": "object",
"properties": {
"coinpaprika": {
"type": "string"
},
"coinmarketcap": {
"type": "string"
},
"coingecko": {
"type": "string"
},
"cryptocompare": {
"type": "string"
},
"isin": {
"type": "string"
},
"dti": {
"type": "string"
},
"rationale": {
"type": "string",
"minLength": 20,
"maxLength": 500,
"description": "REQUIRED. In 1-2 sentences explain WHY you are calling this tool and what you intend to do with the result. Examples: 'User asked for BTC price; calling getTickersById to fetch current USD value.' 'Building a portfolio dashboard; need OHLCV for ETH last 7 days.' This is logged and reviewed to improve the MCP. Do not include user PII or secrets — use generic descriptions."
}
},
"required": [
"rationale"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
getChangelogIDs
Get the ids of recent changes to CoinPaprika's coin and exchange listings (additions, renames, delistings) for syncing a local dataset. Use for 'what changed recently', 'new or delisted coins', 'listing changelog'. Read-only; page (default 1) and limit (default 50) paginate the feed. Requires your own Starter+ CoinPaprika key; without one this hosted server returns a plan-required message.
Parameters3
page
number
optional
limit
number
optional
rationale
string
required
REQUIRED. In 1-2 sentences explain WHY you are calling this tool and what you intend to do with the result. Examples: 'User asked for BTC price; calling getTickersById to fetch current USD value.' 'Building a portfolio dashboard; need OHLCV for ETH last 7 days.' This is logged and reviewed to improve the MCP. Do not include user PII or secrets — use generic descriptions.
Raw schema
{
"type": "object",
"properties": {
"page": {
"type": "number",
"default": 1
},
"limit": {
"type": "number",
"default": 50
},
"rationale": {
"type": "string",
"minLength": 20,
"maxLength": 500,
"description": "REQUIRED. In 1-2 sentences explain WHY you are calling this tool and what you intend to do with the result. Examples: 'User asked for BTC price; calling getTickersById to fetch current USD value.' 'Building a portfolio dashboard; need OHLCV for ETH last 7 days.' This is logged and reviewed to improve the MCP. Do not include user PII or secrets — use generic descriptions."
}
},
"required": [
"rationale"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
submitFeedback
Report a problem or gap back to the CoinPaprika MCP maintainers: call it when you got stuck, a response was unexpected, information you needed was missing, or a tool did not behave as documented. Use when the user says 'this is wrong', 'report this', 'that did not work'. Low friction, partial feedback is welcome, and every submission is read.
Parameters6
goal
string
required
REQUIRED: What you (or the user behind you) were trying to accomplish.
attempted_tools
array
optional
OPTIONAL: List of tool names you called, in order, before submitting this feedback.
blocked_at
string
optional
OPTIONAL: Tool name or step where you got stuck.
expected
string
optional
OPTIONAL: What you expected to happen.
observed
string
optional
OPTIONAL: What actually happened.
severity
string
optional
OPTIONAL: How badly this affected your task. Default 'minor'.
Raw schema
{
"type": "object",
"properties": {
"goal": {
"type": "string",
"minLength": 10,
"maxLength": 500,
"description": "REQUIRED: What you (or the user behind you) were trying to accomplish."
},
"attempted_tools": {
"type": "array",
"items": {
"type": "string"
},
"description": "OPTIONAL: List of tool names you called, in order, before submitting this feedback."
},
"blocked_at": {
"type": "string",
"description": "OPTIONAL: Tool name or step where you got stuck."
},
"expected": {
"type": "string",
"maxLength": 500,
"description": "OPTIONAL: What you expected to happen."
},
"observed": {
"type": "string",
"maxLength": 500,
"description": "OPTIONAL: What actually happened."
},
"severity": {
"type": "string",
"enum": [
"blocker",
"major",
"minor",
"nit"
],
"default": "minor",
"description": "OPTIONAL: How badly this affected your task. Default 'minor'."
}
},
"required": [
"goal"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
A Model Context Protocol (MCP) server that provides on-demand access to CoinPaprika's cryptocurrency market data API. Built specifically for AI assistants like Claude to programmatically fetch real-time prices, tickers, exchange data, OHLCV candles, and more with zero configuration.
TL;DR
bash
# Install globally
npm install -g @coinpaprika/mcp
# Start the server
coinpaprika-mcp
# Or run directly without installation
npx @coinpaprika/mcp@latest
CoinPaprika MCP connects Claude to live crypto market data for 12,000+ cryptocurrencies. The free tier needs no API key. Installation | Configuration | API Reference
Prefer zero setup? Use the hosted MCP server at mcp.coinpaprika.com: no installation, no API key to start, 31 tools (the 30 here plus submitFeedback). See Hosted server for transport endpoints.
What Can You Build?
Market Dashboards: Real-time market overview with global stats, top coins, and volume trends
Coin Analysis Tools: Deep-dive into any cryptocurrency: price, team, events, exchanges, and markets
Price Trackers: Track prices across multiple quote currencies with historical OHLCV data
Exchange Comparisons: Compare trading pairs and volumes across 350+ exchanges
Portfolio Valuations: Convert an amount between currencies ('0.5 BTC in USD') and track price changes over time
Contract Lookup: Find tokens by their smart contract address across multiple platforms
Installation
Installing via Smithery
To install CoinPaprika MCP for Claude Desktop automatically via Smithery:
bash
npx -y smithery mcp add coinpaprika/coinpaprika
Manual Installation
bash
# Install globally (recommended for regular use)
npm install -g @coinpaprika/mcp
# Start the server
coinpaprika-mcp
Claude Desktop Integration
Add the following to your Claude Desktop configuration file:
# Add as MCP server in Claude Code
claude mcp add coinpaprika -- npx @coinpaprika/mcp@latest
# With API key
COINPAPRIKA_API_KEY=your-key claude mcp add coinpaprika -- npx @coinpaprika/mcp@latest
Hosted server (no installation)
If you prefer zero setup, point any MCP-compatible client directly at the hosted server at mcp.coinpaprika.com. The landing page provides setup instructions and documentation. The following transport endpoints are available:
Transport
Endpoint
Use Case
Streamable HTTP
https://mcp.coinpaprika.com/streamable-http
Recommended for most clients
SSE
https://mcp.coinpaprika.com/sse
Legacy SSE transport
JSON-RPC
https://mcp.coinpaprika.com/json-rpc
Direct JSON-RPC
Note: These are MCP protocol endpoints. They won't display anything in a browser. Visit mcp.coinpaprika.com for the landing page.
Server capabilities, workflow patterns, validation rules, and best practices. Start here.
status
Server status and configuration
getGlobal
Global market overview: total market cap, 24h volume, BTC dominance ('how is the market doing')
Coins
Tool
Description
Required Parameters
getCoins
List all coins (id, name, symbol, rank); no prices, use getTickers for prices
none
getCoinById
Coin project details (description, team, links); no price, use getTickersById
coinId
getCoinEvents
Upcoming events for a coin
coinId
getCoinExchanges
Exchanges listing a coin
coinId
getCoinMarkets
Markets/exchanges trading a coin ('where to buy X', 'X price on Binance')
coinId
Tickers & Prices
Tool
Description
Required Parameters
getTickers
Current prices + market caps for top coins by market cap ('top 5 coins', market snapshot)
none
getTickersById
Current price, market cap & 24h change of one coin ('BTC price', 'how much is ETH')
coinId
getCoinOHLCVLatest
Latest full-day OHLC candle (not the live price)
coinId
getCoinOHLCVToday
Today's in-progress OHLC candle
coinId
priceConverter
Convert an amount between currencies ('0.5 BTC in USD')
baseCurrencyId, quoteCurrencyId
Exchanges
Tool
Description
Required Parameters
getExchanges
List all exchanges
none
getExchangeByID
Exchange details
exchangeId
getExchangeMarkets
Markets on a specific exchange
exchangeId
Tags & People
Tool
Description
Required Parameters
getTags
List all tags/categories
none
getTagById
Tag details
tagId
getPeopleById
Person/team member details
personId
Contracts
Tool
Description
Required Parameters
getPlatforms
List contract platforms
none
getContracts
Contracts on a platform
platformId
getTickerByContract
Token price by contract address (on-chain/DeFi tokens)
platformId, contractAddress
Search & Resolution
Tool
Description
Required Parameters
search
Search coins/exchanges/people/tags by name; use FIRST to get an id
q
resolveId
Resolve a name/symbol to canonical id; call FIRST before price tools
type, query
Paid-Tier Tools
These tools require a paid CoinPaprika API plan. Without an API key, they return guidance directing you to upgrade.
Tool
Plan Required
Description
getCoinOHLCVHistorical
Starter+
Historical OHLCV candle data
getTickersHistoricalById
Starter+
Historical ticker snapshots
getHistoricalTickerByContract
Starter+
Historical ticker by contract
getChangelogIDs
Starter+
Changelog of coin ID changes
keyInfo
Pro
Verify API key details
getMappings
Business
Cross-platform ID mappings
API Key Configuration
The free tier provides access to most tools without any API key. For paid-tier features (historical data, mappings, etc.), set the COINPAPRIKA_API_KEY environment variable:
bash
# Set via environment variableexport COINPAPRIKA_API_KEY=your-api-key-here
coinpaprika-mcp
# Or pass inline
COINPAPRIKA_API_KEY=your-api-key-here npx @coinpaprika/mcp@latest
// Start by getting capabilities for workflow guidance:const caps = awaitgetCapabilities();
// Get global market overview:constglobal = awaitgetGlobal();
// Find a coin by name:const results = awaitsearch({ q: "ethereum" });
// Get detailed coin info:const bitcoin = awaitgetCoinById({ coinId: "btc-bitcoin" });
// Get current ticker with USD and BTC quotes:const ticker = awaitgetTickersById({ coinId: "eth-ethereum", quotes: "USD,BTC" });
// Get OHLCV data for today:const ohlcv = awaitgetCoinOHLCVToday({ coinId: "btc-bitcoin" });
// Convert 1 BTC to USD:const conversion = awaitpriceConverter({
baseCurrencyId: "btc-bitcoin",
quoteCurrencyId: "usd-us-dollars",
amount: 1
});
// List top 10 exchanges:const exchanges = awaitgetExchanges({ limit: 10 });
// Resolve fuzzy query to exact coin ID:const resolved = awaitresolveId({ type: "coin", query: "cardano" });
Sample Prompts for Claude
"What's the current price of Bitcoin and Ethereum? Show me 24h change."
"Give me a comprehensive analysis of Cardano: price, team, events, and top exchanges."
"Compare the top 5 crypto exchanges by trading volume."
"Convert 10 ETH to USD and show the current exchange rate."
"Find all coins tagged as 'defi' and show their market caps."
"What exchanges list Solana and what trading pairs are available?"
"Show me the OHLCV data for Bitcoin today."
"Search for all coins related to 'layer-2' and rank them by market cap."
"Look up the team behind Ethereum. Who are the key people?"
"Get the ticker for USDT by its Ethereum contract address."
Rate Limits & Performance
Free Tier Limits: 20,000 calls per month, no API key needed. Paid plans start at $99/month for 400,000 calls: https://coinpaprika.com/api/pricing/
Response Time: 100-500ms for most endpoints
Data Coverage: 12,000+ cryptocurrencies, 350+ exchanges
Error Handling: Structured errors with codes, suggestions, and retry guidance
Quota Info: Running this package yourself, every response carries a meta.quota block with the monthly free-tier allowance and the number of calls this server process has made since it started. That count is process-local, not your account balance. The hosted server at mcp.coinpaprika.com returns no meta block at all, so do not write client code that depends on one
Troubleshooting
Common Issues:
Rate limiting: If receiving CP429_RATE_LIMIT errors, back off and retry. The free-tier quota is monthly, not daily, so a sustained 429 means the monthly allowance is spent
Invalid coin ID: Coin IDs use symbol-name format (e.g., btc-bitcoin, not bitcoin or BTC). Use search or resolveId to find correct IDs
Paid-tier errors: CP402_INSUFFICIENT_PLAN or CP403_FORBIDDEN mean the endpoint requires a paid plan. Set COINPAPRIKA_API_KEY environment variable
Timeout errors: Large data requests may take longer, so reduce the limit parameter
Network errors: Check network connectivity, the service requires internet access
Development
bash
# Clone the repository
git clone https://github.com/coinpaprika/coinpaprika-mcp.git
cd coinpaprika-mcp
# Install dependencies
npm install
# Run in development
npm start
# Build for production
npm run build