mcp-crypto-price 3.5.12 → 4.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/README.md +125 -40
- package/dist/homepage.js +1 -1
- package/dist/http.js +555 -7
- package/dist/index.js +284 -8
- package/dist/mcp-crypto-price-4.0.0.tgz +0 -0
- package/dist/services/coincap.js +27 -1
- package/dist/services/formatters.js +138 -0
- package/dist/services/schemas.js +11 -0
- package/dist/tools/asset-info.js +78 -0
- package/dist/tools/candlestick.js +122 -0
- package/dist/tools/compare.js +103 -0
- package/dist/tools/exchanges.js +35 -0
- package/dist/tools/global-metrics.js +67 -0
- package/dist/tools/historical.js +29 -0
- package/dist/tools/index.js +6 -0
- package/dist/tools/market.js +32 -0
- package/dist/tools/price-conversion.js +102 -0
- package/dist/tools/price.js +18 -0
- package/dist/tools/rates.js +29 -0
- package/dist/tools/search-assets.js +81 -0
- package/dist/tools/technical-analysis.js +56 -0
- package/dist/tools/top-assets.js +22 -0
- package/package.json +22 -26
- package/dist/mcp-crypto-price-3.5.12.tgz +0 -0
- package/dist/services/__tests__/coincap.test.js +0 -212
- package/dist/services/__tests__/formatters.test.js +0 -131
- package/dist/tools/__tests__/exchanges.test.js +0 -92
- package/dist/tools/__tests__/historical.test.js +0 -68
- package/dist/tools/__tests__/market.test.js +0 -62
- package/dist/tools/__tests__/price.test.js +0 -47
- package/dist/tools/__tests__/rates.test.js +0 -100
- package/dist/tools/__tests__/technical-analysis.test.js +0 -81
- package/dist/tools/__tests__/top-assets.test.js +0 -68
package/README.md
CHANGED
|
@@ -17,6 +17,10 @@ A Model Context Protocol (MCP) server that provides comprehensive cryptocurrency
|
|
|
17
17
|
- **BREAKING**: CoinCap v2 API removed. Now uses v3 API exclusively. A `COINCAP_API_KEY` is required (free tier available at [pro.coincap.io/dashboard](https://pro.coincap.io/dashboard))
|
|
18
18
|
- Streamable HTTP transport added (while keeping STDIO compatibility)
|
|
19
19
|
- Smithery CLI scripts to build and run the HTTP server
|
|
20
|
+
- **6 new tools**: `assets.search`, `market.global`, `assets.compare`, `analysis.candlestick`, `price.convert`, `assets.info`
|
|
21
|
+
- **Dot-notation tool naming**: All tools organized into a navigable tree (`price.*`, `market.*`, `assets.*`, `analysis.*`)
|
|
22
|
+
- **Output schemas**: All tools now declare `outputSchema` with `structuredContent` for type-safe responses
|
|
23
|
+
- **MCP best practices**: `isError` flag on validation errors, server description, and `asset://{symbol}` resource template
|
|
20
24
|
|
|
21
25
|
## Usage
|
|
22
26
|
|
|
@@ -58,14 +62,15 @@ If your MCP client requires launching via `cmd.exe` on Windows:
|
|
|
58
62
|
### Development scripts
|
|
59
63
|
|
|
60
64
|
```bash
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
65
|
+
pnpm dev # Development (HTTP server with hot reload via Smithery CLI)
|
|
66
|
+
pnpm build # Compile TypeScript → dist/
|
|
67
|
+
pnpm format # Format source files with Prettier
|
|
68
|
+
pnpm lint # Check for lint errors (ESLint + typescript-eslint)
|
|
69
|
+
pnpm lint:fix # Auto-fix lint errors
|
|
70
|
+
pnpm types:check # TypeScript type-check without emitting files
|
|
71
|
+
pnpm test # Run all tests with Vitest
|
|
72
|
+
pnpm test:coverage # Run tests with coverage report (Vitest)
|
|
73
|
+
pnpm inspector # Open MCP inspector for interactive debugging
|
|
69
74
|
```
|
|
70
75
|
|
|
71
76
|
### Run as Streamable HTTP server
|
|
@@ -75,27 +80,27 @@ You can run the server over HTTP for environments that support MCP over HTTP str
|
|
|
75
80
|
- Dev server (recommended during development):
|
|
76
81
|
|
|
77
82
|
```bash
|
|
78
|
-
|
|
83
|
+
pnpm dev
|
|
79
84
|
```
|
|
80
85
|
|
|
81
86
|
- Build and run the HTTP server:
|
|
82
87
|
|
|
83
88
|
```bash
|
|
84
89
|
# Build (outputs to dist/)
|
|
85
|
-
|
|
90
|
+
pnpm build
|
|
86
91
|
|
|
87
92
|
# Start the HTTP server
|
|
88
|
-
|
|
93
|
+
pnpm start:http
|
|
89
94
|
```
|
|
90
95
|
|
|
91
96
|
- Build and run the STDIO server:
|
|
92
97
|
|
|
93
98
|
```bash
|
|
94
99
|
# Build (outputs to dist/)
|
|
95
|
-
|
|
100
|
+
pnpm build
|
|
96
101
|
|
|
97
102
|
# Start the STDIO server
|
|
98
|
-
|
|
103
|
+
pnpm start:stdio
|
|
99
104
|
```
|
|
100
105
|
|
|
101
106
|
The server listens on port 3000 by default (override with `PORT`). For clients that connect over HTTP (e.g. Smithery, Claude.ai), pass your API key as a query parameter:
|
|
@@ -123,7 +128,7 @@ Without a valid API key, all tools will return an error with instructions on how
|
|
|
123
128
|
|
|
124
129
|
## Note for Smithery CLI users
|
|
125
130
|
|
|
126
|
-
This MCP server works directly via `
|
|
131
|
+
This MCP server works directly via `pnpm dlx` (configs above) and does not require Smithery.
|
|
127
132
|
|
|
128
133
|
If you do use the Smithery CLI, authenticate with `smithery auth login` or by setting `SMITHERY_API_KEY` in your environment. Recent versions of the Smithery CLI do not support passing API keys via `--key` (or older `--profile` patterns).
|
|
129
134
|
|
|
@@ -131,7 +136,7 @@ Launch Claude Desktop to start using the crypto analysis tools.
|
|
|
131
136
|
|
|
132
137
|
## Tools
|
|
133
138
|
|
|
134
|
-
#### get
|
|
139
|
+
#### price.get
|
|
135
140
|
|
|
136
141
|
Gets current price and 24h stats for any cryptocurrency, including:
|
|
137
142
|
- Current price in USD
|
|
@@ -140,7 +145,14 @@ Gets current price and 24h stats for any cryptocurrency, including:
|
|
|
140
145
|
- Market cap
|
|
141
146
|
- Market rank
|
|
142
147
|
|
|
143
|
-
####
|
|
148
|
+
#### price.convert
|
|
149
|
+
|
|
150
|
+
Converts a cryptocurrency amount into any fiat currency:
|
|
151
|
+
- Uses real-time price data and USD-based exchange rates
|
|
152
|
+
- Parameters: `symbol` (e.g. `BTC`), `amount` (default 1), `currency` (default `usd`)
|
|
153
|
+
- Example: 2.5 BTC in EUR
|
|
154
|
+
|
|
155
|
+
#### market.analysis
|
|
144
156
|
|
|
145
157
|
Provides detailed market analysis including:
|
|
146
158
|
- Top 5 exchanges by volume
|
|
@@ -148,16 +160,31 @@ Provides detailed market analysis including:
|
|
|
148
160
|
- Volume distribution analysis
|
|
149
161
|
- VWAP (Volume Weighted Average Price)
|
|
150
162
|
|
|
151
|
-
####
|
|
163
|
+
#### market.global
|
|
152
164
|
|
|
153
|
-
|
|
154
|
-
-
|
|
155
|
-
-
|
|
156
|
-
-
|
|
157
|
-
-
|
|
158
|
-
-
|
|
165
|
+
Provides an overview of the entire cryptocurrency market:
|
|
166
|
+
- Total market capitalization across all assets
|
|
167
|
+
- 24-hour trading volume
|
|
168
|
+
- Number of active cryptocurrencies
|
|
169
|
+
- Bitcoin dominance percentage
|
|
170
|
+
- Top gainers and losers
|
|
171
|
+
|
|
172
|
+
#### market.rates
|
|
173
|
+
|
|
174
|
+
Returns USD-based conversion rates for fiat currencies and cryptocurrencies:
|
|
175
|
+
- All fiat currency rates (USD base)
|
|
176
|
+
- Top 10 cryptocurrency rates
|
|
177
|
+
- Optional `slug` parameter (e.g. `euro`, `bitcoin`) for a single rate lookup
|
|
178
|
+
|
|
179
|
+
#### market.exchanges
|
|
159
180
|
|
|
160
|
-
|
|
181
|
+
Lists top cryptocurrency exchanges ranked by 24h volume:
|
|
182
|
+
- Exchange name, rank, and 24h volume in USD
|
|
183
|
+
- Number of trading pairs and market share percentage
|
|
184
|
+
- Optional `exchangeId` parameter (e.g. `binance`) for single exchange details
|
|
185
|
+
- Optional `limit` parameter (1–50, default 10)
|
|
186
|
+
|
|
187
|
+
#### assets.top
|
|
161
188
|
|
|
162
189
|
Lists top cryptocurrencies ranked by market cap, including:
|
|
163
190
|
- Current price in USD
|
|
@@ -165,7 +192,38 @@ Lists top cryptocurrencies ranked by market cap, including:
|
|
|
165
192
|
- Market cap and rank
|
|
166
193
|
- Configurable result count (1–50, default 10)
|
|
167
194
|
|
|
168
|
-
####
|
|
195
|
+
#### assets.search
|
|
196
|
+
|
|
197
|
+
Searches for cryptocurrencies by name or symbol with fuzzy matching:
|
|
198
|
+
- Returns matching assets with symbol, name, price, and rank
|
|
199
|
+
- Configurable result count (1–50, default 10)
|
|
200
|
+
- Example: search "bit" returns Bitcoin, Bitcoin Cash, BitTorrent, etc.
|
|
201
|
+
|
|
202
|
+
#### assets.info
|
|
203
|
+
|
|
204
|
+
Returns detailed metadata for a single cryptocurrency:
|
|
205
|
+
- ID, rank, symbol, and name
|
|
206
|
+
- Price, 24h change, market cap, and volume
|
|
207
|
+
- Circulating supply and max supply
|
|
208
|
+
- VWAP (24h)
|
|
209
|
+
|
|
210
|
+
#### assets.compare
|
|
211
|
+
|
|
212
|
+
Compares 2–5 cryptocurrencies side by side:
|
|
213
|
+
- Price, 24h change, market cap, volume, and rank for each asset
|
|
214
|
+
- Comma-separated symbols (e.g. `BTC,ETH,SOL`)
|
|
215
|
+
- Highlights best performer by 24h change
|
|
216
|
+
|
|
217
|
+
#### analysis.historical
|
|
218
|
+
|
|
219
|
+
Analyzes historical price data with:
|
|
220
|
+
- Customizable time intervals (5min to 1 day)
|
|
221
|
+
- Support for up to 30 days of historical data
|
|
222
|
+
- Price trend analysis
|
|
223
|
+
- Volatility metrics
|
|
224
|
+
- High/low price ranges
|
|
225
|
+
|
|
226
|
+
#### analysis.technical
|
|
169
227
|
|
|
170
228
|
Returns the latest technical indicators for any cryptocurrency:
|
|
171
229
|
- SMA (Simple Moving Average) with period
|
|
@@ -174,20 +232,33 @@ Returns the latest technical indicators for any cryptocurrency:
|
|
|
174
232
|
- MACD with signal line, histogram, and Bullish/Bearish label
|
|
175
233
|
- VWAP (Volume Weighted Average Price, 24h)
|
|
176
234
|
|
|
177
|
-
####
|
|
235
|
+
#### analysis.candlestick
|
|
178
236
|
|
|
179
|
-
|
|
180
|
-
-
|
|
181
|
-
-
|
|
182
|
-
-
|
|
237
|
+
Retrieves OHLCV candlestick data from a specific exchange:
|
|
238
|
+
- Open, high, low, close, and volume for each candle
|
|
239
|
+
- Configurable exchange (e.g. `binance`), quote currency (e.g. `usd`), and interval (`5m`, `15m`, `1h`, `6h`, `1d`)
|
|
240
|
+
- Supports 1–30 days of historical candles
|
|
183
241
|
|
|
184
|
-
|
|
242
|
+
## Resources
|
|
185
243
|
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
-
|
|
189
|
-
-
|
|
190
|
-
|
|
244
|
+
The server exposes the following MCP resources:
|
|
245
|
+
|
|
246
|
+
- **`info://server`** — Server name and version metadata
|
|
247
|
+
- **`asset://{symbol}`** — Cryptocurrency asset information by symbol (e.g. `asset://BTC`), returned as JSON
|
|
248
|
+
|
|
249
|
+
## Prompts
|
|
250
|
+
|
|
251
|
+
The server exposes the following MCP prompts that clients can invoke:
|
|
252
|
+
|
|
253
|
+
| Prompt | Args | Description |
|
|
254
|
+
|--------|------|-------------|
|
|
255
|
+
| `analyze-crypto` | `symbol` | Comprehensive analysis: price, market, historical trends |
|
|
256
|
+
| `compare-cryptocurrencies` | `symbols` | Compare 2-5 cryptos side-by-side |
|
|
257
|
+
| `market-overview` | — | Global market snapshot: metrics, top assets, top exchanges |
|
|
258
|
+
| `crypto-conversion` | `symbol`, `amount?`, `currency?` | Convert crypto amount to fiat |
|
|
259
|
+
| `exchange-analysis` | `symbol` | Exchange landscape analysis for a crypto |
|
|
260
|
+
| `technical-analysis` | `symbol` | Full technical analysis: indicators, candles, trends |
|
|
261
|
+
| `crypto-screener` | `query` | Search and screen cryptos for opportunities |
|
|
191
262
|
|
|
192
263
|
## Sample Prompts
|
|
193
264
|
|
|
@@ -199,10 +270,24 @@ Lists top cryptocurrency exchanges ranked by 24h volume:
|
|
|
199
270
|
- "What are the technical indicators for ETH right now?"
|
|
200
271
|
- "What's the current EUR to USD exchange rate?"
|
|
201
272
|
- "Which crypto exchanges have the highest 24h volume?"
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
273
|
+
- "Search for cryptocurrencies matching 'sol'"
|
|
274
|
+
- "Give me a global overview of the crypto market"
|
|
275
|
+
- "Compare BTC, ETH, and SOL side by side"
|
|
276
|
+
- "Show me 1-hour candlestick data for BTC on Binance over the last 3 days"
|
|
277
|
+
- "Convert 2.5 BTC to EUR"
|
|
278
|
+
- "Get detailed info about the Ethereum asset"
|
|
279
|
+
- "Generate a comprehensive analysis of a cryptocurrency covering price, market, and historical trends"
|
|
280
|
+
- "Find all cryptocurrencies with 'bit' in their name and show me their current prices"
|
|
281
|
+
- "What's the market cap ranking and circulating supply of Cardano?"
|
|
282
|
+
- "Compare the top 3 stablecoins and show which has the highest volume"
|
|
283
|
+
- "Show me how Bitcoin has performed over the past 30 days with daily candles"
|
|
284
|
+
- "Convert 100 SOL to GBP and show the exchange rate"
|
|
285
|
+
- "Give me a full market snapshot: global metrics, top gainers, and BTC dominance"
|
|
286
|
+
- "What are the best and worst performing cryptos in the last 24 hours?"
|
|
287
|
+
- "Show me 15-minute candlestick data for ETH on Coinbase over the last 2 days"
|
|
288
|
+
- "Compare DeFi tokens: UNI, AAVE, COMP, and MKR"
|
|
289
|
+
- "What's the VWAP and max supply of Bitcoin?"
|
|
290
|
+
- "Search for layer-2 tokens and compare the top results"
|
|
206
291
|
|
|
207
292
|
## License
|
|
208
293
|
|
package/dist/homepage.js
CHANGED
|
@@ -290,7 +290,7 @@ export function renderHomepage() {
|
|
|
290
290
|
</div>
|
|
291
291
|
<div class="metric">
|
|
292
292
|
<strong>CLI example</strong>
|
|
293
|
-
<code>
|
|
293
|
+
<code>pnpm dlx @smithery/cli install mcp-crypto-price --client claude</code>
|
|
294
294
|
</div>
|
|
295
295
|
<div class="metric">
|
|
296
296
|
<strong>Remote endpoint</strong>
|