← The evidence ledger
Evidence row 565507
Observed , by probe.mcp/1.
- Kind
- mcp.tools
- About
- endpoint e5885d85-a2d8-4761-bc69-325a792dc4a2
- Recorded
- Previous row
- None: the first of its kind about this subject
- Body SHA-256
- 2f0cb538d64ab98be81616ca54e7c1a3c687f71e87f5b03594d59c7ae65b4500
- Leaf
- 0xbbcba7fe52f73b3f4614cf5062c13ad26d6a8867b7d03ac64b101cdd363c7a7b
What was observed
{
"count": 17,
"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"
},
{
"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"
},
{
"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"
},
{
"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"
},
{
"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"
},
{
"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"
},
{
"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"
},
{
"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"
},
{
"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"
},
{
"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"
},
{
"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"
},
{
"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"
},
{
"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"
},
{
"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"
},
{
"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"
},
{
"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"
},
{
"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"
}
]
}What the leaf hashes
{"body":"2f0cb538d64ab98be81616ca54e7c1a3c687f71e87f5b03594d59c7ae65b4500","id":565507,"kind":"mcp.tools","method":"probe.mcp/1","observed_us":1793138184094276,"prev":null,"subject":"e5885d85-a2d8-4761-bc69-325a792dc4a2","subject_kind":"endpoint"}Proof
Fold these into the leaf in order, hashing each sorted pair with keccak256, to reach the root of (273461 rows).
- 0xbbcc07c55c7364df763958a7e68541af9442f56dc2893ecf5ce93b451bb7064b
- 0x518bb9cc6f34b532ab225c0e858397ce50f63d73a2e579e4927610e4df5f0566
- 0xca582b1b1815fd8999ba39fe0f1c2ad7035602641419f00b796aa0f0e9cec3b7
- 0x9c10ad6aafbc052931801bcd55bff6d5a1f5ea417847b1eead21cb3e8fcb0c39
- 0x84b90a357785bae955ee49a51db38edef54478b13dccf2001d3c73799013cf10
- 0x07eb9ea248a5568ca4830ffe7bba0f60e4c66d8c48c573451d102f206adde659
- 0x6bac207cf873d7e1e88c5c3680018b8596c6e05bd8f3dea3108447e088d575d0
- 0x6689bd70d8b399af2784ba6b20c57e6e253379d105b6dc166fb46d316eb46ca2
- 0x02850531b38cdbbf35c2bb3b17e39e16f3aca8a2996107b87dcc62968dec6299
- 0xafd6b70c1465b8a2427d47ea40632cde7a6907f32f64f887c4cb460e460f7fdd
- 0xaf79bfeaa8b78c501b6b72d2abd133b4a8958ea976a4458f01d1f54590268c1e
- 0x5942c2574ffacd0c039c3cd1147d5ab0b6d34e0278203065ce21c437ae2a392d
- 0xa4f69e2cf941a3f318d70734b59401dd27010a6bdffb5c32a28304db650a6f0b
- 0xa453d1738637a5c663802d07ce095aa340c80d53a4288ae277a72e265868ce4e
- 0x73341bb09dd901ca47f26173883431496e3d98d6b0fb5b89f36218126d46c5d4
- 0xa94627de1af0e823832e05a9069b304ecccb8c0cdb8f9cfc4f2039bfb9799dc5
- 0xdf1105afdc109de3c09a98fc8a3864159ad964e6f49b635c105a27a1e1f14310
- 0x2bf8151e5f157dd183b9de6fa00469551932a7a6e3f33a694895000ac9061197
- 0x9fc354c0ea3efc3f1b6548bb77ea902a50f2c9647647ea61592efce2bd795699
- Day root
- 0xdd77e5e99da32c3f154180d63e3c3e6fe11e896a2c6896412ef6b5c4bcf7e795
- Chained
- 0x23bb4dfd09f55c15ac3962f53578e02c6114d5bfd9bb451cf8794fb6e2817ef4
- Published
- On Arc Testnet, block 69414147: 0xb2ebd83aafeb765a0ce66e76aefb133ed06606c98038fd56191e2bcd1dcb77b4