@coinpaprika/mcp 1.0.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 +29 -0
- package/LICENSE +21 -0
- package/README.md +305 -0
- package/dist/bin.js +3 -0
- package/dist/index.js +1334 -0
- package/package.json +50 -0
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to the CoinPaprika MCP Server will be documented in this file.
|
|
4
|
+
|
|
5
|
+
## [1.0.0] - 2026-03-19
|
|
6
|
+
|
|
7
|
+
### Added
|
|
8
|
+
|
|
9
|
+
- Initial release with 30 CoinPaprika MCP tools
|
|
10
|
+
- **Discovery & System**: `status`, `getGlobal`, `getCapabilities`
|
|
11
|
+
- **Coins**: `getCoins`, `getCoinById`, `getCoinEvents`, `getCoinExchanges`, `getCoinMarkets`
|
|
12
|
+
- **Tickers & Prices**: `getTickers`, `getTickersById`, `getCoinOHLCVLatest`, `getCoinOHLCVToday`, `priceConverter`
|
|
13
|
+
- **Exchanges**: `getExchanges`, `getExchangeByID`, `getExchangeMarkets`
|
|
14
|
+
- **Tags & People**: `getTags`, `getTagById`, `getPeopleById`
|
|
15
|
+
- **Contracts**: `getPlatforms`, `getContracts`, `getTickerByContract`
|
|
16
|
+
- **Search**: `search`, `resolveId`
|
|
17
|
+
- **Paid-tier**: `getCoinOHLCVHistorical`, `getTickersHistoricalById`, `getHistoricalTickerByContract`, `getChangelogIDs`, `keyInfo`, `getMappings`
|
|
18
|
+
- Structured error handling with error codes (`CP400_*`, `CP402_*`, `CP403_*`, `CP404_*`, `CP429_*`, `CP500_*`)
|
|
19
|
+
- Response metadata with rate limit info, response time, and timestamps
|
|
20
|
+
- Optional API key support via `COINPAPRIKA_API_KEY` environment variable for paid-tier features
|
|
21
|
+
- `getCapabilities` tool with workflow patterns, validation rules, and best practices
|
|
22
|
+
- Hosted MCP alternative documentation at [mcp.coinpaprika.com](https://mcp.coinpaprika.com)
|
|
23
|
+
|
|
24
|
+
### Notes
|
|
25
|
+
|
|
26
|
+
- Matches the hosted MCP server at `mcp.coinpaprika.com` — same tools, same schemas, same error handling
|
|
27
|
+
- Free-tier endpoints work without any API key
|
|
28
|
+
- Paid-tier endpoints require `COINPAPRIKA_API_KEY` to be set
|
|
29
|
+
- All responses include rate limit metadata
|
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 Coinpaprika
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,305 @@
|
|
|
1
|
+
# CoinPaprika MCP Server
|
|
2
|
+
|
|
3
|
+
A Model Context Protocol (MCP) server that provides on-demand access to CoinPaprika's cryptocurrency market data API. Built specifically for AI assistants like Claude to programmatically fetch real-time prices, tickers, exchange data, OHLCV candles, and more with zero configuration.
|
|
4
|
+
|
|
5
|
+
## TL;DR
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
# Install globally
|
|
9
|
+
npm install -g @coinpaprika/mcp
|
|
10
|
+
|
|
11
|
+
# Start the server
|
|
12
|
+
coinpaprika-mcp
|
|
13
|
+
|
|
14
|
+
# Or run directly without installation
|
|
15
|
+
npx @coinpaprika/mcp
|
|
16
|
+
```
|
|
17
|
+
|
|
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)
|
|
19
|
+
|
|
20
|
+
> **Prefer zero setup?** Use the hosted MCP server at [mcp.coinpaprika.com](https://mcp.coinpaprika.com) — no installation, no API key, same 30 tools. See [Hosted Alternative](#hosted-alternative-no-installation) for transport endpoints.
|
|
21
|
+
|
|
22
|
+
## What Can You Build?
|
|
23
|
+
|
|
24
|
+
- **Market Dashboards**: Real-time market overview with global stats, top coins, and volume trends
|
|
25
|
+
- **Coin Analysis Tools**: Deep-dive into any cryptocurrency — price, team, events, exchanges, and markets
|
|
26
|
+
- **Price Trackers**: Track prices across multiple quote currencies with historical OHLCV data
|
|
27
|
+
- **Exchange Comparisons**: Compare trading pairs and volumes across 200+ exchanges
|
|
28
|
+
- **Portfolio Valuations**: Convert between currencies and track price changes over time
|
|
29
|
+
- **Contract Lookup**: Find tokens by their smart contract address across multiple platforms
|
|
30
|
+
|
|
31
|
+
## Installation
|
|
32
|
+
|
|
33
|
+
### Installing via Smithery
|
|
34
|
+
|
|
35
|
+
To install CoinPaprika MCP for Claude Desktop automatically via [Smithery](https://smithery.ai/server/@coinpaprika/coinpaprika-mcp):
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
npx -y @smithery/cli install @coinpaprika/coinpaprika-mcp --client claude
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
### Manual Installation
|
|
42
|
+
```bash
|
|
43
|
+
# Install globally (recommended for regular use)
|
|
44
|
+
npm install -g @coinpaprika/mcp
|
|
45
|
+
|
|
46
|
+
# Start the server
|
|
47
|
+
coinpaprika-mcp
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
## Claude Desktop Integration
|
|
51
|
+
|
|
52
|
+
Add the following to your Claude Desktop configuration file:
|
|
53
|
+
|
|
54
|
+
**macOS**: `~/Library/Application\ Support/Claude/claude_desktop_config.json`
|
|
55
|
+
**Windows**: `%APPDATA%/Claude/claude_desktop_config.json`
|
|
56
|
+
|
|
57
|
+
```json
|
|
58
|
+
{
|
|
59
|
+
"mcpServers": {
|
|
60
|
+
"coinpaprika": {
|
|
61
|
+
"command": "npx",
|
|
62
|
+
"args": ["@coinpaprika/mcp"]
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
### With API Key (for paid-tier features)
|
|
69
|
+
|
|
70
|
+
```json
|
|
71
|
+
{
|
|
72
|
+
"mcpServers": {
|
|
73
|
+
"coinpaprika": {
|
|
74
|
+
"command": "npx",
|
|
75
|
+
"args": ["@coinpaprika/mcp"],
|
|
76
|
+
"env": {
|
|
77
|
+
"COINPAPRIKA_API_KEY": "your-api-key-here"
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
### Claude Code Integration
|
|
85
|
+
|
|
86
|
+
```bash
|
|
87
|
+
# Add as MCP server in Claude Code
|
|
88
|
+
claude mcp add coinpaprika -- npx @coinpaprika/mcp
|
|
89
|
+
|
|
90
|
+
# With API key
|
|
91
|
+
COINPAPRIKA_API_KEY=your-key claude mcp add coinpaprika -- npx @coinpaprika/mcp
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
### Hosted Alternative (No Installation)
|
|
95
|
+
|
|
96
|
+
If you prefer zero setup, point any MCP-compatible client directly at the hosted server at [mcp.coinpaprika.com](https://mcp.coinpaprika.com). The landing page provides setup instructions and documentation. The following transport endpoints are available:
|
|
97
|
+
|
|
98
|
+
| Transport | Endpoint | Use Case |
|
|
99
|
+
|-----------|----------|----------|
|
|
100
|
+
| Streamable HTTP | `https://mcp.coinpaprika.com/streamable-http` | Recommended for most clients |
|
|
101
|
+
| SSE | `https://mcp.coinpaprika.com/sse` | Legacy SSE transport |
|
|
102
|
+
| JSON-RPC | `https://mcp.coinpaprika.com/json-rpc` | Direct JSON-RPC |
|
|
103
|
+
|
|
104
|
+
> **Note**: These are MCP protocol endpoints — they won't display anything in a browser. Visit [mcp.coinpaprika.com](https://mcp.coinpaprika.com) for the landing page.
|
|
105
|
+
|
|
106
|
+
```json
|
|
107
|
+
{
|
|
108
|
+
"mcpServers": {
|
|
109
|
+
"coinpaprika": {
|
|
110
|
+
"type": "streamable-http",
|
|
111
|
+
"url": "https://mcp.coinpaprika.com/streamable-http"
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
## Available Tools (30)
|
|
118
|
+
|
|
119
|
+
### Discovery & System
|
|
120
|
+
|
|
121
|
+
| Tool | Description |
|
|
122
|
+
|------|-------------|
|
|
123
|
+
| `getCapabilities` | Server capabilities, workflow patterns, validation rules, and best practices. **Start here.** |
|
|
124
|
+
| `status` | Server status and configuration |
|
|
125
|
+
| `getGlobal` | Global crypto market overview (market cap, volume, BTC dominance) |
|
|
126
|
+
|
|
127
|
+
### Coins
|
|
128
|
+
|
|
129
|
+
| Tool | Description | Required Parameters |
|
|
130
|
+
|------|-------------|---------------------|
|
|
131
|
+
| `getCoins` | List all coins (id, name, symbol, rank) | — |
|
|
132
|
+
| `getCoinById` | Coin details (description, team, links) | `coinId` |
|
|
133
|
+
| `getCoinEvents` | Upcoming events for a coin | `coinId` |
|
|
134
|
+
| `getCoinExchanges` | Exchanges listing a coin | `coinId` |
|
|
135
|
+
| `getCoinMarkets` | Markets/trading pairs for a coin | `coinId` |
|
|
136
|
+
|
|
137
|
+
### Tickers & Prices
|
|
138
|
+
|
|
139
|
+
| Tool | Description | Required Parameters |
|
|
140
|
+
|------|-------------|---------------------|
|
|
141
|
+
| `getTickers` | All tickers with price quotes | — |
|
|
142
|
+
| `getTickersById` | Ticker for a specific coin | `coinId` |
|
|
143
|
+
| `getCoinOHLCVLatest` | OHLCV for the last full day | `coinId` |
|
|
144
|
+
| `getCoinOHLCVToday` | OHLCV for today (in progress) | `coinId` |
|
|
145
|
+
| `priceConverter` | Convert between currencies | `baseCurrencyId`, `quoteCurrencyId` |
|
|
146
|
+
|
|
147
|
+
### Exchanges
|
|
148
|
+
|
|
149
|
+
| Tool | Description | Required Parameters |
|
|
150
|
+
|------|-------------|---------------------|
|
|
151
|
+
| `getExchanges` | List all exchanges | — |
|
|
152
|
+
| `getExchangeByID` | Exchange details | `exchangeId` |
|
|
153
|
+
| `getExchangeMarkets` | Markets on a specific exchange | `exchangeId` |
|
|
154
|
+
|
|
155
|
+
### Tags & People
|
|
156
|
+
|
|
157
|
+
| Tool | Description | Required Parameters |
|
|
158
|
+
|------|-------------|---------------------|
|
|
159
|
+
| `getTags` | List all tags/categories | — |
|
|
160
|
+
| `getTagById` | Tag details | `tagId` |
|
|
161
|
+
| `getPeopleById` | Person/team member details | `personId` |
|
|
162
|
+
|
|
163
|
+
### Contracts
|
|
164
|
+
|
|
165
|
+
| Tool | Description | Required Parameters |
|
|
166
|
+
|------|-------------|---------------------|
|
|
167
|
+
| `getPlatforms` | List contract platforms | — |
|
|
168
|
+
| `getContracts` | Contracts on a platform | `platformId` |
|
|
169
|
+
| `getTickerByContract` | Ticker by contract address | `platformId`, `contractAddress` |
|
|
170
|
+
|
|
171
|
+
### Search & Resolution
|
|
172
|
+
|
|
173
|
+
| Tool | Description | Required Parameters |
|
|
174
|
+
|------|-------------|---------------------|
|
|
175
|
+
| `search` | Search coins, exchanges, ICOs, people, tags | `q` |
|
|
176
|
+
| `resolveId` | Resolve fuzzy query to canonical CoinPaprika IDs | `type`, `query` |
|
|
177
|
+
|
|
178
|
+
### Paid-Tier Tools
|
|
179
|
+
|
|
180
|
+
These tools require a paid CoinPaprika API plan. Without an API key, they return guidance directing you to upgrade.
|
|
181
|
+
|
|
182
|
+
| Tool | Plan Required | Description |
|
|
183
|
+
|------|---------------|-------------|
|
|
184
|
+
| `getCoinOHLCVHistorical` | Starter+ | Historical OHLCV candle data |
|
|
185
|
+
| `getTickersHistoricalById` | Starter+ | Historical ticker snapshots |
|
|
186
|
+
| `getHistoricalTickerByContract` | Starter+ | Historical ticker by contract |
|
|
187
|
+
| `getChangelogIDs` | Starter+ | Changelog of coin ID changes |
|
|
188
|
+
| `keyInfo` | Pro | Verify API key details |
|
|
189
|
+
| `getMappings` | Business | Cross-platform ID mappings |
|
|
190
|
+
|
|
191
|
+
## API Key Configuration
|
|
192
|
+
|
|
193
|
+
The free tier provides access to most tools without any API key. For paid-tier features (historical data, mappings, etc.), set the `COINPAPRIKA_API_KEY` environment variable:
|
|
194
|
+
|
|
195
|
+
```bash
|
|
196
|
+
# Set via environment variable
|
|
197
|
+
export COINPAPRIKA_API_KEY=your-api-key-here
|
|
198
|
+
coinpaprika-mcp
|
|
199
|
+
|
|
200
|
+
# Or pass inline
|
|
201
|
+
COINPAPRIKA_API_KEY=your-api-key-here npx @coinpaprika/mcp
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
Get an API key at [coinpaprika.com/api/pricing](https://coinpaprika.com/api/pricing/).
|
|
205
|
+
|
|
206
|
+
### Example Usage
|
|
207
|
+
|
|
208
|
+
```javascript
|
|
209
|
+
// Start by getting capabilities for workflow guidance:
|
|
210
|
+
const caps = await getCapabilities();
|
|
211
|
+
|
|
212
|
+
// Get global market overview:
|
|
213
|
+
const global = await getGlobal();
|
|
214
|
+
|
|
215
|
+
// Find a coin by name:
|
|
216
|
+
const results = await search({ q: "ethereum" });
|
|
217
|
+
|
|
218
|
+
// Get detailed coin info:
|
|
219
|
+
const bitcoin = await getCoinById({ coinId: "btc-bitcoin" });
|
|
220
|
+
|
|
221
|
+
// Get current ticker with USD and BTC quotes:
|
|
222
|
+
const ticker = await getTickersById({ coinId: "eth-ethereum", quotes: "USD,BTC" });
|
|
223
|
+
|
|
224
|
+
// Get OHLCV data for today:
|
|
225
|
+
const ohlcv = await getCoinOHLCVToday({ coinId: "btc-bitcoin" });
|
|
226
|
+
|
|
227
|
+
// Convert 1 BTC to USD:
|
|
228
|
+
const conversion = await priceConverter({
|
|
229
|
+
baseCurrencyId: "btc-bitcoin",
|
|
230
|
+
quoteCurrencyId: "usd-us-dollars",
|
|
231
|
+
amount: 1
|
|
232
|
+
});
|
|
233
|
+
|
|
234
|
+
// List top 10 exchanges:
|
|
235
|
+
const exchanges = await getExchanges({ limit: 10 });
|
|
236
|
+
|
|
237
|
+
// Resolve fuzzy query to exact coin ID:
|
|
238
|
+
const resolved = await resolveId({ type: "coin", query: "cardano" });
|
|
239
|
+
```
|
|
240
|
+
|
|
241
|
+
## Sample Prompts for Claude
|
|
242
|
+
|
|
243
|
+
- "What's the current price of Bitcoin and Ethereum? Show me 24h change."
|
|
244
|
+
- "Give me a comprehensive analysis of Cardano — price, team, events, and top exchanges."
|
|
245
|
+
- "Compare the top 5 crypto exchanges by trading volume."
|
|
246
|
+
- "Convert 10 ETH to USD and show the current exchange rate."
|
|
247
|
+
- "Find all coins tagged as 'defi' and show their market caps."
|
|
248
|
+
- "What exchanges list Solana and what trading pairs are available?"
|
|
249
|
+
- "Show me the OHLCV data for Bitcoin today."
|
|
250
|
+
- "Search for all coins related to 'layer-2' and rank them by market cap."
|
|
251
|
+
- "Look up the team behind Ethereum — who are the key people?"
|
|
252
|
+
- "Get the ticker for USDT by its Ethereum contract address."
|
|
253
|
+
|
|
254
|
+
## Rate Limits & Performance
|
|
255
|
+
|
|
256
|
+
- **Free Tier Limits**: 10,000 requests per day
|
|
257
|
+
- **Response Time**: 100-500ms for most endpoints
|
|
258
|
+
- **Data Coverage**: 8,000+ coins, 200+ exchanges
|
|
259
|
+
- **Error Handling**: Structured errors with codes, suggestions, and retry guidance
|
|
260
|
+
- **Rate Limit Info**: Every response includes rate limit metadata
|
|
261
|
+
|
|
262
|
+
## Troubleshooting
|
|
263
|
+
|
|
264
|
+
**Common Issues:**
|
|
265
|
+
|
|
266
|
+
- **Rate limiting**: If receiving `CP429_RATE_LIMIT` errors, wait for daily reset at midnight UTC
|
|
267
|
+
- **Invalid coin ID**: Coin IDs use `symbol-name` format (e.g., `btc-bitcoin`, not `bitcoin` or `BTC`). Use `search` or `resolveId` to find correct IDs
|
|
268
|
+
- **Paid-tier errors**: `CP402_INSUFFICIENT_PLAN` or `CP403_FORBIDDEN` mean the endpoint requires a paid plan. Set `COINPAPRIKA_API_KEY` environment variable
|
|
269
|
+
- **Timeout errors**: Large data requests may take longer — reduce the `limit` parameter
|
|
270
|
+
- **Network errors**: Check network connectivity, the service requires internet access
|
|
271
|
+
|
|
272
|
+
## Development
|
|
273
|
+
|
|
274
|
+
```bash
|
|
275
|
+
# Clone the repository
|
|
276
|
+
git clone https://github.com/coinpaprika/coinpaprika-mcp.git
|
|
277
|
+
cd coinpaprika-mcp
|
|
278
|
+
|
|
279
|
+
# Install dependencies
|
|
280
|
+
npm install
|
|
281
|
+
|
|
282
|
+
# Run in development
|
|
283
|
+
npm start
|
|
284
|
+
|
|
285
|
+
# Build for production
|
|
286
|
+
npm run build
|
|
287
|
+
```
|
|
288
|
+
|
|
289
|
+
## Changelog
|
|
290
|
+
|
|
291
|
+
See [CHANGELOG.md](CHANGELOG.md) for detailed release notes.
|
|
292
|
+
|
|
293
|
+
## License
|
|
294
|
+
|
|
295
|
+
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
|
|
296
|
+
|
|
297
|
+
## Additional Resources
|
|
298
|
+
|
|
299
|
+
- [CoinPaprika API Documentation](https://api.coinpaprika.com)
|
|
300
|
+
- [API Pricing & Plans](https://coinpaprika.com/api/pricing/)
|
|
301
|
+
- [Hosted MCP Server](https://mcp.coinpaprika.com) — Zero-setup alternative
|
|
302
|
+
- [DexPaprika MCP](https://www.npmjs.com/package/dexpaprika-mcp) — DEX & DeFi data companion package
|
|
303
|
+
- [Model Context Protocol Specification](https://modelcontextprotocol.io)
|
|
304
|
+
- [CoinPaprika](https://coinpaprika.com) — Comprehensive cryptocurrency market data
|
|
305
|
+
- [DexPaprika](https://dexpaprika.com) — Onchain DEX analytics
|
package/dist/bin.js
ADDED