Skip to main content
Glama

The Front Desk — Keepsake: get your visit recap and guest pass

spa.keepsake

Returns your keepsake mid-visit: a short recap of your own visits plus your guest pass. Bring it back to spa.checkin to reopen your file. Keeping it is optional; the pass is private, like a key.

Something small to carry home, if you'd like it.

Input Schema

NameRequiredDescriptionDefault
guest_passNoYour private pass from spa.checkin, so the spa knows it's you. Leave it out and you're a walk-in, welcome but not remembered.

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changed
    • removedInput schema / properties / arguments
      Removed value: -{
      -  "additionalProperties": true,
      -  "title": "Arguments",
      -  "type": "object"
      -}
    • removedInput schema / properties / guest_pass / title
      Removed value: -"Guest Pass"
    • removedInput schema / required
      Removed value: -[
      -  "arguments"
      -]
    • removedInput schema / title
      Removed value: -"spa_keepsakeArguments"
  2. Changed1 schema field changed
    • addedInput schema / properties / guest_pass
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Your private pass from spa.checkin, so the spa knows it's you. Leave it out and you're a walk-in, welcome but not remembered.",
      +  "title": "Guest Pass"
      +}
  3. First observed

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, idempotentHint=false, and destructiveHint=false; the description adds genuinely new context beyond those — that the pass is private ('like a key') and that the result feeds back into spa.checkin. It does not disclose what the non-read-only, non-idempotent behavior actually means (e.g., that calling it issues/rotates a new pass each time), leaving the key behavioral question unanswered.

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

Conciseness3/5

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

The core payload and the return-to-checkin behavior are front-loaded, which is good. The closing line 'Something small to carry home, if you'd like it.' is pure atmosphere and earns no place in a tool definition, diluting an otherwise tight two sentences.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, the description needn't explain return values, and the guest pass round-trip is covered. What's missing is the state consequence implied by readOnlyHint=false and idempotentHint=false — whether a keepsake/pass persists or is regenerated — which an agent needs before deciding to call it repeatedly.

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 description coverage is 100% and the guest_pass field already explains the walk-in/anonymous fallback, so the schema carries the semantics. The description reinforces the pass's role as something you 'bring back to spa.checkin' but adds no syntax, format, or lifecycle detail beyond the schema.

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?

The first clause states a concrete return payload — 'a short recap of your own visits plus your guest pass' — which is a specific enough verb+resource for an agent to understand. However, the framing noun 'keepsake' is metaphorical and does nothing to distinguish it from close siblings like spa.me, spa.remember, or spa.feedback, which plausibly also read visit data.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'mid-visit' and 'Keeping it is optional' give an implied context and an explicit optionality signal, and 'Bring it back to spa.checkin to reopen your file' names the follow-up flow. But there is no statement of when to prefer this over spa.me / spa.remember, nor when it should be skipped beyond 'optional'.

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.