Skip to main content
Glama
marcosnunesmbs

CoinGecko Price MCP Server

CoinGecko Price MCP Server

A simple Model Context Protocol (MCP) server that provides cryptocurrency pricing information using the CoinGecko API.

Features

  • get_crypto_price: A tool to fetch the current price of a cryptocurrency in a specific currency.

    • Inputs:

      • crypto_id: The CoinGecko ID of the cryptocurrency (e.g., 'bitcoin', 'ethereum').

      • currency: The target currency for the price (e.g., 'usd', 'brl').

Related MCP server: Crypto Price MCP Server

Prerequisites

  • Node.js (v18 or higher recommended)

  • npm

Installation

  1. Clone or navigate to the project repository.

  2. Install dependencies:

    npm install

Building the Project

Compile the TypeScript code to JavaScript:

npm run build

The compiled output will be in the dist directory.

Usage

Testing Locally with MCP Inspector (The npx Way)

You can test the server interactively using the MCP Inspector. This allows you to inspect tools and resources and make tool calls directly.

  1. Build the project first:

    npm run build
  2. Run the inspector using npx, pointing it to your built server script:

    npx @modelcontextprotocol/inspector node dist/index.js

    Note: On Windows, use a full path or ensuring valid path syntax if you encounter issues.

  3. Open the URL provided in the terminal (usually http://localhost:5173) to interact with your server.

Running Directly

You can run the server directly (it communicates via Stdio), but it is designed to be used by an MCP client (like Claude Desktop or the Inspector).

npm start

Developing

To run the server in development mode (using tsx):

npm run dev

Setup with Claude Desktop

To use this server with Claude Desktop apps:

  1. Locate your Claude Desktop configuration file:

    • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

    • Windows: %APPDATA%\Claude\claude_desktop_config.json

  2. Add the server configuration:

    {
      "mcpServers": {
        "coingecko_price": {
          "command": "node",
          "args": ["/absolute/path/to/mcp_coingecko_price_ts/dist/index.js"]
        }
      }
    }

    Remember to run npm run build after making changes to the source code.

  3. You can run this mcp with stdio transport using npx command

    {
     "mcpServers": {
       "coingecko_price": {
         "command": "npx",
         "args": ["-y", "mcp_coingecko_price_ts"]
       }
     }
    }

Available Tools

1 tool
get_crypto_priceGet Cryptocurrency PriceB

Get the current price of a cryptocurrency from CoinGecko.

ParametersJSON Schema
NameRequiredDescriptionDefault
currencyYes
crypto_idYes

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It only reveals that this is a read-only price lookup from CoinGecko; it does not mention potential external API latency, rate limits, error behavior, freshness, or return format.

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

Conciseness5/5

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

The description is a single, well-structured sentence with no filler. Every word contributes: it names the action, the object, the tense ('current'), and the data source.

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

Completeness3/5

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

For a simple two-parameter read operation the description states the core purpose and source, and the return value ('price') is implied. Still, without an output schema or any parameter documentation, the agent must guess at ID conventions and the response shape, leaving the overview incomplete.

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

Parameters2/5

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

Schema coverage is 0% and the description does not explain either parameter. 'cryptocurrency' hints at crypto_id, but the `currency` parameter is never mentioned and no formats, examples, or allowed values are given, so the description fails to compensate for the schema gap.

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

Purpose4/5

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

The description clearly identifies the operation ('Get'), the target ('current price of a cryptocurrency'), and the source ('from CoinGecko'). It is specific and unambiguous, but there are no sibling tools to differentiate against, so it does not reach the top tier that requires distinction from alternatives.

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?

The phrasing 'current price' implies the tool is appropriate when a current, CoinGecko-sourced price is needed. However, it never states explicit when-to-use conditions, prerequisites, or situations where an alternative approach should be chosen.

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 updatev1.0.5
    • First observedget_crypto_price

TDQS

B3.4/5.0

Scored across 1 tool

Disambiguation5/5

With only one tool, there is no possibility of confusion or overlap with other tools. The purpose of get_crypto_price is singular and unambiguous.

Naming Consistency5/5

The single tool name follows a clear verb_noun pattern (get_crypto_price). While there are no other tools for comparison, the name is self-consistent and matches standard conventions.

Tool Count3/5

A single tool feels thin for a server purportedly covering CoinGecko, even if focused on price. While the scope is narrow, users may expect additional functions like historical prices or supported coin lists, making the count borderline.

Completeness3/5

The tool covers the core 'current price' use case, but lacks supporting functionality such as listing supported cryptocurrencies, specifying base currencies clearly, or providing historical data. This leaves notable but not critical gaps for the stated purpose.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers