Skip to main content
Glama

TradingCalc MCP: Options, Forex, Risk Stats, Prediction Markets, On-Chain & Crypto Futures

Market Implied Odds

workflow.run_market_implied_odds
Read-only

Reads Kalshi's full live BTC or ETH year-end price ladder (a set of mutually-exclusive prediction markets covering the whole price range) and reports what the market itself implies: the median (50th-percentile) price bucket, the single most-likely (mode) bucket, and the probability of ending the year at or above any real bucket boundary. Deliberately does not compute an expected value or interpolate inside a bucket: the top/bottom buckets are open-ended, so any point estimate there would need an invented assumption; every number this tool returns traces back to one live, sourced price. Edge cases: coin BTC or ETH (default BTC); thresholdUsd above zero, optional, and it snaps to the nearest real bucket boundary at or below it. The ladder is read live from Kalshi only; when it is unavailable or incomplete the call returns available false with the reason. Not covered: an expected value or a price inside a bucket (the end buckets are open-ended), other venues, other horizons than the year-end ladder, and fees. Use when user asks "what does the market think BTC will be worth by year end?" or "what are the odds ETH ends the year above $X?". Returns: buckets[] (label, floor, cap, probabilityPct), medianBucketLabel, modeBucketLabel, vigPct, probabilityAtOrAbovePct + snappedThresholdUsd (only when thresholdUsd is supplied). If available is false, do not use any result field (computed figures and any verdict are null or empty), so read available first.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "workflow.run_market_implied_odds"
  }
}

Input Schema

NameRequiredDescriptionDefault
coinNoWhich coin's year-end ladder to read. Default BTC.
thresholdUsdNoOptional price threshold: returns the probability of ending the year at or above the nearest real bucket boundary at or below this value.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / thresholdUsd / description
      Previous value: -"Optional price threshold — returns the probability of ending the year at or above the nearest real bucket boundary at or below this value."New value: +"Optional price threshold: returns the probability of ending the year at or above the nearest real bucket boundary at or below this value."
  2. Added

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the read-only/open-world annotations, the description discloses the live external dependency (Kalshi only), the failure contract (returns available=false with a reason), and a directive to read available before trusting any field. It also explains the deliberate modeling constraint — no interpolation because the end buckets are open-ended — which is exactly the kind of behavioral context annotations cannot convey.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The core purpose is front-loaded and the edge-case/returns labeling is easy to scan, but the no-expected-value point is made twice — once as 'Deliberately does not compute an expected value' and again under 'Not covered: an expected value or a price inside a bucket' — with the open-ended-bucket rationale repeated in both. Trimming that duplication would tighten a description that is otherwise dense without fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, and the description compensates fully by enumerating the return fields (buckets[], medianBucketLabel, modeBucketLabel, vigPct, probabilityAtOrAbovePct, snappedThresholdUsd) and spelling out the conditional-return case. Combined with the unavailable-state contract, an agent has everything needed to call this correctly and interpret the result.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds real meaning: it restates the BTC default and explains that thresholdUsd snaps to the nearest real bucket boundary at or below the value, tying that to the returned snappedThresholdUsd. It also justifies why no in-bucket price is offered, which the schema does not.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource ('Reads Kalshi's full live BTC or ETH year-end price ladder') and then enumerates exactly what it reports: median bucket, mode bucket, and probability at or above a boundary. That precision separates it from adjacent siblings like run_prediction_market_edge or run_odds_converter without the agent needing to open a schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives concrete trigger phrasings ('what does the market think BTC will be worth by year end?') plus a strong exclusion list — no expected value, no intra-bucket price, no other venues, no other horizons, no fees — which implicitly routes the agent elsewhere. It stops short of naming which sibling to use instead, so it falls just below the explicit-alternatives bar.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.