CoinGecko MCP Server

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<string, string>; }

Rate Limits

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

License

MIT

You must be authenticated.

A
security – no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

Enables interaction with the CoinGecko Pro API to access cryptocurrency data including price history and market metrics through both MCP and OpenAI function calling.

  1. Features
    1. Installation
      1. Environment Setup
        1. Usage with Claude Desktop
          1. Usage with OpenAI Function Calling
            1. Data Types
              1. OHLCData
                1. HistoricalData
                  1. CoinInfo
                  2. Rate Limits
                    1. License