Skip to main content
Glama

find_best_price

Find which bookmaker pays the most for one specific bet when VoxOdds has a configured live sportsbook feed. The registry is a directory, not live coverage. Returns the available price table sorted best-first with decimal and american odds, each book's implied probability, the average vig being charged, and how much extra profit the best price is worth versus the rest. Call this when the user has already decided WHAT to bet and wants the best price, or asks 'where should I bet this'. Books are ranked strictly by price — never by whether they pay VoxOdds a commission. Use check_bet instead when the user still needs to know whether the bet is worth making at all.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
sideYes
eventYes
sportNoupcoming

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description fully shoulders behavioral transparency. It discloses key traits: the registry is 'a directory, not live coverage', the output includes a best-first sorted table with odds, implied probability, vig, and profit differential, and that books are 'ranked strictly by price — never by whether they pay VoxOdds a commission.' It also conditions usage on a 'configured live sportsbook feed.' This is rich and prevents misuse.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but every sentence contributes: purpose, limitation, return contents, usage trigger, ranking policy, and alternative. It is front-loaded with the primary function and reads naturally without redundant filler. Length is justified given the complexity and absence of annotations.

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?

The tool has an output schema, so return-value details are partially covered elsewhere, but the description already explains the return components. The main gap is input parameter semantics (event, side, sport), which are not described in the schema or description. Otherwise, the description covers purpose, alternatives, preconditions, and behavioral nuances, making it largely complete for such a complex tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0% and the description does not explain the parameters 'event', 'side', or 'sport'. While 'specific bet' implies event and side, there is no guidance on value formats, meaning of 'side', or the odd default 'sport=upcoming'. The description fails to compensate for the lack of schema descriptions.

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?

The description clearly states the tool's purpose: 'Find which bookmaker pays the most for one specific bet.' It also distinguishes itself from siblings by explicitly contrasting with check_bet and noting the directory-vs-live-coverage limitation. The verb and resource are specific, and the scope is well-defined.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It provides explicit when-to-use guidance: 'Call this when the user has already decided WHAT to bet and wants the best price, or asks 'where should I bet this'.' It also names an alternative: 'Use check_bet instead when the user still needs to know whether the bet is worth making at all.' The exclusion is clear and actionable.

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.4/5.0
Disambiguation4/5

Most tools have clear, distinct purposes, but a few overlap: get_market_odds and get_world_cup_odds both handle World Cup probability questions, and get_edge_signals and get_research_theses both point to potentially mispriced markets. The descriptions help clarify intent, but the boundaries are not always crisp.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern using snake_case, with verbs like get, list, submit, check, compare, find. Even compound objects like best_price or world_cup_odds fit the pattern cleanly, and no mixed conventions or camelCase appear.

Tool Count5/5

At 14 tools, the server is well-scoped within the 3-15 typical range. Each tool serves a distinct function—odds lookup, market browsing, research, forecasting, and World Cup-specific content—without redundant bloat. The count feels appropriate for the broad domain.

Completeness5/5

The tool set covers a complete workflow: discovering markets, comparing odds, evaluating bets, finding best prices, getting quotes, submitting forecasts, and reviewing personal and AI track records. The lack of an execution tool is intentional (the server is research-oriented), and the append-only forecast model makes missing update/delete operations a non-issue.

Resources