Tags: cyanheads/coingecko-mcp-server
Tags
mcp-ts-core 0.12.3 / SDK v2 adoption, error-contract reclassification - Framework ^0.10.6 → ^0.12.3 (MCP SDK v2): protocol revision 2026-07-28 served alongside the 2025 era, strict tool inputs, error envelope declared in outputSchema, ctx.log reaches clients, Retry-After honored - unsupported_currency and unknown_category now return NotFound (-32001); invalid_range returns ValidationError (-32007) - Docker build stage pinned to $BUILDPLATFORM so linux/amd64 images build natively instead of under QEMU; bun 1.4.0 base, BuildKit cache mounts, --omit=peer production installs - Internal: supply-chain install guard (minimumReleaseAge + Socket scanner), community health files, websiteUrl dropped from createApp identity, protocol docs and README badges synced - deps: @cyanheads/mcp-ts-core ^0.10.6 → ^0.12.3, typescript ^6.0.3 → ^7.0.2 (+ @types/node 26.2.0, vitest ^4.1.11, @biomejs/biome 2.5.9) [CHANGELOG v0.1.2](https://github.com/cyanheads/coingecko-mcp-server/blob/main/changelog/0.1.x/0.1.2.md)
Metadata correctness Changed: - README `<h1>` now reads `@cyanheads/coingecko-mcp-server`, mirroring the published npm package name. Added: - `repository` field in `manifest.json` pointing at the GitHub repo. 44 tests pass; `bun run devcheck` clean.
Initial release — CoinGecko market-data MCP server
Cryptocurrency market data via the live CoinGecko v3 REST API. Read-only, keyless by default; optional COINGECKO_API_KEY attaches the Demo-tier header.
Added:
- 8 tools: `coingecko_search_coins`, `coingecko_get_prices`, `coingecko_list_markets`, `coingecko_get_coin`, `coingecko_get_market_chart`, `coingecko_get_trending`, `coingecko_get_global`, `coingecko_list_categories`
- 2 resources: `coingecko://coin/{id}`, `coingecko://global`
- `coingecko_coin_research` prompt — guides the search → get_coin → get_market_chart → get_global chain
- `COINGECKO_API_KEY` optional env var (x-cg-demo-api-key header); keyless public tier by default
- CoinGecko service — one method per endpoint, fetch+parse wrapped in withRetry (429/5xx/timeout); 404 surfaces as typed `coin_not_found`. Every output carries CoinGecko attribution.
44 tests pass; `bun run devcheck` clean.