CoinGecko Server

Un servidor MCP para acceder a datos de criptomonedas en tiempo real desde la API Pro de CoinGecko.

Documentación

Actualización: CoinGecko ahora tiene un servidor MCP oficial: https://docs.coingecko.com/reference/mcp-server

Te recomiendo usar ese, ya que probablemente no actualizaré ni mantendré este al día.

CoinGecko Server

Un servidor de Protocolo de Contexto de Modelo (MCP) y servicio de llamada de funciones de OpenAI para interactuar con la API de CoinGecko Pro.

Características

  • Lista paginada de criptomonedas compatibles
  • Búsqueda de ID de moneda por nombre o símbolo
  • Datos históricos de precio, capitalización de mercado y volumen
  • Datos de velas OHLC (Apertura, Máximo, Mínimo, Cierre)
  • Caché local de monedas con capacidad de actualización

Instalación

npm install coingecko-server

Configuración del Entorno

Crea un archivo .env en la raíz de tu proyecto:

COINGECKO_API_KEY=your_api_key_here

Uso con Claude Desktop

Claude Desktop ofrece soporte completo para las funciones de MCP. Para usar este servidor:

  1. Instala Claude Desktop

  2. Añade a tu configuración de Claude Desktop:

    • En macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
    • En 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. Reinicia Claude Desktop

El servidor proporciona las siguientes herramientas:

  • get-coins: Obtén una lista paginada de monedas compatibles
  • find-coin-ids: Busca IDs de CoinGecko para nombres/símbolos de monedas
  • get-historical-data: Obtén datos históricos de precio, capitalización de mercado y volumen
  • get-ohlc-data: Obtén datos de velas OHLC
  • refresh-cache: Actualiza la caché local de la lista de monedas

Uso con Llamada de Funciones de OpenAI

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
  );
}

Tipos de Datos

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

Límites de Tasa

Consulta la documentación de la API de CoinGecko Pro para conocer los límites de tasa y las pautas de uso actuales.

Licencia

MIT