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_list lists the analytics assets: BTC, ETH, LINK and the others on the site.
  • get_metrics_list finds an asset’s metrics by category, including held and delayed states.
  • get_asset_metrics lists the available and held metrics for an asset.
  • get_metric_metadata returns a metric’s definition, intervals, method, coverage and source limits.
  • fetch_metric returns exact observations for one metric, with source clocks, revision, finality and gaps.
  • fetch_bulk_metrics reads 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.