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 yourself
curl -s https://api.teppi.xyz/v1/evidence/sha256:a282cb5718879769fc6d32837e751718a0106e5a8903fe6130cfc2e61d77c249 | sha256sum