Skip to main content
Glama

Recent results

get_recent_results
Read-onlyIdempotent

Recently completed tennis matches with final scores and winners. Filterable by tour, player, nationality and play date. Requires the BASIC plan or any History plan.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
toNoLatest play date: YYYY-MM-DD or ISO-8601; must not precede from.
fromNoEarliest play date: YYYY-MM-DD (a whole UTC day) or ISO-8601 datetime.
tourNoTour filter; each name covers its doubles variants. Exhibition/team events carry no tour and are excluded whenever the filter is used.
limitNoMaximum matches to return (1-200).
playerNoPlayer ids (from search_players), max 50 — keeps matches where ANY listed player is either participant.
countryNoEither participant's country — the lowercase 3-letter IOC-style code the Player object returns (e.g. ned, sui, gre), NOT ISO-3166. Players with no recorded country never match.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
okYesTrue when the call returned data. False for a tier wall, a missing or rejected key, or an empty result — all of which are normal states with a clear remedy, not failures.
matchesNoCompleted matches, most recent first.
messageYesHuman-readable summary. Identical to the text content, so either half can be used alone.

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and non-destructive. The description adds the plan requirement (BASIC or History) and the 'recently completed' scope, which is useful behavioral context. However, it does not describe data freshness limits, response format, or any quirky behavior beyond that, so it adds modest value 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.

Conciseness5/5

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

The description is three short sentences, each earn their place: purpose, filterable dimensions, and access requirement. It is front-loaded with the most important information (what the tool returns) and contains no redundant or salesy language.

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 the rich schema (6 parameters, all described, no required) and the presence of an output schema, the description covers the essentials: what is returned, filter capabilities, and access plan. It does not specify how far back 'recent' goes, but this is a minor gap for a list tool with thorough structured metadata. Overall it is sufficient for agent decision-making.

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%, so the parameters are already well-documented. The description adds a grouped mention of filters ('tour, player, nationality and play date') but does not introduce meaning beyond the schema. It does not clarify ambiguous behaviors like 'recent' boundaries or the exact semantics of play date ranges.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool returns 'recently completed tennis matches with final scores and winners,' which specifies both the resource and the data included. It distinguishes itself from live/upcoming sibling tools through 'recently completed,' though it does not explicitly contrast with archive tools like get_archive_match or search_archive_matches.

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?

The description gives context that this is for recently completed matches, which implies when to use it versus live or upcoming match tools. However, it does not explicitly mention alternatives or exclusions (e.g., 'use get_live_matches for live scores'), and the boundary between 'recent' and 'archive' is undefined. The plan requirement adds a condition but not usage guidance relative to siblings.

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

A3.9/5.0
Disambiguation4/5

The tool set is largely distinct with clear resource/action pairs. Potential confusion exists between get_match and get_match_score (both return match information), and get_fixtures vs get_upcoming_matches (both list upcoming matches), but descriptions clarify the specific use cases for each.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern using either 'get_' or 'search_'. This makes the API highly predictable and easy to navigate, with no stylistic deviations.

Tool Count3/5

With 24 tools, the server is on the heavy end of the typical range. The broad scope (live, archive, charting, rankings, tournaments) justifies the count, but it borders on overwhelming and requires careful categorization.

Completeness4/5

The server covers the core lifecycle of a tennis information API: searching players/tournaments, retrieving profiles/rankings, live scores and detailed match analysis, historical results, and head-to-head records. Minor gaps like tournament draws or standings are missing, but the primary use cases are well covered.