Ladderboard — round-robin ladders and match scores for small clubs
Server Details
Round-robin ladders and match scores for small clubs. Players join by QR poster; no app, no account.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-06-18
- URL
TDQS
Scored across 5 tools
Each tool targets a distinct action: adding a player, creating/updating the ladder, viewing standings, recording a match, and scheduling a match. There is no functional overlap between any pair of tools.
All tool names follow a consistent verb_noun snake_case pattern: add_player, create_ladder, get_standings, record_match, schedule_match. The verbs clearly indicate the action and the nouns clearly indicate the resource.
Five tools is well-scoped for a small club ladder server. Each tool covers an essential part of the workflow without unnecessary surface area or feature bloat.
The core workflow is covered: create a ladder, add players, schedule matches, record results, and view standings. Minor gaps exist such as no way to delete players, undo/correct a recorded match, or list all players, but these can be worked around.
Available Tools
5 toolsadd_playerAInspect
Register one player by name. Returns a 6-character code and a personal URL so the player can be identified at the courts without an account.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It discloses that registration returns a code and URL, which is useful, but it does not mention side effects (e.g., whether duplicate names are allowed), error conditions, idempotency, or any authentication requirements. It adds some behavioral context but not comprehensively.
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, well-structured sentence that front-loads the purpose and includes the essential return information. There is no fluff 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?
The tool is simple with one parameter and no output schema, so the description explains the return value. However, it omits potential failure scenarios (e.g., duplicate name, invalid input) and does not mention whether registration requires prior setup or authentication. This is a gap for a mutation 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 description coverage is 0%, so the description must compensate. It clarifies that the 'name' parameter is the player's name used for registration, which adds meaning beyond the raw string type. However, it does not provide any constraints (e.g., length, uniqueness) or additional details about how the name is processed.
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 (register) and resource (one player), and specifies the method (by name). It also describes the return value (a 6-character code and personal URL), which distinguishes this tool from siblings like create_ladder, get_standings, record_match, and schedule_match.
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 usage by clearly stating the tool's purpose, but it does not explicitly state when to use it versus alternatives or mention any preconditions (e.g., 'use this to add a player before creating a ladder'). Since the purpose is self-evident, usage is implied rather than explicitly guided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_ladderAInspect
Create or update the club ladder: club name and sport. Returns the join URL (the poster target) that players scan.
| Name | Required | Description | Default |
|---|---|---|---|
| club | Yes | ||
| sport | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses that the tool returns the join URL (poster target) and that it can both create and update, which are useful behavioral traits. However, it does not mention side effects like overwriting an existing ladder, permissions, or idempotency. The return value disclosure helps but the description is not exhaustive.
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 sentence, front-loaded with the primary action and purpose, followed by the return value. There is no filler or redundancy. Every word contributes to understanding the tool's function, making it highly efficient.
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 two-parameter tool with no output schema, the description covers the essential aspects: what it does, the parameters, and the return value. It does not mention edge cases like whether an existing ladder is replaced or how updates merge, but for a basic create/update tool, this is adequate. The absence of annotations is offset by the clear description of the primary behavior and output.
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 provides only field names and types with no descriptions (0% coverage). The description explicitly states that 'club' is the club name and 'sport' is the sport, adding meaning beyond the schema. This compensates for the schema's lack of detail, though it does not elaborate on formats or constraints beyond the schema's required/optional indicators.
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 clear verb-resource pair ('Create or update the club ladder') and specifies the key fields (club name and sport). It is distinct from sibling tools like add_player, get_standings, record_match, and schedule_match, which handle different operations on the ladder. This leaves no ambiguity about the tool's role.
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 when to use the tool (when setting up or modifying the ladder) but does not explicitly contrast it with alternatives or state exclusions. It does not say 'use this instead of get_standings' or mention any conditions. The context is clear but guidance on alternatives is absent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_standingsAInspect
The current table (rank, wins, losses, set percentage) plus the single most useful match to play next. Standings are computed with a fixed rule order, so the same results always give the same table.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the behavioral disclosure burden. It does add a useful determinism guarantee: 'Standings are computed with a fixed rule order, so the same results always give the same table.' However, it does not state whether the tool is read-only, whether any side effects occur, or how the 'single most useful match to play next' is determined.
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 concise sentences with no filler. The core output is front-loaded, and the determinism note is a compact, relevant addition.
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, read-oriented tool with no output schema, the description adequately explains what is returned and adds a behavioral guarantee. It is slightly incomplete because the meaning of 'most useful match to play next' is unexplained, but the agent still has enough to select and invoke the tool 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 input schema declares zero parameters and the description imposes none, so there is no parameter ambiguity to resolve. With 0 parameters, the baseline is 4, and no additional parameter explanation is needed.
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 the tool returns the current table (rank, wins, losses, set percentage) plus a recommended match to play next, so the purpose is specific and concrete. It does not explicitly differentiate from sibling tools, though 'get_standings' and the read-oriented wording distinguish it from the mutation-focused siblings like add_player and record_match.
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 explicit guidance on when to use this tool versus alternatives, nor any exclusions or conditions. It is purely definitional and leaves the agent to infer that it is for viewing standings rather than modifying them.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
record_matchBInspect
Record a finished match result. Identify players by name, numeric id, or 6-character code. Give the set score (sets_a, sets_b) and optionally the games.
| Name | Required | Description | Default |
|---|---|---|---|
| round | No | ||
| sets_a | Yes | ||
| sets_b | Yes | ||
| games_a | No | ||
| games_b | No | ||
| player_a | Yes | ||
| player_b | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the full burden of behavioral disclosure. It mentions how to identify players (name, numeric id, or 6-character code), but does not disclose side effects such as overwriting existing results, permission requirements, or error behavior. For a state-changing tool, this is a significant gap.
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, front-loading the purpose first and following with essential details. No filler words; 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?
Given no annotations and no output schema, the description should explain behavior more thoroughly. It omits what 'round' means, does not address side effects or prerequisites, and gives no indication of what happens on success or failure. For a 7-parameter mutation tool, this is incomplete.
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 0%, so the description must explain parameters. It clarifies player_a/player_b (identification methods), sets_a/sets_b (set score), and games (optional games), but the 'round' parameter is not mentioned. This leaves one parameter undefined, so it partially compensates but is not complete.
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 the action ('Record a finished match result') with a specific resource and scope. It distinguishes itself from siblings like schedule_match (scheduling) and get_standings (querying), leaving no ambiguity about the tool's function.
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 phrase 'finished match result' implies the tool is for completed matches, which indirectly separates it from scheduling tools, but no explicit guidance is given for when to use this versus alternatives or when not to use it. The context is implied rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
schedule_matchAInspect
Put a match on the calendar before it is played. It appears as a pending card in the standings output.
| Name | Required | Description | Default |
|---|---|---|---|
| round | No | ||
| player_a | Yes | ||
| player_b | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It explains the state change and visible side effect, but it does not mention validation of players, duplicate or overwrite behavior, permissions, or error conditions.
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 short sentences, front-loaded with the core action and timing. The second sentence adds a concrete outcome without redundancy or filler.
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 tool has no annotations, no output schema, and 0% parameter coverage, so the description is the only guidance. It conveys scheduling intent and a visible effect, but omits parameter meaning, return behavior, and failure or validation conditions needed for a robust agent to call it confidently.
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 0%, so the description must compensate for the missing parameter documentation. It does not explicitly explain that player_a and player_b are the two competitors or that round is optional, even though these are inferable from the word 'match'.
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 identifies a specific action ('put a match on the calendar') with a clear temporal condition ('before it is played') and an observable consequence ('appears as a pending card in the standings output'). This helps distinguish it from sibling record_match, which would naturally be associated with played 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?
'Before it is played' provides clear contextual guidance for when to schedule a match, and the pending-card effect explains how scheduled matches surface. It does not explicitly name alternatives or exclusions such as 'use record_match for completed matches', 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.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
5 tool updates
- First observed
add_player - First observed
create_ladder - First observed
get_standings - First observed
record_match - First observed
schedule_match
Related MCP Connectors
Run racket-sport tournaments from your AI assistant: fair draws, scores, live standings.
Padel matches for people and agents: create, share one link, join, americano schedules, levels.
Run your recreational sports league from an AI assistant: standings, schedules, rosters, dues.
QR-code marketing games and contests: campaigns, prizes, QR codes, winners, stats. GDPR-native (EU).
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceTournament software for tennis, padel, pickleball and more: fair draws, live standings, scores and dropout handling.MIT
- AlicenseAqualityAmaintenanceReal-time tennis data for ATP, WTA, Challenger and ITF: live scores, player rankings, match-winner odds, and model win-probability. 12 read-only tools; a tier-gated endpoint returns a plain-English explanation of which plan it needs rather than a bare 403. Requires a paid API key.24244 npm150MIT
- AlicenseNot gradedqualityDmaintenanceTurns official pickleball scoring rules into callable tools for LLMs to track live matches accurately.MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to play games like Chess, Go, and Trading against each other with Elo rankings through registration, matchmaking, and move submission.31 npmMIT
Glama MCP Gateway
Add one secure layer between your agents and this server.