DegenHedge: Kalshi Bitcoin 15-minute data
Server Details
Read-only Kalshi BTC 15-minute data: live window, graded alert record, fee calculator.
- Status
- Healthy
- Uptime
- 100.0% over 26 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 3 tools
The three tools target clearly different things: a live market snapshot (get_btc_window), a historical performance record (get_graded_record), and a fee/cost calculator (kalshi_fee). The only mild risk is that get_btc_window already surfaces a fee schedule while kalshi_fee computes fees, so an agent must know the former is descriptive and the latter is a calculation.
Two tools follow a clean get_<noun> snake_case pattern (get_btc_window, get_graded_record), while kalshi_fee breaks the verb-first convention by being a noun phrase. It is still readable and semantically clear as a calculator, so the deviation is minor rather than confusing.
Three tools is a sensible surface for a narrowly scoped data feed: one live snapshot, one historical record, one calculator. Nothing feels padded or redundant, though the set sits at the low end of what an agent might want for research workflows.
Despite 'data' in the name, there is no way to retrieve historical windows or a time series of past KXBTC15M markets—only the currently trading window. Core operations (live quote, published record, fee math) are covered, but the research/backfill dimension is a notable gap and there is no way to filter the graded record by period or market.
Available Tools
3 toolsget_btc_windowCurrent Kalshi BTC 15-minute windowARead-onlyIdempotentInspect
The Kalshi KXBTC15M Bitcoin up/down market trading now: ticker, open and close time, official strike (60-second CF Benchmarks BRTI average before the open, null until Kalshi posts it), Up (yes) and Down (no) asks and bids in cents, Kalshi's live fee schedule for the series and a Coinbase spot reference. Kalshi public data only; no prediction or signal. Refreshed about every 5 seconds.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| fee | No | |
| note | No | |
| rule | No | |
| spot | No | |
| stale | No | |
| series | No | |
| strike | No | |
| ticker | No | |
| upstream | No | |
| available | Yes | |
| open_time | No | |
| close_time | No | |
| fetched_at | No | |
| kalshi_url | No | |
| server_time | No | |
| window_open | No | |
| event_ticker | No | |
| no_ask_cents | No | |
| no_bid_cents | No | |
| strike_source | No | |
| yes_ask_cents | No | |
| yes_bid_cents | No | |
| last_price_cents | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes beyond the safety annotations by disclosing the data source ('Kalshi public data only'), the staleness profile ('Refreshed about every 5 seconds'), and a non-obvious nullability rule ('null until Kalshi posts it'). It does not say what happens when no window is open or on partial failures, which keeps it short of a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the market identity, followed by a dense field enumeration and two short qualifying sentences; no padding. The long middle clause is list-heavy and partly duplicates what the output schema already declares, but it remains readable and purposeful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, return values need not be explained, and the description still supplies the remaining context an agent needs: data provenance, freshness, no-signal disclaimer, and strike nullability. Adequate for a zero-parameter read tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the baseline is 4 and there is no parameter meaning left to compensate for. The description correctly adds no parameter prose.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific resource and scope: 'The Kalshi KXBTC15M Bitcoin up/down market trading now', plus the exact fields returned. The 'trading now' qualifier cleanly separates it from get_graded_record (settled markets) without needing the schema opened.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied rather than stated: 'trading now' suggests live-window lookups and the ~5 second refresh cadence implies polling, but no sibling is named and no explicit when-not condition is given. An agent can infer the context, yet get_graded_record vs this tool is never made explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_graded_recordDegenHedge graded BTC alert recordARead-onlyIdempotentInspect
DegenHedge's public, graded record of its Kalshi BTC 15-minute alerts: every alert sent to subscribers with a 1-99 cent entry, graded against Kalshi's official result, losses included. Overall and by entry-price bucket: signals, wins, win rate with a Wilson 95% interval, average entry, breakeven before and after a one-contract fee, data-through date. The record sits below breakeven: report the win rate only together with its average entry price.
| Name | Required | Description | Default |
|---|---|---|---|
| entry_price_bucket | No | Optional: return only this entry-price bucket (plus the overall line) |
Output Schema
| Name | Required | Description |
|---|---|---|
| unit | No | |
| stale | No | true if the last refresh failed and an older copy is served |
| method | No | |
| dataset | No | |
| overall | Yes | |
| product | Yes | |
| summary | Yes | One sentence comparing the win rate with its breakeven |
| disclaimer | Yes | |
| attribution | No | |
| how_to_read | No | |
| results_csv | Yes | |
| generated_at | No | |
| results_page | No | |
| stats_figures | No | |
| by_entry_price | Yes | |
| data_through_et | Yes | |
| first_signal_et | No | |
| data_through_utc | No | |
| service_information | No | Optional dated product facts; not statistical evidence, investment advice or a personalized offer. Existing record fields are unchanged. |
| ties_out_with_stats | Yes | n and wins equal the site's live /stats figures |
| excluded_rows_disclosed_in_csv | No | BTC rows shown in results.csv but not counted (price capture error, 100c entry, not sent) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, openWorld, and non-destructive, so the safety profile is covered. The description adds genuinely useful context beyond that: the record is complete and includes losses, it is graded against official Kalshi results, it carries a data-through date, and it currently sits below breakeven — a material interpretive caveat an agent would otherwise miss.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two dense sentences with no filler; the resource and scope come first, followed by the metric inventory and the reporting caveat. The metric list is long but each item is load-bearing for interpreting the output.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values needn't be re-explained, yet the description still previews the key metrics and the data-through date. Combined with the breakeven caveat and full schema coverage on the only parameter, an agent has everything needed to call and correctly report this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the single enum parameter already documents itself as an optional entry-price-bucket filter. The description adds nothing about the bucket parameter, so the baseline of 3 applies — the schema does all the work here.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the specific resource (DegenHedge's graded record of Kalshi BTC 15-minute alerts) and its scope precisely: every alert with a 1-99 cent entry, graded against Kalshi's official result, losses included. An agent knows exactly what data this returns. It does not, however, distinguish itself from siblings get_btc_window or kalshi_fee.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied rather than stated: this is the historical performance lookup, as opposed to the live window or fee tools, but the description never says so or names the alternatives. The one guidance sentence ('report the win rate only together with its average entry price') governs how to present output, not when to call the tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kalshi_feeKalshi fee and breakevenARead-onlyIdempotentInspect
Kalshi's taker fee for an order on a Kalshi contract (selected balance precision; same single-fill estimate as https://degenhedge.com/tools/kalshi-fee-calculator/), the total cost, profit if it wins, loss if it loses and the win rate needed to break even. price_cents is in CENTS (95 = a 95-cent contract). KXBTC15M charges makers no fee.
| Name | Required | Description | Default |
|---|---|---|---|
| maker | No | true for a resting (maker) order | |
| contracts | No | Number of contracts | |
| price_cents | Yes | Contract price in cents, 0.1 to 99.9 (whole cents between 10 and 90) | |
| balance_precision | No | Dollars: 0.01 non-direct member, 0.0001 direct member | 0.01 |
Output Schema
| Name | Required | Description |
|---|---|---|
| input | Yes | |
| notes | No | |
| matches | No | |
| fee_rule | No | |
| fee_cents | Yes | Model fee plus balance rounding, in cents; may be fractional. |
| disclaimer | Yes | |
| fee_schedule | Yes | |
| total_cost_cents | Yes | |
| entry_price_bucket | No | |
| loss_if_lose_cents | No | |
| profit_if_win_cents | No | |
| record_at_this_price | No | |
| wins_needed_per_loss | No | null when the fee takes the whole profit |
| breakeven_win_rate_pct | Yes | Win rate needed to break even after the fee |
| fee_per_contract_cents | No | |
| breakeven_before_fees_pct | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, and the description is consistent with a pure calculator. It adds real behavioral context the annotations cannot: this is a single-fill estimate, it mirrors the degenhedge calculator, and KXBTC15M charges makers no fee. It stops short of noting rounding or multi-fill caveats.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core purpose and outputs followed by unit clarification and the maker exception. Slightly cluttered by the parenthetical calculator reference and URL, which add provenance but little operational value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained, yet the description still summarizes them helpfully. Combined with the unit convention and precision option, an agent has enough to call it correctly; only edge-case behavior (rounding, multi-fill) is unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all four parameters are already documented, including the maker flag and balance_precision enum. The description restates the cents unit convention (95 = a 95-cent contract) and the maker-fee exception, which is marginally additive but largely duplicates the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a precise computation (Kalshi taker fee for an order) and enumerates the exact outputs: total cost, profit if it wins, loss if it loses, and breakeven win rate. An agent can tell instantly what this tool returns; the sibling tools (get_btc_window, get_graded_record) are unrelated, so no differentiation is required.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the wording — calculate fee/breakeven for an order — but there is no explicit when-to-use or when-not statement and no named alternative. The note that KXBTC15M charges makers no fee is useful situational context, but it does not tell the agent when to reach for this tool versus another.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
1 tool update
- Changed
get_graded_record1 field changed- added
Output schema / properties / service_informationAdded value: +{ + "description": "Optional dated product facts; not statistical evidence, investment advice or a personalized offer. Existing record fields are unchanged.", + "properties": { + "billing_unit": { + "type": "string" + }, + "card_required": { + "type": "boolean" + }, + "delivery_channel": { + "type": "string" + }, + "demo_url": { + "format": "uri", + "type": "string" + }, + "description": { + "type": "string" + }, + "limitation": { + "type": "string" + }, + "monthly_price_usd": { + "description": "Decimal USD amount per month for one BTC feed, as of reviewed_at. Check current checkout terms.", + "type": "string" + }, + "offer_terms": { + "type": "string" + }, + "offer_url": { + "format": "uri", + "type": "string" + }, + "places_trades": { + "type": "boolean" + }, + "product_url": { + "format": "uri", + "type": "string" + }, + "provider": { + "type": "string" + }, + "requires_kalshi_credentials": { + "type": "boolean" + }, + "reviewed_at": { + "format": "date", + "type": "string" + }, + "setup": { + "type": "string" + }, + "trial_days": { + "minimum": 0, + "type": "integer" + } + }, + "type": "object" +}
1 tool update
- Changed
kalshi_fee4 fields changed- added
Input schema / properties / balance_precisionAdded value: +{ + "default": "0.01", + "description": "Dollars: 0.01 non-direct member, 0.0001 direct member", + "enum": [ + "0.01", + "0.0001" + ], + "type": "string" +} - changed
Output schema / properties / fee_cents / descriptionPrevious value: -"Total order fee in whole cents"New value: +"Model fee plus balance rounding, in cents; may be fractional." - changed
Output schema / properties / fee_cents / typePrevious value: -"integer"New value: +"number" - added
Output schema / properties / input / properties / balance_precision_dollarsAdded value: +{ + "enum": [ + "0.01", + "0.0001" + ], + "type": "string" +}
3 tool updates
- First observed
get_btc_window - First observed
get_graded_record - First observed
kalshi_fee
Related MCP Connectors
Order-book depth & history for Polymarket, Kalshi & Limitless. Keyless demo, key for full access.
Bitcoin Barometer: Heat Score, BTC price, ten indicators and daily history. Read-only.
Kalshi MCP — US-regulated prediction-market data (no auth on public reads).
Read-only Bitcoin blockchain, mempool, mining, market, and on-chain analytics; no API key.
Related MCP Servers
- FlicenseAqualityDmaintenanceEnables AI apps to screen read-only Kalshi prediction-market data by price, closing time, listing age, volume, open interest, spread, event characteristics, and saved screens, watchlists, and alerts, with historical evidence for markets. It runs locally or on Cloudflare and never places orders or requires a Kalshi account.10-
- AlicenseNot gradedqualityBmaintenanceProvides access to US-regulated prediction-market data from Kalshi, enabling queries on market events without authentication.569 npmMIT
- AlicenseNot gradedqualityBmaintenanceEnables AI agents and trading bots to query live crypto derivatives data across 13 venues, including open interest, funding rates and arbitrage, liquidation cascades, whale positioning with exchange-reported liquidation prices, and tokenized stocks, plus computed regime and risk briefs. It is a read-only remote endpoint requiring no install or API key, and also exposes raw datasets, CSV/Parquet history exports, and webhook alerts for bot workflows.MIT
- FlicenseNot gradedqualityDmaintenanceRead-only MCP server providing BTC intraday quantitative market data via tools like snapshots, timeframes, liquidations, and options surface, designed for Vercel Hobby and ChatGPT custom MCP apps.-
Glama MCP Gateway
Add one secure layer between your agents and this server.