Skip to main content
Glama

LayUp Sports Booking

search_slots

Read-only

Search bookable sports slots in London across every provider LayUp aggregates. Use when a user wants to find a court, pitch, lane, class or pickup game for football, tennis, squash, padel or swimming. Filter by sport, area/borough, date range, time of day and max price. Returns upcoming slots with venue, London-local time, price, provider and a booking link. Times default to the next 7 days.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
areaNoWhere to look. Resolved geographically, so any of these work: a borough ('Hackney'), a neighbourhood ('Shoreditch', 'Maida Vale'), a region ('North London', 'Central London'), a postcode or outward code ('W9 2RF', 'SE1'), or a venue name ('Clissold'). Returns venues near the resolved point, not just ones with the word in their name.
limitNoMax results to return (1-30, default 15).
sportNoOne of Football, Tennis, Squash, Padel, Swimming.
date_toNoISO date or datetime — latest start. Defaults to 7 days out.
time_toNoLondon-local latest start time of day, 'HH:MM'.
date_fromNoISO date or datetime — earliest start. Defaults to now.
max_priceNoMaximum price in GBP. Published prices above this are removed; unpublished-price slots ('Check App', common for padel/tennis) are kept and flagged.
time_fromNoLondon-local earliest start time of day, 'HH:MM' (e.g. '18:00'). Samples the soonest upcoming slots; combine with date_from to target a specific day.
min_courtsNoOnly return venues with at least this many courts/pitches free AT THE SAME TIME. Use for groups: padel and tennis are 4 per court, so 16 people need 4. Nobody else can answer this — venues cannot see each other and the booking platforms only see their own sites. Results are one slot per venue; that venue had at least this many free at that hour.
booking_typeNo'spot' = book one place (pickup game / swim seat), 'court' = whole court, 'pitch' = whole pitch.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedInput schema / properties / min_courts
      Added value: +{
      +  "description": "Only return venues with at least this many courts/pitches free AT THE SAME TIME. Use for groups: padel and tennis are 4 per court, so 16 people need 4. Nobody else can answer this — venues cannot see each other and the booking platforms only see their own sites. Results are one slot per venue; that venue had at least this many free at that hour.",
      +  "type": "integer"
      +}
  2. Changed1 schema field changed
    • changedInput schema / properties / area / description
      Previous value: -"London borough, area or venue name to match (e.g. 'Hackney', 'Southwark', 'Clissold')."New value: +"Where to look. Resolved geographically, so any of these work: a borough ('Hackney'), a neighbourhood ('Shoreditch', 'Maida Vale'), a region ('North London', 'Central London'), a postcode or outward code ('W9 2RF', 'SE1'), or a venue name ('Clissold'). Returns venues near the resolved point, not just ones with the word in their name."
  3. First observed

TDQS

A4.2/5.0
Behavior4/5

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

Annotations only supply readOnlyHint and openWorldHint, so the description usefully adds return-shape context (venue, London-local time, price, provider, booking link) and a default window ('next 7 days'). It omits pagination/result-ceiling behavior beyond the limit param, but the added operational context goes beyond the annotations.

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 purpose and usage, then filters, then return format and default window; each sentence carries information. Dense but well-organized, with only minor overlap between the filter list and the schema.

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?

With no output schema, the description steps in to describe what is returned (venue, local time, price, provider, booking link) and the default time window. Combined with the rich schema, an agent has everything needed to call it correctly.

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 coverage is 100% and each parameter already carries a rich description (min_courts, max_price unpublished-price handling, area geographic resolution). The description only summarizes filters (sport, area/borough, date range, time of day, max price) that are already fully documented in the schema, adding little beyond it.

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+resource ('Search bookable sports slots in London') and scopes it ('across every provider LayUp aggregates'). Distinctly differentiates from siblings like get_venue and list_sports by describing multi-provider slot search rather than a single venue or sport list.

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

Usage Guidelines4/5

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

'Use when a user wants to find a court, pitch, lane, class or pickup game...' gives a clear triggering context. However, it never mentions the sibling refine_search or create_alert as the alternative path for follow-up refinement or alerts, so the routing guidance is incomplete.

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