MCP Server

kairos-signal

io.github.OV3RK177/kairos-signal
Crypto & Web3 Data & Analytics Public & reachable MCP 2026-07-28

What this MCP does

Provides provenance-tracked telemetry and datasets for DePIN networks, Bittensor subnets, markets, and related technical signals.

check_balance
Check your remaining credit balance. Use after purchases to see remaining credits.
Input schema
{'type': 'object', 'required': ['api_key'], 'properties': {'api_key': {'type': 'string', 'description': 'Your API key'}}}
fetch_dataset
Query records from a dataset with limit/offset. Free tier: 10 records per query. For depin_onchain, raw archived observations, including rejected rows, are retained. observation_quality reports limited PKT airdrop checks; not_checked means not validated. This read-time annotation is not covered by original proof hashes.
Input schema
{'type': 'object', 'required': ['dataset'], 'properties': {'limit': {'type': 'integer', 'description': 'Max records (max 10 for free tier)'}, 'offset': {'type': 'integer', 'description': 'Record offset'}, 'dataset': {'type': 'string', 'description': 'Dataset name (e.g., depin_onchain)'}}}
get_data_dictionary
ONBOARDING SPEC: freshness, history depth, coverage and endpoints per feed (depin_onchain, depin_daily, health_profiles, signal_ledger, market_ticks, zk_footprints). Machine-legible; answers 'how stale is this and how far back does it go' for every feed. Free, no key.
Input schema
{'type': 'object', 'properties': {}}
get_derivation_ledger
DERIVATION TRUTH: raw upstream payloads, SHA-256-pinned, with the exact collector code hash for each fetch. Replay any published value: fetch the verify_url yourself, run the pinned code, compare. Answers 'a hash proves a footprint, not the derivation' — divergence from origin is mechanically detectable. Free.
Input schema
{'type': 'object', 'properties': {'symbol': {'type': 'string', 'description': 'Optional: filter to one symbol (e.g. AKT). Omit for the coverage list.'}}}
get_stats
Get aggregate statistics from the databases
Input schema
{'type': 'object', 'properties': {}}
list_datasets
List all available datasets with record counts. Free to browse — market ticks, DePIN network stats, technical indicators, US county atlas, ZK footprints.
Input schema
{'type': 'object', 'properties': {}}
list_products
Browse purchasable products with prices in credits ($1 = 1 credit). DePIN supply-telemetry, provenance, derivation-replay, history, grades and the intel bundle are BUYABLE NOW from $0.49. Signal-feed tiers, DAG-manifold tiers and mcp_unlimited are priced but NOT yet purchasable: their entitlement is not wired into the serving API, so purchase_data refuses them with 503 not_yet_deliverable rather than charging you for nothing. Call after register_agent.
Input schema
{'type': 'object', 'properties': {}}
purchase_data
Buy a product with your credits; the data ships inline in the response. Deliverable today: the whole depin_* family plus depin_intel_bundle — call list_products for the live prices rather than trusting a figure restated here, which is how a price in a second place drifts from the first. The signal_*, dag_* and mcp_unlimited keys are priced but return 503 not_yet_deliverable — they are deliberately blocked, not broken, because nothing grants their entitlement yet. Credits buy DATA; they do not change your access tier. Use api_key from register_agent.
Input schema
{'type': 'object', 'required': ['product_key', 'api_key'], 'properties': {'api_key': {'type': 'string', 'description': 'Your API key from register_agent'}, 'product_key': {'type': 'string', 'description': 'Product key to purchase (e.g. dag_pro, mcp_unlimited)'}, 'idempotency_key': {'type': 'string', 'description': 'Optional. Any stable string unique to THIS intended purchase (e.g. a uuid). If a network error makes you retry the same call, re-send the SAME idempotency_key: the retry returns the same receipt and re-delivers the data without a second charge.'}}}
register_agent
START HERE. One call: get an API key instantly (no card, no human, no Stripe, ~5 seconds) plus $5 free credits, no card (first 3 keys per IP per 30 days). Past that per-IP limit a key is still created, at $0, and the response says so — it is never a silent zero. Works immediately: query live DePIN telemetry (505 symbols, every value carries a verify_url you can check yourself), GPU inference, DAG manifold. Try get_data_dictionary first if you want the coverage spec, or GET https://kairossignal.com/try with zero setup. Nothing to cancel; credits just sit there until you spend them. Then list_products to see what $0.49+ buys.
Input schema
{'type': 'object', 'required': ['agent_name'], 'properties': {'email': {'type': 'string', 'description': 'OPTIONAL contact email (for delivery and topup notifications). Omit to register anonymously.'}, 'agent_name': {'type': 'string', 'description': 'Your agent name'}}}
topup_credits
Add credits. Card (one call): {"method": "stripe", "amount": N} where N is $20 or $99 — returns a Stripe checkout_url already bound to your api_key, and credits post automatically once Stripe confirms payment at $1 = 1 credit. No human step and no wallet needed. USDC on Base ({"method": "usdc"}) is also accepted but requires more work: verify your sender first via POST /v1/credits/crypto/challenge and /verify with X-API-Key, sign the returned challenge with your own EOA, then pass the verified from_address and send only after a successful quote — credit requires finalized Base evidence. Instructions: https://kairossignal.com/docs/crypto.html
Input schema
{'type': 'object', 'allOf': [{'if': {'required': ['method'], 'properties': {'method': {'const': 'usdc'}}}, 'then': {'required': ['from_address']}}], 'required': ['api_key', 'method', 'amount'], 'properties': {'amount': {'enum': [20, 99], 'type': 'number', 'description': 'Amount in USD to add. Fixed packs only: 20 or 99. Any other value returns the available packs instead of a link.'}, 'method': {'enum': ['usdc', 'stripe'], 'type': 'string', 'description': 'Payment method'}, 'api_key': {'type': 'string', 'description': 'Your API key'}, 'tx_hash': {'type': 'string', 'description': 'Legacy optional field; a transaction hash does not replace from_address or verify payment.'}, 'from_address': {'type': 'string', 'pattern': '^0x[0-9a-fA-F]{40}$', 'description': 'Required for USDC: your EOA address already verified to this API account through the wallet challenge flow.'}}}
verify_footprint
Retained Merkle-membership check for one depin_onchain observation: stamp_day (YYYYMMDD), leaf_index (0-based row in /attestations/batch_<day>.tsv), expected_row_sha256. verified=true ONLY when the row at that index hashes to expected_row_sha256 AND its inclusion path reaches that day's manifest merkle_root. Says nothing about Bitcoin status or upstream accuracy. Other datasets: unsupported (no retained proof).
Input schema
{'type': 'object', 'required': ['dataset', 'stamp_day', 'leaf_index', 'expected_row_sha256'], 'properties': {'dataset': {'enum': ['depin_onchain'], 'type': 'string'}, 'stamp_day': {'type': 'string'}, 'leaf_index': {'type': 'integer', 'minimum': 0}, 'expected_row_sha256': {'type': 'string', 'pattern': '^[0-9a-f]{64}$'}}}
Changed
register_agent
Sept. 29, 2026, 2:56 a.m.
Changed
register_agent
Sept. 27, 2026, 2:47 a.m.
Changed
register_agent
Sept. 23, 2026, 2:47 a.m.
Changed
purchase_data
Sept. 19, 2026, 2:44 a.m.
Added
verify_footprint
Sept. 17, 2026, 12:45 p.m.
Added
fetch_dataset
Sept. 17, 2026, 12:45 p.m.
Added
get_derivation_ledger
Sept. 17, 2026, 12:45 p.m.
Added
get_data_dictionary
Sept. 17, 2026, 12:45 p.m.
Added
get_stats
Sept. 17, 2026, 12:45 p.m.
Added
list_datasets
Sept. 17, 2026, 12:45 p.m.
Added
check_balance
Sept. 17, 2026, 12:45 p.m.
Added
topup_credits
Sept. 17, 2026, 12:45 p.m.
Added
purchase_data
Sept. 17, 2026, 12:45 p.m.
Added
list_products
Sept. 17, 2026, 12:45 p.m.
Added
register_agent
Sept. 17, 2026, 12:45 p.m.