# Reported issues for truss44-mcp-crypto-price

Pod holds 19 of 23 problems reported by people outside the maintainer team. Issues filed by the project's own owners, members and collaborators are excluded entirely — a maintainer's release checklist is not a warning to a prospective user.

Back to [truss44-mcp-crypto-price](/mcp/truss44-mcp-crypto-price).

## Most discussed

### Add homepage landing page for MCP crypto tool

Create a dedicated homepage at  for the MCP crypto price server.

## Scope
- Serve a single-page landing page from the root route
- Keep the homepage in a separate module so  stays focused on routing
- Highlight MCP tool features, install/use guidance, Smithery, GitHub, CoinCap, and the project logo
- Include creator attribution in the footer

## Notes
- The page should remain a static HTML response
- The MCP protocol routes and discovery metadata should continue to work unchanged
- CoinCap refe

[Read the thread](https://github.com/truss44/mcp-crypto-price/issues/146) · 2026-03-24 · closed · 2 comments

### fix: HTTP server 404 and API key not applied when connecting with query parameters

## Bug Report

### Problem

When connecting to the MCP HTTP server and providing a `COINCAP_API_KEY` via query parameter (e.g. `/mcp?coincapApiKey=xxx`), two bugs cause the connection to fail with a 404.

### Root Causes

**Bug 1 — URL route matching breaks with query parameters**

In `src/http.ts`, routes are matched against `req.url` directly:

```ts
if (req.url === '/mcp' || req.url === '/') {
```

`req.url` includes the full query string, so `/mcp?coincapApiKey=xxx` never equals `'/mcp'`. Th

[Read the thread](https://github.com/truss44/mcp-crypto-price/issues/138) · 2026-03-21 · closed · 2 comments

### Feature: support asset lookup by name in addition to symbol

## Summary

Allow users to look up cryptocurrencies by their full name (e.g., "Bitcoin", "Ethereum") in addition to their ticker symbol (e.g., "BTC", "ETH").

## Motivation

Users interacting through natural language often say "what's the price of Bitcoin?" rather than "what's the price of BTC?". Currently, passing `"Bitcoin"` as the `symbol` argument returns "Could not find cryptocurrency with symbol BITCOIN" because the lookup does an exact match against the ticker field.

## Proposed change

[Read the thread](https://github.com/truss44/mcp-crypto-price/issues/121) · 2026-03-21 · closed · 2 comments

### Feature: add get-top-assets tool to list top coins by market cap

## Summary

Add a new MCP tool `get-top-assets` that returns the top N cryptocurrencies ranked by market cap, without requiring the user to already know a symbol.

## Motivation

Currently all three tools require the user to know a specific coin symbol upfront. There's no discovery mechanism — a user can't ask "what are the top 10 coins right now?" without already knowing what to look for. This is a common first question when doing crypto research.

## Proposed tool spec

**Tool name:** `get-top

[Read the thread](https://github.com/truss44/mcp-crypto-price/issues/120) · 2026-03-21 · closed · 2 comments

### Improvement: validate v3 API response shape before caching

## Problem

`makeCoinCapRequest` casts the v3 API response directly to the expected type without any validation:

```ts
const data = await v3Response.json() as T;
setCacheData(cacheKey, data);
return data;
```

CoinCap v3 (`rest.coincap.io/v3`) is a distinct API version that may return a different JSON schema than v2 (`api.coincap.io/v2`). For example, v3 may wrap responses differently, rename fields, or change data types. If the shapes differ, the mismatch will propagate silently — the response

[Read the thread](https://github.com/truss44/mcp-crypto-price/issues/118) · 2026-03-21 · closed · 2 comments

### Bug: SERVER_CONFIG.version is hardcoded and out of sync

## Problem

`src/config/index.ts` hardcodes the server version:

```ts
export const SERVER_CONFIG = {
  name: "mcp-crypto-price",
  version: "2.1.0",  // hardcoded
} as const;
```

The current `package.json` version is `2.1.5`. The MCP server advertises `2.1.0` to clients during the `initialize` handshake, which is stale and will continue drifting further with every release.

## Suggested Fix

Import the version from `package.json` at build time instead of hardcoding it:

```ts
import { createRe

[Read the thread](https://github.com/truss44/mcp-crypto-price/issues/117) · 2026-03-21 · closed · 2 comments

### Improvement: add unit tests for tool handlers

## Problem

The test suite covers `src/services/coincap.ts` and `src/services/formatters.ts`, but there are no tests for the three tool handler functions:

- `handleGetPrice` (`src/tools/price.ts`)
- `handleGetMarketAnalysis` (`src/tools/market.ts`)
- `handleGetHistoricalAnalysis` (`src/tools/historical.ts`)

The handlers contain meaningful logic: symbol lookup, null-checking API results, error formatting, and Zod schema parsing. These paths are currently untested.

## What to test

- Valid symb

[Read the thread](https://github.com/truss44/mcp-crypto-price/issues/119) · 2026-03-21 · closed · 2 comments

### Bug: asset lookup fails for coins outside top 100

## Problem

All three tool handlers look up a coin by calling `getAssets()` and filtering the result by symbol:

```ts
// src/tools/price.ts (and market.ts, historical.ts)
const assetsData = await getAssets();
const asset = assetsData.data.find(
  (a) => a.symbol.toUpperCase() === upperSymbol
);
```

The CoinCap `/assets` endpoint defaults to returning only the **top 100 assets by market cap** (limit=100). Any coin ranked below #100 will not appear in the response, causing the tool to return:

>

[Read the thread](https://github.com/truss44/mcp-crypto-price/issues/116) · 2026-03-21 · closed · 2 comments

## Most recent

### MCP best-practice fixes: isError on validation, server description, resource templates

## Feature Request

Apply MCP 2025-11-25 spec best practices that are currently missing.

### 1. isError on validation errors (SEP-1303)
Input validation errors should be returned as tool execution errors with `isError: true` rather than throwing protocol errors. This enables model self-correction.

### 2. Server description field
The spec now supports an optional `description` on server info during initialization. Add a brief description to the `McpServer` constructor.

### 3. Resource template

[Read the thread](https://github.com/truss44/mcp-crypto-price/issues/202) · 2026-07-02 · closed · 1 comment

### Add get-asset-info tool for detailed asset metadata

## Feature Request

Add a new `get-asset-info` MCP tool that returns full asset details including supply, max supply, VWAP, change percentages, and asset ID.

### Current State
The `get-crypto-price` tool returns a formatted summary but omits supply, maxSupply, and the asset ID (which users need for other calls).

### Proposed Tool
- **Name**: `get-asset-info`
- **Input**: `symbol` (string) — cryptocurrency symbol or name
- **Output**: Full asset metadata: id, name, symbol, rank, price, supply, 

[Read the thread](https://github.com/truss44/mcp-crypto-price/issues/201) · 2026-07-02 · closed · 0 comments

### Add get-price-conversion tool for multi-currency price conversion

## Feature Request

Add a new `get-price-conversion` MCP tool that converts any cryptocurrency price to a user-specified fiat or crypto currency (EUR, GBP, JPY, BTC, ETH, etc.).

### Current State
All prices are returned in USD only. The `get-rates` tool returns conversion rates but users must manually compute converted prices.

### Proposed Tool
- **Name**: `get-price-conversion`
- **Input**: `symbol` (string) — crypto to convert, `currency` (string) — target currency symbol
- **Output**: Price

[Read the thread](https://github.com/truss44/mcp-crypto-price/issues/200) · 2026-07-02 · closed · 0 comments

### Add get-candlestick-data tool for OHLCV candle data

## Feature Request

Add a new `get-candlestick-data` MCP tool that returns open/high/low/close/volume candles for a given exchange pair and interval.

### Current State
The `get-historical-analysis` tool only returns price points, not full OHLCV candles. CoinCap has a `/candles` endpoint that is not currently used.

### Proposed Tool
- **Name**: `get-candlestick-data`
- **Input**: `exchange` (string), `baseId` (string), `quoteId` (string), `interval` (enum), `days` (number, 1-30)
- **Output**: O

[Read the thread](https://github.com/truss44/mcp-crypto-price/issues/199) · 2026-07-02 · closed · 0 comments

### Add compare-crypto tool for side-by-side cryptocurrency comparison

## Feature Request

Add a new `compare-crypto` MCP tool that compares price, 24h change, volume, market cap, and rank for 2-5 cryptocurrencies in a single call.

### Current State
Users must call `get-crypto-price` multiple times and manually compare results.

### Proposed Tool
- **Name**: `compare-crypto`
- **Input**: `symbols` (string) — comma-separated list of 2-5 symbols
- **Output**: Comparison table with price, 24h change, volume, market cap, rank
- **Breaking changes**: None — new tool on

[Read the thread](https://github.com/truss44/mcp-crypto-price/issues/198) · 2026-07-02 · closed · 0 comments

### Add get-global-metrics tool for overall crypto market overview

## Feature Request

Add a new `get-global-metrics` MCP tool that returns total market cap, 24h volume, BTC dominance, and number of active cryptocurrencies.

### Current State
No global market overview tool exists. Users can only query individual assets.

### Proposed Tool
- **Name**: `get-global-metrics`
- **Input**: None
- **Output**: Total market cap, total 24h volume, BTC dominance %, active asset count
- **Breaking changes**: None — new tool only

### Why
CoinMarketCap has `get_global_metri

[Read the thread](https://github.com/truss44/mcp-crypto-price/issues/197) · 2026-07-02 · closed · 0 comments

### Add search-assets tool for fuzzy cryptocurrency search

## Feature Request

Add a new `search-assets` MCP tool that allows users to fuzzy search for cryptocurrencies by name, symbol, or partial match.

### Current State
The `searchAsset` function exists internally in `src/services/coincap.ts` but is not exposed as a public tool. Users can only get price info for a single matched asset.

### Proposed Tool
- **Name**: `search-assets`
- **Input**: `query` (string) — search by name, symbol, or partial match
- **Output**: Multiple matching assets with id,

[Read the thread](https://github.com/truss44/mcp-crypto-price/issues/196) · 2026-07-02 · closed · 0 comments

### Add MCP tool annotations and parameter descriptions to HTTP discovery

This issue tracks improvements to the MCP server metadata for better client discovery and usability.

## Changes

### Tool Annotations
Added MCP tool annotations to all tools in the HTTP discovery server card (`src/http.ts`):
- `get-crypto-price`
- `get-market-analysis`
- `get-historical-analysis`
- `get-top-assets`

Each tool now includes:
- `title`: Human-readable title
- `readOnlyHint`: true (tools only read data)
- `destructiveHint`: false (no destructive operations)
- `idempotentHint`: true

[Read the thread](https://github.com/truss44/mcp-crypto-price/issues/144) · 2026-03-23 · closed · 1 comment

### fix: CoinCap v3 API schema drift breaks all tools (nullable rank, renamed fields)

## Bug Report

### Summary

All four MCP tools (`get-crypto-price`, `get-market-analysis`, `get-historical-analysis`, `get-top-assets`) are broken due to schema drift between the code and the current CoinCap v3 API spec.

### Root Cause

The CoinCap v3 API has drifted from what the code expects in several ways:

1. **`rank` field is now nullable** (`"nullable": true` in the API spec) — Our Zod schema had `rank: z.string()` (non-nullable). Any asset with a `null` rank triggers a Zod parse error i

[Read the thread](https://github.com/truss44/mcp-crypto-price/issues/141) · 2026-03-21 · closed · 1 comment

### feat: Remove CoinCap v2 API support, require API key for v3

## Summary

The CoinCap v2 API (`api.coincap.io/v2`) has been sunset and is no longer available. Only the v3 API (`rest.coincap.io/v3`) remains operational. This MCP server currently tries v3 first and falls back to v2 — that fallback is now broken.

## Changes Required

- **Remove all v2 API code**: Remove `COINCAP_API_V2_BASE`, the v2 fallback logic in `makeCoinCapRequest()`, and all v2 references
- **Make `COINCAP_API_KEY` required**: The v3 API requires an API key. If none is provided, tools

[Read the thread](https://github.com/truss44/mcp-crypto-price/issues/135) · 2026-03-21 · closed · 1 comment

### feat: replace Smithery with native MCP HTTP transport for Coolify deployment

## Summary

Remove the Smithery dependency and replace it with a native `StreamableHTTPServerTransport` from `@modelcontextprotocol/sdk`. This enables direct Docker deployment without needing the Smithery CLI toolchain.

## Changes

- **Add `src/http.ts`** — new HTTP entry point using `StreamableHTTPServerTransport` (stateless, listens on `PORT` env var, defaults to `3000`)
- **Update `Dockerfile`** — build with `tsc`, copy `dist/`, expose port `3000`, run `node dist/http.js`
- **Update `package

[Read the thread](https://github.com/truss44/mcp-crypto-price/issues/124) · 2026-03-21 · closed · 1 comment

The remaining reports are on [the project's issue tracker](https://github.com/truss44/mcp-crypto-price/issues).
