Skip to main content
Glama

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

Spread Reader

workflow.run_spread_reader
Read-only

Reads the same real-world bet's live price from 2-5 prediction-market venues at once (Kalshi, Polymarket, ADI Predictstreet, Limitless, Myriad) and reports the spread between the cheapest and most expensive. The caller supplies each venue's own identifier for what they've confirmed is the same underlying bet; this tool never auto-matches events across venues, only reads and compares prices for identifiers you provide. Use when user asks "is this bet priced differently on Kalshi vs Polymarket?" or "which venue has the best price on this?". Returns: quotes[] (venue, identifier, label, probabilityPct, available, error), availableCount, cheapestVenue, mostExpensiveVenue, spreadPct (percentage points, null if fewer than 2 quotes resolved).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
quotesYesOne entry per venue you want to compare: 2 to 5 total. Each must genuinely be the same real-world bet; this tool does not verify that for you.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changed
    • changedInput schema / properties / quotes / description
      Previous value: -"One entry per venue you want to compare: 2 to 4 total. Each must genuinely be the same real-world bet; this tool does not verify that for you."New value: +"One entry per venue you want to compare: 2 to 5 total. Each must genuinely be the same real-world bet; this tool does not verify that for you."
    • changedInput schema / properties / quotes / items / properties / identifier / description
      Previous value: -"Kalshi ticker, Polymarket slug, or ADI Predictstreet symbol, matching the venue field."New value: +"Kalshi ticker, Polymarket slug, ADI Predictstreet symbol, Limitless slug, or Myriad slug, matching the venue field."
    • changedInput schema / properties / quotes / items / properties / venue / enum
      Previous value: -[
      -  "kalshi",
      -  "polymarket",
      -  "adi"
      -]New value: +[
      +  "kalshi",
      +  "polymarket",
      +  "adi",
      +  "limitless",
      +  "myriad"
      +]
    • changedInput schema / properties / quotes / maxItems
      Previous value: -4New value: +5
  2. Changed1 schema field changed
    • changedInput schema / properties / quotes / description
      Previous value: -"One entry per venue you want to compare — 2 to 4 total. Each must genuinely be the same real-world bet; this tool does not verify that for you."New value: +"One entry per venue you want to compare: 2 to 4 total. Each must genuinely be the same real-world bet; this tool does not verify that for you."
  3. Added

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already cover the safety profile (readOnlyHint, destructiveHint=false, openWorldHint). The description adds genuine behavioral context beyond them: per-quote availability/error handling, availableCount, and spreadPct being null when fewer than 2 quotes resolve. It also discloses the non-verification constraint and the live/external nature of the read.

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

Conciseness4/5

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

Front-loads the core action and venue list, then usage triggers, then returns. It is dense and slightly long, but since there is no output schema the returns clause earns its place. Minimal waste overall.

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?

With no output schema, the description compensates by enumerating the full return shape (quotes[], availableCount, cheapestVenue, mostExpensiveVenue, spreadPct) including the null edge case. Combined with the identifier contract and no-auto-match caveat, nothing an agent needs to call this correctly is missing.

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 schema already documents the venue enum and identifier string. The description adds semantic responsibility beyond the schema by clarifying that each identifier must be the venue's own form of the same confirmed bet and that no verification occurs. Baseline 3 is raised by that added meaning.

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 (reads live price), a precise resource (the same real-world bet across 2-5 named venues), and the output (spread between cheapest and most expensive). It explicitly distinguishes its scope from auto-matching siblings by stating it 'never auto-matches events across venues.' An agent can separate it from workflow.run_cross_venue_arbitrage or workflow.run_market_implied_odds without opening 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 Guidelines5/5

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

Gives concrete triggering user questions ('is this bet priced differently on Kalshi vs Polymarket?', 'which venue has the best price on this?'). It also states a clear boundary: the caller must supply confirmed identifiers, and the tool will not match events for you. When-to-use and when-not are both explicit.

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.