Skip to main content
Glama
deerajd

CryptoPriceTracker-MCP

by deerajd

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


Related MCP server: Crypto Tracker MCP Server

Quickstart

1. Install & Run

Run the MCP Crypto Price Tracker Server using uvx:

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.):

{
  "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

  • 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 for async HTTP requests

  • FastMCP for MCP server implementation

  • 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


Available Tools

1 tool
get_crypto_priceA

Get the current price of a cryptocurrency in a specified currency using the CoinGecko API.

Args: cryptocurrency: The id of the cryptocurrency (e.g., 'bitcoin', 'ethereum'). currency: The fiat or crypto currency to convert to (e.g., 'usd', 'inr'). Returns: The current price as a float. Returns 0.0 if the price cannot be fetched.

Example: get_crypto_price(cryptocurrency="bitcoin", currency="usd") get_crypto_price(cryptocurrency="ethereum", currency="inr")

ParametersJSON Schema
NameRequiredDescriptionDefault
currencyNoinr
cryptocurrencyYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does disclose a meaningful behavioral trait: the failure mode ('Returns 0.0 if the price cannot be fetched'), which alerts the agent to silent failure. It omits other relevant behavior such as CoinGecko rate limits, auth/key requirements, and whether the value is cached or live.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The core purpose is front-loaded in one sentence, and the Args/Returns/Example structure is standard and easy to scan. The two example calls are mildly redundant with the Args block but still earn their place by showing argument formation.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-parameter read tool with an output schema present, the description covers purpose, both parameters, and the failure return value, which is sufficient to call it correctly. It could be more complete by noting rate limits or how to discover valid cryptocurrency ids.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate, and it does: 'cryptocurrency' is defined as the CoinGecko id with concrete examples ('bitcoin', 'ethereum'), and 'currency' as the fiat or crypto target ('usd', 'inr'). The schema-declared default of 'inr' is not restated, but both parameters are otherwise well explained.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource ('Get the current price of a cryptocurrency in a specified currency') and names the data source (CoinGecko API). No siblings exist to disambiguate against, and the scope of the operation is unambiguous from the first sentence.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the examples (bitcoin/usd, ethereum/inr) and the required/optional split, but there is no explicit statement of when to use this tool, when not to, or what alternatives exist (e.g., historical prices). Adequate but with an obvious gap.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 1 tool updatev0.1.0
    • First observedget_crypto_price

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

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables interaction with the CoinGecko Pro API to access cryptocurrency data including price history and market metrics through both MCP and OpenAI function calling.
    9
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Connects AI agents to real-time cryptocurrency market data from CoinGecko API, enabling price lookups, coin details, market rankings, search, and trending crypto queries through natural language.
    7 npm
    Apache 2.0
  • F
    license
    B
    quality
    D
    maintenance
    A Model Context Protocol server that provides real-time cryptocurrency price fetching capabilities using the CoinGecko API. It enables LLMs to retrieve and process the latest price for any coin by its name or symbol.
    2
    -
  • F
    license
    Not graded
    quality
    D
    maintenance
    Provides live and historical cryptocurrency prices, trending coins, and global market data via CoinGecko API, enabling AI agents to fetch real-time and historical crypto information.
    -