Skip to main content
Glama

Submit availability

submit_availability
Idempotent

Save (or replace) one person's availability: the candidate start keys they can make, from get_event.startOptions. The person is identified by identity, not by name: the same identity later overwrites the same row (and can rename it), a different identity with the same name is a second participant. Keys outside the event's start options are rejected. Returns the updated ranking.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
nameYesDisplay name, 1-20 chars, may repeat. e.g. 小明
slugYesEvent slug from the URL, e.g. calm-otter-4821 (sync.day/calm-otter-4821)
startsYesStart keys like 2026-09-05T14:00. Empty array clears this person's picks.
identityYesRandom secret for this person that you generate and keep per person, 16-256 chars (e.g. 32 hex chars; NOT a plain user id or name, since anyone who guesses it can act as them). Same identity = same participant; the server stores only a hash. Example: 3f9a1c77b2e04d5e8a61f0c9d2b7e415

Schema Changelog

Changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. First observed

TDQS

A4.7/5.0
Behavior5/5

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

The description adds key behavioral context beyond the annotations: same identity overwrites and can rename the row, same name with different identity is a second participant, invalid start keys are rejected, and the updated ranking is returned. These details make the idempotentHint meaningful and prevent misuse.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences front-load the core action and then layer only high-value caveats. No sentence is wasted; every clause (overwrite, name collision, rejection, return value) contributes to correct invocation.

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 4-required-parameter write action with idempotent semantics, the description plus fully covered schema and annotations is complete. It states the source of valid keys, the overwrite behavior, validation, and return value, so an agent has enough context to call it correctly without an output schema.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3, but the description adds meaning beyond the schema by tying starts to get_event.startOptions and detailing identity-based overwrite/rename semantics. It does not fully describe every parameter, but the schema already covers the rest.

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?

The description opens with a specific verb-resource pair, 'Save (or replace) one person's availability', and immediately defines the scope by identity and start options. It distinguishes the tool from siblings like update_event or decide_time by its focus on a single person's availability rather than event-wide settings or scheduling decisions.

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?

It gives clear context: the availability must use start keys from get_event.startOptions and invalid keys are rejected, so an agent knows when input is valid. It does not explicitly name alternatives or state when not to use the tool, so it falls just short of full routing guidance.

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.

TDQS

A4.5/5.0
Disambiguation4/5

Each tool targets a distinct operation, and the descriptions clearly separate organizer actions from participant actions. The only mild ambiguity is between decide_time and vote_time, but the descriptions resolve it well.

Naming Consistency5/5

All tool names consistently follow a snake_case verb_noun pattern: create_event, get_event, update_event, decide_time, vote_time, remove_participant, submit_availability, parse_event_text. There is no mixed casing or inconsistent verb style, making the set predictable.

Tool Count5/5

Eight tools is well-scoped for a scheduling and availability poll server. Each tool covers a meaningful action without redundancy, and the count feels neither thin nor bloated.

Completeness4/5

The core workflow is covered: create, read, update, availability submission, voting, deciding, participant removal, and natural-language parsing. The main gap is the lack of a delete_event or cancel operation, which is a workaround-level omission rather than a blocking one.

Resources