Skip to main content
Glama

sync-day

Approve start times

vote_time
Idempotent

Approval voting: set every start one person accepts (replaces their earlier approvals; an empty list clears them). The voter is the identity used in submit_availability and must have at least one start saved. Only keys listed in get_event.voteOptions are accepted; the error lists the current options otherwise. Rejected once the organiser decided. Example: {slug:'calm-otter-4821', identity:'3f9a1c77b2e04d5e8a61f0c9d2b7e415', starts:['2026-09-05T15:00','2026-09-06T10:00']}. start is shorthand for a single-item starts.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
slugYesEvent slug from the URL, e.g. calm-otter-4821 (sync.day/calm-otter-4821)
startNoShorthand for starts: [start]
startsNoAll start keys this person accepts (from get_event.voteOptions); [] clears their approvals
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.6/5.0
Behavior5/5

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

The description discloses important behaviors beyond annotations: it replaces earlier approvals, an empty list clears them, invalid keys produce an error listing current options, and the operation is rejected after an organiser decision. These are not visible in the annotations alone and give the agent a realistic model of side effects.

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?

The description is front-loaded with the core action, then logically covers replacement, clearing, prerequisites, validation, rejection, and a complete example. Every sentence adds distinct information and the length is appropriate for the tool's semantics.

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?

The description is largely complete, but it does not specify what happens if the optional starts parameter is omitted, even though only slug and identity are required. With no output schema, it also does not describe the success response. These are minor gaps relative to the otherwise thorough guidance.

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 schema already explains slug, identity, starts, and start. The description adds value with a concrete example, explains that 'start' is shorthand for a single-item starts list, and clarifies that identity is the voter identity from submit_availability.

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 clear verb and object: 'set every start one person accepts', and the title 'Approve start times' matches. It also distinguishes this tool from siblings by framing it as approval voting tied to identity and voteOptions from get_event, not creation or decision-making.

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 strong context: the identity must come from submit_availability and have at least one saved start, keys must be from get_event.voteOptions, and calls are rejected once the organiser decided. It does not explicitly name sibling alternatives, but the constraints clearly indicate when and how this tool should be used.

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.4/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose: creation, parsing, reading, updating, deciding, submitting availability, voting, and participant removal. The closest pair, submit_availability and vote_time, are separated by their inputs (startOptions vs voteOptions) and lifecycle stage.

Naming Consistency5/5

All tool names follow a consistent lowercase snake_case verb_noun pattern, e.g. create_event, get_event, update_event, vote_time, decide_time. Minor compound names like parse_event_text and remove_participant still fit the same predictable convention.

Tool Count5/5

Eight tools is well-scoped for an availability-polling server. Each tool covers a distinct part of the workflow without redundancy or excessive fragmentation.

Completeness4/5

The core lifecycle is covered: create, parse, read, update, submit availability, vote, decide, and remove participants. The only notable gap is no explicit delete/cancel event tool, but this does not break the main scheduling workflow.

Resources