CryptoKeyhole
Lets AI assistants query on-chain and market crypto data for Bitcoin, Ethereum and a growing list of coins: list assets and metrics, read each metric's method and coverage, and fetch time series. Remote and read-only; Free charts need no key.
Hosted MCP Server
npx add-mcp 'https://cryptokeyhole.com/api/v1/mcp'Installs into Claude Code, Codex, Cursor and more
Documentation
Connect AI assistants and agents to public CryptoKeyhole metrics for BTC, ETH, LINK and every other asset on the site through the Model Context Protocol. The server is read-only and needs no account or API key. It serves what the Free plan includes; a chart on a higher plan answers with the plan that includes it.
Endpoint
https://cryptokeyhole.com/api/v1/mcp
The server uses MCP Streamable HTTP, protocol version 2026-07-28, without sessions: every request stands alone. Clients that begin with initialize are answered on the earlier stateless revision 2025-11-25 (2025-06-18, 2025-03-26 and 2024-11-05 are also accepted), with the same tools and data. Clients send JSON-RPC over POST, and compliant clients add the required per-request headers and metadata themselves. Requests that carry credentials are refused.
Client setup
Add a remote HTTP server in your MCP client with the endpoint above. For clients that use a JSON configuration file:
{
"mcpServers": {
"cryptokeyhole": {
"type": "http",
"url": "https://cryptokeyhole.com/api/v1/mcp"
}
}
}
Configuration names differ between clients; follow your client’s guide for remote servers.
Tools
get_assets_listlists the analytics assets: BTC, ETH, LINK and the others on the site.get_metrics_listfinds an asset’s metrics by category, including held and delayed states.get_asset_metricslists the available and held metrics for an asset.get_metric_metadatareturns a metric’s definition, intervals, method, coverage and source limits.fetch_metricreturns exact observations for one metric, with source clocks, revision, finality and gaps.fetch_bulk_metricsreads several selections one after another. Each keeps its own provenance and revision; together they are not one atomic snapshot.
Reading results
Values arrive as decimal strings, so no precision is lost. Missing observations are reported as gaps, never as zero. Ranges use UTC Unix seconds with an inclusive start and an exclusive end.
Every observation states its finality. For BTC the latest hour stays delayed until the Bitcoin median-time-past proof seals it; ETH and LINK hours, and the on-chain hours of the other Ethereum tokens, publish once Ethereum has finalised them; market series publish once each hour has closed. Partial or provisional values can still change. Metrics that are not yet published are reported as held, with the reason.
Results carry each series’ source and attribution. Keep them when you reuse the data.