J

mcp-coingecko-server

Created Oct 19, 2025 by crazyrabbitLTC

Language:

JavaScript

Stars:

5

Forks:

4

README

Update: CoinGecko now has an official MCP server: https://docs.coingecko.com/reference/mcp-server

I recomend you use that one, as I probably won't update or keep this one current.

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"
      }
    }
  }
}
  1. 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;
}

Rate Limits

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

License

MIT

Last updated: Oct 19, 2025

Publisher info

crazyrabbitLTC's avatar

crazyrabbitLTC

Co-Founder & CEO www.tally.xyz Previously: Founder DappHero.io Developer Advocate: https://openzeppelin.com/

Dennison Berrtam
Global
155
followers
42
following
216
repos

More MCP servers built with JavaScript

React

The library for web and native user interfaces.

By facebook 242.4K
Three.js

JavaScript 3D Library.

By mrdoob 110.5K
Axios

Promise based HTTP client for the browser and node.js

By axios 108.5K