Skip to main content
Glama

Cito API

player_form

Read-only

Tennis player form: W/L record over the last N completed matches, current win/loss streak, and per-match rows (opponent, score, surface). Optional surface filter (Hard/Clay/Grass).

When to use:

  • "How is X playing lately?"; current streak; surface-specific record (e.g. clay last 5).

Prefer over: player_profile (identity + career aggregates, no streak); raw form via call_api for agent-normalized rows.

Do not use when: career totals/titles → player_profile with game tennis (wires /stats); ranking deltas → rankings_movers.

Tennis-only. Limit defaults to 10 (max 50, matching the API). Upstream rows arrive newest-first; the streak is the leading run of that order.

Parallel-safe: yes. Upstream cost: 1.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
gameYesGame title: lol | cs2 | dota2 | cod | ufc | tennis. Example: "cs2".
limitNoRecent-match window (default 10, max 50).
surfaceNoFilter to one surface: Hard, Clay, or Grass.
playerIdYesTennis player id, e.g. "atp_207989".

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
okYestrue if the tool succeeded
dataNoResult payload when ok is true; null on error
metaYes
errorNo
partialNo
paginationNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, so safety is covered. The description adds valuable context: row ordering (newest-first), default limit matches API (10, max 50), parallel-safety, and upstream cost. This goes beyond annotations, though it could specify what output format includes, but output schema exists.

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?

Well-structured with clear sections: description, when-to-use, do-not-use, and technical notes. Front-loaded with the core purpose, then usage guidance. Every sentence earns its place; no fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's moderate complexity (4 params), the presence of an output schema, and annotations covering read-only safety, the description is complete. It covers usage context, exclusions, ordering, limits, and parallel-safety, leaving no critical gaps for correct invocation.

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 all parameters are documented. The description adds context for the surface filter (e.g., clay last 5) and confirms limit semantics, but does not add significant new meaning beyond schema. Baseline 3 is appropriate.

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?

States a specific verb and resource ('Tennis player form: W/L record over the last N completed matches, current win/loss streak, and per-match rows'), distinguishing from siblings like player_profile by naming the unique output (streak, surface-specific). The purpose is clear and differentiated.

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?

Provides explicit when-to-use examples ('How is X playing lately?'), prefers this tool over player_profile for streak queries, and explicitly states when NOT to use it (career totals, ranking deltas). Names alternatives (player_profile, rankings_movers) and conditions for switching.

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.

Resources