Skip to main content
Glama

Save your preferences

save_preferences
Idempotent

Replace the keyed-feed interest tags. Send allowed tags only (project types, platforms, budget, preferences) — do not send project names or other free text (they are dropped and never stored). Plus the feed mode ('by_interests' = only matching tools; 'all_new' = every new tool). Only used by whats_new.

Input Schema

NameRequiredDescriptionDefault
keyNo
modeNo
interestsNoAllowed tags only (project types, platforms, budget, preferences). Do not send a project name.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed5 schema fields changed
    • addedInput schema / properties / interests
      Added value: +{
      +  "description": "Allowed tags only (project types, platforms, budget, preferences). Do not send a project name.",
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • removedInput schema / properties / key / description
      Removed value: -"the user's anonymous feed key from subscribe"
    • removedInput schema / properties / mode / description
      Removed value: -"'by_interests' (only matching new tools) or 'all_new' (every new tool)"
    • removedInput schema / properties / projects
      Removed value: -{
      -  "description": "list of projects to watch (replaces the whole list each time)",
      -  "items": {
      -    "properties": {
      -      "interests": {
      -        "description": "short interest tags",
      -        "items": {
      -          "type": "string"
      -        },
      -        "type": "array"
      -      },
      -      "name": {
      -        "description": "project name",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "name",
      -      "interests"
      -    ],
      -    "type": "object"
      -  },
      -  "type": "array"
      -}
    • removedInput schema / required
      Removed value: -[
      -  "projects"
      -]
  2. Changed5 schema fields changed
    • addedInput schema / properties / key / description
      Added value: +"the user's anonymous feed key from subscribe"
    • addedInput schema / properties / mode / description
      Added value: +"'by_interests' (only matching new tools) or 'all_new' (every new tool)"
    • addedInput schema / properties / projects / description
      Added value: +"list of projects to watch (replaces the whole list each time)"
    • addedInput schema / properties / projects / items / properties / interests / description
      Added value: +"short interest tags"
    • addedInput schema / properties / projects / items / properties / name / description
      Added value: +"project name"
  3. Changed1 schema field changed
    • addedInput schema / properties / mode
      Added value: +{
      +  "enum": [
      +    "by_interests",
      +    "all_new"
      +  ],
      +  "type": "string"
      +}
  4. Added

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already cover the safety profile (idempotent, non-destructive, not read-only), so the bar is lower. The description does add real value by explaining that unrecognized free text is 'dropped and never stored' and that tag replacement is wholesale, but it says nothing about what a write to an unknown key does or what the response looks like.

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?

Three short sentences, each carrying a distinct constraint: allowed tag types, the drop behavior for free text, and the mode semantics. Front-loaded with the core action; no filler.

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?

For a three-parameter write tool with an existing safety annotation set, the description covers the risky parameter (interests) and the enum well. It falls short on the undefined 'key' parameter and on distinguishing this tool's role from the sibling set_preferences.

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 coverage is only 33%, and the description compensates well for the two documented parameters, explaining both enum meanings of mode and adding a 'do not send project names' restriction on interests. However, the 'key' parameter is left undefined in both schema and description, which is a meaningful gap.

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 description states a specific verb and resource: 'Replace the keyed-feed interest tags' plus the feed mode. It also names the consuming tool ('Only used by whats_new'), which helps separate it from set_preferences, though the actual distinction between the two is never spelled out.

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?

The 'Only used by whats_new' line implies context, but there is no explicit instruction on when an agent should call this rather than the sibling set_preferences, nor any note on prerequisites such as an existing key. Usage is implied rather than stated.

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.