CoinPaprika
Server Details
Cryptocurrency market data for 12,000+ coins and 350+ exchanges: prices, tickers, OHLCV, contract lookups, tags, and search.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
Glama MCP Gateway
Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.
Full call logging
Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.
Tool access control
Enable or disable individual tools per connector, so you decide what your agents can and cannot do.
Managed credentials
Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.
Usage analytics
See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.
Tool Definition Quality
Average 4.4/5 across 31 of 31 tools scored. Lowest: 3.2/5.
Most tools have distinct purposes (e.g., getTickersById vs getTickersHistoricalById), but search and resolveId could cause confusion as both find entities. Overall, overlaps are minimal and well-documented.
Core tools follow a consistent get[Resource][Modifier] camelCase pattern. Some utility tools (priceConverter, resolveId, search, keyInfo, submitFeedback, status) break the pattern, but they are clearly separate and the naming is still readable.
With 31 tools, the server is comprehensive but slightly heavy. Some tools like getCoinOHLCVLatest, getCoinOHLCVToday, and getCoinOHLCVHistorical could potentially be merged, and the count feels at the upper bound for its scope.
The toolset covers a wide range of crypto data needs: current/historical prices, OHLC, exchanges, contracts, tags, people, global stats, search/resolution, and administrative functions. Only advanced features like news or portfolio tracking are missing.
Available Tools
31 toolsgetCapabilitiesARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| rationale | Yes | REQUIRED. In 1-2 sentences explain WHY you are calling this tool and what you intend to do with the result. Examples: 'User asked for BTC price; calling getTickersById to fetch current USD value.' 'Building a portfolio dashboard; need OHLCV for ETH last 7 days.' This is logged and reviewed to improve the MCP. Do not include user PII or secrets — use generic descriptions. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false. The description adds context about the tool's role in agent onboarding and that it describes the MCP server, not crypto data. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, front-loaded with purpose, and every sentence adds value. No redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's purpose (capabilities discovery), the description covers essential aspects. However, without an output schema, a brief note on what the response contains (e.g., JSON structure) would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for the single 'rationale' parameter. The description adds significant value by explaining why the rationale is required, providing concrete examples, warning against including PII, and noting logging purposes.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it retrieves server capabilities, workflow patterns, validation rules, and tool sequences. It distinguishes from sibling tools by explicitly stating it describes the MCP server itself, not crypto data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly advises 'Use FIRST to onboard as an agent' and provides specific queries that trigger this tool, such as 'what can this server do' or 'how should I chain these tools'. It also clarifies what the tool does NOT cover.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getChangelogIDsARead-onlyIdempotentInspect
Get the ids of recent changes to CoinPaprika's coin and exchange listings (additions, renames, delistings) for syncing a local dataset. Use for 'what changed recently', 'new or delisted coins', 'listing changelog'. Read-only; page (default 1) and limit (default 50) paginate the feed. Requires your own Starter+ CoinPaprika key; without one this hosted server returns a plan-required message.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| limit | No | ||
| rationale | Yes | REQUIRED. In 1-2 sentences explain WHY you are calling this tool and what you intend to do with the result. Examples: 'User asked for BTC price; calling getTickersById to fetch current USD value.' 'Building a portfolio dashboard; need OHLCV for ETH last 7 days.' This is logged and reviewed to improve the MCP. Do not include user PII or secrets — use generic descriptions. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses read-only nature (aligns with annotations), pagination defaults, and importantly the authentication requirement (needs a Starter+ CoinPaprika key) and error behavior without it. This adds valuable behavioral context beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four sentences, no fluff. First sentence states purpose, second lists use cases, third covers pagination and read-only, fourth covers auth. All information is front-loaded and essential.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers purpose, usage, pagination, auth, and read-only. Lacks details on return format (likely array of IDs) but given the tool's simplicity, this is acceptable. Output schema not provided, so a bit more on expected response could help, but not critical.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Adds meaning to page and limit by stating default values and explaining they paginate the feed, which is not in the schema. The rationale parameter already has a description in the schema. Low schema coverage (33%) is compensated well.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the verb 'Get' and the resource 'ids of recent changes to CoinPaprika's coin and exchange listings' with a specific purpose 'for syncing a local dataset'. This uniquely identifies the tool among many sibling get* tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly lists example use cases: 'what changed recently', 'new or delisted coins', 'listing changelog'. Does not mention alternatives or when not to use, but the usage contexts are clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getCoinByIdARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| coinId | Yes | Canonical CoinPaprika coin slug in 'symbol-name' format, e.g. 'btc-bitcoin', 'eth-ethereum', 'ada-cardano'. Do NOT pass ticker symbols ('BTC', 'AAVE') or guess the slug — it is not derivable from the symbol (e.g. AAVE resolves to 'aave-new', which you could not guess). Call search or resolveId first to resolve a symbol or name to its canonical id. | |
| rationale | Yes | REQUIRED. In 1-2 sentences explain WHY you are calling this tool and what you intend to do with the result. Examples: 'User asked for BTC price; calling getTickersById to fetch current USD value.' 'Building a portfolio dashboard; need OHLCV for ETH last 7 days.' This is logged and reviewed to improve the MCP. Do not include user PII or secrets — use generic descriptions. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already confirm readOnlyHint=true, destructiveHint=false. The description adds valuable behavioral context: 'Read-only; coinId is a canonical id (resolve with resolveId). No API key required.' This goes beyond annotations and helps the agent understand constraints and safe usage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is clear and front-loaded with the core purpose. It consists of four sentences without fluff. Slightly longer than strictly necessary but still efficient and informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description adequately explains what the tool returns (description, links, team, tags) and what it does not (price). It also covers usage context and prerequisites. Could mention error handling or pagination, but overall complete for its purpose.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but the description adds crucial extra guidance: it explicitly warns against passing ticker symbols and advises using resolveId or search first. This adds semantic value beyond the schema's parameter descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves descriptive project information (description, links, team, tags) and provides example use cases ('tell me about Uniswap'). It distinguishes from getTickersById by explicitly noting it does NOT include price. This is specific and helps the agent select the right tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly tells when to use this tool (for project info) and when not to (use getTickersById for price/market cap). It also instructs the agent to resolve coinId via resolveId or search, providing clear guidance on prerequisites and alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getCoinEventsARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| coinId | Yes | Canonical CoinPaprika coin slug in 'symbol-name' format, e.g. 'btc-bitcoin', 'eth-ethereum', 'ada-cardano'. Do NOT pass ticker symbols ('BTC', 'AAVE') or guess the slug — it is not derivable from the symbol (e.g. AAVE resolves to 'aave-new', which you could not guess). Call search or resolveId first to resolve a symbol or name to its canonical id. | |
| rationale | Yes | REQUIRED. In 1-2 sentences explain WHY you are calling this tool and what you intend to do with the result. Examples: 'User asked for BTC price; calling getTickersById to fetch current USD value.' 'Building a portfolio dashboard; need OHLCV for ETH last 7 days.' This is logged and reviewed to improve the MCP. Do not include user PII or secrets — use generic descriptions. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds context beyond annotations by stating the tool is read-only, that coinId is a canonical id, that limit caps results, and that no API key is required. These details complement the readOnlyHint and destructiveHint annotations without contradiction. Only minor gap: no mention of pagination or rate limits, but sufficient for selection.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no wasted words. It front-loads the primary purpose, then efficiently provides usage examples, alternative tool, and key behavioral notes. Every sentence serves a distinct purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers purpose, usage context, alternatives, and key constraints (read-only, coinId format, limit behavior) with no output schema. It is complete enough for an agent to select this tool appropriately, though additional detail on output structure could improve completeness slightly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 67% with detailed descriptions for coinId and rationale. The description adds minimal value for parameters beyond what the schema provides, only noting that limit caps results. For the limit parameter, the schema only has a default while the description adds the capping behavior, which helps but is not comprehensive.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves a timeline of events for a coin (launches, partnerships, hard forks, conference talks) with dates and descriptions, and distinguishes it from getTickersById for prices. This provides a specific verb and resource, clearly differentiating from sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use this tool ('what is happening with X', 'upcoming events for Ethereum', 'X roadmap events') and provides an alternative tool for prices ('For prices use getTickersById'), offering clear guidance on appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getCoinExchangesARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| coinId | Yes | Canonical CoinPaprika coin slug in 'symbol-name' format, e.g. 'btc-bitcoin', 'eth-ethereum', 'ada-cardano'. Do NOT pass ticker symbols ('BTC', 'AAVE') or guess the slug — it is not derivable from the symbol (e.g. AAVE resolves to 'aave-new', which you could not guess). Call search or resolveId first to resolve a symbol or name to its canonical id. | |
| rationale | Yes | REQUIRED. In 1-2 sentences explain WHY you are calling this tool and what you intend to do with the result. Examples: 'User asked for BTC price; calling getTickersById to fetch current USD value.' 'Building a portfolio dashboard; need OHLCV for ETH last 7 days.' This is logged and reviewed to improve the MCP. Do not include user PII or secrets — use generic descriptions. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, etc. Description adds 'Read-only', 'No API key required', and 'limit caps results', which are useful behavioral details beyond annotations. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four sentences, each serving a purpose: action, use cases, alternatives, additional constraints. No fluff. Front-loaded with the core purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple listing tool, the description covers all necessary context: what it returns (venue names), parameter behavior (coinId canonical, limit caps), and relationship to sibling tools. No output schema needed; description suffices.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers coinId and rationale with detailed descriptions, but limit lacks description. The tool description compensates by stating 'limit caps results', adding meaning to the limit parameter. It also reinforces the canonical id format for coinId.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists exchanges that list a specific coin (venue names only). It distinguishes itself from sibling tools like getCoinMarkets and getTickersById by specifying that those are for buying with price/volume and live price respectively.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly lists use cases: 'which exchanges list X', 'is X on Coinbase', 'where is X listed'. It also tells when not to use it: for buying with price/volume use getCoinMarkets; for live price use getTickersById.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getCoinMarketsARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| coinId | Yes | Canonical CoinPaprika coin slug in 'symbol-name' format, e.g. 'btc-bitcoin', 'eth-ethereum', 'ada-cardano'. Do NOT pass ticker symbols ('BTC', 'AAVE') or guess the slug — it is not derivable from the symbol (e.g. AAVE resolves to 'aave-new', which you could not guess). Call search or resolveId first to resolve a symbol or name to its canonical id. | |
| quotes | No | ||
| rationale | Yes | REQUIRED. In 1-2 sentences explain WHY you are calling this tool and what you intend to do with the result. Examples: 'User asked for BTC price; calling getTickersById to fetch current USD value.' 'Building a portfolio dashboard; need OHLCV for ETH last 7 days.' This is logged and reviewed to improve the MCP. Do not include user PII or secrets — use generic descriptions. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint. The description adds behavioral details: no API key required, parameter effects (quotes sets quote currencies, limit caps results), and reinforces read-only nature. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is four sentences, front-loaded with purpose, then usage, sibling distinction, and parameter/auth notes. Every sentence adds value without redundancy or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity, it covers the output (per-market price and 24h volume), parameter explanations, auth requirements, and usage context. No output schema exists, but the description sufficiently outlines what to expect. Sibling context is clear. Minor gap: pagination or ordering not mentioned, but not critical.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50%, with description missing for limit and quotes. The tool description compensates by explaining that quotes sets quote currencies and limit caps results, giving meaning to these parameters beyond the schema. CoinId is also clarified. This adds value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves specific markets and trading pairs for a coin with per-market price and 24h volume. It distinguishes itself from the sibling getCoinExchanges by specifying that the sibling only returns exchange names, 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly provides usage scenarios ('where can I buy X', 'X price on Binance', 'best market for X') and directly points users to an alternative tool (getCoinExchanges) for a different use case. It also notes that coinId must be a canonical id, guiding proper usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getCoinOHLCVHistoricalARead-onlyIdempotentInspect
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).
| Name | Required | Description | Default |
|---|---|---|---|
| end | No | Optional end timestamp. Same formats as start. Defaults to now if omitted. | |
| limit | No | Optional. Number of candles (default 50, max 250). | |
| quote | No | Optional quote currency code (default 'usd'). Examples: 'usd', 'btc', 'eth'. | usd |
| start | Yes | Required. Start timestamp. Accepts ISO 8601 ('2026-01-15T00:00:00Z') or date-only ('2026-01-15'). UTC. | |
| coinId | Yes | 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. | |
| interval | No | Optional. Candle interval. Defaults to '24h' for daily candles. | 24h |
| rationale | Yes | REQUIRED. In 1-2 sentences explain WHY you are calling this tool and what you intend to do with the result. Examples: 'User asked for BTC price; calling getTickersById to fetch current USD value.' 'Building a portfolio dashboard; need OHLCV for ETH last 7 days.' This is logged and reviewed to improve the MCP. Do not include user PII or secrets — use generic descriptions. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false; the description adds the required plan (Starter+), parameter constraints, and the fact it's read-only, all beyond what annotations provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single dense paragraph that front-loads the core purpose and immediately conveys usage guidelines. Every sentence is purposeful, and no filler content is present.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers all necessary aspects: purpose, parameters, plan requirement, and sibling differentiation. However, it does not describe the output format (e.g., array of candle objects with specific fields), which could enhance completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Although schema coverage is 100%, the description adds significant value: it explains coinId resolution, date formats, interval enum values, and the rationale parameter's purpose, going well beyond the schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description specifies the tool retrieves OHLCV candles and immediately distinguishes itself from two sibling tools (getTickersHistoricalById and getCoinOHLCVLatest), providing clear differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage examples like 'daily chart last month' and 'hourly candles since Jan 1', and clearly states when to use alternatives, offering comprehensive guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getCoinOHLCVLatestARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| quote | No | usd | |
| coinId | Yes | Canonical CoinPaprika coin slug in 'symbol-name' format, e.g. 'btc-bitcoin', 'eth-ethereum', 'ada-cardano'. Do NOT pass ticker symbols ('BTC', 'AAVE') or guess the slug — it is not derivable from the symbol (e.g. AAVE resolves to 'aave-new', which you could not guess). Call search or resolveId first to resolve a symbol or name to its canonical id. | |
| rationale | Yes | REQUIRED. In 1-2 sentences explain WHY you are calling this tool and what you intend to do with the result. Examples: 'User asked for BTC price; calling getTickersById to fetch current USD value.' 'Building a portfolio dashboard; need OHLCV for ETH last 7 days.' This is logged and reviewed to improve the MCP. Do not include user PII or secrets — use generic descriptions. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and destructiveHint. Description adds value by stating it is read-only, requiring canonical coinId, and no API key needed. No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no redundancy. First sentence states purpose, second provides usage constraints. Very concise and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers purpose, usage, and key constraints. Lacks explicit output format description but implies returns OHLCV candle. Given tool simplicity and no output schema, description is largely complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers 67% of parameters with descriptions. Description reinforces coinId requirement and default quote, but adds little beyond schema. Rationale parameter is already well-documented in schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves the latest full-day OHLC candle for a coin. It distinguishes from getTickersById for live spot price, but does not differentiate from sibling tools like getCoinOHLCVToday or getCoinOHLCVHistorical.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit guidance to use for yesterday's candle and to use getTickersById for live price. Also mentions that coinId must be canonical and defaults to usd. However, lacks guidance on when not to use relative to other OHLCV siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getCoinOHLCVTodayARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| quote | No | usd | |
| coinId | Yes | Canonical CoinPaprika coin slug in 'symbol-name' format, e.g. 'btc-bitcoin', 'eth-ethereum', 'ada-cardano'. Do NOT pass ticker symbols ('BTC', 'AAVE') or guess the slug — it is not derivable from the symbol (e.g. AAVE resolves to 'aave-new', which you could not guess). Call search or resolveId first to resolve a symbol or name to its canonical id. | |
| rationale | Yes | REQUIRED. In 1-2 sentences explain WHY you are calling this tool and what you intend to do with the result. Examples: 'User asked for BTC price; calling getTickersById to fetch current USD value.' 'Building a portfolio dashboard; need OHLCV for ETH last 7 days.' This is logged and reviewed to improve the MCP. Do not include user PII or secrets — use generic descriptions. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds context beyond the annotations: it states the tool is 'read-only' (consistent with readOnlyHint), mentions 'in-progress' (real-time nature), notes no API key required, and emphasizes the canonical ID format. This provides a clear behavioral profile. No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long with no unnecessary words. It is front-loaded with the core purpose, then provides usage alternatives and constraints. Every sentence serves a clear purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only tool with no output schema, the description covers purpose, usage, parameters, and sibling differentiation. It does not describe the output structure (e.g., OHLC fields), but 'OHLC candle' is a standard concept. Given the constraints, it is sufficiently complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 67% (coinId and rationale have descriptions, quote does not). The description reiterates the coinId usage but does not add new information about any parameter beyond what the schema already provides. Baseline adjusted for coverage below 80%; no extra value from description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and the specific resource 'today's in-progress OHLC candle for a coin'. It provides an example usage ('today's high and low for ETH') and explicitly distinguishes from sibling tools like getTickersById (spot price) and getCoinOHLCVHistorical (past candles).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly tells when to use this tool (today's OHLC) and when not to (spot price -> getTickersById; past candles -> getCoinOHLCVHistorical). It also gives instructions on how to provide the coinId (resolve with resolveId).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getCoinsARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Optional. Items per page (default 50, max 250). Server clamps requests above 250. | |
| rationale | Yes | REQUIRED. In 1-2 sentences explain WHY you are calling this tool and what you intend to do with the result. Examples: 'User asked for BTC price; calling getTickersById to fetch current USD value.' 'Building a portfolio dashboard; need OHLCV for ETH last 7 days.' This is logged and reviewed to improve the MCP. Do not include user PII or secrets — use generic descriptions. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint. The description adds that limit caps the number of coins returned and no API key required, which provides minor additional context beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three concise sentences: first states the primary function, second gives use cases, third clarifies what it does not include and its safety. No wasted words and front-loaded with key information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple list nature (no output schema), the description completely informs the agent about what the tool returns, its safe behavior, and parameter constraints. No gaps remain.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds value by explaining the rationale parameter's purpose and that it is logged, which is helpful context beyond the schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists all available coins with specific fields (id, name, symbol, rank) and explicitly distinguishes from siblings by noting it does not include prices, directing to getTickers or getTickersById for pricing data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use the tool (to discover coins or map a name to an id) and when not to use it (for prices), and provides alternative tool names. It 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.
getContractsARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| rationale | Yes | REQUIRED. In 1-2 sentences explain WHY you are calling this tool and what you intend to do with the result. Examples: 'User asked for BTC price; calling getTickersById to fetch current USD value.' 'Building a portfolio dashboard; need OHLCV for ETH last 7 days.' This is logged and reviewed to improve the MCP. Do not include user PII or secrets — use generic descriptions. | |
| platformId | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint; description adds that it's read-only, requires no API key, and returns an error for unknown platformId. Adds context beyond annotations, though could mention pagination or result ordering.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four sentences, front-loaded with purpose, then usage guidance, then parameter details. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, description mentions mapping contract to coin id but does not specify return format (e.g., array of objects). Covers error behavior and required inputs well. Completeness is good but not perfect due to missing return structure.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is low (33%); description compensates by explaining platformId as a platform id like 'eth-ethereum' and limit with default/max values. Adds meaning beyond schema for both documented parameters, but rationale is already in schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states verb and resource: 'List the token contract addresses... mapping each contract to its CoinPaprika coin id.' Provides concrete use cases and distinguishes from related 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly tells when to use the tool ('contracts on ethereum', 'what tokens does BSC have') and when not to (for single contract price/history, use other tools). Also instructs to find platformId first with getPlatforms.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getExchangeByIDARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| quotes | No | ||
| rationale | Yes | REQUIRED. In 1-2 sentences explain WHY you are calling this tool and what you intend to do with the result. Examples: 'User asked for BTC price; calling getTickersById to fetch current USD value.' 'Building a portfolio dashboard; need OHLCV for ETH last 7 days.' This is logged and reviewed to improve the MCP. Do not include user PII or secrets — use generic descriptions. | |
| exchangeId | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive. The description adds useful context: 'Read-only' and 'No API key required', reinforcing safety. While it doesn't disclose additional behaviors beyond annotations, it adds value with the no-key note.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences front-load the primary function and examples, then direct to alternatives and prerequisites. No wasted words; each sentence serves a purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple; description covers return details, usage examples, and prerequisites. No output schema, but stated return fields suffice. Minor gaps in parameter coverage prevent a perfect score.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 33% (rationale has description, exchangeId and quotes do not). The description explains exchangeId as 'an exchange id such as binance', adding meaning beyond schema. However, it omits quotes and rationale details (though rationale has schema description). The description partially compensates for low coverage but not fully.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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, listing specific data points (24h volume, market count, trust score, etc.) and providing representative usage examples. It explicitly distinguishes from sibling tools like getExchangeMarkets and search/getExchanges, making purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use (e.g., 'tell me about Binance') and when not to use (e.g., for traded pairs use getExchangeMarkets). It guides users to first find the exchange ID via search or getExchanges, and confirms 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.
getExchangeMarketsARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| quotes | No | ||
| rationale | Yes | REQUIRED. In 1-2 sentences explain WHY you are calling this tool and what you intend to do with the result. Examples: 'User asked for BTC price; calling getTickersById to fetch current USD value.' 'Building a portfolio dashboard; need OHLCV for ETH last 7 days.' This is logged and reviewed to improve the MCP. Do not include user PII or secrets — use generic descriptions. | |
| exchangeId | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description adds behavioral context beyond annotations: declares read-only, no API key required. Annotations already include readOnlyHint=true, idempotentHint=true, and 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is information-dense and well-organized: begins with core function, then examples, differentiation, parameter details. Slightly long but no wasted sentences.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 4 parameters and no output schema, the description covers the return format and all parameter details. Missing explicit mention of the return structure (e.g., array vs object) but sufficient for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is low (25%, only rationale described), but the description explains exchangeId, quotes (default 'usd'), limit (default 50, max 250) with examples, adding significant meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists trading pairs for a specific exchange with detailed fields. It provides concrete usage examples ('what pairs trade on Binance', 'markets on Kraken') and distinguishes itself from sibling tools like getExchangeByID and getExchanges.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly tells when to use this tool (listing markets) and when to use alternatives (getExchangeByID for exchange-level stats, getExchanges to find exchangeId). No ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getExchangesARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| quotes | No | ||
| rationale | Yes | REQUIRED. In 1-2 sentences explain WHY you are calling this tool and what you intend to do with the result. Examples: 'User asked for BTC price; calling getTickersById to fetch current USD value.' 'Building a portfolio dashboard; need OHLCV for ETH last 7 days.' This is logged and reviewed to improve the MCP. Do not include user PII or secrets — use generic descriptions. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, destructiveHint. Description adds 'Read-only', 'No API key required', and details parameter behaviors (defaults, max values). 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Reasonably concise and front-loaded with purpose. Slightly dense but clear. Could benefit from breaking into bullet points for better scanability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Cover input parameters well and output fields. Given no output schema, description provides enough context. Complexity is moderate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 33% (only rationale described). Description compensates by explaining quotes (comma-separated, default 'usd') and limit (default 50, max 250). Could mention rationale meta-parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it lists exchanges ranked by rank with specific fields (id, name, trust score, active market count, 24h volume). Distinguishes 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly gives use cases: 'top exchanges by volume', 'biggest crypto exchanges', or to find exchangeId. Provides alternatives: use getExchangeByID for full stats, getExchangeMarkets for trading pairs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getGlobalARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| rationale | Yes | REQUIRED. In 1-2 sentences explain WHY you are calling this tool and what you intend to do with the result. Examples: 'User asked for BTC price; calling getTickersById to fetch current USD value.' 'Building a portfolio dashboard; need OHLCV for ETH last 7 days.' This is logged and reviewed to improve the MCP. Do not include user PII or secrets — use generic descriptions. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description claims 'takes no parameters' but input schema has a required 'rationale' parameter. This is misleading. Annotations already indicate readOnly, but the parameter discrepancy undermines transparency. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Generally concise with front-loaded purpose, but the incorrect 'takes no parameters' wastes space and misleads, reducing conciseness effectiveness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers return data, usage context, and alternative tool, but fails to mention the required rationale parameter, leaving incomplete guidance for proper invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% so baseline is 3, but description incorrectly states no parameters and does not elaborate on the rationale field, adding no value and creating confusion.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool gets a global crypto market overview with specific metrics (market cap, volume, BTC dominance, change). It distinguishes from sibling tool getTickersById for single coin price, making purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly provides example queries ('how is the crypto market doing', 'total market cap', 'BTC dominance') and names alternative tool getTickersById for single coin prices, guiding correct usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getHistoricalTickerByContractARead-onlyIdempotentInspect
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).
| Name | Required | Description | Default |
|---|---|---|---|
| end | No | Optional end timestamp. Same formats as start. Defaults to now if omitted. | |
| limit | No | Optional. Number of data points (default 50, max 250). | |
| quote | No | Optional quote currency code (default 'usd'). | usd |
| start | Yes | Required. Start timestamp. Accepts ISO 8601 ('2026-01-15T00:00:00Z') or date-only ('2026-01-15'). UTC. | |
| interval | No | Optional. Sampling interval. Common values: '5m', '15m', '30m', '1h', '6h', '12h', '24h', '7d', '14d', '30d'. Upstream supports additional intervals; consult CoinPaprika docs if you need something outside this list. | 5m |
| rationale | Yes | REQUIRED. In 1-2 sentences explain WHY you are calling this tool and what you intend to do with the result. Examples: 'User asked for BTC price; calling getTickersById to fetch current USD value.' 'Building a portfolio dashboard; need OHLCV for ETH last 7 days.' This is logged and reviewed to improve the MCP. Do not include user PII or secrets — use generic descriptions. | |
| platformId | Yes | Platform identifier (e.g., 'eth-ethereum', 'bnb-binance-coin'). Use getPlatforms to discover valid platforms. | |
| contractAddress | Yes | Token contract address on the platform. EVM addresses are case-insensitive; Solana addresses are case-sensitive base58. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly and idempotent hints. The description adds valuable behavioral context: it returns a time series, explains parameter defaults and constraints (interval options, limit caps), and notes the plan requirement. No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single paragraph that efficiently covers purpose, usage, parameter details, and plan requirement. It is front-loaded with the main action. Some restructuring (e.g., bullet points for parameters) could improve scannability, but it remains concise without waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 8 parameters and no output schema, the description provides comprehensive context: when to use, parameter formats, defaults, limits, and plan requirement. It explains the return type (time series) but doesn't detail the exact JSON structure, which is acceptable given the complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds meaning beyond schema by summarizing parameters with examples (e.g., platformId as 'eth-ethereum'), clarifying formats (ISO 8601 vs date-only), and noting the rationale parameter requirement. This compensates for the lack of enums and nested objects.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves a token's price and market history as a time series by contract address. It distinguishes itself 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit usage examples ('token price on 2024-01-01 by address', 'hourly history for a contract') and directs when to use alternatives (current price or by coin id). Also mentions the required Starter+ plan, giving clear context for invocation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getMappingsARead-onlyIdempotentInspect
Get mappings between CoinPaprika ids and external or legacy identifiers (CoinMarketCap, CoinGecko, CryptoCompare, ISIN, DTI) so you can reconcile ids across systems. Use for 'map CoinPaprika ids to X', 'id crosswalk', 'external id mapping'. Read-only; every parameter is an optional filter for that provider's id, and supplying more than one narrows the result. Requires your own Business-plan CoinPaprika key; without one this hosted server returns a plan-required message.
| Name | Required | Description | Default |
|---|---|---|---|
| dti | No | ||
| isin | No | ||
| coingecko | No | ||
| rationale | Yes | REQUIRED. In 1-2 sentences explain WHY you are calling this tool and what you intend to do with the result. Examples: 'User asked for BTC price; calling getTickersById to fetch current USD value.' 'Building a portfolio dashboard; need OHLCV for ETH last 7 days.' This is logged and reviewed to improve the MCP. Do not include user PII or secrets — use generic descriptions. | |
| coinpaprika | No | ||
| coinmarketcap | No | ||
| cryptocompare | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds behavioral context beyond annotations: it states the tool is read-only, requires a Business-plan CoinPaprika key, and returns a plan-required message without one. However, it incorrectly claims 'every parameter is an optional filter' when 'rationale' is required, slightly reducing transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured: it starts with the core purpose, then usage guidance, and finally behavioral notes. Every sentence adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the absence of an output schema, the description adequately explains the tool's nature and requirements (e.g., Business-plan key). It does not detail return format, but the purpose is clear enough for most use cases.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With only 14% schema description coverage, the description compensates by listing the six provider-specific parameters (dti, isin, coingecko, etc.) and explaining they are optional filters. However, it does not address the 'rationale' parameter separately, relying on the schema for its description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that the tool gets mappings between CoinPaprika IDs and external/legacy identifiers (e.g., CoinMarketCap, CoinGecko). It specifies the verb 'Get' and the resource 'mappings', and distinguishes from sibling tools by focusing on ID crosswalking.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit use cases ('map CoinPaprika ids to X', 'id crosswalk', 'external id mapping') and explains that parameters are optional filters that narrow results. However, it does not explicitly state when not to use it or mention alternatives among the sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getPeopleByIdARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| personId | Yes | ||
| rationale | Yes | REQUIRED. In 1-2 sentences explain WHY you are calling this tool and what you intend to do with the result. Examples: 'User asked for BTC price; calling getTickersById to fetch current USD value.' 'Building a portfolio dashboard; need OHLCV for ETH last 7 days.' This is logged and reviewed to improve the MCP. Do not include user PII or secrets — use generic descriptions. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool as read-only, open-world, idempotent, and non-destructive. The description adds that it is read-only, requires no API key, and returns 'not found' for unknown IDs. It also details the response fields, providing valuable behavioral context beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-organized: it opens with the core function, lists fields, gives usage examples, explains prerequisites, and details parameters. Every sentence adds value. It could be slightly more concise, but it efficiently conveys all necessary information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple (get profile by ID), and the description covers what it returns, how to obtain the ID, behavior on missing IDs, and authentication (none required). No output schema exists, but the description enumerates response fields. This is complete for an agent to use correctly without further guesswork.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description explains personId as 'a canonical person id such as 'vitalik-buterin'' and clarifies behavior on unknown IDs. For rationale, it provides examples and states the 20-500 character requirement. Schema coverage is 50% (only rationale described), but the description compensates by elaborating on both parameters, adding meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it retrieves a person's profile by ID, lists the fields returned (name, bio, teams, positions, projects, accounts), and gives example queries. It distinguishes from siblings like search and resolveId by specifying that this tool requires an exact ID.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly instructs to first find the personId using search or resolveId with type 'people', and notes that the tool needs an exact ID, not a name. It provides example use cases. However, it doesn't explicitly contrast with other sibling tools like getCoinById, which is acceptable given the domain difference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getPlatformsARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| rationale | Yes | REQUIRED. In 1-2 sentences explain WHY you are calling this tool and what you intend to do with the result. Examples: 'User asked for BTC price; calling getTickersById to fetch current USD value.' 'Building a portfolio dashboard; need OHLCV for ETH last 7 days.' This is logged and reviewed to improve the MCP. Do not include user PII or secrets — use generic descriptions. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description adds 'Read-only; limit caps results. No API key required.' Annotations already declare readOnlyHint, openWorldHint, idempotentHint, destructiveHint false. The description confirms read-only and adds specific limits and auth requirements, adding value beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, each adds value: first states purpose, second gives usage examples, third adds behavioral and auth info. No wasted words, front-loaded with core functionality.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only list tool, description covers purpose, usage, behavioral traits, and auth. No output schema, but the expected result (list of platforms) is clear from context. Minor gap: no mention of pagination or result fields, but not critical.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Description only vaguely mentions 'limit caps results' but does not detail the limit parameter's semantics. Schema coverage is 50% (rationale has description in schema, limit does not). Description fails to compensate for missing schema documentation, adding no new parameter meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description explicitly states the verb 'list' and specific resource 'smart-contract platforms', with examples (ethereum, bnb, polygon). It also distinguishes from sibling getContracts by noting it provides platform IDs used before calling getContracts.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description provides explicit use cases: 'which chains are supported for contract lookups', 'list contract platforms', or 'to pick a platform id before calling getContracts'. It does not state when not to use, but the context is clear and alternatives exist among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getTagByIdARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| tagId | Yes | ||
| rationale | Yes | REQUIRED. In 1-2 sentences explain WHY you are calling this tool and what you intend to do with the result. Examples: 'User asked for BTC price; calling getTickersById to fetch current USD value.' 'Building a portfolio dashboard; need OHLCV for ETH last 7 days.' This is logged and reviewed to improve the MCP. Do not include user PII or secrets — use generic descriptions. | |
| additionalFields | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark readOnlyHint=true, destructiveHint=false, idempotentHint=true, openWorldHint=true. The description complements these by explicitly stating 'Read-only' and describing the error behavior (unknown tagId returns error) and optional fields. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but every sentence adds value: purpose, examples, parameter details, error handling, and authentication. Front-loaded with the main action and concise enough to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description covers the return fields (id, name, description, coin_counter, ico_counter, optional coins/ICOs). It also discusses error handling and authentication. A minor gap: no mention of pagination or structure for the nested coins/ICOs lists, but that may be acceptable for a single-tag lookup.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is low (33%) but the description adds meaning: tagId is a tag id from getTags (e.g., 'defi'), additionalFields is a comma-separated list of 'coins' and 'icos'. This explains the purpose and allowed values beyond the bare schema. The rationale parameter is described in the schema so the description does not need to repeat it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool fetches details for a single tag by ID, listing fields like id, name, description, coin_counter, ico_counter, and optional nested coins/ICOs. It provides specific example queries ('what coins are in the defi tag') and distinguishes from sibling getTags by saying 'To list every tag or find a tagId first use getTags.'
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use: for queries about coins/ICOs in a tag. Includes step-by-step guidance: first use getTags to get tagId. Mentions error handling for unknown tagId and that no API key is required. This helps the agent decide when to invoke this tool versus alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getTagsARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| rationale | Yes | REQUIRED. In 1-2 sentences explain WHY you are calling this tool and what you intend to do with the result. Examples: 'User asked for BTC price; calling getTickersById to fetch current USD value.' 'Building a portfolio dashboard; need OHLCV for ETH last 7 days.' This is logged and reviewed to improve the MCP. Do not include user PII or secrets — use generic descriptions. | |
| additionalFields | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only, idempotent, open-world, non-destructive. Description adds 'No API key required', which is useful behavioral information. No contradictions. However, it does not mention rate limits or other potential constraints, leaving some gaps. Score 4 for adding value beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is relatively long but well-structured with front-loaded purpose. Each sentence adds value, though some rephrasing could tighten it. No wasted words, but could be slightly more concise. Score 4.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given a simple list tool with no output schema and moderate parameter complexity, the description covers purpose, usage, parameter details, and authentication. It lists return fields, which is sufficient. Could mention pagination if applicable, but overall complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is low (33%), but description compensates by explaining additionalFields (comma-separated, valid values 'coins' and 'icos') and limit (default 50, max 250) in detail. This adds significant meaning beyond the schema, earning a 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'List all CoinPaprika tags' and explains the resource (tags) and their fields (id, name, coin_counter, ico_counter). It also distinguishes from the sibling tool getTagById, 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.
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 instructs: 'For the coins inside one tag use getTagById', providing clear alternatives and context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getTickerByContractARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| rationale | Yes | REQUIRED. In 1-2 sentences explain WHY you are calling this tool and what you intend to do with the result. Examples: 'User asked for BTC price; calling getTickersById to fetch current USD value.' 'Building a portfolio dashboard; need OHLCV for ETH last 7 days.' This is logged and reviewed to improve the MCP. Do not include user PII or secrets — use generic descriptions. | |
| platformId | Yes | ||
| contractAddress | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, destructiveHint. Description adds context like 'Read-only', parameter descriptions (e.g., platformId is chain), and 'No API key required', which enhances transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three concise sentences covering purpose, usage, and parameter hints with no redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Simple lookup tool with 3 required params, no output schema. Description covers what it returns and how to use, though could mention error handling or rate limits.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 33% (only rationale described). Description explains platformId (chain with example) and contractAddress (token address), providing meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action 'Get current price and market data' and the resource 'token by its contract address'. It distinguishes from sibling tool 'getHistoricalTickerByContract'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly tells when to use ('when you have a contract address') and provides alternative for history ('use getHistoricalTickerByContract').
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getTickersARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| quotes | No | ||
| rationale | Yes | REQUIRED. In 1-2 sentences explain WHY you are calling this tool and what you intend to do with the result. Examples: 'User asked for BTC price; calling getTickersById to fetch current USD value.' 'Building a portfolio dashboard; need OHLCV for ETH last 7 days.' This is logged and reviewed to improve the MCP. Do not include user PII or secrets — use generic descriptions. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint false. The description adds 'Read-only' and 'No API key required' but does not disclose additional behavioral traits beyond the annotations. The description does not contradict annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a compact three-sentence paragraph. Every sentence adds unique value: the first defines the action, the second provides usage examples and alternatives, and the third clarifies parameters and access. No redundant or unnecessary text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (top cryptocurrencies list), the description covers purpose, data fields (prices, market caps, 24h changes), ranking basis (market cap), usage examples, alternative tool, and access requirement (no API key). The lack of an output schema is acceptable as the return structure is implied by the described data fields.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has low description coverage (33%): only rationale has a schema description. The tool description adds meaning for limit ('caps results') and quotes ('sets the quote currencies (default USD)'), compensating for missing schema descriptions. However, it doesn't mention the required rationale parameter, which is already described in schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 ranked by market cap. It distinguishes itself from sibling getTickersById by specifying that getTickers is for top coins or market snapshots.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly says 'Use for 'top 5 coins', 'top crypto today', 'biggest cryptocurrencies', or a market snapshot' and 'For one specific coin use getTickersById'. Also notes 'No API key required', providing clear when-to-use and alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getTickersByIdARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| coinId | Yes | Canonical CoinPaprika coin slug in 'symbol-name' format, e.g. 'btc-bitcoin', 'eth-ethereum', 'ada-cardano'. Do NOT pass ticker symbols ('BTC', 'AAVE') or guess the slug — it is not derivable from the symbol (e.g. AAVE resolves to 'aave-new', which you could not guess). Call search or resolveId first to resolve a symbol or name to its canonical id. | |
| quotes | No | ||
| rationale | Yes | REQUIRED. In 1-2 sentences explain WHY you are calling this tool and what you intend to do with the result. Examples: 'User asked for BTC price; calling getTickersById to fetch current USD value.' 'Building a portfolio dashboard; need OHLCV for ETH last 7 days.' This is logged and reviewed to improve the MCP. Do not include user PII or secrets — use generic descriptions. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint, idempotentHint, and destructiveHint. The description confirms read-only nature and 'No API key required'. It adds context about coinId needing resolution, which is valuable. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (4 sentences) and front-loaded with the primary action and use cases. Every sentence adds value, and there is no redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only tool with few parameters and good annotations, the description covers purpose, usage, parameter details, and return values (price, market cap, etc.). It lacks explicit mention of rate limits or pagination, but those are not relevant here.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Although schema coverage is 67%, the description explains the coinId format and resolution need, and clarifies that quotes defaults to USD. This adds meaning beyond schema, though the quotes parameter lacks a schema description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves current price, market cap, 24h change, and volume for a cryptocurrency. It provides concrete usage examples and distinguishes from getTickersHistoricalById for past prices.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says when to use (for 'what is the price of X') and when to use an alternative (for past prices). It also advises resolving coinId with resolveId first. However, it doesn't differentiate from other similar sibling tools like getTickerByContract.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getTickersHistoricalByIdARead-onlyIdempotentInspect
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).
| Name | Required | Description | Default |
|---|---|---|---|
| end | No | Optional end timestamp. Same formats as start. Defaults to now if omitted. | |
| limit | No | Optional. Number of data points (default 50, max 250). | |
| quote | No | Optional quote currency code (default 'usd'). Examples: 'usd', 'btc', 'eth'. | usd |
| start | Yes | Required. Start timestamp. Accepts ISO 8601 ('2026-01-15T00:00:00Z') or date-only ('2026-01-15'). UTC. | |
| coinId | Yes | 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. | |
| interval | No | Optional. Sampling interval. Common values: '5m', '15m', '30m', '1h', '6h', '12h', '24h', '7d', '14d', '30d'. Upstream supports additional intervals; consult CoinPaprika docs if you need something outside this list. | 5m |
| rationale | Yes | REQUIRED. In 1-2 sentences explain WHY you are calling this tool and what you intend to do with the result. Examples: 'User asked for BTC price; calling getTickersById to fetch current USD value.' 'Building a portfolio dashboard; need OHLCV for ETH last 7 days.' This is logged and reviewed to improve the MCP. Do not include user PII or secrets — use generic descriptions. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false. The description adds 'Read-only' and important context like requiring a Starter+ plan and explaining parameter behavior (e.g., default intervals, max limit). 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured: purpose first, usage guidance, then parameter summary. It is moderately concise without extraneous text. Every sentence provides value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
While the description covers purpose, usage, and parameters, it lacks detail on output format (e.g., returned fields) and pagination behavior beyond the limit parameter. Since no output schema exists, the agent would benefit from knowing response structure.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, but the description adds significant value beyond schema: explains coinId format and warns against guessing slugs, details start/end formats, lists common intervals, and specifies limit defaults/max. The only missing param (rationale) is fully described in schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves point-in-time snapshots of price, market cap, and volume for a coin at past times. It distinguishes from sibling tools getCoinOHLCVHistorical and getTickersById by explicitly stating what it is not (OHLC candles) and when to use alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit usage examples ('price of BTC last Tuesday', 'ETH market cap on 2024-01-01') and clear when-not-to-use guidelines: 'For OHLC chart candles use getCoinOHLCVHistorical; for the current price use getTickersById.' This eliminates ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
keyInfoARead-onlyIdempotentInspect
Get details and usage for the CoinPaprika API key you supplied: plan, quota, requests remaining and expiry. Use for 'what plan am I on', 'how many requests are left', 'is my API key valid'. Read-only; takes no parameters. Requires you to supply your own paid-plan CoinPaprika key; without one this hosted server returns a plan-required message instead of calling the API. It reports your key, never the server's.
| Name | Required | Description | Default |
|---|---|---|---|
| rationale | Yes | REQUIRED. In 1-2 sentences explain WHY you are calling this tool and what you intend to do with the result. Examples: 'User asked for BTC price; calling getTickersById to fetch current USD value.' 'Building a portfolio dashboard; need OHLCV for ETH last 7 days.' This is logged and reviewed to improve the MCP. Do not include user PII or secrets — use generic descriptions. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds useful context: it explains the tool is read-only (consistent with annotations), requires a user's own key, and returns a plan-required message if missing. However, it falsely claims 'takes no parameters' when the input schema requires a 'rationale' parameter. This inaccuracy reduces transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (5 sentences) and front-loaded with the purpose. It avoids fluff, but the misleading statement about parameters detracts from overall structure.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description adequately covers return values (plan, quota, requests remaining, expiry) and the missing-key behavior. However, it omits the rationale parameter entirely and does not mention error handling beyond the missing-key case.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers the rationale parameter 100%, but the description does not add meaning—it incorrectly states there are no parameters. This misleads the agent about the tool's interface, so the description fails to enhance understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Get details and usage for the CoinPaprika API key you supplied: plan, quota, requests remaining and expiry.' It uses specific verbs and resource, and this tool is distinct from the many siblings focused on coins, exchanges, and other data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides concrete usage examples ('what plan am I on', 'how many requests are left', 'is my API key valid') and states the prerequisite of supplying a paid-plan key. It does not explicitly mention when not to use or alternatives, but the context makes it clear this is for key-only queries.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
priceConverterARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| amount | No | Optional. Amount of base currency to convert (default 1). Passing 0 returns a 0-valued response, which is rarely what you want — use 1 to get a unit-rate quote. | |
| rationale | Yes | REQUIRED. In 1-2 sentences explain WHY you are calling this tool and what you intend to do with the result. Examples: 'User asked for BTC price; calling getTickersById to fetch current USD value.' 'Building a portfolio dashboard; need OHLCV for ETH last 7 days.' This is logged and reviewed to improve the MCP. Do not include user PII or secrets — use generic descriptions. | |
| baseCurrencyId | Yes | Required. Source CoinPaprika coin slug (e.g., 'btc-bitcoin'). Full slugs only; symbols like 'BTC' are rejected upstream. | |
| quoteCurrencyId | Yes | Required. Target CoinPaprika coin slug (e.g., 'usd-us-dollars', 'eth-ethereum'). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint, openWorldHint, idempotentHint, and non-destructive. The description adds 'Read-only; baseCurrencyId and quoteCurrencyId are canonical ids and amount is the quantity to convert. No API key required.' It also warns in the parameter description that passing 0 returns a 0-valued response. This adds useful behavioral context beyond annotations, and nothing contradicts them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose and examples in the first sentence. The second and third sentences add critical usage distinctions and parameter context. Every sentence earns its place; there is no fluff or repetition. At ~80 words, it is concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (4 parameters, 3 required), 100% schema coverage, and full annotations, the description covers key aspects: purpose, usage examples, contrast with sibling, parameter constraints, and idempotency/read-only nature. Without an output schema, it doesn't need to detail return format. The description is complete and leaves no critical ambiguity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. However, the description adds significant value: it explains that 'baseCurrencyId' and 'quoteCurrencyId' are CoinPaprika slugs and that symbols like 'BTC' are rejected. For 'amount', it clarifies the default of 1 and warns about passing 0. The 'rationale' parameter is also explained with examples and usage notes. These additions go well beyond the schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it converts an amount from one crypto or fiat to another at the current rate, with examples ('0.5 BTC in USD', '100 USDC to EUR'). It distinguishes itself from sibling getTickersById by specifying that tool is for 'plain coin price without an amount'. The purpose is specific, actionable, and well-differentiated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit when-to-use (for conversions with an amount) and when-not-to-use (plain price, use getTickersById). It gives concrete examples of valid calls and clarifies that no API key is required. This gives the agent clear context for selecting the tool over alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
resolveIdARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| type | Yes | ||
| limit | No | ||
| query | Yes | ||
| rationale | Yes | REQUIRED. In 1-2 sentences explain WHY you are calling this tool and what you intend to do with the result. Examples: 'User asked for BTC price; calling getTickersById to fetch current USD value.' 'Building a portfolio dashboard; need OHLCV for ETH last 7 days.' This is logged and reviewed to improve the MCP. Do not include user PII or secrets — use generic descriptions. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true. Description adds that it returns candidates with id, name, symbol, type, rank; empty list means no match; and that it is read-only with no API key needed. This enriches beyond annotations, though no disclosure of rate limits or error handling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single dense paragraph front-loading purpose, then usage, return format, params, examples. Efficient but could be structured into sections for clarity; no wasted sentences.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and moderate parameter count, the description covers purpose, usage workflow, return structure, parameter details, and examples. Missing only the rationale parameter explanation, but that is in the schema. Still, it feels fairly complete for the agent's needs.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 25% (only rationale has schema description). The tool description explains type (required, enum), query (required, fuzzy), limit (optional, default 50, max 250) but omits the rationale parameter entirely. This adds meaning for three of four parameters but misses a required one, partially compensating.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it resolves fuzzy names/symbols to candidate ids, specifying entity kinds (coin, exchange, people, tags). It distinguishes from siblings by advising to call FIRST before getTickersById, establishing a clear workflow.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 provides a workflow: resolve then pass to getTickersById for price. Also notes no API key required, giving clear usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
searchARead-onlyIdempotentInspect
Broadly search CoinPaprika across coins, exchanges, ICOs, people and tags by name or symbol when the entity type is unknown or you are exploring. Use for 'find anything called X'. If you specifically need a coin's canonical id to fetch its price, prefer resolveId. Read-only; q is the query, categories filters entity types, limit caps results. No API key required.
| Name | Required | Description | Default |
|---|---|---|---|
| q | Yes | Required. Search query (case-insensitive, partial-match). | |
| limit | No | Optional. Items PER CATEGORY (not total). Default 50. | |
| modifier | No | Optional. Upstream-specific search modifier. | |
| rationale | Yes | REQUIRED. In 1-2 sentences explain WHY you are calling this tool and what you intend to do with the result. Examples: 'User asked for BTC price; calling getTickersById to fetch current USD value.' 'Building a portfolio dashboard; need OHLCV for ETH last 7 days.' This is logged and reviewed to improve the MCP. Do not include user PII or secrets — use generic descriptions. | |
| categories | No | Optional. Comma-separated category filter: 'currencies', 'exchanges', 'icos', 'people', 'tags'. Omit to search all categories. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint, idempotentHint, and destructiveHint. The description adds context beyond annotations by stating 'Read-only', 'No API key required', and briefly explaining parameters (query, categories, limit). 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose, followed by a contrast with a sibling tool. It is concise (two sentences plus minor additional detail) with no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having 5 parameters and no output schema, the description covers usage context, alternatives, safety (read-only), and basic parameter roles. It is complete for a search tool with good annotations, though output format is not mentioned.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with detailed descriptions for each parameter. The description adds no new information about parameters beyond what is in the schema, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it performs a broad search across coins, exchanges, ICOs, people, and tags by name or symbol. It distinguishes from the sibling tool resolveId by specifying that this tool is for unknown entity types or exploration, while resolveId is for obtaining a coin's canonical ID to fetch price.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use this tool ('when the entity type is unknown or you are exploring') and when not to ('if you specifically need a coin's canonical id to fetch its price, prefer resolveId'). Also clarifies it is read-only and requires no API key.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
statusBRead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| rationale | Yes | REQUIRED. In 1-2 sentences explain WHY you are calling this tool and what you intend to do with the result. Examples: 'User asked for BTC price; calling getTickersById to fetch current USD value.' 'Building a portfolio dashboard; need OHLCV for ETH last 7 days.' This is logged and reviewed to improve the MCP. Do not include user PII or secrets — use generic descriptions. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description claims 'takes no parameters' but input schema requires a 'rationale' parameter. This is a factual contradiction. The read-only claim matches annotations but the parameter misstatement misleads. No contradiction with annotations, but schema contradiction reduces transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences are front-loaded, but the inaccurate claim about parameters undermines conciseness. A correct description would be similarly brief but accurate. The error makes it not 'appropriately sized'.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple tool, description covers purpose and usage but fails to acknowledge the required 'rationale' parameter. Without output schema, description should at least hint at return values or the need for rationale. Missing key context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Despite 100% schema coverage, description incorrectly states 'takes no parameters' and completely ignores the 'rationale' parameter. This actively misleads the agent, providing no useful semantics and instead giving false information.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'Get the CoinPaprika MCP server's status and configuration' with specific attributes (uptime, mode, enabled features). It distinguishes from sibling tool getGlobal by noting market health vs server status.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly provides usage examples ('is the server up', 'what mode am I in', 'server status') and tells when not to use (for market health, use getGlobal). Clearly defines the tool's use case.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
submitFeedbackAInspect
Report a problem or gap back to the CoinPaprika MCP maintainers: call it when you got stuck, a response was unexpected, information you needed was missing, or a tool did not behave as documented. Use when the user says 'this is wrong', 'report this', 'that did not work'. Low friction, partial feedback is welcome, and every submission is read.
| Name | Required | Description | Default |
|---|---|---|---|
| goal | Yes | REQUIRED: What you (or the user behind you) were trying to accomplish. | |
| expected | No | OPTIONAL: What you expected to happen. | |
| observed | No | OPTIONAL: What actually happened. | |
| severity | No | OPTIONAL: How badly this affected your task. Default 'minor'. | minor |
| blocked_at | No | OPTIONAL: Tool name or step where you got stuck. | |
| attempted_tools | No | OPTIONAL: List of tool names you called, in order, before submitting this feedback. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds context beyond annotations: 'Low friction, partial feedback is welcome, and every submission is read.' This informs the agent about expected behavior (non-destructive, human review) without contradicting the all-false annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with purpose, then usage guidelines, then behavioral note. No wasted words; every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Simple feedback tool with 6 parameters well-documented in schema. Description provides usage context and behavioral traits. No output schema needed; complete for the tool's purpose.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with good parameter descriptions. Description adds little over schema, only encouraging partial feedback. Baseline 3 is appropriate as schema carries the load.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'Report a problem or gap' and specifies the resource (CoinPaprika MCP maintainers). It distinguishes from sibling tools which are all data retrieval or utility; no other tool serves a feedback function.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says when to use: 'call it when you got stuck, a response was unexpected...' and gives user cues like 'this is wrong'. No exclusions or alternatives needed since no sibling tool does feedback.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Claim this connector by publishing a /.well-known/glama.json file on your server's domain with the following structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"maintainers": [{ "email": "your-email@example.com" }]
}The email address must match the email associated with your Glama account. Once published, Glama will automatically detect and verify the file within a few minutes.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!
Related MCP Servers
- AlicenseAqualityAmaintenanceGTM signal intelligence suite for AI agents. Six tools: hiring signals, tech stack detection, company-to-LinkedIn resolution, ICP scoring, job board scanning, and a combined signals aggregator. Built for outbound sales workflows.117371MIT

industrylens-mcpofficial
Flicense-qualityCmaintenanceBrowse IndustryLens's published competitive-intelligence reports and head-to-head competitor comparisons from any AI agent — real, source-backed data.
Sociality MCPofficial
Alicense-qualityDmaintenanceSocial media analytics, post insights, and competitor benchmarking for AI agents.6MIT- AlicenseAqualityAmaintenanceDetects hiring intent signals by scanning job boards for specific companies. Returns structured role data for outbound sales targeting.1761MIT