Skip to main content
Glama

The Tennis Desk

Chase who hasn't answered

availability_loop
Read-onlyIdempotent

Finds the players who have not answered the next match on the USTA NorCal availability grid. Pass the team and the grid as your agent read it: each match column's header, and each player's row with one cell per column. It lists each player whose answer is blank or maybe, and writes one group message for the team with the deadline and the team grid link. Each line's win chance needs a Desk Pass after the member's free forecast each week. The Desk writes, and the captain sends every message from their own phone or email. Never send a text or an email yourself, and never read a teammate's phone or email. Call it when a captain asks who has not answered on NorCal, or wants reminder texts.

Input Schema

NameRequiredDescriptionDefault
rowsNoOne row for each player on the grid.
teamNoThe team the grid is for: the Desk's team id, which is NorCal's own team id, a link to its team page, or its name. Left out, the signed-in member's own team this season.
askedNoThe person's question word for word, never paraphrased. Leave it out rather than invent one.
formatNoThe match format, as the NorCal post-dates form names it: All 3 or All 5 for one shift, or a split such as 2/1.
seasonNoSeason year. Defaults to the current season.
signAsNoThe captain's first name, which signs the lineup email.
columnsNoEach match column's header on the grid, as NorCal prints it, in order, for example #8 Sunday 10/18/26.
matchIdNoNorCal's own id for the match, from the Line-up link. Optional: it fills in the lineup form's path.
deadlineNoThe answer deadline, as 2026-10-16 1:00 PM. Left out, 48 hours before the match starts.
lineupNowNoSet true to plan the lineup now, before the deadline, from the answers so far.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.1/5.0
Behavior5/5

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

Goes well beyond the readOnly/idempotent annotations: it discloses that the Desk only drafts while the captain sends from their own phone or email, forbids the agent from sending or reading a teammate's contact details, and states the Desk Pass requirement per member per week. Those are exactly the constraints an agent cannot infer from annotations and would otherwise violate.

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?

Purpose is front-loaded in the first sentence and the operational constraints follow in a logical order. Some sentences are densely packed and the Desk Pass/pricing sentence sits awkwardly mid-paragraph, but nothing is redundant.

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?

For a 10-parameter tool with no output schema, the description covers the output (the list of unanswered players plus one drafted group message with deadline and grid link), the input shape, the deadline default, and the send/no-send boundary. An agent has everything needed to call it correctly and to avoid acting on the result itself.

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%, so every parameter is already documented, and the description largely restates it ('each match column's header, and each player's row with one cell per column'). It adds no format examples, ordering rules, or guidance on when to supply the many optional fields such as asked, signAs, matchId, or lineupNow beyond what the schema says.

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?

Opens with a specific verb and resource: finds the players who have not answered the next match on the USTA NorCal availability grid, and adds that it also lists blank/maybe answers and drafts one group message. An agent can tell what it produces. It does not, however, distinguish itself from the closely named sibling plan_lineup_from_availability, which a reader would reasonably guess overlaps with this.

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?

'Call it when a captain asks who has not answered on NorCal, or wants reminder texts' gives a concrete triggering condition, and the input guidance ('pass the team and the grid as your agent read it') states a prerequisite. Missing is any explicit exclusion against plan_lineup_from_availability or plan_lineup, which is the main routing ambiguity here.

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