Skip to main content
Glama

Save a product or a digital plan to favourites

save_favorite
Idempotent

Adds a product (kind product, id = slug) or a digital plan (kind digital, id = plan id from compare_digital or compare_mobile) to the signed-in person's favourites. For a product its total for deliver_to_country today is kept as saved_total (for "the price changed since you saved it", as the website's heart does); a plan keeps no saved price. Saving twice changes nothing (the first saved price stays). Adding it to a named list (add_to_list) or deleting that list leaves the favourite as it is.

Input Schema

NameRequiredDescriptionDefault
idYes
kindYes
deliver_to_countryNoISO 3166-1 alpha-2 country code, e.g. "CZ". Optional: normally derived from the address.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedInput schema / properties / deliver_to_country
      Added value: +{
      +  "description": "ISO 3166-1 alpha-2 country code, e.g. \"CZ\". Optional: normally derived from the address.",
      +  "maxLength": 2,
      +  "minLength": 2,
      +  "type": "string"
      +}
  2. First observed

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already declare idempotent, non-destructive, non-read-only; the description goes well beyond them by explaining that a product's total for `deliver_to_country` is frozen as saved_total, that a plan stores no price, that a repeat save keeps the first saved price, and that add_to_list/delete_list do not affect the favourite. It also signals the auth context ("signed-in person").

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 the core action and the kind/id mapping, then the saved_total consequence, then idempotency and list interaction — a logical order. The parenthetical asides ("as the website's heart does", the quoted price-changed phrase) are colorful but slightly noisy; the content still earns its place.

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?

For a 3-parameter mutation with no output schema, the description covers input sourcing, side effects (saved_total persistence), idempotency, and cross-tool effects. It stops short of describing what the call returns or error cases (e.g. invalid/unknown plan id, missing country resolution), which would close the last gap.

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

Parameters5/5

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

Schema coverage is only 33% (`id` and `kind` are undocumented in schema), and the description fully compensates: `id` is a slug for products but a plan id from compare_digital/compare_mobile for digital plans, and `kind`'s enum values are given concrete meaning. It also ties `deliver_to_country` to observable behavior (which country's total is saved), adding value beyond the schema's own country-code note.

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 and resource ("Adds a product ... or a digital plan ... to the signed-in person's favourites") and immediately disambiguates the two entity kinds via the `kind` values. It also names where a digital `id` comes from (compare_digital or compare_mobile), so an agent can distinguish this from sibling read/compare tools without opening schemas.

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?

Routing is embedded rather than spelled out: use this to favourite, use add_to_list to put it on a named list, and the digital id comes from compare_digital/compare_mobile. It lacks an explicit "do not use this for price alerts — use watch_product_price instead" exclusion, which matters given sibling tools like watch_product_price and save_comparison exist.

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.

Resources