Skip to main content
Glama

Search available padel courts

search_courts
Read-onlyIdempotent

Use this when a group wants bookable court options near a UK location on one date or across a bounded date range. Searches configured providers, normalizes known whole-court and per-player prices, adds catalogue venue IDs and coordinates, and returns at most the requested limit across all dates. Providers such as MATCHi may return a null anonymous price; those slots remain visible under a price ceiling with price_details.basis unknown and must not be presented as budget matches. Travel time is a straight-line heuristic with a 15% soft-filter tolerance near max_travel_minutes, not live routing. number_of_players affects per-player price only; use singles_court to require explicit singles support. Do not use for venue-only discovery or public games.

Input Schema

NameRequiredDescriptionDefault
dateNo
limitNo
locationYes
providerNo
radius_kmNo
court_typeNo
date_rangeNo
travel_modeNodrive
earliest_timeNo00:00
singles_courtNoWhen true, restrict results to courts or venues explicitly identified as supporting singles play.
latest_end_timeNo
duration_minutesNoOmit to return every duration offered by the provider.
number_of_playersNoUsed to compute per-player price only. Does not filter court capacity; use singles_court for that.
max_travel_minutesNo
max_price_per_playerNo

Output Schema

NameRequiredDescriptionDefault
dataYes
metaYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed5 schema fields changed
    • changedInput schema / properties / provider / enum
      Previous value: -[
      -  "padelstars",
      -  "playtomic",
      -  "padelmates",
      -  "matchi",
      -  "clubspark"
      -]New value: +[
      +  "padelstars",
      +  "playtomic",
      +  "padelmates",
      +  "matchi",
      +  "clubspark",
      +  "matchpoint"
      +]
    • changedOutput schema / properties / data / items / properties / provider / enum
      Previous value: -[
      -  "padelstars",
      -  "playtomic",
      -  "padelmates",
      -  "matchi",
      -  "clubspark"
      -]New value: +[
      +  "padelstars",
      +  "playtomic",
      +  "padelmates",
      +  "matchi",
      +  "clubspark",
      +  "matchpoint"
      +]
    • changedOutput schema / properties / meta / properties / providers / properties / failed / items / properties / provider / enum
      Previous value: -[
      -  "padelstars",
      -  "playtomic",
      -  "padelmates",
      -  "matchi",
      -  "clubspark"
      -]New value: +[
      +  "padelstars",
      +  "playtomic",
      +  "padelmates",
      +  "matchi",
      +  "clubspark",
      +  "matchpoint"
      +]
    • changedOutput schema / properties / meta / properties / providers / properties / requested / items / enum
      Previous value: -[
      -  "padelstars",
      -  "playtomic",
      -  "padelmates",
      -  "matchi",
      -  "clubspark"
      -]New value: +[
      +  "padelstars",
      +  "playtomic",
      +  "padelmates",
      +  "matchi",
      +  "clubspark",
      +  "matchpoint"
      +]
    • changedOutput schema / properties / meta / properties / providers / properties / succeeded / items / enum
      Previous value: -[
      -  "padelstars",
      -  "playtomic",
      -  "padelmates",
      -  "matchi",
      -  "clubspark"
      -]New value: +[
      +  "padelstars",
      +  "playtomic",
      +  "padelmates",
      +  "matchi",
      +  "clubspark",
      +  "matchpoint"
      +]
  2. First observed

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already establish read-only, idempotent, open-world, non-destructive, so safety is covered; the description goes further with genuinely non-obvious behavior: the limit applies across all dates, MATCHi may return null anonymous prices that must not be presented as budget matches, and travel time is a straight-line heuristic with 15% soft-filter tolerance rather than live routing. The only real gap is that it doesn't say anything about pagination or provider failure/partial-result behavior across the six providers.

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?

Front-loaded with the use case before the behavioral caveats, and each sentence carries distinct information (price nullability, travel heuristic, player-count semantics, exclusions). It is dense and long for a description, but nothing reads as filler and the ordering follows what an agent needs first.

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?

For a 15-parameter, nested-schema, open-world search with an output schema, the description covers the decision-critical behavior: what is searched, how prices and travel are computed, how unknown prices surface, and which siblings to avoid. Remaining gaps are peripheral parameters (radius, court_type, provider, time windows) whose enum/format constraints the schema already conveys.

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 only 20% schema description coverage across 15 parameters, the description has to carry weight, and it does explain the semantics of the trickiest ones: limit is global across dates, number_of_players affects per-player price not capacity (with singles_court as the capacity lever), max_price_per_player acts as a ceiling including unknown-price slots, and max_travel_minutes is a soft filter. It says nothing about radius_km, court_type, provider, travel_mode, earliest_time/latest_end_time, or how date vs date_range interact, so several parameters remain undocumented.

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 ('search bookable court options near a UK location on one date or across a bounded date range') and adds scope detail (provider aggregation, price normalization, catalogue venue IDs/coordinates). It explicitly carves out sibling territory ('Do not use for venue-only discovery or public games'), so an agent can separate it from search_clubs and search_public_games without reading schemas.

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?

Opens with an explicit 'Use this when...' trigger, then names two exclusion cases ('venue-only discovery', 'public games') and routes the singles case to a specific parameter. The budget-ceiling/null-price rule also tells the agent how to interpret and present results, not just when to call.

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