Skip to main content
Glama
deerajd

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