@coinpaprika/mcp 1.2.0 → 1.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +11 -0
- package/README.md +19 -19
- package/dist/index.js +37 -35
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,17 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to the CoinPaprika MCP Server will be documented in this file.
|
|
4
4
|
|
|
5
|
+
## [1.3.0] - 2026-07-27
|
|
6
|
+
|
|
7
|
+
### Changed
|
|
8
|
+
|
|
9
|
+
- **Intent-first tool descriptions.** Every tool description was rewritten so agents select the right tool from the description alone, each leading with what the tool returns plus `Use when asked '...'` cues (e.g. `getTickers` vs `getCoinById` vs `getContracts`). Matches the descriptions now served by the hosted worker at `mcp.coinpaprika.com`, so hosted and self-host read identically.
|
|
10
|
+
- `getCapabilities` description aligned with the hosted worker (onboarding-first wording; clarifies it describes the MCP server itself, not crypto data).
|
|
11
|
+
|
|
12
|
+
### Added
|
|
13
|
+
|
|
14
|
+
- `server.json` manifest for publication to the official MCP Registry (`registry.modelcontextprotocol.io`).
|
|
15
|
+
|
|
5
16
|
## [1.1.1] - 2026-05-05
|
|
6
17
|
|
|
7
18
|
### Fixed
|
package/README.md
CHANGED
|
@@ -12,7 +12,7 @@ npm install -g @coinpaprika/mcp
|
|
|
12
12
|
coinpaprika-mcp
|
|
13
13
|
|
|
14
14
|
# Or run directly without installation
|
|
15
|
-
npx @coinpaprika/mcp
|
|
15
|
+
npx @coinpaprika/mcp@latest
|
|
16
16
|
```
|
|
17
17
|
|
|
18
18
|
CoinPaprika MCP connects Claude to live crypto market data for 8,000+ coins. No API key required for free-tier features. [Installation](#installation) | [Configuration](#claude-desktop-integration) | [API Reference](https://api.coinpaprika.com)
|
|
@@ -25,7 +25,7 @@ CoinPaprika MCP connects Claude to live crypto market data for 8,000+ coins. No
|
|
|
25
25
|
- **Coin Analysis Tools**: Deep-dive into any cryptocurrency — price, team, events, exchanges, and markets
|
|
26
26
|
- **Price Trackers**: Track prices across multiple quote currencies with historical OHLCV data
|
|
27
27
|
- **Exchange Comparisons**: Compare trading pairs and volumes across 200+ exchanges
|
|
28
|
-
- **Portfolio Valuations**: Convert between currencies and track price changes over time
|
|
28
|
+
- **Portfolio Valuations**: Convert an amount between currencies ('0.5 BTC in USD') and track price changes over time
|
|
29
29
|
- **Contract Lookup**: Find tokens by their smart contract address across multiple platforms
|
|
30
30
|
|
|
31
31
|
## Installation
|
|
@@ -59,7 +59,7 @@ Add the following to your Claude Desktop configuration file:
|
|
|
59
59
|
"mcpServers": {
|
|
60
60
|
"coinpaprika": {
|
|
61
61
|
"command": "npx",
|
|
62
|
-
"args": ["@coinpaprika/mcp"]
|
|
62
|
+
"args": ["@coinpaprika/mcp@latest"]
|
|
63
63
|
}
|
|
64
64
|
}
|
|
65
65
|
}
|
|
@@ -72,7 +72,7 @@ Add the following to your Claude Desktop configuration file:
|
|
|
72
72
|
"mcpServers": {
|
|
73
73
|
"coinpaprika": {
|
|
74
74
|
"command": "npx",
|
|
75
|
-
"args": ["@coinpaprika/mcp"],
|
|
75
|
+
"args": ["@coinpaprika/mcp@latest"],
|
|
76
76
|
"env": {
|
|
77
77
|
"COINPAPRIKA_API_KEY": "your-api-key-here"
|
|
78
78
|
}
|
|
@@ -85,10 +85,10 @@ Add the following to your Claude Desktop configuration file:
|
|
|
85
85
|
|
|
86
86
|
```bash
|
|
87
87
|
# Add as MCP server in Claude Code
|
|
88
|
-
claude mcp add coinpaprika -- npx @coinpaprika/mcp
|
|
88
|
+
claude mcp add coinpaprika -- npx @coinpaprika/mcp@latest
|
|
89
89
|
|
|
90
90
|
# With API key
|
|
91
|
-
COINPAPRIKA_API_KEY=your-key claude mcp add coinpaprika -- npx @coinpaprika/mcp
|
|
91
|
+
COINPAPRIKA_API_KEY=your-key claude mcp add coinpaprika -- npx @coinpaprika/mcp@latest
|
|
92
92
|
```
|
|
93
93
|
|
|
94
94
|
### Hosted Alternative (No Installation)
|
|
@@ -122,27 +122,27 @@ If you prefer zero setup, point any MCP-compatible client directly at the hosted
|
|
|
122
122
|
|------|-------------|
|
|
123
123
|
| `getCapabilities` | Server capabilities, workflow patterns, validation rules, and best practices. **Start here.** |
|
|
124
124
|
| `status` | Server status and configuration |
|
|
125
|
-
| `getGlobal` | Global
|
|
125
|
+
| `getGlobal` | Global market overview: total market cap, 24h volume, BTC dominance ('how is the market doing') |
|
|
126
126
|
|
|
127
127
|
### Coins
|
|
128
128
|
|
|
129
129
|
| Tool | Description | Required Parameters |
|
|
130
130
|
|------|-------------|---------------------|
|
|
131
|
-
| `getCoins` | List all coins (id, name, symbol, rank) | — |
|
|
132
|
-
| `getCoinById` | Coin details (description, team, links) | `coinId` |
|
|
131
|
+
| `getCoins` | List all coins (id, name, symbol, rank); no prices, use getTickers for prices | — |
|
|
132
|
+
| `getCoinById` | Coin project details (description, team, links); no price, use getTickersById | `coinId` |
|
|
133
133
|
| `getCoinEvents` | Upcoming events for a coin | `coinId` |
|
|
134
134
|
| `getCoinExchanges` | Exchanges listing a coin | `coinId` |
|
|
135
|
-
| `getCoinMarkets` | Markets/trading
|
|
135
|
+
| `getCoinMarkets` | Markets/exchanges trading a coin ('where to buy X', 'X price on Binance') | `coinId` |
|
|
136
136
|
|
|
137
137
|
### Tickers & Prices
|
|
138
138
|
|
|
139
139
|
| Tool | Description | Required Parameters |
|
|
140
140
|
|------|-------------|---------------------|
|
|
141
|
-
| `getTickers` |
|
|
142
|
-
| `getTickersById` |
|
|
143
|
-
| `getCoinOHLCVLatest` |
|
|
144
|
-
| `getCoinOHLCVToday` |
|
|
145
|
-
| `priceConverter` | Convert between currencies | `baseCurrencyId`, `quoteCurrencyId` |
|
|
141
|
+
| `getTickers` | Current prices + market caps for top coins by market cap ('top 5 coins', market snapshot) | — |
|
|
142
|
+
| `getTickersById` | Current price, market cap & 24h change of one coin ('BTC price', 'how much is ETH') | `coinId` |
|
|
143
|
+
| `getCoinOHLCVLatest` | Latest full-day OHLC candle (not the live price) | `coinId` |
|
|
144
|
+
| `getCoinOHLCVToday` | Today's in-progress OHLC candle | `coinId` |
|
|
145
|
+
| `priceConverter` | Convert an amount between currencies ('0.5 BTC in USD') | `baseCurrencyId`, `quoteCurrencyId` |
|
|
146
146
|
|
|
147
147
|
### Exchanges
|
|
148
148
|
|
|
@@ -166,14 +166,14 @@ If you prefer zero setup, point any MCP-compatible client directly at the hosted
|
|
|
166
166
|
|------|-------------|---------------------|
|
|
167
167
|
| `getPlatforms` | List contract platforms | — |
|
|
168
168
|
| `getContracts` | Contracts on a platform | `platformId` |
|
|
169
|
-
| `getTickerByContract` |
|
|
169
|
+
| `getTickerByContract` | Token price by contract address (on-chain/DeFi tokens) | `platformId`, `contractAddress` |
|
|
170
170
|
|
|
171
171
|
### Search & Resolution
|
|
172
172
|
|
|
173
173
|
| Tool | Description | Required Parameters |
|
|
174
174
|
|------|-------------|---------------------|
|
|
175
|
-
| `search` | Search coins
|
|
176
|
-
| `resolveId` | Resolve
|
|
175
|
+
| `search` | Search coins/exchanges/people/tags by name; use FIRST to get an id | `q` |
|
|
176
|
+
| `resolveId` | Resolve a name/symbol to canonical id; call FIRST before price tools | `type`, `query` |
|
|
177
177
|
|
|
178
178
|
### Paid-Tier Tools
|
|
179
179
|
|
|
@@ -198,7 +198,7 @@ export COINPAPRIKA_API_KEY=your-api-key-here
|
|
|
198
198
|
coinpaprika-mcp
|
|
199
199
|
|
|
200
200
|
# Or pass inline
|
|
201
|
-
COINPAPRIKA_API_KEY=your-api-key-here npx @coinpaprika/mcp
|
|
201
|
+
COINPAPRIKA_API_KEY=your-api-key-here npx @coinpaprika/mcp@latest
|
|
202
202
|
```
|
|
203
203
|
|
|
204
204
|
Get an API key at [coinpaprika.com/api/pricing](https://coinpaprika.com/api/pricing/).
|
package/dist/index.js
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
2
2
|
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
|
|
3
|
+
import { createRequire } from 'module';
|
|
3
4
|
import fetch from 'node-fetch';
|
|
4
5
|
import { z } from 'zod';
|
|
5
6
|
|
|
6
|
-
// Server version
|
|
7
|
-
|
|
7
|
+
// Server version, read from package.json so the banner, capabilities
|
|
8
|
+
// document, and status tool always report the published version.
|
|
9
|
+
const SERVER_VERSION = createRequire(import.meta.url)('../package.json').version;
|
|
8
10
|
|
|
9
11
|
// Optional API key from environment
|
|
10
12
|
const API_KEY = process.env.COINPAPRIKA_API_KEY || '';
|
|
@@ -277,17 +279,17 @@ function buildCapabilitiesDocument() {
|
|
|
277
279
|
service: "coinpaprika",
|
|
278
280
|
aliases: SERVER_ALIASES,
|
|
279
281
|
version: SERVER_VERSION,
|
|
280
|
-
description: "
|
|
282
|
+
description: "Real-time cryptocurrency prices and market data for 12,000+ coins",
|
|
281
283
|
server: {
|
|
282
284
|
name: "CoinPaprika MCP Server",
|
|
283
285
|
version: SERVER_VERSION,
|
|
284
|
-
description: "
|
|
286
|
+
description: "Real-time cryptocurrency prices, market caps, 24h changes and volumes for 12,000+ coins (Bitcoin, Ethereum, Solana, and more) and 350+ exchanges. Use for how much a crypto is worth, top coins by market cap, or live market data.",
|
|
285
287
|
documentation_url: "https://api.coinpaprika.com",
|
|
286
288
|
},
|
|
287
289
|
tools: [
|
|
288
290
|
{
|
|
289
291
|
name: "status",
|
|
290
|
-
description: "
|
|
292
|
+
description: "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.",
|
|
291
293
|
category: "system",
|
|
292
294
|
parameters: {},
|
|
293
295
|
returns: { type: "object" },
|
|
@@ -295,7 +297,7 @@ function buildCapabilitiesDocument() {
|
|
|
295
297
|
},
|
|
296
298
|
{
|
|
297
299
|
name: "getGlobal",
|
|
298
|
-
description: "Get global
|
|
300
|
+
description: "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.",
|
|
299
301
|
category: "market",
|
|
300
302
|
parameters: {},
|
|
301
303
|
returns: { type: "object", properties: ["market_cap_usd", "volume_24h_usd", "bitcoin_dominance_percentage"] },
|
|
@@ -303,7 +305,7 @@ function buildCapabilitiesDocument() {
|
|
|
303
305
|
},
|
|
304
306
|
{
|
|
305
307
|
name: "getCoins",
|
|
306
|
-
description: "List
|
|
308
|
+
description: "List available coins (id, name, symbol, rank). Use to discover coins or map a name to an id. Does NOT include prices; for prices use getTickers or getTickersById.",
|
|
307
309
|
category: "coins",
|
|
308
310
|
parameters: { limit: { type: "integer", required: false, default: 50, min: 1, max: 250 } },
|
|
309
311
|
returns: { type: "array", items: "Coin" },
|
|
@@ -311,7 +313,7 @@ function buildCapabilitiesDocument() {
|
|
|
311
313
|
},
|
|
312
314
|
{
|
|
313
315
|
name: "getTickers",
|
|
314
|
-
description: "Get market
|
|
316
|
+
description: "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.",
|
|
315
317
|
category: "market",
|
|
316
318
|
parameters: {
|
|
317
319
|
quotes: { type: "string", required: false, default: "USD", description: "Comma-separated quote currencies" },
|
|
@@ -322,7 +324,7 @@ function buildCapabilitiesDocument() {
|
|
|
322
324
|
},
|
|
323
325
|
{
|
|
324
326
|
name: "getCoinOHLCVLatest",
|
|
325
|
-
description: "Get
|
|
327
|
+
description: "Get the latest full-day OHLC candle (open/high/low/close plus volume) for a coin. For the live spot price use getTickersById.",
|
|
326
328
|
category: "coins",
|
|
327
329
|
parameters: {
|
|
328
330
|
coinId: { type: "string", required: true, format: "coin-id", example: "btc-bitcoin" },
|
|
@@ -333,7 +335,7 @@ function buildCapabilitiesDocument() {
|
|
|
333
335
|
},
|
|
334
336
|
{
|
|
335
337
|
name: "getCoinOHLCVToday",
|
|
336
|
-
description: "Get
|
|
338
|
+
description: "Get today's in-progress OHLC candle for a coin. For the current spot price use getTickersById; for past candles use getCoinOHLCVHistorical.",
|
|
337
339
|
category: "coins",
|
|
338
340
|
parameters: {
|
|
339
341
|
coinId: { type: "string", required: true, format: "coin-id" },
|
|
@@ -344,7 +346,7 @@ function buildCapabilitiesDocument() {
|
|
|
344
346
|
},
|
|
345
347
|
{
|
|
346
348
|
name: "getCoinOHLCVHistorical",
|
|
347
|
-
description: "Get
|
|
349
|
+
description: "Get OHLC candles (open/high/low/close plus volume) for a coin over a date range, for price charts, backtests and technical analysis. Use for 'daily chart for the last month', 'hourly candles since Jan 1'. For a single past date's spot value use getTickersHistoricalById; not for the current price. Requires Starter+ plan.",
|
|
348
350
|
category: "coins",
|
|
349
351
|
parameters: {
|
|
350
352
|
coinId: { type: "string", required: true, format: "coin-id" },
|
|
@@ -359,7 +361,7 @@ function buildCapabilitiesDocument() {
|
|
|
359
361
|
},
|
|
360
362
|
{
|
|
361
363
|
name: "getCoinById",
|
|
362
|
-
description: "Get
|
|
364
|
+
description: "Get descriptive project information about a coin (description, links, team, tags). Does NOT include price; for price/market cap use getTickersById.",
|
|
363
365
|
category: "coins",
|
|
364
366
|
parameters: { coinId: { type: "string", required: true, format: "coin-id", example: "btc-bitcoin" } },
|
|
365
367
|
returns: { type: "object", properties: ["id", "name", "symbol", "description", "links", "rank"] },
|
|
@@ -367,7 +369,7 @@ function buildCapabilitiesDocument() {
|
|
|
367
369
|
},
|
|
368
370
|
{
|
|
369
371
|
name: "getCoinEvents",
|
|
370
|
-
description: "Get events for a
|
|
372
|
+
description: "Get the timeline of events for a coin (launches, partnerships, hard forks, conference talks) with dates and descriptions. Use when asked 'what is happening with X', 'upcoming events for Ethereum', 'X roadmap events'. For prices or market data use getTickersById.",
|
|
371
373
|
category: "coins",
|
|
372
374
|
parameters: {
|
|
373
375
|
coinId: { type: "string", required: true, format: "coin-id" },
|
|
@@ -378,7 +380,7 @@ function buildCapabilitiesDocument() {
|
|
|
378
380
|
},
|
|
379
381
|
{
|
|
380
382
|
name: "getCoinExchanges",
|
|
381
|
-
description: "
|
|
383
|
+
description: "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 coin's live price use getTickersById.",
|
|
382
384
|
category: "coins",
|
|
383
385
|
parameters: {
|
|
384
386
|
coinId: { type: "string", required: true, format: "coin-id" },
|
|
@@ -389,7 +391,7 @@ function buildCapabilitiesDocument() {
|
|
|
389
391
|
},
|
|
390
392
|
{
|
|
391
393
|
name: "getCoinMarkets",
|
|
392
|
-
description: "Get markets
|
|
394
|
+
description: "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.",
|
|
393
395
|
category: "coins",
|
|
394
396
|
parameters: {
|
|
395
397
|
coinId: { type: "string", required: true, format: "coin-id" },
|
|
@@ -401,7 +403,7 @@ function buildCapabilitiesDocument() {
|
|
|
401
403
|
},
|
|
402
404
|
{
|
|
403
405
|
name: "getTickersById",
|
|
404
|
-
description: "Get
|
|
406
|
+
description: "Get the current price, market cap, 24h change and volume of a specific cryptocurrency in USD (or another quote currency). Use when asked 'what is the price of X', 'how much is Bitcoin worth', 'BTC to USD', 'ETH price now'. For past prices use getTickersHistoricalById.",
|
|
405
407
|
category: "market",
|
|
406
408
|
parameters: {
|
|
407
409
|
coinId: { type: "string", required: true, format: "coin-id" },
|
|
@@ -412,7 +414,7 @@ function buildCapabilitiesDocument() {
|
|
|
412
414
|
},
|
|
413
415
|
{
|
|
414
416
|
name: "getTickersHistoricalById",
|
|
415
|
-
description: "Get
|
|
417
|
+
description: "Get a coin's price and market cap at a single past date or time (a point-in-time value). Use for 'price of BTC last Tuesday', 'ETH market cap on 2024-01-01'. For OHLC chart candles over a range use getCoinOHLCVHistorical, not this. Not for the current price (use getTickersById). Requires Starter+ plan.",
|
|
416
418
|
category: "market",
|
|
417
419
|
parameters: {
|
|
418
420
|
coinId: { type: "string", required: true, format: "coin-id" },
|
|
@@ -427,7 +429,7 @@ function buildCapabilitiesDocument() {
|
|
|
427
429
|
},
|
|
428
430
|
{
|
|
429
431
|
name: "getPeopleById",
|
|
430
|
-
description: "Get information about a person in crypto
|
|
432
|
+
description: "Get profile information about a person in crypto (bio, roles, linked projects and accounts). Use when asked 'who is Vitalik Buterin', 'background on X founder', 'projects tied to this person'. Look up the person id first with search.",
|
|
431
433
|
category: "people",
|
|
432
434
|
parameters: { personId: { type: "string", required: true } },
|
|
433
435
|
returns: { type: "object" },
|
|
@@ -435,7 +437,7 @@ function buildCapabilitiesDocument() {
|
|
|
435
437
|
},
|
|
436
438
|
{
|
|
437
439
|
name: "getTags",
|
|
438
|
-
description: "
|
|
440
|
+
description: "List all CoinPaprika tags (categories such as defi, stablecoin, memecoin, ai) used to group coins. Use when asked 'what categories exist', 'list crypto sectors', or to find a tag id before calling getTagById.",
|
|
439
441
|
category: "tags",
|
|
440
442
|
parameters: {
|
|
441
443
|
additionalFields: { type: "string", required: false },
|
|
@@ -446,7 +448,7 @@ function buildCapabilitiesDocument() {
|
|
|
446
448
|
},
|
|
447
449
|
{
|
|
448
450
|
name: "getTagById",
|
|
449
|
-
description: "Get details
|
|
451
|
+
description: "Get details for a specific tag: its description and the coins and ICOs grouped under it. Use when asked 'what coins are in the defi tag', 'show the stablecoin category', 'tokens tagged X'. Get the tag id first from getTags.",
|
|
450
452
|
category: "tags",
|
|
451
453
|
parameters: {
|
|
452
454
|
tagId: { type: "string", required: true },
|
|
@@ -457,7 +459,7 @@ function buildCapabilitiesDocument() {
|
|
|
457
459
|
},
|
|
458
460
|
{
|
|
459
461
|
name: "getExchanges",
|
|
460
|
-
description: "
|
|
462
|
+
description: "List all exchanges tracked by CoinPaprika with rank, trust score and volume. Use when asked 'top exchanges', 'biggest crypto exchanges', 'list exchanges by volume', or to find an exchange id before calling getExchangeByID.",
|
|
461
463
|
category: "exchanges",
|
|
462
464
|
parameters: {
|
|
463
465
|
quotes: { type: "string", required: false },
|
|
@@ -468,7 +470,7 @@ function buildCapabilitiesDocument() {
|
|
|
468
470
|
},
|
|
469
471
|
{
|
|
470
472
|
name: "getExchangeByID",
|
|
471
|
-
description: "Get details
|
|
473
|
+
description: "Get details for a specific exchange (volume, market count, trust score, links, fiat support). Use when asked '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.",
|
|
472
474
|
category: "exchanges",
|
|
473
475
|
parameters: {
|
|
474
476
|
exchangeId: { type: "string", required: true },
|
|
@@ -479,7 +481,7 @@ function buildCapabilitiesDocument() {
|
|
|
479
481
|
},
|
|
480
482
|
{
|
|
481
483
|
name: "getExchangeMarkets",
|
|
482
|
-
description: "
|
|
484
|
+
description: "List the trading pairs (markets) on a specific exchange with price and 24h volume per pair. Use when asked 'what pairs trade on Binance', 'markets on Kraken', 'BTC pairs on X exchange'. For exchange-level stats use getExchangeByID.",
|
|
483
485
|
category: "exchanges",
|
|
484
486
|
parameters: {
|
|
485
487
|
exchangeId: { type: "string", required: true },
|
|
@@ -491,7 +493,7 @@ function buildCapabilitiesDocument() {
|
|
|
491
493
|
},
|
|
492
494
|
{
|
|
493
495
|
name: "getPlatforms",
|
|
494
|
-
description: "
|
|
496
|
+
description: "List the smart-contract platforms (blockchains such as ethereum, bnb, polygon) for which CoinPaprika indexes token contracts. Use when asked 'which chains are supported for contract lookups', 'list contract platforms', or to pick a platform id before calling getContracts.",
|
|
495
497
|
category: "contracts",
|
|
496
498
|
parameters: { limit: { type: "integer", required: false, default: 50 } },
|
|
497
499
|
returns: { type: "array", items: "Platform" },
|
|
@@ -499,7 +501,7 @@ function buildCapabilitiesDocument() {
|
|
|
499
501
|
},
|
|
500
502
|
{
|
|
501
503
|
name: "getContracts",
|
|
502
|
-
description: "
|
|
504
|
+
description: "List the token contract addresses tracked on a specific platform, mapping each contract to its CoinPaprika coin id. Use when asked 'contracts on ethereum', 'what tokens does X chain have', or to map a contract address to a coin id. Get the platform id first from getPlatforms; for a single contract's price use getTickerByContract.",
|
|
503
505
|
category: "contracts",
|
|
504
506
|
parameters: {
|
|
505
507
|
platformId: { type: "string", required: true },
|
|
@@ -510,7 +512,7 @@ function buildCapabilitiesDocument() {
|
|
|
510
512
|
},
|
|
511
513
|
{
|
|
512
514
|
name: "getTickerByContract",
|
|
513
|
-
description: "Get
|
|
515
|
+
description: "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 0x... or contract address rather than a name. For history use getHistoricalTickerByContract.",
|
|
514
516
|
category: "contracts",
|
|
515
517
|
parameters: {
|
|
516
518
|
platformId: { type: "string", required: true },
|
|
@@ -521,7 +523,7 @@ function buildCapabilitiesDocument() {
|
|
|
521
523
|
},
|
|
522
524
|
{
|
|
523
525
|
name: "getHistoricalTickerByContract",
|
|
524
|
-
description: "Get historical
|
|
526
|
+
description: "Get historical price and market data of a token by its contract address. Not for the current price (use getTickerByContract). Requires Starter+ plan.",
|
|
525
527
|
category: "contracts",
|
|
526
528
|
parameters: {
|
|
527
529
|
platformId: { type: "string", required: true },
|
|
@@ -537,7 +539,7 @@ function buildCapabilitiesDocument() {
|
|
|
537
539
|
},
|
|
538
540
|
{
|
|
539
541
|
name: "search",
|
|
540
|
-
description: "
|
|
542
|
+
description: "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.",
|
|
541
543
|
category: "search",
|
|
542
544
|
parameters: {
|
|
543
545
|
q: { type: "string", required: true },
|
|
@@ -550,7 +552,7 @@ function buildCapabilitiesDocument() {
|
|
|
550
552
|
},
|
|
551
553
|
{
|
|
552
554
|
name: "resolveId",
|
|
553
|
-
description: "Resolve
|
|
555
|
+
description: "Resolve a coin name or symbol ('bitcoin', 'BTC', 'AAVE') to its single canonical CoinPaprika id ('btc-bitcoin', 'aave-new'). Call this FIRST whenever you have a bare symbol or name and want the coin's price, since ids are not derivable from symbols; then pass the id to getTickersById.",
|
|
554
556
|
category: "search",
|
|
555
557
|
parameters: {
|
|
556
558
|
type: { type: "string", required: true, enum: ["coin", "exchange", "people", "tags"] },
|
|
@@ -562,7 +564,7 @@ function buildCapabilitiesDocument() {
|
|
|
562
564
|
},
|
|
563
565
|
{
|
|
564
566
|
name: "priceConverter",
|
|
565
|
-
description: "Convert amount from
|
|
567
|
+
description: "Convert an amount from one crypto or fiat to another at the current rate ('how much is 0.5 BTC in USD', 'convert 100 USDC to EUR'). For a plain coin price without an amount, use getTickersById.",
|
|
566
568
|
category: "tools",
|
|
567
569
|
parameters: {
|
|
568
570
|
baseCurrencyId: { type: "string", required: true },
|
|
@@ -574,7 +576,7 @@ function buildCapabilitiesDocument() {
|
|
|
574
576
|
},
|
|
575
577
|
{
|
|
576
578
|
name: "keyInfo",
|
|
577
|
-
description: "
|
|
579
|
+
description: "Get details and usage for the current CoinPaprika API key (plan, quota, requests remaining, expiry). Use when asked 'what plan am I on', 'how many requests are left', 'is my API key valid'. Requires a Pro plan.",
|
|
578
580
|
category: "system",
|
|
579
581
|
parameters: {},
|
|
580
582
|
returns: { type: "object" },
|
|
@@ -582,7 +584,7 @@ function buildCapabilitiesDocument() {
|
|
|
582
584
|
},
|
|
583
585
|
{
|
|
584
586
|
name: "getMappings",
|
|
585
|
-
description: "Get
|
|
587
|
+
description: "Get mappings between CoinPaprika ids and external or legacy identifiers so you can reconcile ids across systems. Use when asked 'map CoinPaprika ids to X', 'id crosswalk', 'external id mapping'. Requires a Business plan.",
|
|
586
588
|
category: "system",
|
|
587
589
|
parameters: {
|
|
588
590
|
coinpaprika: { type: "string", required: false },
|
|
@@ -597,7 +599,7 @@ function buildCapabilitiesDocument() {
|
|
|
597
599
|
},
|
|
598
600
|
{
|
|
599
601
|
name: "getChangelogIDs",
|
|
600
|
-
description: "Get
|
|
602
|
+
description: "Get the ids of recent changes to CoinPaprika's coin and exchange listings (additions, renames, delistings) for syncing a local dataset. Use when asked 'what changed recently', 'new or delisted coins', 'listing changelog'. Requires a Starter+ plan.",
|
|
601
603
|
category: "system",
|
|
602
604
|
parameters: {
|
|
603
605
|
page: { type: "integer", required: false, default: 1 },
|
|
@@ -668,7 +670,7 @@ function buildCapabilitiesDocument() {
|
|
|
668
670
|
steps: [
|
|
669
671
|
"getPlatforms - List available contract platforms",
|
|
670
672
|
"getContracts - List contracts on a platform",
|
|
671
|
-
"getTickerByContract - Get
|
|
673
|
+
"getTickerByContract - Get the current price and market data of a token by its contract address (for on-chain/DeFi tokens). Use when you have a 0x.../contract address rather than a name. For history use getHistoricalTickerByContract.",
|
|
672
674
|
],
|
|
673
675
|
example_use_case: "Looking up an ERC-20 token by its Ethereum contract",
|
|
674
676
|
},
|
|
@@ -1356,7 +1358,7 @@ server.tool(
|
|
|
1356
1358
|
// ─── Tool 30: getCapabilities ───
|
|
1357
1359
|
server.tool(
|
|
1358
1360
|
'getCapabilities',
|
|
1359
|
-
|
|
1361
|
+
"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.",
|
|
1360
1362
|
{},
|
|
1361
1363
|
async () => {
|
|
1362
1364
|
try {
|
package/package.json
CHANGED