Skip to main content
Glama
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.