CryptoPriceTracker-MCP
by deerajd
README.md
# MCP Crypto Price Tracker Server
A Model Context Protocol (MCP) server that enables LLM-based AI agents to access real-time cryptocurrency price information. Designed for seamless integration with LLMs and AI agents using the MCP protocol and the CoinGecko API.
---
## Features
- Exposes cryptocurrency price tracking tools for LLM agents via MCP:
- `get_crypto_price`: Get current price of any cryptocurrency in any supported currency
- Uses the CoinGecko API for accurate, real-time cryptocurrency data
- Supports all major cryptocurrencies (Bitcoin, Ethereum, etc.)
- Supports multiple fiat currencies (USD, EUR, INR, etc.) and crypto conversions
- Asynchronous HTTP requests for non-blocking performance
- Simple integration with Claude, MCP clients, or other LLM-based agents
---
## Quickstart
### 1. Install & Run
Run the MCP Crypto Price Tracker Server using [`uvx`](https://github.com/uvx-dev/uvx):
```bash
uvx --from git+https://github.com/deerajd/CryptoPriceTracker-MCP.git mcp-server
```
---
### 2. Integrate with Your LLM Agent
Add the following to your tool configuration (for Claude, MCP clients, etc.):
```json
{
"mcpServers": {
"CryptoPriceTracker": {
"command": "uvx",
"args": [
"--from",
"git+https://github.com/deerajd/CryptoPriceTracker-MCP.git",
"mcp-server"
]
}
}
}
```
This configuration launches the MCP Crypto Price Tracker Server as a subprocess, exposing cryptocurrency price tools to your LLM agent.
---
### 3. Usage
From your LLM agent, you can call:
#### Get Cryptocurrency Price
```
get_crypto_price(cryptocurrency="bitcoin", currency="usd") # Bitcoin in USD
get_crypto_price(cryptocurrency="ethereum", currency="inr") # Ethereum in INR
get_crypto_price(cryptocurrency="cardano", currency="eur") # Cardano in EUR
get_crypto_price(cryptocurrency="solana") # Solana in INR (default)
```
The server will respond with the current price as a float value. For example:
- `67234.56` for Bitcoin in USD
- `178543.78` for Ethereum in INR
---
## API Reference
### `get_crypto_price(cryptocurrency, currency="inr")`
- **Parameters:**
- `cryptocurrency` (str): The CoinGecko ID of the cryptocurrency (e.g., "bitcoin", "ethereum", "cardano")
- `currency` (str, optional): The target currency code (default: "inr"). Supports fiat currencies like "usd", "eur", "inr" and crypto currencies
- **Returns:** Current price as a float. Returns `0.0` if price cannot be fetched
- **Coverage:** Global cryptocurrency markets via CoinGecko API
#### Popular Cryptocurrency IDs:
- `bitcoin` - Bitcoin (BTC)
- `ethereum` - Ethereum (ETH)
- `cardano` - Cardano (ADA)
- `solana` - Solana (SOL)
- `polygon` - Polygon (MATIC)
- `chainlink` - Chainlink (LINK)
#### Supported Currencies:
- **Fiat:** usd, eur, inr, jpy, gbp, cad, aud, and many more
- **Crypto:** btc, eth, and other major cryptocurrencies
---
## Development
### Requirements
- Python 3.13+
- [`httpx`](https://pypi.org/project/httpx/) for async HTTP requests
- [`FastMCP`](https://github.com/modelcontext/fastmcp) for MCP server implementation
- [`requests`](https://pypi.org/project/requests/) for HTTP client support
- CoinGecko API (free tier available)
### Project Structure
```
CryptoPriceTracker/
├── src/
│ └── mcpserver/
│ ├── __init__.py
│ ├── __main__.py # Entry point
│ └── deployment.py # Main server implementation
├── pyproject.toml # Project configuration
└── README.md # This file
```
---
## License
MIT License
---
TDQS
A4/5.0
Scored across 1 tool
Disambiguation5/5
There is only one tool, so there is no possibility of confusion or misselection between tools. Its purpose is singular and clearly stated.
Naming Consistency5/5
The sole tool name get_crypto_price follows a clear and predictable verb_noun snake_case convention. With only one tool, there is no inconsistency to penalize.
Tool Count3/5
A single tool is borderline thin for a server named CryptoPriceTracker-MCP. It can fetch a current price, but the scope suggests more functionality could reasonably be expected.
Completeness2/5
The surface only supports fetching a single current price. Obvious adjacent operations such as historical prices, price ranges, supported currency lists, or market data are missing, creating significant gaps for a crypto price tracking domain.
Maintenance
ActivityInactive
ResponsivenessNo issues