Skip to main content
Glama
odds-api-io

Odds-API MCP Server

Official

grade_bets

Grade up to 50 bets per request, settling each selection as won, lost, void, half_won, half_lost, pending, or ungradeable. Returns reason, final flag, and score.

Instructions

Settle up to 50 bets. Each selection is graded as won, lost, void, half_won, half_lost, pending or ungradeable, with a reason, a final flag and the score it was based on. Covers 64 markets in 20 sports, including Asian handicap quarter lines, totals, corners, bookings and player props. Football settles on 90 minutes. Paid plans.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
selectionsYesBets to grade, described with the fields of an odds row from get_odds

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv1.6.0

TDQS

A3.9/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does substantial work: it enumerates every possible verdict (won, lost, void, half_won, half_lost, pending, ungradeable), the fields returned per selection (reason, final flag, score), the market breadth (64 markets / 20 sports), and a non-obvious domain rule (football settles on 90 minutes). It still omits whether grading persists anything, permission/auth specifics beyond 'Paid plans', and rate or batch-cost behavior.

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?

Five short sentences, front-loaded with the action and capped by the most actionable constraint first. The market enumeration and 90-minute rule are dense but each conveys distinct scope information; the fragment 'Paid plans.' is terse but relevant. Slightly list-heavy, though nothing is truly wasted.

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?

There is no output schema and no annotations, so the description must explain returns — and it does, naming the verdict set plus per-selection reason/final/score fields. Combined with the market and settlement-rule coverage, an agent can call it correctly, with the remaining gaps (persistence, auth mechanics) being secondary.

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

Parameters3/5

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

Schema description coverage is 100% and the single parameter's nested fields are fully documented in the schema itself, so the baseline is 3. The description repeats the 50-item cap (already in maxItems) and gives market-coverage context, but adds no input semantics beyond what the schema already provides.

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 opening sentence gives a specific verb and resource ('Settle ... bets') with a hard scope bound (up to 50). The following sentences pin down exactly what 'settle' produces (graded statuses, reason, final flag, score) and which markets are covered, so an agent knows precisely what the tool does without opening the schema.

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

Usage Guidelines3/5

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

Usage is implied rather than stated: an agent infers it should submit selections it already has, and the closing 'Paid plans.' signals an access prerequisite. However, the description never names the obvious sibling alternative (get_settlements) or explains when grading is the right call versus reading existing settlements, leaving a real routing ambiguity unaddressed.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.