mcp-server-coingecko
MCP Market is a Model Context Protocol server offering tools to access cryptocurrency market data from CoinGecko. It validates parameters with Zod and communicates via stdio, providing historical data insights.
MCP Market
A Model Context Protocol server with tools for accessing cryptocurrency market data from CoinGecko.
Setup
-
Install dependencies:
npm install
-
Create an
.env
file in the root directory and add your CoinGecko API key:# API Keys COINGECKO_API_KEY=your_coingecko_api_key_here
-
Build the project:
npm run build
-
Run the server:
npm start
Available Tools
getCoinMarketChart
Gets historical market chart data for a specific cryptocurrency, including price, market cap, and volume.
Parameters (all validated with Zod):
coinId
(optional): The ID of the coin to fetch data for (e.g., 'bitcoin', 'ethereum'). Defaults to 'bitcoin'.vsCurrency
(optional): The currency to display prices in (e.g., 'usd', 'eur', 'jpy'). Defaults to 'usd'.days
(optional): Number of days of data to retrieve (e.g., '1', '14', '30', '90', 'max'). Defaults to '30'.interval
(optional): Data interval. Leave empty for automatic selection based on time range.
Example usage:
{
"coinId": "ethereum",
"vsCurrency": "usd",
"days": "7"
}
CoinGecko API Documentation
For more information on the CoinGecko API, see the official documentation:
Development
For development with auto-recompilation:
npm run dev
Features
- Implements the Model Context Protocol (MCP)
- Written in TypeScript
- Uses stdio for communication
- Provides cryptocurrency market data via CoinGecko API
- Parameter validation with Zod
Implementation Details
This server uses the @modelcontextprotocol/sdk
to create an MCP server that:
- Communicates via stdio
- Provides historical market chart data for cryptocurrencies
- Follows the ES Module pattern
- Validates input parameters using Zod schemas
Extending the Server
To extend this server:
- Add more tools by using the
server.tool()
method - Implement additional CoinGecko API endpoints
- Experiment with other transport methods like HTTP or WebSockets