Skip to main content
Glama

Schedule: suggest a move or cancellation

change_session
Idempotent

Suggest moving, cancelling or changing the place of one session of a group the person leads — or putting a cancelled one back on — with the message the group gets (in the person's voice, ≤ 500 characters; it goes into the group chat as theirs). ALWAYS a card in their Stream: the tap makes the change, tells the players, the parents who asked to be told and the carpool — and posts the message, through every check the app has. Pick the session by key (read_schedule) or by sessionDate (+ sessionTitle). Only when they ask.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
keyNoThe session's key from read_schedule.
dateNomove: the new date, YYYY-MM-DD (leave out to keep the day).
modeYesmove (a new date and/or time), cancel, place (a new place) or restore (a cancelled one is on again).
groupNoA group the person leads — its name, e.g. "P13" or "8B" (add the förening's name if several share it, e.g. "Löparklubben P13"), or its groupId from list_personas. May be left out when they lead exactly one.
placeNoplace: the new place.
startNomove: the new start, HH:MM, e.g. 18:00 (leave out to keep the time).
messageNoThe message to the group, e.g. "Hej! Träningen på torsdag flyttas till 18:00 — samma plan. /Anna". Leave out to only notify.
sessionDateNoOr the session's current date, YYYY-MM-DD.
sessionTitleNoWith sessionDate, when there are several that day: part of its title.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
urlYes
whyYes
noteYes
groupYes
changeYes
itemIdYes
statusYes
sessionYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.5/5.0
Behavior5/5

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

Beyond the annotations (readOnlyHint=false, idempotentHint=true, destructiveHint=false), the description discloses the actual write mechanism and blast radius: it always produces a card in the person's Stream, the tap is what commits the change, and the notify set includes players, parents who asked to be told, and the carpool, plus the group-chat message. That explains why the operation is non-destructive/idempotent (a cancelled session can be restored) and is genuinely beyond what the structured fields convey.

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?

Front-loaded with purpose, then mechanism, then session-selection, then the usage gate — a sensible order. It is a single dense paragraph with several em-dash asides and the vague phrase 'through every check the app has', so it is readable but not maximally tight.

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?

An output schema exists, so return values need no explanation, and annotations carry the safety profile. The description covers all four modes, target identification, notification side effects and the usage gate, but says nothing about failure/preconditions (what if the person does not lead the group) or how long the Stream card remains actionable.

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?

With 100% schema coverage the baseline is 3, and the description does add real meaning: the message is sent in the person's own voice and appears in the group chat as theirs, and 'Leave out to only notify' clarifies message optionality. However, it states the message is '≤ 500 characters' while the schema allows maxLength 1000, a conflicting limit that could cause an agent to reject valid input.

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?

States a specific verb+resource immediately: suggest moving/cancelling/changing the place of one session of a group the person leads, or restoring a cancelled one. It is unmistakably distinct from neighbors like add_session (create), message_group (plain messaging) and read_schedule (read), and the title's word 'suggest' is immediately clarified by 'the tap makes the change'.

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?

Gives an explicit gate ('Only when they ask') and tells the agent how to identify the target session: by `key` from read_schedule, or by `sessionDate` (+ `sessionTitle`). It does not explicitly name the sibling to use instead when the intent is a brand-new session or a pure broadcast, so it stops short of full when/when-not routing.

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.