Skip to main content
Glama

Calculate EV Edge

calculate_ev
Read-only

Use for "is this contract mispriced" and "what is my edge". Give a Kalshi or Polymarket price in cents and your own probability; returns the % expected-value edge and a BUY / SELL / SKIP read.

Input Schema

NameRequiredDescriptionDefault
marketPriceNoCurrent contract price in cents (1–99), equal to the implied probability in %. Required for a real answer. Accepts 55, "55%", "55¢", "$0.55", 0.55 or American odds (+120 / -150) — all read as 55%.
yourProbabilityNoYour own estimate of the true probability the contract resolves YES, in % (0–100). Required for a real answer. Accepts 55, "55%", "55¢", "$0.55", 0.55 or American odds (+120 / -150) — all read as 55%.

Output Schema

NameRequiredDescriptionDefault
signalNoBUY / SELL / SKIP.
edge_ppNoYour probability minus the price, pp.
sourcesNo
edge_pctNoExpected-value edge, %.
tell_userNoShow this sentence to the user first.
timestampNo
needs_inputNo
example_callNo
data_freshnessNo
interpretationNoPlain-English read.
market_price_centsNoPrice used, cents.
your_probability_pctNoProbability used, %.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • removedInput schema / $schema
      Removed value: -"https://json-schema.org/draft/2020-12/schema"
    • removedOutput schema / $schema
      Removed value: -"https://json-schema.org/draft/2020-12/schema"
  2. Changed4 schema fields changed
    • removedInput schema / properties / marketPrice / anyOf
      Removed value: -[
      -  {
      -    "type": "number"
      -  },
      -  {
      -    "type": "string"
      -  }
      -]
    • addedInput schema / properties / marketPrice / type
      Added value: +[
      +  "number",
      +  "string"
      +]
    • removedInput schema / properties / yourProbability / anyOf
      Removed value: -[
      -  {
      -    "type": "number"
      -  },
      -  {
      -    "type": "string"
      -  }
      -]
    • addedInput schema / properties / yourProbability / type
      Added value: +[
      +  "number",
      +  "string"
      +]
  3. First observed

TDQS

A4/5.0
Behavior3/5

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

The read-only, non-destructive, closed-world profile is already fully carried by annotations, so the description only needs to add what annotations cannot. It adds the output shape (percent edge + BUY/SELL/SKIP verdict), which is useful, but says nothing about whether SKIP means missing inputs, whether inputs are meaningful for real-money decisions, or any caveats. Adequate, not rich.

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

Conciseness5/5

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

Two tight sentences: intent triggers first, then inputs, then output. Nothing is repeated and nothing wastes space.

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?

Given an output schema exists and inputs are fully documented, the description covers what an agent needs to call it. The one gap is the unexplained mismatch between "Required for a real answer" and required=false in the schema — the description hints at a degraded path without saying what happens when inputs are omitted.

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

Parameters3/5

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

Schema description coverage is 100% and the schema already enumerates every accepted price format (cents, "55%", "$0.55", decimal, American odds). The description only restates "price in cents and your own probability," adding no format or edge-case meaning beyond the schema; baseline 3 applies.

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 and resource (calculate expected-value edge from a market price and your own probability) and names the exact return (percent EV edge plus a BUY/SELL/SKIP read). The quoted user intents ("is this contract mispriced", "what is my edge") let an agent match it against sibling tools like kelly_size or convert_probability without ambiguity.

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?

"Use for ..." plus the required inputs (Kalshi/Polymarket price in cents and your own probability) gives clear triggering conditions. It never names an alternative or states when NOT to use it, so an agent choosing between this and kelly_size or convert_probability must infer the boundary.

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.