CoinGecko Server

by MCP-Mirror

294 downloads
Not rated
GitHub

About

It is a Model Context Protocol (MCP) server and OpenAI function calling service that integrates with the CoinGecko Pro API to provide cryptocurrency data for AI agents and applications.

Details

Author
MCP-Mirror
Downloads
294
Categories
Other, API

- Paginated list of supported cryptocurrencies
- Coin ID lookup by name or symbol
- Historical price, market cap, and volume data
- OHLC candlestick data
- Local coin cache with refresh capability

Install via npm install coingecko-server, set the COINGECKO_API_KEY environment variable, then configure it in Claude Desktop’s MCP config or use the CoinGeckoService class with OpenAI function calling. The server exposes tools such as get-coins, find-coin-ids, get-historical-data, get-ohlc-data, and refresh-cache.

CoinGecko Server

A Model Context Protocol (MCP) server and OpenAI function calling service for interacting with the CoinGecko Pro API.

Features

- Paginated list of supported cryptocurrencies
- Coin ID lookup by name or symbol
- Historical price, market cap, and volume data
- OHLC (Open, High, Low, Close) candlestick data
- Local coin cache with refresh capability

Installation

npm install coingecko-server

Environment Setup

Create a .env file in your project root:

COINGECKO_API_KEY=your_api_key_here

Usage with Claude Desktop

Claude Desktop provides full support for MCP features. To use this server:

1. Install Claude Desktop

2. Add to your Claude Desktop configuration:
- On macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
- On Windows: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "coingecko": {
      "command": "node",
      "args": ["/path/to/coingecko-server/build/index.js"],
      "env": {
        "COINGECKO_API_KEY": "your-api-key-here"
      }
    }
  }
}

3. Restart Claude Desktop

The server provides the following tools:
- get-coins: Get a paginated list of supported coins
- find-coin-ids: Look up CoinGecko IDs for coin names/symbols
- get-historical-data: Get historical price, market cap, and volume data
- get-ohlc-data: Get OHLC candlestick data
- refresh-cache: Refresh the local coin list cache

Usage with OpenAI Function Calling

import { CoinGeckoService } from 'coingecko-server';
import OpenAI from 'openai';

const openai = new OpenAI();
const coinGeckoService = new CoinGeckoService(process.env.COINGECKO_API_KEY);

// Get function definitions
const functions = CoinGeckoService.getOpenAIFunctionDefinitions();

// Example: Get historical data
const response = await openai.chat.completions.create({
model: "gpt-4-turbo-preview",
messages: [{ role: "user", content: "Get Bitcoin's price history for the last week" }],
functions: [functions[2]], // get_historical_data function
function_call: "auto",
});

if (response.choices[0].message.function_call) {
const args = JSON.parse(response.choices[0].message.function_call.arguments);
const history = await coinGeckoService.getHistoricalData(
args.id,
args.vs_currency,
args.from,
args.to,
args.interval
);
}

Data Types

OHLCData

interface OHLCData {
  timestamp: number;
  open: number;
  high: number;
  low: number;
  close: number;
}

HistoricalData

interface HistoricalData {
  prices: [number, number][];
  market_caps: [number, number][];
  total_volumes: [number, number][];
}

CoinInfo

interface CoinInfo {
  id: string;
  symbol: string;
  name: string;
  platforms?: Record<string, string>;
}

Rate Limits

Please refer to the CoinGecko Pro API documentation for current rate limits and usage guidelines.

License

MIT

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.