CryptoKeyhole MCP
A read-only remote MCP server providing access to public on-chain and market analytics for Bitcoin, Ethereum, and other assets. It allows AI agents to retrieve asset lists, metric definitions, and current data values without requiring authentication, serving data from the vendor's own nodes and exchange aggregations.
Endpoint and access
No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.
https://cryptokeyhole.com/api/v1/mcpWhat you can do with it
- List available crypto assets and metrics
- Retrieve current market and on-chain data values
- Get metric definitions and metadata
- Browse analytics by category
Source and maintenance
Protocol and capabilities
- Server
- cryptokeyhole 1.1.3
- MCP protocol
- 2025-06-18
- Tools
- 6 advertised
- Resources
- Not advertised
- Resource templates
- Not advertised
- Prompts
- Not advertised
{
"tools": {
"listChanged": false
}
}Server-provided instructions
Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.
Tools
6 advertised
get_assets_list — Get assets list
List the active analytics assets, each with its code and name. Use a code as the asset argument of the other tools.
{
"type": "object",
"required": [],
"properties": {},
"additionalProperties": false
}{
"title": "Get assets list",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}get_metrics_list — Get metrics list
Discover metrics for one asset (BTC by default) by existing category, including honest held and delayed states. Cursor pages follow the current catalogue and are not an immutable snapshot. Use it to browse by category before an asset is chosen: without one it lists BTC, and its rows are the same as get_asset_metrics gives. Each row has the plan its data needs; fetch_metric serves rows whose plan is free.
{
"type": "object",
"required": [],
"properties": {
"asset": {
"enum": [
"BTC",
"ETH",
"SOL",
"XRP",
"TRX",
"BNB",
"DOGE",
"TON",
"LINK",
"HYPE",
"WBTC",
"ADA",
"NEAR",
"XLM",
"BCH",
"LTC",
"UNI",
"AVAX",
"SUI",
"HBAR",
"WLD",
"WLFI",
"LIT",
"MNT",
"SHIB",
"QNT",
"ENA",
"MORPHO",
"AAVE",
"ONDO",
"DOT",
"ZRO",
"PEPE",
"SKY",
"ARB",
"FF",
"POL",
"APT",
"CRV",
"ZAMA",
"SENT",
"ETHFI",
"PENDLE",
"ENS",
"FET",
"LDO",
"EIGEN",
"SPX",
"EDGE",
"IMX",
"AXS",
"BAT",
"GRT",
"SYRUP",
"FLOKI",
"COMP",
"SAND",
"APE",
"PROM",
"ALT",
"GALA",
"NIL",
"ERA"
],
"type": "string",
"default": "BTC",
"description": "Asset code, for example BTC or ETH; get_assets_list gives every code with its name."
},
"limit": {
"type": "integer",
"default": 100,
"maximum": 3000,
"minimum": 1,
"description": "Rows per page."
},
"cursor": {
"type": "string",
"description": "The nextCursor of the previous page; leave it out for the first page."
},
"category": {
"type": "string",
"description": "A metric family, for example market, supply or mining; the categories field of each answer lists them with their counts. Leave it out for every family."
}
},
"additionalProperties": false
}{
"title": "Get metrics list",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}get_asset_metrics — Get asset metrics
Discover the available and held metrics of one asset. Use it once you know the asset: asset is required, so the answer never falls back to BTC, and its rows are the same as get_metrics_list gives. Each row has the plan its data needs; fetch_metric serves rows whose plan is free.
{
"type": "object",
"required": [
"asset"
],
"properties": {
"asset": {
"enum": [
"BTC",
"ETH",
"SOL",
"XRP",
"TRX",
"BNB",
"DOGE",
"TON",
"LINK",
"HYPE",
"WBTC",
"ADA",
"NEAR",
"XLM",
"BCH",
"LTC",
"UNI",
"AVAX",
"SUI",
"HBAR",
"WLD",
"WLFI",
"LIT",
"MNT",
"SHIB",
"QNT",
"ENA",
"MORPHO",
"AAVE",
"ONDO",
"DOT",
"ZRO",
"PEPE",
"SKY",
"ARB",
"FF",
"POL",
"APT",
"CRV",
"ZAMA",
"SENT",
"ETHFI",
"PENDLE",
"ENS",
"FET",
"LDO",
"EIGEN",
"SPX",
"EDGE",
"IMX",
"AXS",
"BAT",
"GRT",
"SYRUP",
"FLOKI",
"COMP",
"SAND",
"APE",
"PROM",
"ALT",
"GALA",
"NIL",
"ERA"
],
"type": "string",
"default": "BTC",
"description": "Asset code, for example BTC or ETH; get_assets_list gives every code with its name."
},
"limit": {
"type": "integer",
"default": 100,
"maximum": 3000,
"minimum": 1,
"description": "Rows per page."
},
"cursor": {
"type": "string",
"description": "The nextCursor of the previous page; leave it out for the first page."
},
"category": {
"type": "string",
"description": "A metric family, for example market, supply or mining; the categories field of each answer lists them with their counts. Leave it out for every family."
}
},
"additionalProperties": false
}{
"title": "Get asset metrics",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}get_metric_metadata — Get metric metadata
Read the current metric definition, supported intervals, method, coverage and source limitations.
{
"type": "object",
"required": [
"metric"
],
"properties": {
"asset": {
"enum": [
"BTC",
"ETH",
"SOL",
"XRP",
"TRX",
"BNB",
"DOGE",
"TON",
"LINK",
"HYPE",
"WBTC",
"ADA",
"NEAR",
"XLM",
"BCH",
"LTC",
"UNI",
"AVAX",
"SUI",
"HBAR",
"WLD",
"WLFI",
"LIT",
"MNT",
"SHIB",
"QNT",
"ENA",
"MORPHO",
"AAVE",
"ONDO",
"DOT",
"ZRO",
"PEPE",
"SKY",
"ARB",
"FF",
"POL",
"APT",
"CRV",
"ZAMA",
"SENT",
"ETHFI",
"PENDLE",
"ENS",
"FET",
"LDO",
"EIGEN",
"SPX",
"EDGE",
"IMX",
"AXS",
"BAT",
"GRT",
"SYRUP",
"FLOKI",
"COMP",
"SAND",
"APE",
"PROM",
"ALT",
"GALA",
"NIL",
"ERA"
],
"type": "string",
"default": "BTC",
"description": "Asset code, for example BTC or ETH; get_assets_list gives every code with its name."
},
"metric": {
"type": "string",
"minLength": 1,
"description": "Metric id, for example ckh.SpotPrice or eth.PriceUSD; get_asset_metrics lists every id."
}
},
"additionalProperties": false
}{
"title": "Get metric metadata",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}fetch_metric — Fetch metric
Read exact unreduced observations of one metric with decimal strings, original source clocks, revision, finality and gaps. End is exclusive. Metric-specific interval and retained-publication restrictions apply. No new observation is acquired. Without an account it serves metrics whose plan is free (get_asset_metrics shows the plan of each row) at 24h, 1w, 1M or 1Y; anything else answers with the plan it needs and the free metrics closest to it.
{
"type": "object",
"required": [
"metric"
],
"properties": {
"end": {
"type": "integer",
"description": "Exclusive UNIX seconds UTC."
},
"sma": {
"type": "integer",
"default": 0,
"maximum": 3650,
"minimum": 0,
"description": "Smoothing window in observations; 0 returns the raw series."
},
"asset": {
"enum": [
"BTC",
"ETH",
"SOL",
"XRP",
"TRX",
"BNB",
"DOGE",
"TON",
"LINK",
"HYPE",
"WBTC",
"ADA",
"NEAR",
"XLM",
"BCH",
"LTC",
"UNI",
"AVAX",
"SUI",
"HBAR",
"WLD",
"WLFI",
"LIT",
"MNT",
"SHIB",
"QNT",
"ENA",
"MORPHO",
"AAVE",
"ONDO",
"DOT",
"ZRO",
"PEPE",
"SKY",
"ARB",
"FF",
"POL",
"APT",
"CRV",
"ZAMA",
"SENT",
"ETHFI",
"PENDLE",
"ENS",
"FET",
"LDO",
"EIGEN",
"SPX",
"EDGE",
"IMX",
"AXS",
"BAT",
"GRT",
"SYRUP",
"FLOKI",
"COMP",
"SAND",
"APE",
"PROM",
"ALT",
"GALA",
"NIL",
"ERA"
],
"type": "string",
"default": "BTC",
"description": "Asset code, for example BTC or ETH; get_assets_list gives every code with its name."
},
"start": {
"type": "integer",
"description": "Inclusive UNIX seconds UTC."
},
"metric": {
"type": "string",
"minLength": 1,
"description": "Metric id, for example ckh.SpotPrice or eth.PriceUSD; get_asset_metrics lists every id."
},
"interval": {
"enum": [
"24h",
"1w",
"1M",
"1Y"
],
"type": "string",
"default": "24h",
"description": "Resolution of the observations: 24h daily, 1w weekly, 1M monthly or 1Y yearly. get_metric_metadata gives the intervals a metric offers."
},
"smoothing": {
"enum": [
"sma",
"ema",
"median"
],
"type": "string",
"default": "sma",
"description": "How sma smooths the series: simple mean (sma), exponential mean (ema) or moving median (median)."
},
"publication": {
"type": "string",
"description": "An actual retained publication ID; only supported metric/interval pairs accept it."
}
},
"additionalProperties": false
}{
"title": "Fetch metric",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}fetch_bulk_metrics — Fetch bulk metrics
Read multiple metric selections sequentially. Each item retains its own provenance and revision; this is not one atomic snapshot. Unsupported selections are explicit per-item errors. The existing 200000-observation and response-byte bounds apply to the combined result.
{
"type": "object",
"required": [
"requests"
],
"properties": {
"requests": {
"type": "array",
"items": {
"type": "object",
"required": [
"metric"
],
"properties": {
"end": {
"type": "integer",
"description": "Exclusive UNIX seconds UTC."
},
"sma": {
"type": "integer",
"default": 0,
"maximum": 3650,
"minimum": 0,
"description": "Smoothing window in observations; 0 returns the raw series."
},
"asset": {
"enum": [
"BTC",
"ETH",
"SOL",
"XRP",
"TRX",
"BNB",
"DOGE",
"TON",
"LINK",
"HYPE",
"WBTC",
"ADA",
"NEAR",
"XLM",
"BCH",
"LTC",
"UNI",
"AVAX",
"SUI",
"HBAR",
"WLD",
"WLFI",
"LIT",
"MNT",
"SHIB",
"QNT",
"ENA",
"MORPHO",
"AAVE",
"ONDO",
"DOT",
"ZRO",
"PEPE",
"SKY",
"ARB",
"FF",
"POL",
"APT",
"CRV",
"ZAMA",
"SENT",
"ETHFI",
"PENDLE",
"ENS",
"FET",
"LDO",
"EIGEN",
"SPX",
"EDGE",
"IMX",
"AXS",
"BAT",
"GRT",
"SYRUP",
"FLOKI",
"COMP",
"SAND",
"APE",
"PROM",
"ALT",
"GALA",
"NIL",
"ERA"
],
"type": "string",
"default": "BTC",
"description": "Asset code, for example BTC or ETH; get_assets_list gives every code with its name."
},
"start": {
"type": "integer",
"description": "Inclusive UNIX seconds UTC."
},
"metric": {
"type": "string",
"minLength": 1,
"description": "Metric id, for example ckh.SpotPrice or eth.PriceUSD; get_asset_metrics lists every id."
},
"interval": {
"enum": [
"24h",
"1w",
"1M",
"1Y"
],
"type": "string",
"default": "24h",
"description": "Resolution of the observations: 24h daily, 1w weekly, 1M monthly or 1Y yearly. get_metric_metadata gives the intervals a metric offers."
},
"smoothing": {
"enum": [
"sma",
"ema",
"median"
],
"type": "string",
"default": "sma",
"description": "How sma smooths the series: simple mean (sma), exponential mean (ema) or moving median (median)."
},
"publication": {
"type": "string",
"description": "An actual retained publication ID; only supported metric/interval pairs accept it."
}
},
"additionalProperties": false
},
"minItems": 1,
"description": "The selections to read, in order; each takes the same arguments as fetch_metric."
}
},
"additionalProperties": false
}{
"title": "Fetch bulk metrics",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}Prompts
Not advertised
Resources
Not advertised
30-day availability
Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.
- Successful checks
- 1 of 1 (100%)
- Average latency
- 1185 ms
- 95th percentile latency
- 1185 ms
Maintenance history
Public check and source-refresh events. Editorial and ownership records remain private.
- · probe · passed · 1185 ms · metadata changed · 6 tool(s)
Connect from your client
Each snippet registers the same endpoint; pick the client you use.
Claude Code
claude mcp add --transport http cryptokeyhole-mcp https://cryptokeyhole.com/api/v1/mcpCodex
codex mcp add cryptokeyhole-mcp --url https://cryptokeyhole.com/api/v1/mcpCursor
{
"mcpServers": {
"cryptokeyhole-mcp": {
"url": "https://cryptokeyhole.com/api/v1/mcp"
}
}
}Cline
{
"mcpServers": {
"cryptokeyhole-mcp": {
"type": "streamableHttp",
"url": "https://cryptokeyhole.com/api/v1/mcp",
"disabled": false
}
}
}VS Code
{
"servers": {
"cryptokeyhole-mcp": {
"type": "http",
"url": "https://cryptokeyhole.com/api/v1/mcp"
}
}
}Gemini CLI
gemini mcp add --transport http cryptokeyhole-mcp https://cryptokeyhole.com/api/v1/mcpClaude Desktop
{
"mcpServers": {
"cryptokeyhole-mcp": {
"url": "https://cryptokeyhole.com/api/v1/mcp"
}
}
}Windsurf
{
"mcpServers": {
"cryptokeyhole-mcp": {
"serverUrl": "https://cryptokeyhole.com/api/v1/mcp"
}
}
}Let your agent find its tools
Find servers like CryptoKeyhole MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.
Other data and analytics servers
Do you run CryptoKeyhole MCP?
Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.