mcp-coingecko-server
by: crazyrabbitLTC
An Anthropic MCP server (with OpenAI Function calling compatibility) for the Coingecko Pro API
📌Overview
Purpose: The CoinGecko Server serves as a Model Context Protocol (MCP) server and OpenAI function calling service for seamless interaction with the CoinGecko Pro API.
Overview: This framework allows developers to access various cryptocurrency data points, including historical prices, market caps, and candlestick data through a structured API. It enhances functionality by providing tools for coin lookup and a local cache system.
Key Features:
-
Paginated List of Supported Cryptocurrencies: Retrieves a sequenced list of available cryptocurrencies, ensuring that developers can access comprehensive and organized data.
-
Coin ID Lookup: Enables users to find cryptocurrency IDs through names or symbols, facilitating easy identification of coins across various applications.
-
Historical Data Access: Offers detailed historical data on prices, market cap, and volume, allowing for in-depth analysis and comparison over time.
-
OHLC Candlestick Data: Presents Open, High, Low, Close data in a structured format, essential for traders and analysts looking to assess market trends.
-
Local Coin Cache: Implements a caching system with refresh capabilities to improve data retrieval speeds and reduce API calls, enhancing overall efficiency.
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:
-
Install Claude Desktop from https://claude.ai/download
-
Add to your Claude Desktop configuration:
- On macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
- On Windows:
%APPDATA%\Claude\claude_desktop_config.json
- On macOS:
{
"mcpServers": {
"coingecko": {
"command": "node",
"args": ["/path/to/coingecko-server/build/index.js"],
"env": {
"COINGECKO_API_KEY": "your-api-key-here"
}
}
}
}
- Restart Claude Desktop
The server provides the following tools:
get-coins
: Get a paginated list of supported coinsfind-coin-ids
: Look up CoinGecko IDs for coin names/symbolsget-historical-data
: Get historical price, market cap, and volume dataget-ohlc-data
: Get OHLC candlestick datarefresh-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 (https://www.coingecko.com/api/documentation) for current rate limits and usage guidelines.
License
MIT