Skip to main content
Glama

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

Odds Converter

workflow.run_odds_converter
Read-only

Converts a probability into decimal odds, American odds, and breakeven win rate: either from a manually supplied probability, or fetched live from Kalshi, Polymarket, ADI Predictstreet, Limitless, or Myriad (five independent crypto-price prediction market venues, all public keyless market data). When a Kalshi, Polymarket, Limitless, or Myriad source is supplied, also returns the vig (the exchange's built-in edge), computed from the market's own YES+NO prices, not estimated; ADI Predictstreet's crypto contracts currently have no live trading volume on any venue, so this returns available:false with an explanation rather than a fake price (use workflow.run_window_fair_value for a theoretical price on those instead). Use when user asks "what odds does a 35% probability work out to?" or "what's the vig on this Kalshi/Polymarket/Limitless/Myriad market?". Provide exactly one of probability/kalshiTicker/polymarketSlug/adiSymbol/limitlessSlug/myriadSlug. Returns: probability, decimalOdds, americanOdds, breakevenWinRatePct, vigPct (null unless a live two-sided source was used), source (manual/kalshi/polymarket/adi/limitless/myriad), identifier, label.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
adiSymbolNoAn ADI Predictstreet market symbol (e.g. BTC1D-20260920T0000). Currently always returns available:false; these contracts have no live trading volume yet.
myriadSlugNoA Myriad Markets market slug, from the market URL (e.g. eth-at-three-digits-when-bitcoin-goes-below-50k), to fetch a live price from. On-chain (Abstract L2); not every market has a Yes/No outcome, some are multi-outcome ladders.
probabilityNoProbability as a decimal 0-1 (e.g. 0.35). Use this OR one of the live sources below, not both.
kalshiTickerNoA Kalshi market ticker (e.g. KXBTCY-27JAN0100-T149999.99) to fetch a live price from.
limitlessSlugNoA Limitless Exchange market slug, from the market URL (e.g. btc-up-or-down-5-min-1790249100), to fetch a live price from. On-chain (Base), mostly short-duration (5min/15min/daily) crypto up/down contracts.
polymarketSlugNoA Polymarket market slug, from the market URL (e.g. will-bitcoin-reach-100k-in-september-2026), to fetch a live price from.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • addedInput schema / properties / limitlessSlug
      Added value: +{
      +  "description": "A Limitless Exchange market slug, from the market URL (e.g. btc-up-or-down-5-min-1790249100), to fetch a live price from. On-chain (Base), mostly short-duration (5min/15min/daily) crypto up/down contracts.",
      +  "type": "string"
      +}
    • addedInput schema / properties / myriadSlug
      Added value: +{
      +  "description": "A Myriad Markets market slug, from the market URL (e.g. eth-at-three-digits-when-bitcoin-goes-below-50k), to fetch a live price from. On-chain (Abstract L2); not every market has a Yes/No outcome, some are multi-outcome ladders.",
      +  "type": "string"
      +}
  2. Changed1 schema field changed
    • changedInput schema / properties / adiSymbol / description
      Previous value: -"An ADI Predictstreet market symbol (e.g. BTC1D-20260920T0000). Currently always returns available:false — these contracts have no live trading volume yet."New value: +"An ADI Predictstreet market symbol (e.g. BTC1D-20260920T0000). Currently always returns available:false; these contracts have no live trading volume yet."
  3. Changed4 schema fields changed
    • addedInput schema / properties / adiSymbol
      Added value: +{
      +  "description": "An ADI Predictstreet market symbol (e.g. BTC1D-20260920T0000). Currently always returns available:false — these contracts have no live trading volume yet.",
      +  "type": "string"
      +}
    • changedInput schema / properties / kalshiTicker / description
      Previous value: -"A Kalshi market ticker (e.g. KXBTCY-27JAN0100-T149999.99) to fetch a live price from instead of a manual probability."New value: +"A Kalshi market ticker (e.g. KXBTCY-27JAN0100-T149999.99) to fetch a live price from."
    • addedInput schema / properties / polymarketSlug
      Added value: +{
      +  "description": "A Polymarket market slug, from the market URL (e.g. will-bitcoin-reach-100k-in-september-2026), to fetch a live price from.",
      +  "type": "string"
      +}
    • changedInput schema / properties / probability / description
      Previous value: -"Probability as a decimal 0-1 (e.g. 0.35). Use this OR kalshiTicker, not both."New value: +"Probability as a decimal 0-1 (e.g. 0.35). Use this OR one of the live sources below, not both."
  4. Added

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnly, non-destructive, openWorld), so the description's remaining job is disclosing quirks. It does this well: vig is computed from the market's own YES+NO prices rather than estimated, ADI returns available:false with an explanation instead of a fake price, and all venues are public keyless data. Minor gap is no note on rate limits or latency for the live fetches.

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?

Front-loaded with the core purpose and the return values, which is good, but the venue enumeration and the extended ADI caveat make it long and dense. The parenthetical definitions of the five venues could be trimmed without loss.

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

Completeness4/5

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

For a 6-parameter, zero-required, no-output-schema tool, it covers the essentials: which inputs are mutually exclusive, what each source returns, what vigPct null means, and which sibling to use when ADI has no volume. An agent could invoke it correctly from the description alone.

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 description coverage is 100%, so the baseline is 3, but the description adds value the schema does not: the exclusivity rule ('provide exactly one of probability/kalshiTicker/...') and the meaning of the null vigPct when no live two-sided source was used.

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?

States a specific verb (converts) and a precise multi-part resource: a probability into decimal odds, American odds, and breakeven win rate, from either a manual input or five named live venues. It also names the sibling workflow.run_window_fair_value as the right tool for ADI contracts, giving an agent an unambiguous selection signal.

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?

Gives explicit trigger phrases ('what odds does a 35% probability work out to?') and routes ADI queries to workflow.run_window_fair_value, but does not define when NOT to use this tool versus workflow.run_market_implied_odds or workflow.run_prediction_market_edge, which look adjacent in the sibling list.

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.