Skip to main content
Glama

Sports Probabilities MCP

Model vs market edge

compare_model_vs_market

Compare the model against live Kalshi contract prices and report the net edge after fees plus a quarter-Kelly stake, on whichever side of the contract is better value. NFL, MLB, NHL and NBA pull Kalshi automatically; for soccer, or to use a bookmaker instead, pass your own prices in marketProbabilities. Research output, not betting advice.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "sport": "<sport>"
    },
    "name": "compare_model_vs_market"
  }
}

Input Schema

NameRequiredDescriptionDefault
sportYesnfl, mlb, nhl, nba or soccer.
leagueNoSoccer only. A league name or ESPN slug, for example "Premier League" or "esp.1". Ignored for every other sport.
metricNoWhich probability the contract settles on. Defaults to the playoff/title market.
feeRateNoFee coefficient. Default 0.07, the Kalshi taker rate.
minEdgeNoMinimum disagreement to flag as value. Default 0.05.
bankrollNoCapital used to scale stake sizing. Default 1000.
maxPerPositionPctNoCeiling on one position, as a fraction of bankroll. Default 0.02.
marketProbabilitiesNoYour own prices as probabilities. Overrides the Kalshi lookup when given.
maxTotalExposurePctNoCeiling on all positions together. Default 0.06.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations supplied, the description carries the full burden and discloses meaningful behavior: live price lookup by sport, fee deduction before edge is reported, quarter-Kelly stake sizing, and a scope disclaimer ('Research output, not betting advice'). It omits failure behavior (e.g. unmatched teams, unavailable Kalshi data), rate limits, and whether calls hit a live external API.

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?

Three sentences, front-loaded with the core comparison and its output, then source-routing rules, then the disclaimer. No sentence is redundant and nothing important is buried.

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 nine-parameter analytical tool with no output schema, the description explains conceptually what comes back (net edge, stake, better-value side) and when to supply your own prices. It stops short of describing the shape of the result (per-contract rows, flags versus minEdge), which an agent would need to reason about the response.

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%, so every one of the nine parameters is already documented, including the override semantics of marketProbabilities, the 0.07 feeRate default, and the bankroll/risk caps. The description reinforces which sport values trigger auto-pull and ties feeRate to the fee deduction and bankroll to the Kelly stake, but adds little syntax or meaning the schema does not already carry.

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 names a specific verb (compare) and two specific resources (the model and live Kalshi contract prices), then states the output: net edge after fees plus a quarter-Kelly stake on the better-value side. That is enough for an agent to distinguish it from the sibling lookup tools (get_team_probabilities, get_league_probabilities), which only return probabilities and do no market comparison.

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 explicit conditional guidance for the one real fork: NFL/MLB/NHL/NBA pull Kalshi automatically, while soccer or a bookmaker source requires passing prices in marketProbabilities. It does not name a sibling as an alternative or state any when-not-to-use condition, so it falls short of a 5.

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.