infersports
Server Details
Sharp Asian odds + opening-line (初盘) movement for agents: 6 Asian books + Pinnacle. Read-only.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
Glama MCP Gateway
Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.
Full call logging
Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.
Tool access control
Enable or disable individual tools per connector, so you decide what your agents can and cannot do.
Managed credentials
Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.
Usage analytics
See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.
Tool Definition Quality
Average 4.6/5 across 17 of 17 tools scored.
Each tool has a clearly distinct purpose: compare_lines contrasts bookmakers, compare_prob evaluates external probabilities, find_arbitrage detects arbitrage opportunities, find_match resolves fixtures, etc. Even related tools like get_sharp_line (one-call line) and compare_lines (event_id-based comparison) are complementary rather than overlapping. No ambiguity.
All tool names follow a consistent verb_noun pattern in snake_case (e.g., compare_lines, find_match, list_bookmakers). Verbs like compare, find, get, list, scan, score are uniform. No mixing of conventions or vague names.
With 17 tools covering fixture discovery, odds retrieval, comparisons, value/arb detection, line movement, results, and slate scanning, the count is well-scoped for a sports betting odds API. No unnecessary tools, and the set feels complete without being bloated.
The tool surface covers the full lifecycle: find matches (find_match, list_events, list_today_matches), get odds (get_match_odds, get_sharp_line, compare_lines), detect value/arb (find_value, find_arbitrage, scan_slate), analyze lines (get_opening_line, explain_handicap, score_prob), and retrieve results (get_result, list_results). No obvious gaps for the stated read-only odds analysis domain.
Available Tools
17 toolscompare_linesCompare LinesARead-onlyInspect
Compare one market across all bookmakers for a match.
Returns each book's quote line-by-line, the consensus line, the best price per outcome, each
book's overround, and de-vigged fair odds from the sharpest (lowest-margin) book.
Args:
event_id: event id (e.g. "evt_…").
market_type: "1x2", "asian_handicap" (default) or "totals".
period: "full_time" (default) or "half_time".
format: display odds format (analytics are computed in decimal regardless).
verbosity: "full" (default) or "terse". "terse" drops the per-book ``books`` array (the bulk
of the payload) and returns only the worked answer (best_prices / consensus_line /
fair_odds / summary).
| Name | Required | Description | Default |
|---|---|---|---|
| format | No | decimal | |
| period | No | full_time | |
| event_id | Yes | ||
| verbosity | No | full | |
| market_type | No | asian_handicap |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=true, and the description aligns with this. It adds behavioral context: output structure, the 'terse' verbosity option, and that analytics are computed in decimal regardless of format. This goes beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with a one-line summary, bulleted outputs, and an Args block. It could be slightly more concise, but every sentence adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Without an output schema, the description thoroughly explains return values. It covers the terseness option. However, it does not mention prerequisites (e.g., event_id must exist) or edge cases, but overall it is fairly complete for a read-only tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the description compensates by explaining each parameter: event_id, market_type (with examples '1x2', 'asian_handicap', 'totals'), period, format, and verbosity (including what 'terse' does). This adds meaning beyond the schema's types and defaults.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the tool's purpose: 'Compare one market across all bookmakers for a match.' It then enumerates the specific outputs (lines, consensus, best price, overround, de-vigged odds), clearly distinguishing it from siblings like compare_prob or get_match_odds.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains what the tool does but does not provide explicit guidance on when to use it versus alternatives (e.g., compare_prob, get_match_odds). There is no 'use this when' or exclusionary advice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compare_probCompare External ProbabilityARead-onlyInspect
Judge an external probability (e.g. a Polymarket/Kalshi price) against our sharp fair line — ONE call.
Resolves the fixture, de-vigs the sharp book to a fair probability (power de-vig for 3-way 1x2),
and reports the edge ``fair_prob − external_prob`` in percentage points, the ROI, and a verdict
(good / marginal / no_edge). DETECTION ONLY: InferSports never ingests prediction-market data,
sizes a stake, or picks — it gives you the sharp reference and the gap; the call is yours.
Args:
query: natural-language fixture, e.g. "France vs Argentina" or a single team.
external_prob: the external implied probability for ``outcome``, in (0,1). Pre-net it for the
venue's fee/spread (e.g. a Polymarket YES ask of 0.55 → 0.55).
market_type: "1x2" (default; the prediction-market-comparable moneyline), "asian_handicap"
(only ±0.5 maps cleanly to a binary), or "totals".
period: "full_time" (default) or "half_time".
outcome: which leg the probability is for — home/draw/away (1x2), home/away (AH), over/under.
external_label: optional source label echoed back, e.g. "polymarket" | "kalshi".
sport: optional filter — "football" or "basketball".
date: optional UTC date "YYYY-MM-DD" to disambiguate same-name fixtures.
Read ``caveats`` before acting: a 1x2 fair is regulation 90-min (a prediction market that includes
extra time / "to advance" is a different market); quarter/integer AH carries push mass. On an
ambiguous query ``status`` is "ambiguous" — do not guess. ``status`` is "no_line" when no sharp
fair is available to judge against.
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | ||
| query | Yes | ||
| sport | No | ||
| period | No | full_time | |
| outcome | No | home | |
| market_type | No | 1x2 | |
| external_prob | Yes | ||
| external_label | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description aligns with the annotations' readOnlyHint by stating it never ingests data, sizes stakes, or picks – it only reports the gap. It details the process (resolve, de-vig, report edge/ROI/verdict) and caveats about market types, fully disclosing behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficiently structured: a clear one-line summary, followed by detailed behavior, parameter list, and caveats. Each sentence adds value without redundancy, and it is front-loaded with the core purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (8 params, no output schema), the description provides ample context: it explains the output fields (edge, ROI, verdict), potential statuses (ambiguous, no_line), and market-specific caveats. This allows an agent to understand the full lifecycle of a call.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Despite 0% schema coverage, the description explains all 8 parameters in the 'Args' section with examples, defaults, and nuances (e.g., external_prob pre-net, market_type limitations). This adds significant meaning beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the tool judges an external probability against a sharp fair line, using verbs like 'judge' and 'compare'. It distinguishes from siblings by emphasizing 'DETECTION ONLY' and contrasting with tools that might ingest or act on data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides examples, explains when to use (e.g., for comparing external probabilities), and includes caveats about market types and ambiguous queries. However, it does not explicitly contrast with sibling tools like 'compare_lines' or 'find_value', leaving some ambiguity about which tool to choose in specific scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
explain_handicapExplain Asian HandicapARead-onlyInspect
Explain an Asian handicap line.
Splits a quarter line into its components (e.g. -0.75 → -0.5 / -1.0) and states the
full-win / half-win / push / half-loss / full-loss conditions. ``line`` must be a multiple
of 0.25.
| Name | Required | Description | Default |
|---|---|---|---|
| line | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true. The description adds disclosure of splitting behavior and condition enumeration, providing value beyond structured fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with purpose, then mechanics, then constraint. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description omits the output format or structure, which is important for an explanatory tool with no output schema. It mentions conditions but not how they are presented.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so description must compensate. It does so by specifying that 'line' must be a multiple of 0.25 and giving an example, but does not explain the parameter's role in the model.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool explains an Asian handicap line, splits it into components, and lists conditions. It is distinct from sibling tools like compare_lines or find_value, which perform different operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for understanding handicap lines and includes a constraint (line must be multiple of 0.25), but does not explicitly state when to use this tool versus siblings or provide exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_arbitrageFind ArbitrageARead-onlyInspect
Find cross-book arbitrage in a fixture — a guaranteed-profit price split — in ONE call.
Resolves the fixture, then for each market/line takes the best price per outcome across books;
when the inverse prices sum to < 1 there is a locked margin regardless of result. Reports the
margin % and which book holds each leg (legs must come from ≥2 distinct books). DETECTION ONLY:
no stake sizing, no bet links — InferSports is read-only.
Args:
query: natural-language fixture, e.g. "Netherlands vs Algeria" or a single team.
markets: optional filter — any of "1x2", "asian_handicap", "totals" (default: all).
period: optional — "full_time" or "half_time" (default: both).
min_margin_pct: only report opportunities with at least this guaranteed margin (default 0).
format: odds format — decimal | hk | malay | american | indonesian | probability.
sport: optional filter — "football" or "basketball".
date: optional UTC date "YYYY-MM-DD" to disambiguate same-name fixtures.
On an ambiguous query, ``status`` is "ambiguous" and ``ask_user`` carries a prompt — do not guess.
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | ||
| query | Yes | ||
| sport | No | ||
| format | No | decimal | |
| period | No | ||
| markets | No | ||
| min_margin_pct | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint annotation, the description adds that it is read-only ('InferSports is read-only'), detection-only, and explains the arbitrage calculation logic and the requirement for legs from distinct books.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficiently structured with a purpose paragraph, parameter list, and ambiguous query note. It is detailed but every sentence adds value, though slightly lengthy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity and lack of output schema, the description explains the return values (margin %, legs, distinct books) and error handling (ambiguous queries), making it complete for agent use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Despite 0% schema description coverage, the description provides a detailed Args section for all 7 parameters, including defaults, possible values, and natural language examples, fully compensating for the schema gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it finds cross-book arbitrage in a fixture, using a verb ('find') and specific resource ('arbitrage in a fixture'). It distinguishes from siblings like 'find_value' or 'scan_slate' by focusing solely on guaranteed-profit price splits.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description notes it is 'DETECTION ONLY' and handles ambiguous queries with an 'ask_user' prompt. It does not explicitly compare to alternatives, but the context makes its use case clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_matchFind MatchARead-onlyInspect
Find a football/basketball fixture by natural-language name.
Args:
query: e.g. "Man City vs Arsenal" or a single team name.
sport: optional filter — "football" or "basketball".
date: optional UTC date "YYYY-MM-DD" to disambiguate same-name fixtures.
Returns the best-matching event (with id, teams, league, kickoff, live score, the live match
``clock`` e.g. "2h 47" or "ht", and a confidence score) plus alternatives. Use the returned
``event_id`` with get_match_odds / compare_lines.
A ``decision`` block tells you whether it's ``safe_to_proceed`` and the suggested
``next_action`` (or ``ask_user`` when ambiguous).
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | ||
| query | Yes | ||
| sport | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description adds behavioral details beyond readOnlyHint annotation: returns best-matching event with live score, clock, confidence, alternatives, and decision block. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Concise and well-structured: starts with purpose, then Args, then Returns. Every sentence adds value. No extraneous text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Comprehensive given no output schema: explains all return fields (id, teams, league, kickoff, live score, clock, confidence, alternatives, decision block). Ties usage to sibling tools. Parameter count is low, so description covers all needed context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema coverage, description fully compensates by explaining each parameter with examples (e.g., query: 'Man City vs Arsenal', date: 'YYYY-MM-DD', sport: 'football' or 'basketball'). Meaning is clear and actionable.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'Find a football/basketball fixture' with specific verb 'Find' and resource 'fixture'. It distinguishes from siblings by explaining how to use the returned event_id with get_match_odds and compare_lines, which are listed as sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear usage context: use returned event_id with specific sibling tools, and notes the decision block indicating safe_to_proceed and next_action. Lacks explicit 'when not to use' but effectively guides the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_valueFind Value BetsARead-onlyInspect
Find +EV value bets in a fixture — where a book's price beats the sharp fair line — in ONE call.
Resolves the fixture, de-vigs the sharp book (Pinnacle) at each line to get the fair price, then
flags every outcome whose best available price across books exceeds that fair price. DETECTION
ONLY: this surfaces the edge and which book holds it; it does NOT size stakes or link out to bet.
Args:
query: natural-language fixture, e.g. "Netherlands vs Algeria" or a single team.
markets: optional filter — any of "1x2", "asian_handicap", "totals" (default: all).
period: optional — "full_time" or "half_time" (default: both).
min_edge_pct: only report outcomes beating fair by at least this % (default 1.0).
format: odds format — decimal | hk | malay | american | indonesian | probability.
sport: optional filter — "football" or "basketball".
date: optional UTC date "YYYY-MM-DD" to disambiguate same-name fixtures.
On an ambiguous query, ``status`` is "ambiguous" and ``ask_user`` carries a prompt — do not
guess. Needs the sharp book to de-vig; on the Free tier ``note`` flags that fair is approximate.
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | ||
| query | Yes | ||
| sport | No | ||
| format | No | decimal | |
| period | No | ||
| markets | No | ||
| min_edge_pct | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide readOnlyHint=true, and the description does not contradict that. The description adds significant behavioral context: it resolves the fixture, de-vigs the sharp book, flags outcomes, and describes edge conditions (ambiguous query, Free tier note). This goes well beyond the annotation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured: a one-line summary, a paragraph explaining the process, a note on detection-only, and a clear parameter list. Every sentence adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and 7 parameters, the description covers inputs thoroughly and explains output behavior (flaggings, ambiguous status). It lacks explicit return structure details, but overall it is quite complete for a detection tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the description provides detailed explanations for all 7 parameters in the 'Args' section, adding meaning beyond the schema types and titles. For example, 'query: natural-language fixture' and 'min_edge_pct: only report outcomes beating fair by at least this %.'
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description starts with a clear verb and resource: 'Find +EV value bets in a fixture — where a book's price beats the sharp fair line — in ONE call.' It distinguishes from sibling tools like 'find_arbitrage' by specifying value betting vs. arbitrage.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states 'DETECTION ONLY: this surfaces the edge and which book holds it; it does NOT size stakes or link out to bet,' providing clear when-to-use and when-not-to-use guidance. It also warns about ambiguous queries and Free tier limitations. However, it does not explicitly compare to siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_match_oddsGet Match OddsARead-onlyInspect
Get all current odds for a match across bookmakers.
Args:
event_id: event id from find_match / list_today_matches (e.g. "evt_…").
markets: optional filter — any of "1x2", "asian_handicap", "totals".
bookmakers: optional filter — bookmaker keys, e.g. ["pinnacle", "crown"].
period: optional — "full_time" or "half_time" (default: both).
format: odds format — decimal | hk | malay | american | indonesian | probability.
| Name | Required | Description | Default |
|---|---|---|---|
| format | No | decimal | |
| period | No | ||
| markets | No | ||
| event_id | Yes | ||
| bookmakers | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, and the description matches this by stating 'Get all current odds.' The description adds parameter details but no additional behavioral traits beyond what annotations provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, uses a clear Args structure, and front-loads the purpose. Every sentence adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description could mention the return format (e.g., odds data structure). However, it sufficiently covers input parameters and context for usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% (no descriptions in schema), so the description fully compensates by explaining each parameter's purpose, format options (e.g., 'decimal | hk | malay'), and examples (e.g., '["pinnacle", "crown"]').
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get all current odds for a match across bookmakers,' with a specific verb ('Get') and resource ('current odds'). It distinguishes itself from sibling tools like 'get_result' or 'get_opening_line' by focusing on odds retrieval.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context by referencing 'event id from find_match / list_today_matches' and explaining optional filters. However, it does not explicitly state when not to use this tool or mention alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_opening_lineGet Opening LineARead-onlyInspect
Get the opening odds (初盘) for a fixture, paired with the current price, in ONE call.
Resolves the fixture, then for each book returns its **true opening** (first-seen) quote alongside
the current quote — so you can read movement directly. For 1x2 that's a price move; for totals/AH
compare ``line`` (the opening line) vs ``current_line`` to read the line move (the sharp book often
opens days earlier). A market with no opening yet on file is omitted.
Args:
query: natural-language fixture, e.g. "Real Madrid vs Barcelona" or a single team.
markets: optional filter — any of "1x2", "asian_handicap", "totals".
bookmakers: optional filter — bookmaker keys, e.g. ["pinnacle", "crown"].
period: optional — "full_time" or "half_time" (default: both).
format: odds format — decimal | hk | malay | american | indonesian | probability.
sport: optional filter — "football" or "basketball".
date: optional UTC date "YYYY-MM-DD" to disambiguate same-name fixtures.
On an ambiguous query, ``status`` is "ambiguous" and ``ask_user`` carries a disambiguation
prompt — do not assume a match. Best-effort: a book/line with no opening on file is omitted.
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | ||
| query | Yes | ||
| sport | No | ||
| format | No | decimal | |
| period | No | ||
| markets | No | ||
| bookmakers | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, which aligns with the read-only nature. Description further details behavior: resolves fixture, returns both quotes, omits markets without opening, and handles ambiguity via status and ask_user.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with a concise opening sentence and a bulleted Args list. While some repetition exists (e.g., 'A market with no opening yet on file is omitted' appears twice), overall it's efficient and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 7 parameters and no output schema, the description covers return behavior (opening and current quotes, omitted markets, ambiguous status). It includes best-effort note and disambiguation instructions, making it sufficiently complete for effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description must explain all 7 parameters. It does so clearly: 'query: natural-language fixture', 'markets: optional filter', 'bookmakers: optional filter', 'period', 'format', 'sport', 'date: optional UTC date to disambiguate'. This adds significant meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'Get the opening odds (初盘) for a fixture, paired with the current price, in ONE call.' It specifies the resource (opening odds), verb (get), and unique value (pairing with current price), distinguishing it from siblings like get_sharp_line or compare_lines.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description explains the core use case: reading movement by comparing opening and current quotes. It also covers edge cases like omitted markets and ambiguous queries. While no explicit 'when not to use' is given, the context is sufficient for an agent to decide.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_resultGet ResultARead-onlyInspect
Get the cached final result for ONE finished match by event id.
Returns the final score, red cards and finished time. ``status`` is "found" or "not_found" (the
match isn't in the 30-day cache). Results-only — no odds.
Args:
event_id: event id (e.g. "evt_…") from find_match / list_results.
| Name | Required | Description | Default |
|---|---|---|---|
| event_id | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations show readOnlyHint=true, and description reinforces read-only behavior. Adds important constraints: only finished matches, 30-day cache, status field for not_found. Provides details beyond annotations without contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is brief and well-structured, with a clear purpose sentence, return details, and an args section. No redundant information. Could integrate args into prose, but current format is acceptable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-param tool with no output schema and readOnly annotations, description covers functionality, return fields, constraints, and parameter source. Lacks explicit return structure, but is sufficient for agent decision-making given sibling context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 0% description coverage for event_id, but description compensates with format example (evt_…) and source (find_match/list_results). Adds meaningful context the schema lacks.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it gets the cached final result for one finished match by event ID, specifying return fields (score, red cards, time, status). Distinguishes from odds tools via 'Results-only — no odds.' Verb+resource is specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states tool is for finished matches, cached for 30 days, and results-only. Provides source for event_id from find_match/list_results. Could improve by explicitly contrasting with live or odds tools, but given sibling names, context is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_sharp_lineGet Sharp LineARead-onlyInspect
Answer an odds question about a fixture in ONE call (natural language in, worked line out).
Resolves the fixture, picks the consensus line, the best price per outcome across books, and
de-vigged fair odds from the sharpest book — returning a ready-to-read ``summary`` plus the
full ``comparison``. Prefer this over chaining find_match → compare_lines.
Args:
query: natural-language fixture, e.g. "Arsenal vs Man City" or a single team.
market_type: "1x2", "asian_handicap" (default) or "totals".
period: "full_time" (default) or "half_time".
format: odds format — decimal | hk | malay | american | indonesian | probability.
sport: optional filter — "football" or "basketball".
date: optional UTC date "YYYY-MM-DD" to disambiguate same-name fixtures.
verbosity: "full" (default) or "terse". "terse" empties the per-book ``books`` array inside
``comparison`` to save tokens; the ``summary`` and worked numbers are kept either way.
On an ambiguous query, ``status`` is "ambiguous" and ``ask_user`` carries a disambiguation
prompt — do not assume a match; ask the user or re-call with a more specific query. A
``decision`` block (``safe_to_proceed`` / ``ask_user`` / ``next_action``) pre-computes the
go/no-go — branch on it instead of re-judging the result.
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | ||
| query | Yes | ||
| sport | No | ||
| format | No | decimal | |
| period | No | full_time | |
| verbosity | No | full | |
| market_type | No | asian_handicap |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=true, and the description confirms a single call that resolves and compares. It provides additional behavioral context: handling ambiguity via 'status' and 'ask_user', a 'decision' block for go/no-go, and the response structure (summary, comparison, decision). No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with a one-sentence summary followed by bullet-pointed parameters. It is front-loaded with the core purpose. However, the Args section is somewhat verbose; a slightly more concise presentation could improve readability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 7 parameters, no output schema, and sibling tools, the description covers all parameters, explains the response structure (summary, comparison, decision), and addresses edge cases (ambiguity). It lacks explicit details about return values but provides enough context for an AI agent to understand the tool's behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It includes a detailed Args block explaining each parameter (query, market_type, period, format, sport, date, verbosity) with examples and defaults, adding significant value beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool answers an odds question about a fixture in one call, with natural language input and a worked line output. It specifies key features like resolving the fixture, picking consensus line, best price, and de-vigged fair odds, and distinguishes itself from chaining find_match and compare_lines.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly advises to prefer this tool over chaining find_match and compare_lines. It also explains how to handle ambiguous queries (do not assume a match, ask user or re-call). While it gives clear context and a strong alternative, it could mention when not to use it (e.g., for detailed per-book lines rather than a summary).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_bookmakersList BookmakersARead-onlyInspect
List the bookmakers available on your tier.
Returns the curated catalogue (each with ``key``, ``name`` and ``class`` = "sharp" | "asian")
plus a ``note`` on tier coverage. Free tier excludes the sharp book (Pinnacle). Use the returned
``key`` values in the ``bookmakers`` filter of get_match_odds / compare_lines.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide readOnlyHint=true, which the description aligns with ('List'). The description adds behavioral details: returns curated catalogue with key, name, class, and a note on tier coverage. This goes beyond the annotation's simple safety hint.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three concise sentences, front-loaded with purpose and output details. No wasted words; every sentence provides useful information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description fully explains the return structure and usage context. It addresses tier variability (free tier exclusion) and downstream tool integration, making it complete for a simple list tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, and the schema is fully covered (100%). The description adds value by describing the output structure (key, name, class, note) and how to use it, which the empty schema does not convey.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists bookmakers available on the user's tier, specifying the verb 'list' and resource 'bookmakers'. It distinguishes from sibling tools by focusing on bookmaker listing, which is unique among siblings like get_match_odds or compare_lines.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly tells when to use the tool: to obtain bookmaker keys for use in get_match_odds or compare_lines. It also provides a note about free tier exclusion of Pinnacle, guiding appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_eventsList Events (day or date range)ARead-onlyInspect
List the fixtures for a calendar day — or a bounded [date, date_to] range.
Unlike list_today_matches (today + anything still live), this is a strict window for whatever
``date`` you ask for. Pass ``date_to`` (inclusive, max 31 days after ``date``) to cover a whole
tournament window in ONE call — "all group-stage matches June 11–28" needs no per-day loop. UTC
is canonical: pass an IANA ``timezone`` and the day boundaries are computed in that zone (so
"June 12 in Shanghai" excludes a match that is still June 11 / already June 13 locally); each
fixture keeps its UTC ``scheduled_at`` and adds ``scheduled_at_local``. Capped to ``limit``
(``truncated`` flags overflow) — narrow with sport/status/league rather than paging.
Args:
date: REQUIRED calendar day "YYYY-MM-DD" (e.g. "2026-06-12") — the window start.
date_to: optional inclusive end day "YYYY-MM-DD" (max 31 days after ``date``); omit for a
single day.
timezone: optional IANA timezone (e.g. "Asia/Shanghai", "America/New_York") for the day
boundary; default is the UTC day.
sport: optional filter — "football" or "basketball".
status: optional filter — "scheduled", "live" or "finished".
league: optional league filter — a name (fuzzy-matched, e.g. "World Cup") or an external id ("lg_…").
limit: max fixtures to return (1–200, default 50).
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | ||
| limit | No | ||
| sport | No | ||
| league | No | ||
| status | No | ||
| date_to | No | ||
| timezone | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, and description adds context on timezone handling, truncation, and return fields (scheduled_at, scheduled_at_local). No contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well-structured with purpose first, then parameter breakdown. Slightly verbose but each sentence adds value. Could be tighter.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Comprehensive for a 7-parameter tool with no output schema. Explains return fields and filtering strategies, though output structure is not fully specified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema provides 0% description coverage. Description explains all 7 parameters in detail with examples, defaults, and constraints (e.g., max 31 days for date_to, limit 1-200).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it lists fixtures for a calendar day or date range. Distinguishes from sibling tool list_today_matches by explaining the difference in window behavior.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly contrasts with list_today_matches, explains when to use date_to for tournament windows, and advises on filtering rather than paging.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_resultsList ResultsARead-onlyInspect
Look back at finished-match scores from the 30-day results cache, most-recent-first.
Results-only: each entry is the final score, red cards and finished time (no odds). Unlike the
live tools, these survive a restart — use it for "what was the score of X?" or "yesterday's
results".
Args:
date: optional UTC kickoff date "YYYY-MM-DD" — the day the match was played.
team: optional case-insensitive substring matched against either team name.
league: optional case-insensitive substring matched against the league name.
limit: max results to return, most-recent-first (1–200, default 50).
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | ||
| team | No | ||
| limit | No | ||
| league | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description elaborates beyond the readOnlyHint annotation by specifying that results include final score, red cards, and finished time (no odds), and that the tool is results-only and persists across restarts. No contradictions with annotations; it adds valuable behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured: a purpose sentence, a content/behavior sentence, and a bulleted args section. No wasted words; every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (no output schema, 4 optional params), the description covers all necessary aspects: data scope (30-day cache), ordering (most-recent-first), content of each entry, and parameter details. It fully equips an agent to use the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Despite 0% schema description coverage, the description provides thorough parameter guidance: date format (YYYY-MM-DD), team as case-insensitive substring, league as case-insensitive substring, and limit with range (1-200) and default (50). This adds essential meaning missing from the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it lists finished-match scores from a 30-day cache, most-recent-first, and distinguishes from live tools by noting it contains no odds and survives restart. The verb 'list' and resource 'results' are explicit, and the usage examples 'what was the score of X?' or 'yesterday's results' further clarify its purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear usage context (checking past scores, yesterday's results) and contrasts with live tools that do not survive restart. However, it does not explicitly name alternative tools like 'get_result' or 'live tools' for when not to use this tool, though the distinction is implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_today_matchesList Today's MatchesARead-onlyInspect
List today's (UTC) fixtures — "what games are on today / right now?".
Each fixture carries its status, live score, the live match ``clock`` (upstream minute text,
verbatim e.g. "1h 25" / "2h 47" / "ht") when in-running, and a ready-to-read ``summary`` (live
score & clock, or the kickoff time). Read ``clock`` for the real minute rather than estimating it
from kickoff. ``clock`` is null pre-match.
Args:
sport: optional filter — "football" or "basketball".
status: optional filter — "live", "scheduled" or "finished".
league: optional league filter — a name (fuzzy-matched, e.g. "World Cup") or an external id ("lg_…").
limit: max fixtures to return (1–200, default 50).
timezone: optional IANA timezone (e.g. "America/New_York", "Asia/Shanghai") to render each
fixture's kickoff in its ``summary`` as local time; default UTC.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| sport | No | ||
| league | No | ||
| status | No | ||
| timezone | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already set readOnlyHint=true. The description adds significant behavioral details: each fixture carries status, live score, clock, and summary; clock is null pre-match; timezone affects summary display. It clarifies that clock gives the real minute rather than estimation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise: a one-line purpose, a paragraph on response fields, then a clear parameter list. It front-loads the core purpose and uses minimal but sufficient detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 5 parameters, no required params, 0% schema coverage, and no output schema, the description covers all necessary aspects: purpose, output structure (clock, summary), parameter semantics, and defaults. It is complete enough for an agent to use the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the description fully compensates by explaining each parameter: sport values ('football'/'basketball'), status ('live'/'scheduled'/'finished'), league (fuzzy-matched or external id), limit (1-200, default 50), and timezone (IANA format). This adds meaning beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists today's fixtures in UTC, with the example usage 'what games are on today / right now?'. It specifies the verb 'list' and resource 'fixtures', distinguishing it from siblings like 'list_events' which may cover a different scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use the tool (current day's matches) and explains all filter parameters (sport, status, league, limit, timezone) with defaults. However, it does not explicitly state when not to use it or compare with sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
match_infoMatch InfoARead-onlyInspect
Get the basics for a match in ONE call: the score, whether it's live, when it kicks off, and who's favored.
No betting knowledge needed — this answers "who's winning?", "what's the score?", "what time does
Brazil play (in my timezone)?", "who's the favorite?". Returns the live score + match clock, the
status, the kickoff time (in ``timezone`` if you pass an IANA name like "America/New_York"), the
favored team with a plain win probability (de-vigged from the 1x2 line), and a ready-to-read
``summary`` you can quote directly.
Args:
query: natural-language fixture or team, e.g. "Brazil vs Argentina" or just "Brazil".
timezone: optional IANA timezone (e.g. "America/New_York", "Asia/Shanghai") for the kickoff
time; default UTC.
sport: optional filter — "football" or "basketball".
date: optional UTC date "YYYY-MM-DD" to disambiguate same-name fixtures.
On an ambiguous query, ``status`` is "ambiguous" and ``ask_user`` carries a prompt — do not guess.
``favorite`` is best-effort (null when no 1x2 is on file for the fixture).
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | ||
| query | Yes | ||
| sport | No | ||
| timezone | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint annotation, the description details the output components, behavior on ambiguity (status 'ambiguous', ask_user prompt), and edge cases (favorite is best-effort). This fully discloses the tool's behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with a clear purpose first, then parameter explanations, then edge cases. Every sentence adds value without redundancy. It is appropriately detailed for the tool's complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description fully explains the return values and behaviors. It covers all parameters, handles ambiguity, and is self-contained. Sibling context is provided via the sibling list, but the description itself is complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema coverage, the description thoroughly explains each parameter: query as natural-language, timezone as IANA, sport filter, date format. It includes examples and usage notes, adding essential meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and the resource 'basics for a match', listing specific outputs (score, live status, kickoff, favorite). It distinguishes itself from siblings like get_match_odds by emphasizing a single call for basic info.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides implicit usage context (e.g., 'No betting knowledge needed', handling ambiguous queries with ask_user) but does not explicitly compare to sibling tools or state when to avoid. The guidance for ambiguous queries is helpful.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
scan_slateScan SlateARead-onlyInspect
Scan today's whole slate in ONE call — each fixture with honest status + value/arb signal.
The batch alternative to looping find_match → get_sharp_line per match. Returns every fixture in
the filter with its status (finished is excluded from "live"), live score/clock, and a
pre-computed value/arb signal; value/arb matches are sorted to the top and the list is truncated
to ``limit`` (so truncation drops the quiet ones). Line movement is NOT included (that needs the
opening lookup) — drill into a single fixture with get_opening_line. DETECTION ONLY / read-only.
Args:
sport: optional filter — "football" or "basketball".
status: optional filter — "live" | "scheduled" | "finished".
league: optional league filter — a name (fuzzy-matched, e.g. "World Cup") or an external id (lg_…).
markets: optional — limit the value/arb scan to "1x2"/"asian_handicap"/"totals" (default all).
period: optional — "full_time" or "half_time" (default both).
min_edge_pct: value threshold for the per-match signal (default 1.0).
min_margin_pct: arbitrage threshold for the per-match signal (default 0.0).
only_signal: if true, return only fixtures that have a value or arb signal.
format: odds format — decimal | hk | malay | american | indonesian | probability.
limit: max entries to return, signal-first (default 20, max 100).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| sport | No | ||
| format | No | decimal | |
| league | No | ||
| period | No | ||
| status | No | ||
| markets | No | ||
| only_signal | No | ||
| min_edge_pct | No | ||
| min_margin_pct | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Aligns with readOnlyHint annotation, adding details: truncation drops quiet fixtures, sorting by signal, exclusion of finished from 'live' status, and pre-computed signals. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well-structured with front-loaded summary, sibling context, behavioral details, then parameter list. Slightly verbose but every sentence adds value; could be tightened slightly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 10 parameters, no output schema, and minimal annotations, the description covers all essential aspects: purpose, usage context, parameter meanings, behavioral traits, and exclusions. Return values are implied (status, score/clock, signal). Complete for the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, but the description provides detailed explanations for all 10 parameters, including allowed values (e.g., sport: football/basketball), defaults, and constraints (limit max 100). This fully compensates for the lack of schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear verb+resource: 'Scan today's whole slate' with specific scope (fixtures, value/arb signal). Distinguishes from siblings by stating it's the batch alternative to looping find_match/get_sharp_line and contrasts with get_opening_line for line movement.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use (scan today's slate in one call) and when not to (for line movement, use get_opening_line). Names specific sibling tools (find_match, get_sharp_line) as alternatives, providing clear decision context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
score_probScore Probabilities (market-implied)ARead-onlyInspect
Market-implied correct-score probabilities for ONE football match — ONE call.
Inverts the de-vigged 1x2 (power de-vig) + totals prices into a bivariate-Poisson
(Dixon-Coles) score grid and returns the top-K scorelines with probabilities, the
fitted goal rates (lambda_home/lambda_away), and how much probability mass the list
covers. The asian-handicap fair price is held out of the fit and reported as
``ah_ev_check`` (≈0 means the three markets are internally consistent). This is the
market's own distribution, never an InferSports prediction. Football only, one match
per call.
Args:
query: natural-language fixture, e.g. "Mexico vs South Africa" or a single team.
sport: optional filter; only "football" is supported by this tool.
date: optional UTC date "YYYY-MM-DD" to disambiguate same-name fixtures.
top: how many scorelines to return (default 5, max 10).
| Name | Required | Description | Default |
|---|---|---|---|
| top | No | ||
| date | No | ||
| query | Yes | ||
| sport | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, which is consistent. The description adds substantial behavioral detail: the statistical model (bivariate-Poisson, Dixon-Coles), de-vigging process, and the fact it's market-implied not a prediction. It also notes one-call-only behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with purpose and structured with a summary paragraph then arg list. Though it is somewhat verbose, every sentence adds value and there is no redundancy. A tighter second sentence could be made, but overall well-organized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description thoroughly explains the return: top-K scorelines, probabilities, goal rates, and the ah_ev_check verification. It covers the football-only constraint, single match scope, and the model used. This is sufficient for an agent to invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description fully compensates by explaining each parameter: query (natural-language fixture with examples), sport (only football), date (UTC disambiguation), and top (scoreline count with defaults). This adds critical meaning beyond the schema types.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it computes 'market-implied correct-score probabilities for ONE football match' with a specific verb (inverts) and resource (score grid). It distinguishes from siblings by being exclusively about score probabilities and not comparison or line finding.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description plainly states 'Football only, one match per call' and explains optional params for disambiguation. However, it does not explicitly tell when to avoid this tool or compare with alternatives like compare_prob.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Claim this connector by publishing a /.well-known/glama.json file on your server's domain with the following structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"maintainers": [{ "email": "your-email@example.com" }]
}The email address must match the email associated with your Glama account. Once published, Glama will automatically detect and verify the file within a few minutes.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!
Related MCP Servers
- Alicense-qualityCmaintenanceCloudflare Worker REST API + local MCP server for China Sports Lottery football odds, providing live odds, derived probabilities, Kelly value, and parlay calculation.8MIT

PropLineofficial
AlicenseAqualityAmaintenanceLive sports betting odds, cross-book +EV, and graded player-prop resolution across 13 books.115501MIT
Odds-API MCP Serverofficial
AlicenseAqualityBmaintenanceEnables AI assistants to access sports betting odds data from 265+ bookmakers across 34 sports, including events, odds, historical data, arbitrage, and value bets.2295MIT- AlicenseAqualityCmaintenanceSchedules, scores, odds, splits & explainable AI bet confidence — 8+ sports, free instant key.3162MIT