Skip to main content
Glama

search_classes_near

Find bookable fitness classes near a location across multiple studios, filtered by date, category, teacher, and availability. Results list soonest options first for booking.

Instructions

Find bookable classes NEAR a location, across studios, with filters.

Needs login (.env). Note: only a minority of studios expose structured classes (Netpulse-native, e.g. Fitness First); most small studios use external booking and are not included. Online classes are included by default. The first call near a new area is slower (it probes studios); later calls are fast (native studios are cached).

Args: location: City/place. Default Munich. Ignored if latitude+longitude set. latitude, longitude: Exact search point. radius_km: Only studios within this distance. Default 5 km. date_from, date_to: ISO date/datetime window. Default: now .. now+7d. category: Keep classes whose activity matches (e.g. "yoga", "cardio"). teacher: Keep classes by this instructor (substring, case-insensitive). available_only: Keep only classes with a free spot. include_online: Also include the online class catalogue. Default true. include_studios_without_times: Also list nearby studios that offer classes but expose no in-app schedule (external booking). They come back under studios_without_times, not as timed classes. Default false (hide them). limit: Max classes to return (1-100). Default 40. Soonest first.

Returns: Classes (soonest first), each with studio, distance_km, club_uuid, and a class id — pass club_uuid + id to book_class.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
limitNo
date_toNo
teacherNo
categoryNo
latitudeNo
locationNoMunich
date_fromNo
longitudeNo
radius_kmNo
available_onlyNo
include_onlineNo
include_studios_without_timesNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4/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 largely meets it: it discloses the auth requirement, a significant coverage limitation (only Netpulse-native studios expose structured classes), default online inclusion, and a first-call latency penalty due to studio probing followed by caching. It does not cover failure modes, rate limits, or pagination, which keeps it short of a 5.

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 one-sentence purpose followed by Args and Returns blocks; the latency/coverage caveat sits early where it matters. Every line carries information, though the multi-line caveat paragraph could be tightened slightly.

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 12-parameter tool with no annotations, no output schema, and no schema descriptions, the description supplies auth, coverage caveats, latency behavior, full parameter semantics, and even the return shape and booking handoff. Error/empty-result behavior is the only notable omission; with no output schema it otherwise stands alone well.

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

Parameters5/5

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

Schema description coverage is 0% and there are 12 parameters, yet the Args block documents every one with defaults and semantics: location default and precedence over lat/lon, radius default 5 km, window default now..now+7d, substring/case-insensitive teacher matching, the non-obvious include_studios_without_times behavior returning `studios_without_times`, and the limit range (1-100). It fully compensates for the empty schema descriptions.

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?

States a specific verb and resource with scope: "Find bookable classes NEAR a location, across studios, with filters." It is clearly differentiated from booking tools by the closing handoff to book_class, but the sibling search_classes is never addressed, so an agent cannot tell from this text alone which of the two search tools to pick.

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 context is implied rather than stated: it explains coverage ("most small studios use external booking and are not included"), prerequisites ("Needs login (.env)") and the downstream call ("pass club_uuid + id to book_class"). However, it never says when to use this tool versus search_classes, and it offers no exclusions or alternative-selection criteria.

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