加密货币数据服务

一个用于与CoinGecko Pro API交互的Model Context Protocol (MCP)服务器和OpenAI函数调用服务,提供加密货币列表、历史价格、市场数据和OHLC蜡烛图数据。

  • by crazyrabbitLTC
  • JavaScript
  • 本地部署
  • 9 星标
  • 更新于
在 GitHub 查看 crazyrabbitltc/mcp-coingecko-server

使用说明

更新:CoinGecko现在有一个官方的MCP服务器: https://docs.coingecko.com/reference/mcp-server

我建议你使用那个,因为我可能不会更新或保持这个最新版本。

CoinGecko服务器

模型上下文协议(MCP)服务器和OpenAI函数调用服务,用于与CoinGecko Pro API交互。

特性

  • 支持的加密货币分页列表
  • 按名称或符号查找硬币ID
  • 历史价格、市值和交易量数据
  • OHLC(开盘、高、低、收盘)烛台数据
  • 具有刷新功能的本地硬币缓存

安装

npm install coingecko-server

环境设置

创建一个 .env 项目根目录中的文件:

COINGECKO_API_KEY=your_api_key_here

使用Claude Desktop

Claude Desktop完全支持MCP功能。要使用此服务器,请执行以下操作:

  1. 安装 克劳德桌面

  2. 添加到您的Claude Desktop配置中:

    • 在macOS上: ~/Library/Application Support/Claude/claude_desktop_config.json
    • 在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. 重新启动克劳德桌面

服务器提供以下工具:

  • get-coins:获取支持硬币的分页列表
  • find-coin-ids:查找CoinGecko ID中的硬币名称/符号
  • get-historical-data:获取历史价格、市值和交易量数据
  • get-ohlc-data:获取OHLC烛台数据
  • refresh-cache:刷新本地硬币列表缓存

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

数据类型

OHLC数据

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

历史数据

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

速率限制

请参阅 CoinGecko Pro API文档 了解当前的费率限制和使用指南。

许可证

麻省理工学院