J

mcp-coingecko-server

...
Created 12/30/2024bycrazyrabbitLTC

Language:

JavaScript

Stars:

5

Forks:

4

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: 2/13/2025

Publisher info

crazyrabbitLTC's avatar

Dennison Bertram

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

155
followers
42
following
216
repos

More MCP servers built with JavaScript

mcp-server-semgrep

MCP Server Semgrep is a [Model Context Protocol](https://modelcontextprotocol.io) compliant server that integrates the powerful Semgrep static analysis tool with AI assistants like Anthropic Claude. It enables advanced code analysis, security vulnerability detection, and code quality improvements directly through a conversational interface.

By Szowesgad9
protonmail-mcp

This MCP server provides email sending functionality using Protonmail's SMTP service. It allows both Claude Desktop and Cline VSCode extension to send emails on your behalf using your Protonmail credentials.

By amotivv6
agentql-mcp

Model Context Protocol server that integrates AgentQL's data extraction capabilities.

By tinyfish-io45