kicksmash
Server Details
Padel matches for people and agents: create, share one link, join, americano schedules, levels.
- Status
- Healthy
- Uptime
- 100.0% over 21 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-06-18
- URL
- Repository
- evhg/padel-matchup
- GitHub Stars
- 0
TDQS
Scored across 15 tools
Each tool targets a distinct resource and action: discovery tools search clubs, coaches, matches, and series separately, while booking/coach tools are cleanly separated into request_coach, coach_slots, book_lesson, and cancel_lesson. Match tools also avoid overlap by separating create, get, find, and join. There is no realistic ambiguity between tool purposes.
The vast majority follow a clear verb_noun snake_case pattern: find_clubs, book_lesson, create_match, get_group, join_match, etc. The pattern is only slightly broken by coach_slots (a noun phrase rather than an action) and about_kicksmash (preposition-style), but these are minor deviations in an otherwise consistent set.
15 tools is within the ideal 3-15 range and appropriate for a padel platform covering discovery, coaching, matches, groups, and account setup. Each tool addresses a meaningful workflow without feeling padded or redundant.
The surface covers the main user journeys well: finding clubs/coaches/matches, requesting and booking lessons, creating/joining/fetching matches, finding series, and generating schedules. Minor gaps exist, such as no tool to create or update groups and no explicit match cancellation/update, but these are workable around and do not create dead ends for core flows.
Available Tools
15 toolsabout_kicksmashAbout KicksmashARead-onlyIdempotentInspect
What Kicksmash is and how to use it: matches, levels, groups, boards, the API and what we ask of assistants. Read this once before acting.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnly, idempotent, and non-destructive behavior, so the description does not need to repeat those. The description adds useful context about the tool's content coverage, including the API and expectations for assistants, which goes beyond structured annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, compact sentence that front-loads the purpose and immediately gives an actionable instruction. It lists the covered topics efficiently without wasting words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter informational tool, the description is complete: it states what the tool is, what topics it covers, and how the assistant should use it. No output schema or parameter fields create additional requirements, and the annotations already cover the safety profile.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and 100% schema description coverage, so there is no parameter burden for the description to carry. Baseline for zero-parameter tools is 4, and the description appropriately avoids inventing unnecessary parameter details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool as an informational onboarding resource: 'What Kicksmash is and how to use it' with a concrete list of covered topics. It is immediately distinguishable from the action-oriented sibling tools like create_match or find_matches.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives an explicit usage instruction: 'Read this once before acting,' which tells the agent when to invoke it relative to other operations. It does not explicitly name alternatives or conditions to skip it, but its role as a prerequisite resource is strongly implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
book_lessonBook a lessonAInspect
Book one lesson at a free start for an accepted student (their personal token). Draws from their open package when they have one. Confirm the time with the person first.
| Name | Required | Description | Default |
|---|---|---|---|
| token | Yes | The student's personal token (from request_coach or any earlier call). The coach must have accepted them. | |
| handle | Yes | The coach's handle from their page URL, e.g. 'olga' in kicksma.sh/c/olga. | |
| startsAt | Yes | A start from coach_slots, ISO 8601. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate this is not read-only, but the description adds important behavioral context: the tool draws from the student's open package when one exists, and prior confirmation is required. This goes beyond the structured annotation fields without contradicting them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, each carrying useful information, with no filler. The key action and prerequisites are front-loaded, and the package behavior is stated compactly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with three documented parameters and no output schema, the description plus schema covers the action, preconditions, source of inputs, and a key side effect. It does not describe return values or error cases, but those are not required for this straightforward booking tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds extra meaning by specifying that startsAt must be a free start and that the token belongs to an accepted student, and it clarifies the package-drawing behavior. This adds value beyond the schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('book one lesson'), a specific target ('an accepted student'), and a precise constraint ('at a free start'). It clearly distinguishes itself from siblings like cancel_lesson, coach_slots, and request_coach by focusing on the booking action and the accepted-student token context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the correct context: use it only after the student is accepted, with a start from coach_slots, and after confirming the time with the person. It gives a clear prerequisite ('Confirm the time with the person first') but does not explicitly name alternatives or say when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cancel_lessonCancel a lessonAInspect
Cancel a student's lesson under the coach's rules; the outcome says whether it was refunded, covered by a free pass, or counted. Say the rule to the person before cancelling late.
| Name | Required | Description | Default |
|---|---|---|---|
| token | Yes | The student's personal token. | |
| lessonId | Yes | The lesson id from book_lesson. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses meaningful behavioral details beyond the annotations: the cancellation may result in a refund, a free pass, or being counted, and it requires stating the rule before a late cancellation. This helps the agent anticipate consequences and follow a required step, even though annotations already indicate this is not read-only or idempotent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no filler. It front-loads the action and immediately adds the most important behavioral condition and the required pre-cancellation communication step. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter cancellation tool with no output schema, the description provides enough context about what the outcome will communicate and the rule-related behavior. It could be more complete by describing the exact output structure, but the essential invocation and consequence information is present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already documents both parameters with 100% coverage: lessonId is 'The lesson id from book_lesson' and token is 'The student's personal token.' The description adds no additional parameter-level meaning, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: 'Cancel a student's lesson' and clarifies the cancellation happens 'under the coach's rules.' It also tells what the outcome communicates, which distinguishes it clearly from booking-related siblings like book_lesson.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly implies when to use the tool: to cancel a student's lesson. It also provides useful context by explaining that the outcome depends on coach rules and adds a specific procedural requirement for late cancellations: 'Say the rule to the person before cancelling late.' It does not explicitly name alternatives, but the usage context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
coach_slotsA coach's free timesARead-onlyIdempotentInspect
Free starts inside a coach's hours for the next days (default 14). Only accepted students can book them: request_coach first.
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | How many days ahead, default 14. | |
| handle | Yes | The coach's handle from their page URL, e.g. 'olga' in kicksma.sh/c/olga. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the description does not need to restate safety. It adds meaningful context beyond annotations: the default time window, the notion of 'inside a coach's hours,' and the eligibility rule that only accepted students can book. It stops short of describing output shape or whether booked slots are excluded, but the added behavioral context is valuable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences with zero filler. The core resource and default window are front-loaded, and the eligibility/precondition guidance is packed into a compact second sentence. Every word contributes to the agent's understanding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only listing tool with two parameters and a full schema, the description covers the essential purpose and a key precondition. However, there is no output schema, and the description does not clarify the return format (e.g., date-time representation, granularity) or whether the list only includes unbooked slots. These gaps leave some ambiguity for an agent trying to interpret the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and both parameters are well-described in the schema: handle includes an example, and days includes its default and range. The description mentions 'default 14' but this duplicates the schema text. No additional parameter-level meaning is provided beyond the schema, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the resource as a coach's free time starts within the next days and defaults to 14. It distinguishes itself from booking/requesting siblings by noting that only accepted students can book and that request_coach is a prerequisite. However, it lacks an explicit imperative verb like 'list' or 'get,' so the action is implied rather than stated directly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives useful context: this tool surfaces free starts inside a coach's hours over a configurable future window, with a default of 14 days. It also signals the prerequisite flow ('request_coach first') and the booking restriction. It does not explicitly rule out alternatives like find_coaches or find_clubs, but the context is clear enough for an agent to select this tool when a specific coach's availability is needed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_api_keyCreate an API keyAInspect
Get a free key instantly for roomier limits and webhooks. Shown once. Not needed for reading or for a few writes a day.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Who or what will use the key. | |
| agent | No | Your name as an assistant, e.g. 'claude'. | |
| No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description reveals the key is shown once and is free, adding context beyond the annotations; there is no contradiction with readOnlyHint false.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two terse sentences deliver the purpose and key caveats without unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Provides enough context to call the tool, including the one-time display caveat, though no output schema or error/usage limits are specified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers 2 of 3 parameters with meaningful descriptions, but the description adds no parameter guidance and the email parameter lacks a description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Title and description clearly state the tool creates/gets a free API key, distinct from sibling tools focused on matches, clubs, and schedules.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says a key is unnecessary for read-only or light write usage and is intended for higher limits and webhooks, though it does not name alternative tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_matchCreate a matchAInspect
Create a padel match (4 players) or an americano tournament for a person. Returns the share link for the players and the organizer's private links. Give the person all links; keep personalToken and manageUrl private. Ask before creating; one request, one match.
| Name | Required | Description | Default |
|---|---|---|---|
| tz | Yes | IANA time zone the players live in, for example Asia/Singapore or Asia/Bangkok. | |
| cost | No | What each player pays, as free text: 400 THB, €8, split 4 ways. | |
| note | No | ||
| type | No | A match is exactly four players. A tournament is an americano with 4 to 64 players in fours. | match |
| court | No | Court within the venue, e.g. "3". | |
| title | No | ||
| venue | No | Club or court name. Enables the venue board and the booking link. | |
| format | No | Tournaments only. americano: partners rotate, everyone plays everyone. mexicano: courts by standings after round 1. king: winners move up a court, losers down. | |
| gamesTo | No | Tournaments only: first to N games (4, 6, 8) instead of points; the table then ranks by matches won. | |
| capacity | No | Tournaments only, a multiple of 4. Matches are always 4. | |
| levelMax | No | ||
| levelMin | No | Level range 0 to 7 (Playtomic-style). Omit both for any level. | |
| startsAt | Yes | ISO 8601 date-time. With an offset or Z it is absolute; without one it is read in tz. Example: 2026-09-11T19:00 | |
| whenFull | No | waitlist | |
| organizer | Yes | ||
| bookingUrl | No | The club's booking page or confirmation link, shown to players. | |
| venueMapUrl | No | ||
| organizerPlays | No | Seat the organizer in the match (default). False when they only organize. | |
| pointsPerMatch | No | Tournaments only: fixed points per match (16, 21, 24, 32). Omit for free scoring; mexicano defaults to 24. | |
| listOnVenueBoard | No | Show the match on the public venue board (/v/{venue-slug}). Off by default. | |
| verifiedLevelsOnly | No | With a range: only levels confirmed by an organizer, a coach or a club walk in; declared levels inside the range ask to join. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are minimal (all hints false), so the description carries the behavioral burden. It discloses that the tool returns a share link and private links, and warns about handling personalToken and manageUrl. 'One request, one match' adds a constraint. No contradiction with annotations; it adds useful behavior beyond the structured hints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the operation and resource, followed by output and operational guidance. Every sentence earns its place; no redundant or vague wording.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description appropriately states the returns (share link, private links). However, for a 21-parameter tool with nested objects, it omits high-level workflow guidance—for example, that the agent must collect required startsAt, tz, and organizer details—and does not clarify the manual or link-based joining flow beyond giving links.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 71%, so the baseline is not automatically high. The description adds only generic hints ('4 players', 'americano') that map to the type/format fields but does not explain key parameters like cost, level, venue, or startsAt semantics. Despite the rich schema, the description contributes little extra meaning for parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb ('Create') and resource ('padel match (4 players)' or 'americano tournament') and indicates the beneficiary ('for a person'). It distinguishes itself from siblings like book_lesson and join_match by naming the creation targets, though it does not explicitly contrast with those alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides operational context: ask before creating, one request one match, give all links, and keep personalToken/manageUrl private. However, it does not explicitly state when to prefer this tool over alternatives such as join_match or book_lesson; the context is clear but no exclusions or alternative routing are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_clubsFind clubsARead-onlyIdempotentInspect
Padel clubs: booking link and platform, courts, today's free courts when the club shares its calendar, founding status. Every row says claimed: true when the club runs the page itself, false when Kicksmash listed it from public sources, where the courts and links are our reading and may be out of date. Pass include:'listed' to get both — that is what answers "where can I play here?". Filter by city (phuket, singapore) or ask for one club by name.
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | phuket or singapore | |
| name | No | One club by name; the slug is derived | |
| include | No | claimed (default): only clubs that run their own page. listed: also the clubs Kicksmash listed from public sources, each marked claimed:false. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the read-only and idempotent annotations, the description discloses important behavioral details: the claimed flag indicates whether a club runs its own page, and that court/link data may be out of date when sourced from public listings. It also notes that free-court availability depends on the club sharing its calendar. These caveats add significant value 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is moderately long but front-loads the core purpose in the first sentence and then efficiently explains the claimed flag and usage guidance. Every sentence contributes either to understanding output or invoking the tool correctly, though a tighter phrasing could reduce wordiness without losing substance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description explains the return fields (booking link, platform, courts, free courts, founding status, claimed) and the meaning of claimed, which is essential given there is no output schema. It does not mention ordering, pagination, or error cases, but for a read-only list tool with annotations, it covers what an agent needs to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already documents all three parameters thoroughly (city, name, include) with 100% coverage. The description reinforces the meaning of include and ties it to a user query, and clarifies that the name parameter uses a derived slug. It does not add new technical details but contextualizes the parameters effectively.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool as retrieving padel club information (booking link, platform, courts, free courts, founding status) and distinguishes it from sibling find_* tools by its focus on clubs rather than coaches, matches, or series. It states the resource and the key data fields, leaving no ambiguity about what the tool returns.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit usage guidance: it explains that include:'listed' answers 'where can I play here?' and describes filtering by city or name. It does not explicitly mention alternatives, but the sibling list makes it clear that this is the tool for clubs, and the description provides concrete scenarios for when to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_coachesFind coachesARead-onlyIdempotentInspect
Padel coaches who listed their page: clubs, lesson length, languages, the rules students book under (cancellation cutoff, free late passes, notice). Filter by city. Prices are the coach's to tell; nothing is paid through Kicksmash.
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | phuket or singapore; omit for every listed coach |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish read-only, idempotent, and non-destructive behavior. The description adds meaningful context beyond annotations by disclosing what data is available, that results are city-filterable, and that no payment is processed through Kicksmash. No contradiction with annotations exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: it states the core subject first, lists relevant attributes, then gives filtering guidance and an important policy caveat. Every sentence earns its place with no filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-optional-parameter read-only tool, the description covers the entity type, available fields, filtering capability, and a key payment policy. It does not describe the return envelope or ordering, but given the tool's simplicity and the absence of an output schema, it is sufficiently complete for selection and invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the schema already documents the single optional city parameter with valid values and omission behavior. The description's 'Filter by city' reinforces the parameter but does not add substantive meaning beyond the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the resource as Padel coaches and lists what their pages contain (clubs, lesson length, languages, booking rules). It is distinguishable from the sibling find_clubs because it explicitly targets coaches, not clubs. However, it relies on the tool name for the action verb rather than stating an explicit 'list' or 'get' action.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear usage context: filter by city, and this is for coaches who have listed their page. The payment note ('prices are the coach's to tell; nothing is paid through Kicksmash') helps the agent set expectations. It does not explicitly contrast with siblings like coach_slots or request_coach, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_matchesFind open matches at a venueARead-onlyIdempotentInspect
Open, organizer-listed matches at a venue (its public board), with spots left and level ranges. Give the venue name; the slug is derived.
| Name | Required | Description | Default |
|---|---|---|---|
| venue | Yes | Venue name or its slug, e.g. 'Padel Indoor BCN' or 'padel-indoor-bcn'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the safety profile is covered. The description adds useful behavioral context beyond those annotations: matches are organizer-listed, the board is public, results include spots left and level ranges, and the slug is derived from the venue name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single compact sentence that front-loads the core purpose, states the key output fields, and gives the input convention. It contains no filler and does not repeat what the annotations or schema already say.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter, read-only tool with no output schema, the description supplies the essential return information (open matches, spots left, level ranges) and the input derivation rule. An agent has enough context to select and invoke the tool correctly without obvious gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents the venue parameter well. The description adds value by explaining that a venue name is sufficient because the slug is derived, which is not explicit in the schema and helps the agent construct a correct call.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The title and description together identify a specific operation (find) on a specific resource (open, organizer-listed matches at a venue), and the public-board wording distinguishes it from sibling tools like find_clubs and get_match. The mention of spots left and level ranges further clarifies what kind of match listing this returns.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly scopes the tool to a venue's public match board and instructs the user to provide the venue name, but it does not explicitly state when to prefer this over find_clubs, get_match, or join_match. The usage context is implied rather than stated with exclusions or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_seriesFind series (Opens that repeat)ARead-onlyIdempotentInspect
Tournament series: same weekday and time every week, fortnight or month, with the next edition to sign up for and the past podiums. Filter by city, or pass a slug for one series. Players sign up on the edition's match page.
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | phuket or singapore; omit for every active series | |
| slug | No | One series by slug: its next edition and past podiums |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds meaningful behavioral context beyond those annotations: recurring schedules (weekly/fortnightly/monthly), inclusion of next edition and past podiums, and the note that players sign up on the edition's match page. No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences with no wasted words. The most important concept (what a series is) is front-loaded, followed by return contents, filtering, and a useful signup note. The only minor redundancy is the filter mention already covered by the schema, but it is brief and aids readability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only tool with two optional parameters and no output schema, the description explains the resource, the return payload (next edition and podiums), the filtering options, and where signups occur. It is complete enough for an agent to invoke correctly, though it could be stronger by explicitly distinguishing itself from find_matches.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and both parameters already have clear descriptions ('phuket or singapore; omit for every active series' and 'One series by slug'). The description restates this filtering behavior but adds no new parameter-level meaning, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description begins with a concrete explanation of the resource ('Tournament series: same weekday and time every week, fortnight or month') and states what the tool returns ('the next edition to sign up for and the past podiums'). It is clear and specific, though it does not explicitly name a sibling alternative such as find_matches to differentiate itself.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains the two filtering modes ('Filter by city, or pass a slug for one series') and hints that signups happen on the edition's match page, which subtly implies this tool is for discovery rather than enrollment. However, it never explicitly states when to prefer this tool over find_matches or other siblings, leaving that to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_scheduleGenerate an americano scheduleARead-onlyIdempotentInspect
Rounds of rotating-partner doubles for 4 to 64 players. Exact when the field is in fours (every pair partners once in players−1 rounds), fair sit-outs otherwise. Nothing is stored.
| Name | Required | Description | Default |
|---|---|---|---|
| seed | No | Same seed, same schedule. | |
| names | No | ||
| courts | No | Defaults to floor(players / 4). | |
| format | No | americano | |
| rounds | No | Defaults to players − 1 when the field is in fours (every pair partners once), else players. | |
| players | No | Number of players; ignored when names are given. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint, so the description does not need to restate those. It adds valuable behavioral context by stating 'Nothing is stored' and by specifying exactness conditions for fields in fours versus 'fair sit-outs otherwise.'
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences deliver the core purpose, behavioral guarantees, and persistence semantics with no filler. The most important information is front-loaded before the fairness details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a stateless, read-only generator with optional parameters, the description covers purpose, player range, schedule properties, and non-persistence. It does not explicitly describe the output format, but the phrase 'rounds of rotating-partner doubles' strongly implies the return value, and the schema covers the remaining parameter details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already documents seed, courts, rounds, and players, while the description adds context about 'players−1 rounds' and fairness behavior linked to player count. However, it does not clarify the meaning of names, format, or courts beyond what the schema provides, and schema coverage is only 67%.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The title supplies the verb 'Generate' and the description names the resource: 'rounds of rotating-partner doubles for 4 to 64 players.' This clearly identifies what the tool produces and is not confusable with the listed siblings, none of which involve schedule generation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains what the tool does but gives no guidance on when to choose it over alternatives, nor any explicit context such as prerequisites or exclusions. The only usage signal is the implicit one from the title, which is weak.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_groupGet a groupBRead-onlyIdempotentInspect
A crew that plays together: members with levels, weekly slot, upcoming matches, calendar feed.
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | The code from the link. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds useful context about what kind of data is included (members, levels, weekly slot, upcoming matches, calendar feed), but it does not disclose error behavior, authentication needs, or response shape beyond these contents.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and mostly to the point, but the opening phrase 'A crew that plays together' is decorative and adds little operational meaning. The useful content appears after the colon, making it less front-loaded than it could be.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter read tool with strong annotations, the description gives a reasonable sense of what the response contains. However, it lacks explicit usage context, does not state that this is a direct lookup by code, and provides no detail about failure behavior or returned data structure, which an agent might need since there is no output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema fully documents the only parameter 'code' with type, length constraints, and the description 'The code from the link.' Since schema coverage is 100%, the description does not need to add parameter details; the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The title 'Get a group' and description 'A crew that plays together: members with levels, weekly slot, upcoming matches, calendar feed' make it clear this tool returns group details by code. It is distinguishable from sibling get_match by focusing on group/crew contents rather than match data, though the description never explicitly states the retrieval action.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to use this tool versus siblings like get_match, find_clubs, or join_match. The only contextual clue is the parameter description 'The code from the link,' implying a direct lookup by code, but no alternatives or exclusions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_matchGet a matchARead-onlyIdempotentInspect
A match or tournament by its 4-character code: players with levels, spots left, venue, time, level range, result. Public data only.
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | The code from the link. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the tool read-only, idempotent, and non-destructive. The description adds that the operation is public, which signals no special auth is needed, and enumerates the returned data (players, spots left, venue, time, level range, result), which is valuable since there is no output schema. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single dense sentence front-loads the resource and key, then lists the returned fields with no redundant wording. Every clause contributes information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter, read-only getter with annotations covering safety, the description is complete: it states the input, the data scope, and the relevant output fields. Since there is no output schema, the explicit field list is especially important and is present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already describes 'code' as 'The code from the link' with 100% coverage, so the description adds little. The claim of a '4-character code' is slightly inconsistent with the schema's minLength 4 / maxLength 6, creating minor ambiguity. No enum or nested structure to explain.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the resource (a match or tournament) and the lookup mechanism (4-character code), and lists the fields returned. However, it is phrased as a noun phrase rather than an explicit verb-led statement such as 'Retrieves...', and it doesn't explicitly differentiate itself from sibling lookup tools beyond the code-based access.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the right use case: use this when you already have a match/tournament code and need its details. It does not explicitly name alternatives like find_matches or state exclusion criteria, but 'by its 4-character code' and 'public data only' provide clear context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
join_matchJoin a matchAInspect
Put a person into a match by first name (or by their personal token from an earlier call). Handles waitlists and level ranges; when the level is outside the range, the organizer is asked to approve.
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | The 4-character match code from the link, e.g. kicksma.sh/AB12 → AB12. | |
| name | No | Required unless token is given. | |
| No | Optional. Sends a calendar invite that updates itself. | ||
| level | No | Needed once when the match has a level range and the player has no level yet. | |
| token | No | Personal token of an existing player. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only mark this as non-read-only, so the description adds value by disclosing waitlist handling, level-range behavior, and organizer approval when the level is out of range. It does not cover every side effect, but the key non-obvious behaviors are surfaced.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences front-load the main action and then add the two important edge behaviors (waitlists and approval). There is no redundant or filler content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Together with a fully descriptive schema, the definition gives an agent the essential call context: required code, person identification by name or token, optional email, and level behavior with approval. It lacks an explicit note about success/response, but no output schema exists and the invocation path is otherwise well specified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the schema already explains code, the name/token condition, optional email, and level. The description reinforces the name-vs-token choice and level-range context but does not add meaning beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Put a person into a match'), identifies the resource (a match by code, person by name/token), and distinguishes it from siblings like create_match and find_matches. The waitlist/level-range behavior adds further specificity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It clearly indicates this is for adding an existing person to an existing match using a match code, with token as the alternative for known players. It does not explicitly contrast with siblings such as create_match, but the intended context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
request_coachAsk to become a studentAInspect
Ask a coach to accept a person as their student, by first name or personal token. The coach answers with one tap. Keep the returned personalToken private to the student; book_lesson needs it. Ask the person before calling.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | The student's first name. Required unless token is given. | |
| token | No | Personal token of an existing Kicksmash player. | |
| handle | Yes | The coach's handle from their page URL, e.g. 'olga' in kicksma.sh/c/olga. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds meaningful behavioral context beyond the annotations: the coach answers with one tap, the tool returns a personalToken, the token must be kept private, and the user must obtain consent before calling. Annotations only indicate non-read-only, non-idempotent, non-destructive behavior; the description enriches that significantly.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, each adding distinct value: the core action, the behavioral outcome and token privacy, and the consent prerequisite. The description is front-loaded and contains no filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple 3-parameter tool with no output schema, the description is complete: it explains what happens, what is returned, how the return value is used by a sibling tool, and the required pre-call action. There are no critical gaps that would prevent an agent from using it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and each parameter already has a clear description. The tool description restates the name-or-token alternative already present in the schema but adds no new parameter-level semantics, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Ask a coach to accept a person as their student') with the exact resource and subject, and clarifies the two identification methods. It is clearly distinguishable from sibling tools like book_lesson or cancel_lesson, and the downstream reference to book_lesson reinforces what this tool is for.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear usage context: use it to initiate a coach–student relationship, and it notes the precondition to ask the person before calling. It also mentions the downstream dependency on book_lesson. It doesn't explicitly name alternatives or when not to use it, so it stops just short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
1 tool update
- Changed
find_clubs1 field changed- added
Input schema / properties / includeAdded value: +{ + "description": "claimed (default): only clubs that run their own page. listed: also the clubs Kicksmash listed from public sources, each marked claimed:false.", + "enum": [ + "claimed", + "listed" + ], + "type": "string" +}
1 tool update
- Changed
create_match1 field changed- added
Input schema / properties / gamesToAdded value: +{ + "description": "Tournaments only: first to N games (4, 6, 8) instead of points; the table then ranks by matches won.", + "maximum": 12, + "minimum": 2, + "type": "integer" +}
1 tool update
- Added
find_series
1 tool update
- Changed
create_match1 field changed- added
Input schema / properties / verifiedLevelsOnlyAdded value: +{ + "default": false, + "description": "With a range: only levels confirmed by an organizer, a coach or a club walk in; declared levels inside the range ask to join.", + "type": "boolean" +}
5 tool updates
- Added
book_lesson - Added
cancel_lesson - Added
coach_slots - Added
find_coaches - Added
request_coach
9 tool updates
- First observed
about_kicksmash - First observed
create_api_key - First observed
create_match - First observed
find_clubs - First observed
find_matches - First observed
generate_schedule - First observed
get_group - First observed
get_match - First observed
join_match
Related MCP Connectors
Find upcoming tennis, padel and squash games with free spots, by city, sport, level and date.
Run racket-sport tournaments from your AI assistant: fair draws, scores, live standings.
Round-robin ladders and match scores for small clubs. Players join by QR poster; no app, no account.
The people network your AI agent joins on your behalf — find, match, and meet anyone.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceTournament software for tennis, padel, pickleball and more: fair draws, live standings, scores and dropout handling.MIT
- MIT
- -licenseNot gradedqualityNot gradedmaintenanceEnables checking Matchpoint club balance, listing free padel court availability, and booking private Open Matches through natural language from AI clients like Cursor or Claude Desktop.-
- AlicenseNot gradedqualityDmaintenanceSurf Park live session availability for booking and cancellation. Made by surfers for wave pools worldwideMIT
Glama MCP Gateway
Add one secure layer between your agents and this server.