A Model Context Protocol (MCP) server that connects AI agents (like Claude Desktop or other MCP clients) to real-time cryptocurrency market data using the CoinGecko API.
This project demonstrates how to build and run a complete MCP server in Node.js, featuring:
- 🧰 Tools for interacting with crypto data
- 📚 (Optional) Resources for reusable info sets
- 💬 (Optional) Prompt Templates for AI-assisted responses
✅ Get Real-Time Prices — Fetch live prices, market cap, and 24h change for any cryptocurrency
✅ Detailed Coin Info — Retrieve full metadata for a specific coin
✅ Market Data — Paginated list of coins ranked by market cap
✅ Search Coins — Find coins by name or symbol
✅ Trending Coins — Get currently trending cryptocurrencies on CoinGecko
MCP (Model Context Protocol) is a new open standard that connects Large Language Models (LLMs) to external tools, APIs, and data sources through a single unified interface.
Each MCP Server can expose:
| Category | Description |
|---|---|
| 🧰 Tools | Functions or APIs that an LLM can call (like get_price) |
| 📚 Resources | Static or dynamic data references (like coin lists, config files) |
| 💬 Prompt Templates | Predefined prompts or instruction templates |
Your LLM can then access and execute these capabilities safely and consistently.
crypto-mcp-server/
├── server.js # Main MCP server implementation
├── package.json # Dependencies and module config
└── README.md # Documentation (this file)
git clone https://github.com/<your-username>/crypto-mcp-server.git
cd crypto-mcp-servernpm installMake sure your
package.jsonincludes"type": "module"
node server.jsYou should see:
CoinGecko MCP Server running on stdio
To connect this MCP server with Claude Desktop, edit your configuration file:
nano ~/Library/Application\ Support/Claude/claude_desktop_config.jsonAdd the following entry under mcpServers:
{
"mcpServers": {
"coingecko": {
"command": "/Users/<your-username>/.nvm/versions/node/v22.17.1/bin/node",
"args": ["/Users/<your-username>/work/crypto-mcp-server/server.js"]
}
}
}Then restart Claude Desktop. You’ll now be able to call this server using /mcp commands like:
/mcp coingecko get_price { "ids": "bitcoin", "vs_currencies": "usd" }| Tool | Description | Example |
|---|---|---|
get_price |
Get current price, market cap, and 24h change | { "ids": "bitcoin", "vs_currencies": "usd" } |
get_coin_details |
Get metadata about a specific coin | { "id": "ethereum" } |
get_market_data |
Paginated market cap data | { "vs_currency": "usd", "per_page": 10, "page": 1 } |
search_coins |
Search for cryptocurrencies | { "query": "solana" } |
get_trending |
Get trending cryptocurrencies | {} |
- Node.js 22+
- @modelcontextprotocol/sdk
- CoinGecko REST API
- ES Modules (import/export syntax)
- Add Resources to store coin metadata or cached lookups
- Add Prompt Templates for summarizing market trends
- Add Persistent local caching for performance optimization
- Integrate with other APIs (Binance, CoinMarketCap, etc.)
Saqib Hussain 🚀 Software Engineer | DevOps | AI Integrations 🔗 LinkedIn 🏢 Founder — DevInspect