CoinMarketCap MCP Server Complete Market Data API
Access the MCP server for complete CoinMarketCap market data API, including crypto prices, exchange details, and blockchain metrics.
npx -y @shinzo-labs/coinmarketcap-mcpOverview
The CoinMarketCap MCP Server exposes a complete market data API built around the Model Context Protocol (MCP). It aggregates CoinMarketCap data — cryptocurrency prices, exchange metadata, market listings, and blockchain metrics — and serves it in a format designed for programmatic consumption and integration with machine learning systems, dashboards, or analytics pipelines.
For developers integrating market data into apps or LLM-based assistants, the MCP server simplifies access by normalizing CoinMarketCap responses, offering caching, and providing MCP-compatible endpoints that make it easier to feed structured context into models. This reduces the friction of calling multiple endpoints, parsing raw responses, or rate-limit juggling when building data-driven features.
Features
- Unified, normalized API surface for CoinMarketCap market data
- Support for price quotes, market listings, exchange details, and blockchain metrics
- MCP-compatible endpoints for supplying model context to LLMs and agents
- Local development via Docker or native node runtime (configurable)
- Environment-driven configuration (API key, port, cache settings)
- Lightweight caching and request aggregation to reduce upstream rate usage
- Open source repository for customization and self-hosted deployment
Installation / Configuration
Clone the repository and run with Docker or Node.js. The examples below assume you have Docker or Node (>=14) installed.
Clone the project:
Example .env (create in project root):
# .env
COINMARKETCAP_API_KEY=your_coinmarketcap_api_key
PORT=8080
CACHE_TTL_SECONDS=60
LOG_LEVEL=info
Run with Docker:
# build and run
Run locally with Node.js:
Docker Compose example:
version: "3.8"
services:
cmc-mcp:
image: your-registry/coinmarketcap-mcp:latest
ports:
- "8080:8080"
env_file:
- .env
restart: unless-stopped
Configuration notes:
- Set COINMARKETCAP_API_KEY to a valid CoinMarketCap API key.
- Adjust CACHE_TTL_SECONDS to balance freshness vs. upstream quota usage.
- Expose the PORT to your network or reverse proxy as needed.
Available Resources
The server provides REST endpoints (examples below). Exact route names may vary by release; consult the repository for the current OpenAPI/Swagger spec.
Endpoint summary:
| Path (example) | Method | Description |
|---|---|---|
| /v1/quotes | GET | Latest price quotes for one or more symbols (e.g., BTC, ETH) |
| /v1/listings/latest | GET | Current market listings sorted by market cap |
| /v1/exchanges | GET | Exchange list and metadata |
| /v1/blockchain-metrics | GET | Network metrics for supported blockchains |
| /mcp/context | POST | MCP-compatible endpoint to request structured model context |
Developer resources:
- GitHub: https://github.com/shinzo-labs/coinmarketcap-mcp
- Local Swagger/OpenAPI (if enabled): http://localhost:8080/docs or /swagger
Use Cases
- Real-time price lookup (quick curl)
Response will return normalized quote objects with price, 24h change, volume, and timestamp.
- Supply context to an LLM (MCP POST) Send structured market context to an LLM or agent that expects MCP payloads:
The server responds with a compact context bundle optimized for model input.
- Analytics pipeline / ETL Use the listings and exchange endpoints to feed a data warehouse or analytics job:
- Schedule periodic requests to /v1/listings/latest
- Normalize and store timestamps, market cap, circulating supply
- Compute historical indicators or backtest strategies using contained metrics
- Dashboard and widgets
- Power dashboard widgets with /v1/quotes for live prices and 24h changes
- Enrich exchange pages with /v1/exchanges metadata and trust scores
Contributing and Support
Check the repository issues and contrib guidelines on GitHub for bug reports, feature requests, or pull requests. If you need custom ingestion or integration patterns (e.g., webhook forwarders, additional caching layers), the project is intended to be extensible for self-hosting and private deployments.
For more details and the latest API contract, see the project README and the included OpenAPI/Swagger documentation in the repository.