Skip to main content
Glama

Get Opening Line

get_opening_line
Read-only

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.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
dateNo
queryYes
sportNo
formatNodecimal
periodNo
marketsNo
bookmakersNo

TDQS

A4.3/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

TDQS

A4.6/5.0
Disambiguation5/5

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.

Naming Consistency5/5

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.

Tool Count5/5

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.

Completeness5/5

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.

Resources