mcp-crypto
by dhruvil05
README.md
````markdown
# CoinGecko MCP Server
A Model Context Protocol (MCP) server that provides real-time cryptocurrency data from the CoinGecko API.
## Features
- **get_price**: Get current price for any cryptocurrency
- **get_market_data**: Get detailed market data including market cap, volume, etc.
- **get_historical_data**: Get historical price data with customizable time periods
- **search_coins**: Search for cryptocurrencies by name or symbol
## Installation
1. Clone the repository
2. Install dependencies:
```bash
npm install
```
````
## Build
```bash
npm run build
```
## Usage
### Development
```bash
npm run dev
```
### Production
```bash
npm start
```
### Testing
```bash
npm test
```
## Tools
### get_price
Get the current price for a cryptocurrency.
**Parameters:**
- `coin_id` (optional): CoinGecko coin ID (e.g., "bitcoin", "ethereum")
- `symbol` (optional): Cryptocurrency symbol (e.g., "BTC", "ETH")
- `vs_currency` (optional): Target currency (default: "usd")
**Example:**
```json
{
"symbol": "TRX",
"vs_currency": "usd"
}
```
### get_market_data
Get detailed market data for a cryptocurrency.
**Parameters:**
- `coin_id` (optional): CoinGecko coin ID (e.g., "bitcoin", "ethereum")
- `symbol` (optional): Cryptocurrency symbol (e.g., "BTC", "ETH")
- `vs_currency` (optional): Target currency (default: "usd")
**Example:**
```json
{
"symbol": "BTC"
}
```
### get_historical_data
Get historical price data.
**Parameters:**
- `coin_id` (optional): CoinGecko coin ID (e.g., "bitcoin", "ethereum")
- `symbol` (optional): Cryptocurrency symbol (e.g., "BTC", "ETH")
- `vs_currency` (optional): Target currency (default: "usd")
- `days` (optional): Number of days (1-365, default: 1)
- `interval` (optional): Data interval (daily/hourly)
**Example:**
```json
{
"symbol": "ETH",
"days": 7,
"interval": "daily"
}
```
### search_coins
Search for cryptocurrencies by name or symbol.
**Parameters:**
- `query` (required): Search query
**Example:**
```json
{
"query": "tron"
}
```
## Integration
### With Claude Desktop
Add to your MCP settings:
```json
{
"mcpServers": {
"coingecko": {
"command": "node",
"args": ["/path/to/coingecko-mcp-server/build/index.js"]
}
}
}
```
## Rate Limits
CoinGecko's free API has rate limits:
- 10-30 calls per minute
- Please be respectful of their service
## License
MIT
````
## Key Changes from OKX to CoinGecko
1. **API Base URL**: Changed to `https://api.coingecko.com/api/v3`
2. **Endpoints**: Using CoinGecko's endpoints:
- `/simple/price` for basic price data
- `/coins/markets` for detailed market data
- `/coins/{id}/market_chart` for historical data
- `/search` for coin search
3. **Parameters**: Adapted to CoinGecko's parameter structure
4. **Data Format**: Updated types to match CoinGecko's response format
5. **Coin Identification**: Added support for both coin_id and symbol lookup
6. **Error Handling**: Added rate limit detection (HTTP 429)
## Setup Instructions
1. **Create the project directory:**
```bash
mkdir coingecko-mcp-server
cd coingecko-mcp-server
````
2. **Create all the files above** in their respective locations
3. **Install dependencies:**
```bash
npm install
```
4. **Build the project:**
```bash
npm run build
```
5. **Test the server:**
```bash
npm test
```
This CoinGecko-based server should be much more reliable than the OKX version, as CoinGecko has excellent uptime and a well-designed API.
This server cannot be deployed
Maintenance
ActivityInactive
ResponsivenessNo issues