Skip to main content
Glama

Save size/fit

set_user_prefs
Idempotent

Saves a shopper's default size or fit to their allover.art account so future chats can skip asking for it; use only when they state or ask to remember a preference.

Instructions

Save the shopper's default size and/or fit on their allover.art account, so later chats can skip asking. Call it only when the human states a size or fit or asks you to remember one; read it back with get_user_prefs. Pass only what they stated: an omitted field keeps its saved value, an empty string clears it. size is XS, S, M, L, XL or 2XL–5XL (case-insensitive); fit is basic or oversized. The saved size fills in add_to_cart when size is omitted, and the fit maps to search_products style (basic → tee, oversized → oversized). Any other value returns an error and saves nothing.

Input Schema

NameRequiredDescriptionDefault
fitNoFit preference: basic or oversized; empty string clears it.
sizeNoDefault size: XS, S, M, L, XL, 2XL…5XL; empty string clears it.

Output Schema

NameRequiredDescriptionDefault
fitNo
sizeNo
errorNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changedv1.2.0
    • changedInput schema / properties / fit / description
      Previous value: -"Fit preference: basic or oversized."New value: +"Fit preference: basic or oversized; empty string clears it."
    • changedInput schema / properties / size / description
      Previous value: -"Default size: XS, S, M, L, XL, 2XL…5XL."New value: +"Default size: XS, S, M, L, XL, 2XL…5XL; empty string clears it."
  2. First observed

TDQS

A4.7/5.0
Behavior4/5

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

Annotations already cover the mutation profile (readOnlyHint=false, idempotentHint=true, destructiveHint=false), yet the description still adds real value: omitted fields retain their saved value, empty strings clear them, and invalid input is atomic ('returns an error and saves nothing'). It also discloses cross-tool propagation (size feeds add_to_cart, fit maps to search_products style). It does not mention account/auth preconditions, which is the only notable gap.

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?

Leads with what gets saved and why, then the call condition, then field semantics, then side effects and error behavior — a natural decision order. Roughly 100 words with no filler; each sentence carries distinct information.

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?

An output schema exists, so return values need not be explained. The description covers selection criteria, partial-update semantics, valid values, error behavior, and effects on downstream tools — everything an agent needs to call this correctly.

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; the description earns above that by adding case-insensitive matching, the omitted-vs-empty-string distinction for partial updates, and the downstream meaning of each field. The accepted value sets largely restate the schema, which keeps it from a 5.

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 (save) and resource (the shopper's default size/fit on their account), plus the practical goal (later chats skip asking). It is instantly separable from the sibling get_user_prefs, which it names as the read counterpart.

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

Usage Guidelines5/5

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

Gives an explicit invocation condition — 'only when the human states a size or fit or asks you to remember one' — which also implies when not to call it. It names the alternative (get_user_prefs) for reading and warns that any unlisted value errors out and saves nothing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.