Skip to main content
Glama
coinpaprika

CoinPaprika MCP Server

Official

CoinPaprika MCP Server

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

# 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.

Related MCP server: Crypto Tracker MCP Server

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:

npx -y smithery mcp add coinpaprika/coinpaprika

Manual Installation

# 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:

macOS: ~/Library/Application\ Support/Claude/claude_desktop_config.json Windows: %APPDATA%/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "coinpaprika": {
      "command": "npx",
      "args": ["@coinpaprika/mcp@latest"]
    }
  }
}

With API Key (for paid-tier features)

{
  "mcpServers": {
    "coinpaprika": {
      "command": "npx",
      "args": ["@coinpaprika/mcp@latest"],
      "env": {
        "COINPAPRIKA_API_KEY": "your-api-key-here"
      }
    }
  }
}

Claude Code Integration

# 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.

{
  "mcpServers": {
    "coinpaprika": {
      "type": "streamable-http",
      "url": "https://mcp.coinpaprika.com/streamable-http"
    }
  }
}

Available Tools (30)

Discovery & System

Tool

Description

getCapabilities

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:

# Set via environment variable
export COINPAPRIKA_API_KEY=your-api-key-here
coinpaprika-mcp

# Or pass inline
COINPAPRIKA_API_KEY=your-api-key-here npx @coinpaprika/mcp@latest

Get an API key at coinpaprika.com/api/pricing.

Example Usage

// Start by getting capabilities for workflow guidance:
const caps = await getCapabilities();

// Get global market overview:
const global = await getGlobal();

// Find a coin by name:
const results = await search({ q: "ethereum" });

// Get detailed coin info:
const bitcoin = await getCoinById({ coinId: "btc-bitcoin" });

// Get current ticker with USD and BTC quotes:
const ticker = await getTickersById({ coinId: "eth-ethereum", quotes: "USD,BTC" });

// Get OHLCV data for today:
const ohlcv = await getCoinOHLCVToday({ coinId: "btc-bitcoin" });

// Convert 1 BTC to USD:
const conversion = await priceConverter({
  baseCurrencyId: "btc-bitcoin",
  quoteCurrencyId: "usd-us-dollars",
  amount: 1
});

// List top 10 exchanges:
const exchanges = await getExchanges({ limit: 10 });

// Resolve fuzzy query to exact coin ID:
const resolved = await resolveId({ 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

# 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

Changelog

See CHANGELOG.md for detailed release notes.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Additional Resources

Available Tools

30 tools
getCapabilitiesA

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.

NameRequiredDescriptionDefault

No parameters

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, so the description carries the full burden. It discloses the tool returns capabilities, patterns, rules, and sequences, and clarifies it is about the server not crypto data. It lacks explicit mention of being read-only or non-destructive, but the nature of a capabilities endpoint implies safety, so it is mostly transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Concise: three sentences, each essential. First sentence states function, second gives usage cues, third clarifies scope. No fluff or repetition, front-loaded with purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description provides a good high-level overview of what is returned (capabilities, patterns, rules, sequences). It also explains when to use and what it does not cover (crypto data). For a simple capabilities tool, this is nearly complete; could benefit from specifying that output is structured (e.g., JSON), but not critical.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are zero parameters and schema coverage is 100% (empty object). The description adds meaning by explaining what the tool returns, which is valuable beyond the schema. Baseline 4 is appropriate as there is nothing to add about parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves server capabilities, workflow patterns, validation rules, and tool sequences. It explicitly distinguishes from sibling tools by noting it describes the MCP server itself, not crypto data, which differentiates it from the data-focused siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit guidance on when to use the tool: 'Use FIRST to onboard as an agent', and specifies exact queries like 'what can this server do', 'how should I chain these tools', 'what are the parameter rules'. This leaves no ambiguity about its appropriate context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

getChangelogIDsA

List ids of recent changes to CoinPaprika's coin and exchange listings (additions, renames, delistings) as a paginated feed, newest first, so you can sync or reconcile a local dataset. Returns change records, each with the affected id and change type; an empty page means no more changes. Use for 'what listings changed recently', 'new or delisted coins', 'listing changelog'. For the current full coin list use getCoins instead. Read-only. Params: page (optional, default 1) selects the page; limit (optional, default 50) sets records per page. Requires a Starter+ plan (COINPAPRIKA_API_KEY).

NameRequiredDescriptionDefault
pageNoPage number (default: 1)
limitNoNumber of results per page (default: 50)

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Describes return format (change records with affected id and type) and pagination behavior (empty page means no more changes). Declares read-only and mentions API key. Lacks details on pagination mechanics like total pages or rate limits, but sufficient for a simple listing.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single paragraph, front-loaded with main action, followed by details, use cases, alternatives, read-only note, param info, and requirement. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (two nullable params, no output schema), the description covers the tool's purpose, usage, parameters, and output structure. Explains empty page case. Complete for a paginated changelog listing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Parameters page and limit are fully described in the schema. The description restates defaults and purpose, adding minimal context beyond the schema. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists IDs of recent changes (additions, renames, delistings) as a paginated feed, newest first. It provides specific use cases and distinguishes from sibling tool getCoins.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states when to use (sync/reconcile dataset, check recent changes) and when not to use (use getCoins for full list). Also mentions API key requirement (Starter+ plan).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

getCoinByIdA

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.

NameRequiredDescriptionDefault
coinIdYesCanonical 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.

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden and successfully states that the tool is read-only and requires no API key. It also clarifies that coinId must be canonical and resolved first, though it does not describe error behavior or rate limits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded: purpose first, then exclusions, then the canonical-id requirement and auth note. Every sentence adds useful routing or usage information without filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter read tool with a fully documented schema, the description is complete enough to call correctly. It covers purpose, exclusions, ID resolution, and read-only/no-key behavior even though no output schema exists.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the single coinId parameter is already documented in detail, including its 'symbol-name' format and examples. The description reinforces the canonical-id requirement and resolveId step, but largely repeats what the schema already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb and resource, then enumerates the returned content: description, links, team, and tags. It explicitly distinguishes the tool from getTickersById by stating it does not include price or market cap, so an agent can select it without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives concrete use cases such as 'tell me about Uniswap' and 'what is this project', explicitly excludes price/market-cap requests and routes those to getTickersById. It also tells the agent to resolve symbols or names via resolveId before calling.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

getCoinEventsA

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.

NameRequiredDescriptionDefault
limitNoNumber of events to return (default: 50, max: 250)
coinIdYesCanonical 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.

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full disclosure burden. It usefully states read-only behavior, that no API key is required, and that limit caps the result set, but it omits timeline ordering, whether past and future events are mixed, and what happens on an unknown coinId or an empty timeline.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight sentences: capability and returned fields first, then usage triggers, then the sibling alternative and safety/parameter notes. Every sentence contributes and nothing is padded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple two-parameter read tool with no output schema and full schema coverage, the description covers purpose, returned content, auth requirements, and an alternative. The only real gap is ordering/pagination semantics of the event timeline, which an agent might still need.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and both parameters are fully documented in the schema, including the max of 250 and the canonical slug format with resolution guidance. The description's 'coinId is a canonical id, limit caps results' merely reinforces the schema rather than adding new semantics, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Specific verb ('Get') plus resource ('timeline of events for a coin'), with the event types enumerated (launches, partnerships, hard forks, conference talks) and the returned shape stated (dates and descriptions). It also explicitly separates itself from getTickersById, so an agent can distinguish it from price-oriented siblings without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Names concrete trigger phrasings ('what is happening with X', 'upcoming events for Ethereum'), gives an explicit alternative for a different intent ('For prices use getTickersById'), and the coinId note directs the agent to resolveId/search first when the id is unknown. Both when-to-use and a sibling routing rule are present.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

getCoinExchangesA

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.

NameRequiredDescriptionDefault
limitNoNumber of exchanges to return (default: 50, max: 250)
coinIdYesCanonical 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.

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, so the description carries the full burden; it discloses read-only behavior, no API key requirement, and the shape of the return value ('venue names only'), which is exactly the behavioral context an agent needs. It stops short of deeper traits like rate limits, pagination, or empty-result behavior, so not a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four short sentences, front-loaded with purpose, then example phrasings, then sibling routing, then behavioral notes. No filler; the multiple example queries all serve disambiguation rather than padding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-parameter, no-output-schema lookup tool, nothing an agent needs is missing: purpose, trigger phrases, alternatives, id format guidance, and auth/read-only status are all present, and the return shape is stated inline.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so both parameters are already fully documented in the schema, including the canonical slug format and the limit default/max. The description's 'coinId is a canonical id, limit caps results' restates that without adding new syntax or constraints, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('List the exchanges that LIST a specific coin') and narrows the output explicitly to 'venue names only'. It also distinguishes itself from getCoinMarkets and getTickersById by naming what those return instead.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides concrete trigger utterances ('which exchanges list X', 'is X on Coinbase', 'where is X listed') plus explicit routing rules: getCoinMarkets for per-market price/volume, getTickersById for live price. Both when-to-use and when-to-use-something-else are covered.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

getCoinMarketsA

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.

NameRequiredDescriptionDefault
limitNoNumber of markets to return (default: 50, max: 250)
coinIdYesCanonical 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.
quotesNoComma-separated quote currencies

TDQS

A4.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the burden and does well: declares read-only, no API key required, and warns that coinId must be canonical and is not derivable from the ticker. It does not mention rate limits, pagination behavior beyond the limit cap, or result ordering, so it falls short of exhaustive disclosure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four short sentences, each earning its place: purpose, usage triggers, sibling routing, and behavioral/parameter notes. The core purpose is front-loaded and nothing is redundant with the schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, and the description compensates by describing the return shape (market, trading pair, price, 24h volume). Combined with the identifier caveat and the sibling pointer, an agent has everything needed to call this correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is already 100%, so the baseline is 3, but the description adds genuine semantic value: it explains why coinId must be canonical (not derivable from symbol), what quotes means (quote currencies), and that limit caps results. It stops short of documenting defaults/maxima, which the schema already covers.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ("get the specific markets and trading pairs where a coin trades") plus the return payload (per-market price, 24h volume). It explicitly contrasts with the sibling getCoinExchanges ("For just the list of exchange names use getCoinExchanges"), so the agent can route correctly without opening a schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives concrete user-intent triggers ("where can I buy X", "X price on Binance", "best market for X") and names the alternative tool with the condition that selects it. The read-only/no-API-key note further removes invocation uncertainty.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

getCoinOHLCVHistoricalA

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).

NameRequiredDescriptionDefault
endNoEnd date (ISO 8601 or yyyy-mm-dd)
limitNoNumber of data points (default: 50, max: 250)
quoteNoQuote currency (default: usd)usd
startYesStart date (ISO 8601 or yyyy-mm-dd)
coinIdYesCanonical 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.
intervalNoInterval (default: 24h)24h

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description still discloses that the operation is read-only and requires a Starter+ plan with COINPAPRIKA_API_KEY. It also states the limit cap and default, but does not cover rate limits, error behavior, or pagination.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense and front-loads purpose, alternatives, and auth requirements. It is efficient, though the single-paragraph format could be slightly more scannable.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema and no annotations, the description covers the return fields, required and optional parameters, formats, defaults, max limit, id resolution guidance, alternatives, and plan requirement. Nothing critical is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all six parameters, including the canonical coinId requirement and interval enum. The description restates formats, defaults, and limits but adds little beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: retrieves OHLC candles for a coin, listing the returned fields. It explicitly distinguishes itself from getTickersHistoricalById and getCoinOHLCVLatest.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives concrete use cases such as 'daily chart last month' and 'hourly candles since Jan 1', then names alternatives for one past price and the latest candle. The when-to-use and when-to-use-something-else guidance is explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

getCoinOHLCVLatestA

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.

NameRequiredDescriptionDefault
quoteNoQuote currency (default: usd)usd
coinIdYesCanonical 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.

TDQS

A4.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the burden and does well: it declares read-only behavior, states no API key is required, and confirms the default quote currency. It doesn't discuss rate limits or error behavior for an invalid slug, which keeps it just short of a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four short sentences: what it returns, when to use, when to use a different tool, and call prerequisites. Front-loaded and zero filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description still enumerates the returned fields (OHLC plus volume), covers both parameters' constraints, and states auth expectations. An agent has everything needed to call it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is already 100%, so the baseline is 3, but the description adds real value by warning that ticker symbols and guessed slugs fail and pointing at resolveId first. It also confirms the quote default, reinforcing rather than merely repeating the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Specific verb and resource ('get the latest full-day OHLC candle') with explicit scope (full-day, not live tick) and the exact fields returned. It distinguishes itself from getCoinOHLCVToday/getCoinOHLCVHistorical and names getTickersById as the live-price alternative.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives a concrete use case ('yesterday's candle for BTC'), an explicit exclusion with the sibling to use instead for live spot price, and a prerequisite (resolve a bare symbol with resolveId first). Nothing is left to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

getCoinOHLCVTodayA

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.

NameRequiredDescriptionDefault
quoteNoQuote currency (default: usd)usd
coinIdYesCanonical 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.

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the behavioral burden and does add real value: read-only, no API key required, and the important caveat that the candle is still in progress (so values can change). It stops short of describing the returned fields or any rate/coverage limits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four short sentences, front-loaded with the purpose, then routing, then prerequisite. Nothing is redundant or padded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-parameter read tool with no output schema, the description covers purpose, alternatives, freshness semantics, and the id-resolution requirement. Only minor gap is not indicating the shape of the returned candle (open/high/low/close/volume, timestamp).

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the coinId description already explains the 'symbol-name' slug format and that it is not derivable from the ticker. The description's note about resolveId largely restates the schema, and the 'quote' parameter is never mentioned outside the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource — the in-progress OHLC candle for today — and immediately separates it from getCoinOHLCVLatest, getCoinOHLCVHistorical, and getTickersById. An agent can pick this tool without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives a concrete use case ('today's high and low for ETH') plus explicit routing: spot price goes to getTickersById, past candles to getCoinOHLCVHistorical. It also states the prerequisite that coinId must first be resolved with resolveId.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

getCoinsA

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.

NameRequiredDescriptionDefault
limitNoNumber of coins to return (default: 50, max: 250)

TDQS

A4.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses read-only nature, limit capping, and no prices. No annotations present, so description carries burden; lacks pagination details but sufficient for a simple list.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, no fluff, front-loaded with primary purpose. Every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Complete for a simple list tool with one parameter and no output schema. Covers contents, limitations, and usage context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Only parameter (limit) has full schema coverage; description adds context 'caps the number of coins returned' and reinforces default/max implicitly.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states the tool lists coins with id, name, symbol, rank. Explicitly distinguishes from price-related siblings (getTickers, getTickersById).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit use cases (discover coins, map name to id) and when to avoid (for prices). States read-only and no API key required.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

getContractsA

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.

NameRequiredDescriptionDefault
limitNoNumber of contracts to return (default: 50, max: 250)
platformIdYesPlatform ID (e.g., eth-ethereum)

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Declares read-only and describes error conditions. No annotations provided, so description carries full burden. Could mention if pagination or rate limits apply, but overall clear.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is thorough yet well-structured, front-loading the main purpose. Each sentence provides useful information. Slightly long but justified given the content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Fully covers usage, prerequisites, alternatives, param details, and edge cases. No output schema exists, but description doesn't need to explain return values as it's a list of contracts.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, but description adds useful context: examples of platformId values, explanation of limit's purpose and cap, and behavior on unknown platformId. Adds value beyond schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states the tool lists token contract addresses for a platform, mapping to CoinPaprika coin ids. Provides specific use cases and distinguishes from sibling tools like getTickerByContract and getHistoricalTickerByContract.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly instructs to find platformId first via getPlatforms and directs users to alternative tools for single contract price or history. Also explains param behavior and error on unknown platformId.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

getExchangeByIDA

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.

NameRequiredDescriptionDefault
quotesNoComma-separated quote currencies
exchangeIdYesExchange ID (e.g., binance)

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, but the description fully covers behavioral aspects: 'Read-only', 'No API key required', and gives an example of the exchangeId parameter value. Discloses what data is returned (details, volume, etc.).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Extremely concise: two sentences plus a short note on read-only and auth. Every sentence adds unique value—purpose, usage guidelines, parameter hint, and behavioral context. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 2 parameters, no output schema, and no annotations, the description covers all critical aspects: purpose, usage examples, parameter example, read-only safety, auth requirements, and sibling tool differentiation. Completely adequate for an agent to select and invoke correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline is 3. The description adds value by providing an example for exchangeId ('such as binance'), which clarifies the parameter's format beyond the schema. Quotes parameter is not elaborated further, but the example for exchangeId justifies a 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves details for a specific exchange: 24h volume, market count, trust score, links, and fiat support. It provides example queries ('tell me about Binance') and distinguishes from sibling tools like getExchangeMarkets and getExchanges.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states when to use ('tell me about Binance') and when to use alternatives: 'For the pairs traded there use getExchangeMarkets; find the exchange id first with search or getExchanges.'

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

getExchangeMarketsA

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.

NameRequiredDescriptionDefault
limitNoNumber of markets to return (default: 50, max: 250)
quotesNoComma-separated quote currencies
exchangeIdYesExchange ID (e.g., binance)

TDQS

A5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations, so description must cover behavior. It declares read-only, no API key required, and explains limit behavior (caps at max 250). Fully transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Efficiently structured: main purpose, usage examples, parameter details. No redundant sentences. Each sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite no output schema, description mentions return fields (pair, base/quote ids, price, volume, category). Also explains relationship with sibling tools for full workflow.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, but description adds context: exchangeId is an exchange id like 'binance', quotes is comma-separated with default 'usd', limit default 50 and max 250, enhancing schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states it lists trading pairs (markets) with specific fields like pair, base/quote coin ids, latest price, 24h volume, category. Distinguishes from getExchangeByID for exchange-level stats, showing clear purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly tells when to use (e.g., 'what pairs trade on Binance') and when not (use getExchangeByID for trust score). Also instructs to find exchangeId with getExchanges first.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

getExchangesA

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.

NameRequiredDescriptionDefault
limitNoNumber of exchanges to return (default: 50, max: 250)
quotesNoComma-separated quote currencies

TDQS

A5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses read-only nature, no API key requirement, and parameter limits (default/max for limit, format for quotes). No annotations provided, but description fully covers behavioral traits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Compact yet complete: main purpose first, then usage guidance, then parameter details. Every sentence adds value without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, description explains what each exchange includes (id, name, trust score, etc.). Covers auth, read-only, and parameter constraints adequately.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Adds meaning beyond schema: explains quotes as 'comma-separated list of quote currencies for the volume figures' with example 'usd,btc', and limit with default/max values.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states 'List exchanges tracked by CoinPaprika as a list ranked by rank' with specific fields, distinguishing it from siblings like getExchangeByID and getExchangeMarkets.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly tells when to use this tool ('top exchanges by volume', 'biggest crypto exchanges') and names alternatives (getExchangeByID, getExchangeMarkets).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

getGlobalA

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.

NameRequiredDescriptionDefault

No parameters

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Description states it is read-only, takes no parameters, and needs no API key. This is sufficient given the tool's simplicity, but no additional behavioral details like rate limits are provided.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences front-load the purpose, usage guidelines, and key constraints. No unnecessary information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers the tool's purpose and use cases well, but does not describe the output format (e.g., JSON structure). However, given no output schema, this is a minor gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters exist, so baseline 4 is appropriate. Description adds no parameter info, which is fine as schema coverage is 100% with zero parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states it provides a global crypto market overview including total market cap, volume, Bitcoin dominance, and market-wide change. It distinguishes from siblings like getTickersById for single coin prices.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly tells when to use (e.g., 'how is the crypto market doing') and when not to (use getTickersById for single coin). Also mentions read-only and no API key required.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

getHistoricalTickerByContractA

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).

NameRequiredDescriptionDefault
endNoEnd date
limitNoNumber of data points (default: 50, max: 250)
quoteNoQuote currency (default: usd)usd
startYesStart date (ISO 8601 or yyyy-mm-dd)
intervalNoInterval (default: 5m)5m
platformIdYesPlatform ID (e.g., eth-ethereum)
contractAddressYesContract address

TDQS

A4.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It discloses read-only nature, subscription requirement (Starter+ plan from COINPAPRIKA_API_KEY), and parameter defaults/constraints. However, it does not describe the return format or pagination behavior, which would be helpful given no output schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but well-structured: main purpose first, then use cases, then parameter details. It is slightly verbose but every sentence adds value. Could be tightened but still effective.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 7 parameters (3 required), no output schema, and 28 sibling tools, this description is remarkably complete. It covers all parameters with defaults, constraints, and examples, mentions auth requirements, and provides usage context. No gaps for a historical data retrieval tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, and the description adds significant value beyond schema: clarifies start as required, end as optional defaulting to now, interval default '5m', quote default 'usd', limit default 50 with max 250, and explains platformId and contractAddress with examples.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it retrieves historical price and market history by contract address as a time series. It distinguishes from siblings like getTickerByContract (current price) and getTickersHistoricalById (by coin id), making the purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit use cases ('Use for 'token price on 2024-01-01 by address', 'hourly history for a contract'') and directs to alternatives for current price or by coin ID, offering clear when-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

getMappingsA

Cross-reference CoinPaprika ids with external or legacy identifiers. Returns crosswalk rows linking a CoinPaprika id to its external ids; only matching rows return and no match returns an empty list. Use for 'map CoinPaprika id to CoinGecko', 'which coin is this CoinMarketCap id', 'find id for an ISIN'. Read-only. All params are optional string filters; provide at least one, extra filters narrow further: coinpaprika (a CoinPaprika id), coinmarketcap, coingecko, cryptocompare (each that provider's id), isin (an ISIN code), dti (a Digital Token Identifier). Requires a Business plan (COINPAPRIKA_API_KEY).

NameRequiredDescriptionDefault
dtiNoDTI to look up
isinNoISIN to look up
coingeckoNoCoinGecko ID to look up
coinpaprikaNoCoinPaprika ID to look up
coinmarketcapNoCoinMarketCap ID to look up
cryptocompareNoCryptoCompare ID to look up

TDQS

A4.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses that the tool is read-only, returns only matching rows (empty list if none), and that all params are optional filters. Without annotations, this provides adequate behavioral transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise (few sentences), front-loaded with the main purpose, and contains no unnecessary words. Every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (6 optional params, no output schema), the description covers purpose, behavior, parameter semantics, and usage examples. It explains return behavior and constraints completely.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with descriptions for each parameter. The description adds value by explaining that params are filters, that providing at least one is necessary, and that extra filters narrow results. This clarifies usage beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The tool is clearly named and the description states 'Cross-reference CoinPaprika ids with external or legacy identifiers', which is a specific verb and resource. It distinguishes itself from sibling tools that focus on single-entity data by emphasizing mapping between multiple identifiers.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit use cases ('map CoinPaprika id to CoinGecko', 'which coin is this CoinMarketCap id', 'find id for an ISIN'), notes that params are optional but at least one should be provided, and mentions the Business plan requirement. This gives clear when-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

getPeopleByIdA

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.

NameRequiredDescriptionDefault
personIdYesPerson ID (e.g., vitalik-buterin)

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. It declares read-only, notes that unknown IDs return not found, and states no API key required. No contradictions, but could mention rate limits or other constraints.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is well-structured, starting with purpose, then use cases, then parameter details. Every sentence adds value, no fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With one parameter and no output schema, description lists key return fields and prerequisites. It could be more detailed about exact return structure, but it's sufficient for a profile tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% for the one parameter, but description adds examples (e.g., 'vitalik-buterin') and behavior on unknown ID, which provides useful context beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool gets a person's profile by ID, listing specific fields like name, bio, teams, positions, projects, and social accounts. It distinguishes itself from sibling tools by focusing on people profiles.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit use cases like 'who is Vitalik Buterin' and instructions to first find personId via search or resolveId. It clearly states the tool requires an exact ID, not a name, which prevents misuse.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

getPlatformsA

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.

NameRequiredDescriptionDefault
limitNoNumber of platforms to return (default: 50, max: 250)

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden and clearly states read-only, limit caps results, and no API key required. This fully discloses behavioral traits for a safe, bounded operation. There is no contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, using three sentences with no unnecessary words. It front-loads the core purpose and provides essential context immediately.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has one parameter, no required fields, and no output schema. The description explains purpose, usage, and safety (read-only, no API key). However, it does not describe the return format or structure of the response, which would be helpful for an agent. Nevertheless, for a simple list tool with rich sibling context, it is nearly complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline is 3. The description does not add new meaning beyond the schema for the limit parameter—it only restates default and max values present in schema. No additional context about how the limit affects results or usage is provided.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists smart-contract platforms (blockchains) indexed by CoinPaprika, with examples (ethereum, bnb, polygon). It distinguishes from siblings like getContracts by noting the platform id is used before calling getContracts, and from other list tools by its specific resource.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly provides use cases: 'Use for which chains are supported for contract lookups, list contract platforms, or to pick a platform id before calling getContracts.' It also mentions read-only status, limit caps, and that no API key is required, offering clear guidance on when and how to use.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

getTagByIdA

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.

NameRequiredDescriptionDefault
tagIdYesTag ID (e.g., blockchain-service)
additionalFieldsNoComma-separated additional fields (e.g., coins,icos)

TDQS

A4.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, but description covers read-only nature, parameter details, error behavior, and auth requirements. Missing potential rate limits or response size, but adequate for a simple get tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Concise, front-loaded with purpose, then usage, then parameter details. Every sentence adds value without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (2 params, no output schema), the description covers all needed context: return fields, optional fields, error case, and auth. No gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, and the description adds concrete examples ('defi' for tagId, 'coins,icos' for additionalFields) and clarifies valid values, enhancing understanding beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it gets details for one tag by ID, listing returned fields and example use cases. It distinguishes itself from sibling 'getTags' which lists all tags.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly explains when to use (e.g., 'what coins are in the defi tag') and refers to 'getTags' as alternative to find tagId. Also notes read-only, error on unknown tagId, and no API key required.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

getTagsA

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.

NameRequiredDescriptionDefault
limitNoNumber of tags to return (default: 50, max: 250)
additionalFieldsNoComma-separated additional fields (e.g., coins,icos)

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, but the description explicitly says 'Read-only' and details parameter behavior (valid values for additionalFields, limit range). No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is efficient and front-loaded with main purpose. It includes all necessary details without excessive verbosity, though slightly long.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema, but description explains return fields (id, name, coin_counter, ico_counter). Covers parameters, use cases, and distinction from sibling. Complete for a list tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% (both parameters described in schema). The description adds meaning beyond schema by explaining valid values for additionalFields ('coins','icos') and noting limit cap (max 250).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'List all CoinPaprika tags' with examples of categories. It distinguishes from the sibling tool getTagById by specifying that getTagById is for coins inside a tag.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states when to use: 'for ''what crypto categories exist'', ''list market sectors'', or to find a tagId before calling getTagById.' Also states when not to use: 'For the coins inside one tag use getTagById.'

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

getTickerByContractA

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.

NameRequiredDescriptionDefault
platformIdYesPlatform ID (e.g., eth-ethereum)
contractAddressYesContract address

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description states it is read-only and no API key required. No annotations provided, so description carries full burden. It could mention rate limits or data freshness, but it's sufficiently transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with purpose, no superfluous words. Every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description hints at return data ('current price and market data') but doesn't detail fields. For a simple tool with 2 params, it's mostly complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with descriptions. The description adds an example for platformId (eth-ethereum) and clarifies the parameter roles, which is helpful but not essential.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool gets current price and market data by contract address. It distinguishes from sibling getHistoricalTickerByContract which is for history.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says 'Use when you have a contract address' and 'For history use getHistoricalTickerByContract'. Also mentions platformId and contractAddress roles and that no API key is required.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

getTickersA

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.

NameRequiredDescriptionDefault
limitNoNumber of tickers to return (default: 50, max: 250)
quotesNoComma-separated quote currencies (e.g., USD,BTC,ETH)

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description bears full burden. It describes read-only nature, parameter roles (quotes default USD, limit caps results). Could add further details like rate limits or response structure but overall adequate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no redundancy, front-loaded with purpose and usage. Every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 2 optional params, no output schema, no annotations, description sufficiently covers usage, parameter behavior, and safety (read-only). Agent can confidently invoke.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with descriptions for both parameters. Description adds default for quotes and clarifies that limit caps results. However, it doesn't add substantial meaning beyond schema, so baseline 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves current prices, market caps, and 24h changes for top cryptocurrencies by market cap. It provides specific verb 'Get' and resource, and distinguishes from sibling getTickersById.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly lists use cases like 'top 5 coins', 'top crypto today', and advises using getTickersById for single coins. Also mentions no API key needed.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

getTickersByIdA

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.

NameRequiredDescriptionDefault
coinIdYesCanonical 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.
quotesNoComma-separated quote currencies

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full load, and it does well: it declares read-only behavior and 'No API key required', and it warns that coinId is not derivable from the symbol. It doesn't say what happens on an unresolvable or unknown coinId, which is the remaining behavioral gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The output fields, the sibling exclusion, the parameters and the auth note are all handled in four tight sentences, with the core purpose front-loaded. The example phrasings are compact and help matching rather than padding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, and the description compensates by enumerating the returned fields (price, market cap, 24h change, volume) and the currency dimension. It is complete enough to call correctly; only error/edge-case behavior and the shape of multi-currency quotes are absent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3; the description still adds meaning by saying coinId is canonical (resolve via resolveId first) and that quotes sets the quote currency with a USD default, a default the schema does not state. It doesn't explain the comma-separated multi-quote behavior or how multiple quotes are returned.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb and resource: it returns the current price, market cap, 24h change and volume for one coin. It also explicitly routes historical needs to getTickersHistoricalById, so an agent can distinguish it from siblings without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives literal trigger phrases ('what is the price of X', 'BTC to USD') and one explicit exclusion that names a sibling: getTickersHistoricalById is the tool for past prices. It also states the prerequisite that a bare symbol must be resolved with resolveId first.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

getTickersHistoricalByIdA

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).

NameRequiredDescriptionDefault
endNoEnd date
limitNoNumber of data points (default: 50, max: 250)
quoteNoQuote currency (default: usd)usd
startYesStart date (ISO 8601 or yyyy-mm-dd)
coinIdYesCanonical 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.
intervalNoInterval (default: 5m)5m

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does well: it declares read-only behavior, notes the required Starter+ plan and API key, and specifies defaults and the max limit. It doesn't describe the response structure beyond the three data types, but for a read-only historical query the key behavioral traits are covered.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but front-loaded: purpose first, then alternatives, then parameter defaults and requirements. Every sentence contributes useful routing or constraint information, though it could be slightly tighter by not repeating schema defaults verbatim.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations, no output schema, and six parameters, the description covers the essential context: what it returns (price/market cap/volume snapshots), read-only nature, plan requirement, parameter defaults, and sibling alternatives. It is nearly complete for an agent to call it correctly, with only minor gaps around return shape.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents every parameter. The description adds some value by restating defaults (interval='5m', quote='usd', limit=50/250) and advising to resolve coinId via resolveId, but it mostly repeats what the schema already says; baseline 3 is appropriate when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'Get a coin's price, market cap and volume at past times as point-in-time snapshots'. It explicitly distinguishes from OHLC candles and names the sibling tools for that case and for current price, so an agent can tell exactly what this tool does versus alternatives.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives concrete use cases ('price of BTC last Tuesday', 'ETH market cap on 2024-01-01') and explicitly routes the agent to getCoinOHLCVHistorical for chart candles and getTickersById for current price. The when-to-use and when-not-to-use guidance is unambiguous.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

keyInfoA

Get details and usage for the current CoinPaprika API key: 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 a configured COINPAPRIKA_API_KEY (Pro plan); without a key the call is rejected.

NameRequiredDescriptionDefault

No parameters

TDQS

A4.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

States read-only and that the call is rejected without a valid key. No annotations are provided, so the description carries full burden. It could mention potential error codes or return structure, but current details are sufficient for basic understanding.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, each serving a distinct purpose: describing what it does, when to use it, and prerequisites. No redundant or vague language.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description effectively outlines return values (plan, quota, requests remaining, expiry) and prerequisite (configured key). For a simple informational tool, this is complete and leaves no critical gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has zero parameters, and the description confirms 'takes no parameters'. Schema coverage is 100%, and the description adds no unnecessary param info beyond stating the absence.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool gets details and usage for the current API key, listing specific fields: plan, quota, requests remaining, expiry. It distinguishes itself from sibling tools (e.g., getCoins, getTickers) by focusing on key info rather than market data.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly provides usage context: 'Use for 'what plan am I on', 'how many requests are left', 'is my API key valid''. Also notes read-only nature and prerequisite of a configured COINPAPRIKA_API_KEY, guiding appropriate invocation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

priceConverterA

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.

NameRequiredDescriptionDefault
amountNoAmount to convert (default: 0)
baseCurrencyIdYesRequired. Source CoinPaprika coin slug (e.g., 'btc-bitcoin'). Full slugs only; ticker symbols like 'BTC' are rejected upstream. Call search or resolveId first.
quoteCurrencyIdYesRequired. Target CoinPaprika coin slug (e.g., 'usd-us-dollars', 'eth-ethereum'). Full slugs only; ticker symbols like 'USD' are rejected upstream.

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. Declares read-only and no API key required. Gives clear constraints on parameter format. Could mention rate limits or error behavior, but adequate for a simple conversion tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with examples, no filler. Purpose, usage guidance, and parameter nuance are front-loaded and efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Lacks output schema, but the conversion result is intuitive. For a simple tool, the description covers input constraints and usage adequately. Slight gap: no mention of what happens on invalid IDs (likely error), but acceptable.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with descriptions for all 3 parameters. Description adds value by clarifying canonical slugs and that ticker symbols are rejected, and that amount defaults to 0. Builds on schema rather than repeating it.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states it converts an amount between crypto/fiat at current rate, with examples. Explicitly differentiates from sibling 'getTickersById' for plain coin prices without amount.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit when-to-use (conversion with amount) and when-not-to (plain price without amount, use getTickersById). Also notes that baseCurrencyId and quoteCurrencyId require canonical slugs, not ticker symbols, and that no API key is needed.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

resolveIdA

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.

NameRequiredDescriptionDefault
typeYesResource type to resolve
limitNoNumber of results (default: 50, max: 250)
queryYesFuzzy search query

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, but description discloses read-only behavior, no API key required, returns ranked list with empty list meaning no match, and fuzzy search nature.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single paragraph is dense but contains all essential info without fluff; slightly improved structure could help readability, but remains efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema, but description explains return structure (id, name, symbol, type, rank) and empty list meaning, plus no API key requirement. Fully informative for an agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% but description adds extra context: lists enum values, explains query purpose, limit defaults/max, and gives usage examples, adding value beyond schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool resolves fuzzy names/symbols to candidate IDs, specifies resources (coin, exchange, people, tag), provides examples, and distinguishes from siblings like getTickersById.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says 'Call FIRST when you have a bare name or symbol but need an id' and advises to pass the id to getTickersById for price, giving clear when-to-use and next-step guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

statusA

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.

NameRequiredDescriptionDefault

No parameters

TDQS

A4.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the burden. It declares read-only, no parameters, no API key needed. Lacks mention of output format or response structure, but adequate for a status tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, zero wasted words. Front-loaded key info: purpose, usage examples, exclusions, and constraints.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Complete for a simple status tool. Mentions uptime, mode, enabled features as outputs. Distinguishes from sibling getGlobal. No output schema, but description compensates sufficiently.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters. Schema coverage 100%. Description reinforces 'takes no parameters', adding value beyond schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses specific verb 'Get' and resource 'CoinPaprika MCP server's status and configuration'. It clearly states what the tool does and distinguishes it from market tools like getGlobal.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states when to use: 'when asked is the server up, what mode am I in, server status' and when not to: 'for market health use getGlobal'. Provides clear exclusion.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 9 tool updatesv1.4.1
    • ChangedgetCoinById1 field changed
      • changedInput schema / properties / coinId / description
        Previous value: -"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."New value: +"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."
    • ChangedgetCoinEvents1 field changed
      • changedInput schema / properties / coinId / description
        Previous value: -"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."New value: +"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."
    • ChangedgetCoinExchanges1 field changed
      • changedInput schema / properties / coinId / description
        Previous value: -"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."New value: +"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."
    • ChangedgetCoinMarkets1 field changed
      • changedInput schema / properties / coinId / description
        Previous value: -"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."New value: +"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."
    • ChangedgetCoinOHLCVHistorical1 field changed
      • changedInput schema / properties / coinId / description
        Previous value: -"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."New value: +"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."
    • ChangedgetCoinOHLCVLatest1 field changed
      • changedInput schema / properties / coinId / description
        Previous value: -"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."New value: +"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."
    • ChangedgetCoinOHLCVToday1 field changed
      • changedInput schema / properties / coinId / description
        Previous value: -"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."New value: +"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."
    • ChangedgetTickersById1 field changed
      • changedInput schema / properties / coinId / description
        Previous value: -"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."New value: +"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."
    • ChangedgetTickersHistoricalById1 field changed
      • changedInput schema / properties / coinId / description
        Previous value: -"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."New value: +"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."
  2. 30 tool updatesv1.3.0
    • First observedgetCapabilities
    • First observedgetChangelogIDs
    • First observedgetCoinById
    • First observedgetCoinEvents
    • First observedgetCoinExchanges
    • First observedgetCoinMarkets
    • First observedgetCoinOHLCVHistorical
    • First observedgetCoinOHLCVLatest
    • First observedgetCoinOHLCVToday
    • First observedgetCoins
    • First observedgetContracts
    • First observedgetExchangeByID
    • First observedgetExchangeMarkets
    • First observedgetExchanges
    • First observedgetGlobal
    • First observedgetHistoricalTickerByContract
    • First observedgetMappings
    • First observedgetPeopleById
    • First observedgetPlatforms
    • First observedgetTagById
    • First observedgetTags
    • First observedgetTickerByContract
    • First observedgetTickers
    • First observedgetTickersById
    • First observedgetTickersHistoricalById
    • First observedkeyInfo
    • First observedpriceConverter
    • First observedresolveId
    • First observedsearch
    • First observedstatus

TDQS

A4.2/5.0

Scored across 30 tools

Disambiguation4/5

Each tool targets a fairly distinct resource+action, and descriptions explicitly cross-reference siblings (e.g. getTickersById vs getTickersHistoricalById vs getCoinOHLCVHistorical, getCoinExchanges vs getCoinMarkets). A few boundaries still require reading the description carefully — getTickers vs getTickersById, search vs resolveId vs getMappings, and getExchangeByID vs getExchangeMarkets overlap in intent. Overall mostly distinct with a small number of confusable pairs.

Naming Consistency4/5

The dominant pattern is camelCase get<Resource>[ById]/get<Resource>s, applied consistently for most tools. Minor deviations exist: a few bare nouns/verbs (status, search, keyInfo, priceConverter, resolveId) and inconsistent suffix capitalization (getTagById vs getChangelogIDs, plus the getCoinOHLCV* family). Still readable and predictable overall.

Tool Count3/5

30 tools is on the heavy side and pushes past the comfortable 3-15 range, requiring an agent to triage many similar getters. The breadth of the crypto-data domain (coins, exchanges, markets, contracts, tags, people, history, conversion, meta) does justify much of the surface. It sits at the borderline of justified but bulky.

Completeness4/5

Coverage is strong across CRUD-like read surfaces: coin discovery, current and historical prices, OHLCV, exchanges and markets, contracts, tags, people, mappings, changelog, and global overview. Minor gaps remain — ICOs are referenced in tag/people counts but no ICO detail tool exists, and there is no exchange historical or gainers/losers endpoint. These are workable gaps for most agent workflows.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    Provides real-time access to cryptocurrency and DEX data across multiple blockchains, enabling users to analyze tokens, pools, trading volumes, and perform technical analysis through DexPaprika's API. No API keys required for seamless integration with AI assistants.
    11
    608 npm
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Connects AI agents to real-time cryptocurrency market data from CoinGecko API, enabling price lookups, coin details, market rankings, search, and trending crypto queries through natural language.
    16 npm
    Apache 2.0
  • A
    license
    A
    quality
    D
    maintenance
    Live market data for AI agents. 8 tools: real-time crypto prices, OHLCV candles, order books, market cap rankings, trending coins, technical analysis (RSI/SMA/z-score), asset comparison, and Fear & Greed index. Zero API keys, zero dependencies.
    8
    1
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables access to Coinpaprika cryptocurrency data, including coin listings, prices, historical OHLC, market overview, and search through MCP tools.
    22 npm
    1
    MIT