Endpoints: 28,729MCP servers: 18,413Payout addresses: 2,071Paid calls: 1,561Letters: 14Defects: 1,336counted 2 min ago
teppi

Server definition

Hash
sha256:a282cb5718879769fc6d32837e751718a0106e5a8903fe6130cfc2e61d77c249
What it is
What a remote MCP server returned when asked what it offers: 17 tools

The blob, as servednamed by its sha256

{ "instructions": null, "tools": [ { "description": "Compare one market across all bookmakers for a match.\n\n Returns each book's quote line-by-line, the consensus line, the best price per outcome, each\n book's overround, and de-vigged fair odds from the sharpest (lowest-margin) book.\n\n Args:\n event_id: event id (e.g. \"evt_…\").\n market_type: \"1x2\", \"asian_handicap\" (default) or \"totals\".\n period: \"full_time\" (default) or \"half_time\".\n format: display odds format (analytics are computed in decimal regardless).\n verbosity: \"full\" (default) or \"terse\". \"terse\" drops the per-book ``books`` array (the bulk\n of the payload) and returns only the worked answer (best_prices / consensus_line /\n fair_odds / summary).\n ", "inputSchema": { "properties": { "event_id": { "title": "Event Id", "type": "string" }, "format": { "default": "decimal", "title": "Format", "type": "string" }, "market_type": { "default": "asian_handicap", "title": "Market Type", "type": "string" }, "period": { "default": "full_time", "title": "Period", "type": "string" }, "verbosity": { "default": "full", "title": "Verbosity", "type": "string" } }, "required": [ "event_id" ], "title": "compare_linesArguments", "type": "object" }, "name": "compare_lines", "outputSchema": null }, { "description": "Judge an external probability (e.g. a Polymarket/Kalshi price) against our sharp fair line — ONE call.\n\n Resolves the fixture, de-vigs the sharp book to a fair probability (power de-vig for 3-way 1x2),\n and reports the edge ``fair_prob − external_prob`` in percentage points, the ROI, and a verdict\n (good / marginal / no_edge). DETECTION ONLY: InferSports never ingests prediction-market data,\n sizes a stake, or picks — it gives you the sharp reference and the gap; the call is yours.\n\n Args:\n query: natural-language fixture, e.g. \"France vs Argentina\" or a single team.\n external_prob: the external implied probability for ``outcome``, in (0,1). Pre-net it for the\n venue's fee/spread (e.g. a Polymarket YES ask of 0.55 → 0.55).\n market_type: \"1x2\" (default; the prediction-market-comparable moneyline), \"asian_handicap\"\n (only ±0.5 maps cleanly to a binary), or \"totals\".\n period: \"full_time\" (default) or \"half_time\".\n outcome: which leg the probability is for — home/draw/away (1x2), home/away (AH), over/under.\n external_label: optional source label echoed back, e.g. \"polymarket\" | \"kalshi\".\n sport: optional filter — \"football\" or \"basketball\".\n date: optional UTC date \"YYYY-MM-DD\" to disambiguate same-name fixtures.\n\n Read ``caveats`` before acting: a 1x2 fair is regulation 90-min (a prediction market that includes\n extra time / \"to advance\" is a different market); quarter/integer AH carries push mass. On an\n ambiguous query ``status`` is \"ambiguous\" — do not guess. ``status`` is \"no_line\" when no sharp\n fair is available to judge against.\n ", "inputSchema": { "properties": { "date": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Date" }, "external_label": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "External Label" }, "external_prob": { "title": "External Prob", "type": "number" }, "market_type": { "default": "1x2", "title": "Market Type", "type": "string" }, "outcome": { "default": "home", "title": "Outcome", "type": "string" }, "period": { "default": "full_time", "title": "Period", "type": "string" }, "query": { "title": "Query", "type": "string" }, "sport": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Sport" } }, "required": [ "query", "external_prob" ], "title": "compare_probArguments", "type": "object" }, "name": "compare_prob", "outputSchema": null }, { "description": "Explain an Asian handicap line.\n\n Splits a quarter line into its components (e.g. -0.75 → -0.5 / -1.0) and states the\n full-win / half-win / push / half-loss / full-loss conditions. ``line`` must be a multiple\n of 0.25.\n ", "inputSchema": { "properties": { "line": { "title": "Line", "type": "number" } }, "required": [ "line" ], "title": "explain_handicapArguments", "type": "object" }, "name": "explain_handicap", "outputSchema": null }, { "description": "Find cross-book arbitrage in a fixture — a guaranteed-profit price split — in ONE call.\n\n Resolves the fixture, then for each market/line takes the best price per outcome across books;\n when the inverse prices sum to < 1 there is a locked margin regardless of result. Reports the\n margin % and which book holds each leg (legs must come from ≥2 distinct books). DETECTION ONLY:\n no stake sizing, no bet links — InferSports is read-only.\n\n Args:\n query: natural-language fixture, e.g. \"Netherlands vs Algeria\" or a single team.\n markets: optional filter — any of \"1x2\", \"asian_handicap\", \"totals\" (default: all).\n period: optional — \"full_time\" or \"half_time\" (default: both).\n min_margin_pct: only report opportunities with at least this guaranteed margin (default 0).\n format: odds format — decimal | hk | malay | american | indonesian | probability.\n sport: optional filter — \"football\" or \"basketball\".\n date: optional UTC date \"YYYY-MM-DD\" to disambiguate same-name fixtures.\n\n On an ambiguous query, ``status`` is \"ambiguous\" and ``ask_user`` carries a prompt — do not guess.\n ", "inputSchema": { "properties": { "date": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Date" }, "format": { "default": "decimal", "title": "Format", "type": "string" }, "markets": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "default": null, "title": "Markets" }, "min_margin_pct": { "default": 0, "title": "Min Margin Pct", "type": "number" }, "period": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Period" }, "query": { "title": "Query", "type": "string" }, "sport": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Sport" } }, "required": [ "query" ], "title": "find_arbitrageArguments", "type": "object" }, "name": "find_arbitrage", "outputSchema": null }, { "description": "Find a football/basketball fixture by natural-language name.\n\n Args:\n query: e.g. \"Man City vs Arsenal\" or a single team name.\n sport: optional filter — \"football\" or \"basketball\".\n date: optional UTC date \"YYYY-MM-DD\" to disambiguate same-name fixtures.\n\n Returns the best-matching event (with id, teams, league, kickoff, live score, the live match\n ``clock`` e.g. \"2h 47\" or \"ht\", and a confidence score) plus alternatives. Use the returned\n ``event_id`` with get_match_odds / compare_lines.\n A ``decision`` block tells you whether it's ``safe_to_proceed`` and the suggested\n ``next_action`` (or ``ask_user`` when ambiguous).\n ", "inputSchema": { "properties": { "date": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Date" }, "query": { "title": "Query", "type": "string" }, "sport": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Sport" } }, "required": [ "query" ], "title": "find_matchArguments", "type": "object" }, "name": "find_match", "outputSchema": null }, { "description": "Find +EV value bets in a fixture — where a book's price beats the sharp fair line — in ONE call.\n\n Resolves the fixture, de-vigs the sharp book (Pinnacle) at each line to get the fair price, then\n flags every outcome whose best available price across books exceeds that fair price. DETECTION\n ONLY: this surfaces the edge and which book holds it; it does NOT size stakes or link out to bet.\n\n Args:\n query: natural-language fixture, e.g. \"Netherlands vs Algeria\" or a single team.\n markets: optional filter — any of \"1x2\", \"asian_handicap\", \"totals\" (default: all).\n period: optional — \"full_time\" or \"half_time\" (default: both).\n min_edge_pct: only report outcomes beating fair by at least this % (default 1.0).\n format: odds format — decimal | hk | malay | american | indonesian | probability.\n sport: optional filter — \"football\" or \"basketball\".\n date: optional UTC date \"YYYY-MM-DD\" to disambiguate same-name fixtures.\n\n On an ambiguous query, ``status`` is \"ambiguous\" and ``ask_user`` carries a prompt — do not\n guess. Needs the sharp book to de-vig; on the Free tier ``note`` flags that fair is approximate.\n ", "inputSchema": { "properties": { "date": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Date" }, "format": { "default": "decimal", "title": "Format", "type": "string" }, "markets": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "default": null, "title": "Markets" }, "min_edge_pct": { "default": 1, "title": "Min Edge Pct", "type": "number" }, "period": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Period" }, "query": { "title": "Query", "type": "string" }, "sport": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Sport" } }, "required": [ "query" ], "title": "find_valueArguments", "type": "object" }, "name": "find_value", "outputSchema": null }, { "description": "Get all current odds for a match across bookmakers.\n\n Args:\n event_id: event id from find_match / list_today_matches (e.g. \"evt_…\").\n markets: optional filter — any of \"1x2\", \"asian_handicap\", \"totals\".\n bookmakers: optional filter — bookmaker keys, e.g. [\"pinnacle\", \"crown\"].\n period: optional — \"full_time\" or \"half_time\" (default: both).\n format: odds format — decimal | hk | malay | american | indonesian | probability.\n ", "inputSchema": { "properties": { "bookmakers": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "default": null, "title": "Bookmakers" }, "event_id": { "title": "Event Id", "type": "string" }, "format": { "default": "decimal", "title": "Format", "type": "string" }, "markets": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "default": null, "title": "Markets" }, "period": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Period" } }, "required": [ "event_id" ], "title": "get_match_oddsArguments", "type": "object" }, "name": "get_match_odds", "outputSchema": null }, { "description": "Get the opening odds (初盘) for a fixture, paired with the current price, in ONE call.\n\n Resolves the fixture, then for each book returns its **true opening** (first-seen) quote alongside\n the current quote — so you can read movement directly. For 1x2 that's a price move; for totals/AH\n compare ``line`` (the opening line) vs ``current_line`` to read the line move (the sharp book often\n opens days earlier). A market with no opening yet on file is omitted.\n\n Args:\n query: natural-language fixture, e.g. \"Real Madrid vs Barcelona\" or a single team.\n markets: optional filter — any of \"1x2\", \"asian_handicap\", \"totals\".\n bookmakers: optional filter — bookmaker keys, e.g. [\"pinnacle\", \"crown\"].\n period: optional — \"full_time\" or \"half_time\" (default: both).\n format: odds format — decimal | hk | malay | american | indonesian | probability.\n sport: optional filter — \"football\" or \"basketball\".\n date: optional UTC date \"YYYY-MM-DD\" to disambiguate same-name fixtures.\n\n On an ambiguous query, ``status`` is \"ambiguous\" and ``ask_user`` carries a disambiguation\n prompt — do not assume a match. Best-effort: a book/line with no opening on file is omitted.\n ", "inputSchema": { "properties": { "bookmakers": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "default": null, "title": "Bookmakers" }, "date": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Date" }, "format": { "default": "decimal", "title": "Format", "type": "string" }, "markets": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "default": null, "title": "Markets" }, "period": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Period" }, "query": { "title": "Query", "type": "string" }, "sport": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Sport" } }, "required": [ "query" ], "title": "get_opening_lineArguments", "type": "object" }, "name": "get_opening_line", "outputSchema": null }, { "description": "Get the cached final result for ONE finished match by event id.\n\n Returns the final score, red cards and finished time. ``status`` is \"found\" or \"not_found\" (the\n match isn't in the 30-day cache). Results-only — no odds.\n\n Args:\n event_id: event id (e.g. \"evt_…\") from find_match / list_results.\n ", "inputSchema": { "properties": { "event_id": { "title": "Event Id", "type": "string" } }, "required": [ "event_id" ], "title": "get_resultArguments", "type": "object" }, "name": "get_result", "outputSchema": null }, { "description": "Answer an odds question about a fixture in ONE call (natural language in, worked line out).\n\n Resolves the fixture, picks the consensus line, the best price per outcome across books, and\n de-vigged fair odds from the sharpest book — returning a ready-to-read ``summary`` plus the\n full ``comparison``. Prefer this over chaining find_match → compare_lines.\n\n Args:\n query: natural-language fixture, e.g. \"Arsenal vs Man City\" or a single team.\n market_type: \"1x2\", \"asian_handicap\" (default) or \"totals\".\n period: \"full_time\" (default) or \"half_time\".\n format: odds format — decimal | hk | malay | american | indonesian | probability.\n sport: optional filter — \"football\" or \"basketball\".\n date: optional UTC date \"YYYY-MM-DD\" to disambiguate same-name fixtures.\n verbosity: \"full\" (default) or \"terse\". \"terse\" empties the per-book ``books`` array inside\n ``comparison`` to save tokens; the ``summary`` and worked numbers are kept either way.\n\n On an ambiguous query, ``status`` is \"ambiguous\" and ``ask_user`` carries a disambiguation\n prompt — do not assume a match; ask the user or re-call with a more specific query. A\n ``decision`` block (``safe_to_proceed`` / ``ask_user`` / ``next_action``) pre-computes the\n go/no-go — branch on it instead of re-judging the result.\n ", "inputSchema": { "properties": { "date": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Date" }, "format": { "default": "decimal", "title": "Format", "type": "string" }, "market_type": { "default": "asian_handicap", "title": "Market Type", "type": "string" }, "period": { "default": "full_time", "title": "Period", "type": "string" }, "query": { "title": "Query", "type": "string" }, "sport": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Sport" }, "verbosity": { "default": "full", "title": "Verbosity", "type": "string" } }, "required": [ "query" ], "title": "get_sharp_lineArguments", "type": "object" }, "name": "get_sharp_line", "outputSchema": null }, { "description": "List the bookmakers available on your tier.\n\n Returns the curated catalogue (each with ``key``, ``name`` and ``class`` = \"sharp\" | \"asian\")\n plus a ``note`` on tier coverage. Free tier excludes the sharp book (Pinnacle). Use the returned\n ``key`` values in the ``bookmakers`` filter of get_match_odds / compare_lines.\n ", "inputSchema": { "properties": {}, "title": "list_bookmakersArguments", "type": "object" }, "name": "list_bookmakers", "outputSchema": null }, { "description": "List the fixtures for a calendar day — or a bounded [date, date_to] range.\n\n Unlike list_today_matches (today + anything still live), this is a strict window for whatever\n ``date`` you ask for. Pass ``date_to`` (inclusive, max 31 days after ``date``) to cover a whole\n tournament window in ONE call — \"all group-stage matches June 11–28\" needs no per-day loop. UTC\n is canonical: pass an IANA ``timezone`` and the day boundaries are computed in that zone (so\n \"June 12 in Shanghai\" excludes a match that is still June 11 / already June 13 locally); each\n fixture keeps its UTC ``scheduled_at`` and adds ``scheduled_at_local``. Capped to ``limit``\n (``truncated`` flags overflow) — narrow with sport/status/league rather than paging.\n\n Args:\n date: REQUIRED calendar day \"YYYY-MM-DD\" (e.g. \"2026-06-12\") — the window start.\n date_to: optional inclusive end day \"YYYY-MM-DD\" (max 31 days after ``date``); omit for a\n single day.\n timezone: optional IANA timezone (e.g. \"Asia/Shanghai\", \"America/New_York\") for the day\n boundary; default is the UTC day.\n sport: optional filter — \"football\" or \"basketball\".\n status: optional filter — \"scheduled\", \"live\" or \"finished\".\n league: optional league filter — a name (fuzzy-matched, e.g. \"World Cup\") or an external id (\"lg_…\").\n limit: max fixtures to return (1–200, default 50).\n ", "inputSchema": { "properties": { "date": { "title": "Date", "type": "string" }, "date_to": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Date To" }, "league": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "League" }, "limit": { "default": 50, "title": "Limit", "type": "integer" }, "sport": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Sport" }, "status": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Status" }, "timezone": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Timezone" } }, "required": [ "date" ], "title": "list_eventsArguments", "type": "object" }, "name": "list_events", "outputSchema": null }, { "description": "Look back at finished-match scores from the 30-day results cache, most-recent-first.\n\n Results-only: each entry is the final score, red cards and finished time (no odds). Unlike the\n live tools, these survive a restart — use it for \"what was the score of X?\" or \"yesterday's\n results\".\n\n Args:\n date: optional UTC kickoff date \"YYYY-MM-DD\" — the day the match was played.\n team: optional case-insensitive substring matched against either team name.\n league: optional case-insensitive substring matched against the league name.\n limit: max results to return, most-recent-first (1–200, default 50).\n ", "inputSchema": { "properties": { "date": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Date" }, "league": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "League" }, "limit": { "default": 50, "title": "Limit", "type": "integer" }, "team": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Team" } }, "title": "list_resultsArguments", "type": "object" }, "name": "list_results", "outputSchema": null }, { "description": "List today's (UTC) fixtures — \"what games are on today / right now?\".\n\n Each fixture carries its status, live score, the live match ``clock`` (upstream minute text,\n verbatim e.g. \"1h 25\" / \"2h 47\" / \"ht\") when in-running, and a ready-to-read ``summary`` (live\n score & clock, or the kickoff time). Read ``clock`` for the real minute rather than estimating it\n from kickoff. ``clock`` is null pre-match.\n\n Args:\n sport: optional filter — \"football\" or \"basketball\".\n status: optional filter — \"live\", \"scheduled\" or \"finished\".\n league: optional league filter — a name (fuzzy-matched, e.g. \"World Cup\") or an external id (\"lg_…\").\n limit: max fixtures to return (1–200, default 50).\n timezone: optional IANA timezone (e.g. \"America/New_York\", \"Asia/Shanghai\") to render each\n fixture's kickoff in its ``summary`` as local time; default UTC.\n ", "inputSchema": { "properties": { "league": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "League" }, "limit": { "default": 50, "title": "Limit", "type": "integer" }, "sport": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Sport" }, "status": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Status" }, "timezone": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Timezone" } }, "title": "list_today_matchesArguments", "type": "object" }, "name": "list_today_matches", "outputSchema": null }, { "description": "Get the basics for a match in ONE call: the score, whether it's live, when it kicks off, and who's favored.\n\n No betting knowledge needed — this answers \"who's winning?\", \"what's the score?\", \"what time does\n Brazil play (in my timezone)?\", \"who's the favorite?\". Returns the live score + match clock, the\n status, the kickoff time (in ``timezone`` if you pass an IANA name like \"America/New_York\"), the\n favored team with a plain win probability (de-vigged from the 1x2 line), and a ready-to-read\n ``summary`` you can quote directly.\n\n Args:\n query: natural-language fixture or team, e.g. \"Brazil vs Argentina\" or just \"Brazil\".\n timezone: optional IANA timezone (e.g. \"America/New_York\", \"Asia/Shanghai\") for the kickoff\n time; default UTC.\n sport: optional filter — \"football\" or \"basketball\".\n date: optional UTC date \"YYYY-MM-DD\" to disambiguate same-name fixtures.\n\n On an ambiguous query, ``status`` is \"ambiguous\" and ``ask_user`` carries a prompt — do not guess.\n ``favorite`` is best-effort (null when no 1x2 is on file for the fixture).\n ", "inputSchema": { "properties": { "date": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Date" }, "query": { "title": "Query", "type": "string" }, "sport": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Sport" }, "timezone": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Timezone" } }, "required": [ "query" ], "title": "match_infoArguments", "type": "object" }, "name": "match_info", "outputSchema": null }, { "description": "Scan today's whole slate in ONE call — each fixture with honest status + value/arb signal.\n\n The batch alternative to looping find_match → get_sharp_line per match. Returns every fixture in\n the filter with its status (finished is excluded from \"live\"), live score/clock, and a\n pre-computed value/arb signal; value/arb matches are sorted to the top and the list is truncated\n to ``limit`` (so truncation drops the quiet ones). Line movement is NOT included (that needs the\n opening lookup) — drill into a single fixture with get_opening_line. DETECTION ONLY / read-only.\n\n Args:\n sport: optional filter — \"football\" or \"basketball\".\n status: optional filter — \"live\" | \"scheduled\" | \"finished\".\n league: optional league filter — a name (fuzzy-matched, e.g. \"World Cup\") or an external id (lg_…).\n markets: optional — limit the value/arb scan to \"1x2\"/\"asian_handicap\"/\"totals\" (default all).\n period: optional — \"full_time\" or \"half_time\" (default both).\n min_edge_pct: value threshold for the per-match signal (default 1.0).\n min_margin_pct: arbitrage threshold for the per-match signal (default 0.0).\n only_signal: if true, return only fixtures that have a value or arb signal.\n format: odds format — decimal | hk | malay | american | indonesian | probability.\n limit: max entries to return, signal-first (default 20, max 100).\n ", "inputSchema": { "properties": { "format": { "default": "decimal", "title": "Format", "type": "string" }, "league": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "League" }, "limit": { "default": 20, "title": "Limit", "type": "integer" }, "markets": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "default": null, "title": "Markets" }, "min_edge_pct": { "default": 1, "title": "Min Edge Pct", "type": "number" }, "min_margin_pct": { "default": 0, "title": "Min Margin Pct", "type": "number" }, "only_signal": { "default": false, "title": "Only Signal", "type": "boolean" }, "period": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Period" }, "sport": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Sport" }, "status": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Status" } }, "title": "scan_slateArguments", "type": "object" }, "name": "scan_slate", "outputSchema": null }, { "description": "Market-implied correct-score probabilities for ONE football match — ONE call.\n\n Inverts the de-vigged 1x2 (power de-vig) + totals prices into a bivariate-Poisson\n (Dixon-Coles) score grid and returns the top-K scorelines with probabilities, the\n fitted goal rates (lambda_home/lambda_away), and how much probability mass the list\n covers. The asian-handicap fair price is held out of the fit and reported as\n ``ah_ev_check`` (≈0 means the three markets are internally consistent). This is the\n market's own distribution, never an InferSports prediction. Football only, one match\n per call.\n\n Args:\n query: natural-language fixture, e.g. \"Mexico vs South Africa\" or a single team.\n sport: optional filter; only \"football\" is supported by this tool.\n date: optional UTC date \"YYYY-MM-DD\" to disambiguate same-name fixtures.\n top: how many scorelines to return (default 5, max 10).\n ", "inputSchema": { "properties": { "date": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Date" }, "query": { "title": "Query", "type": "string" }, "sport": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Sport" }, "top": { "default": 5, "title": "Top", "type": "integer" } }, "required": [ "query" ], "title": "score_probArguments", "type": "object" }, "name": "score_prob", "outputSchema": null } ] }
Verify it yourselfcurl -s https://api.teppi.xyz/v1/evidence/sha256:a282cb5718879769fc6d32837e751718a0106e5a8903fe6130cfc2e61d77c249 | sha256sum