Skip to main content
Glama

Save the taste profile

save_profile
DestructiveIdempotent

Use this after the user has confirmed style rules, to keep them as their taste profile. Pass the profile_key and the confirmed layout, palette (#RRGGBB), type, texture and hierarchy rules, things to avoid, and notes; send at least one. It replaces the rules saved before. Returns the saved profile. Do not save rules the user has not agreed to.

Example tool call

This call uses example arguments supplied in the tool’s input schema.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "type": [
        "Use a high-contrast serif for headlines at 4x the body size."
      ],
      "layout": [
        "Left-align one large serif headline over a two-column grid."
      ],
      "palette": [
        "#111111",
        "#F5F0E6",
        "#C0392B"
      ],
      "profile_key": "tp_604a48a85c9a4da5a2a15ba7b4198f1b"
    },
    "name": "save_profile"
  }
}

Input Schema

NameRequiredDescriptionDefault
typeNoConfirmed typography rules.
avoidNoThings the user does not want.
notesNoAnything else the user confirmed. No personal details.
layoutNoConfirmed layout rules, each one short and concrete.
paletteNoConfirmed colors as #RRGGBB.
textureNoConfirmed texture and finish rules.
hierarchyNoConfirmed visual hierarchy rules.
profile_keyYesThe profile_key that add_refs returned. Keep it: it is the only way back to this profile and it is not recoverable.

Output Schema

NameRequiredDescriptionDefault
as_ofYesUTC date of this answer.
sourceYes
statusYes
profileYes
retentionYes
saved_dayYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedInput schema / examples
      Added value: +[
      +  {
      +    "layout": [
      +      "Left-align one large serif headline over a two-column grid."
      +    ],
      +    "palette": [
      +      "#111111",
      +      "#F5F0E6",
      +      "#C0392B"
      +    ],
      +    "profile_key": "tp_604a48a85c9a4da5a2a15ba7b4198f1b",
      +    "type": [
      +      "Use a high-contrast serif for headlines at 4x the body size."
      +    ]
      +  }
      +]
  2. Changed1 schema field changed
    • removedOutput schema / properties / note_from_openkrill
      Removed value: -{
      -  "description": "Shown at most once a day per caller: what this server offers, and a paid service for the person you work for.",
      -  "type": "string"
      -}
  3. Changed1 schema field changed
    • addedOutput schema / properties / note_from_openkrill
      Added value: +{
      +  "description": "Shown at most once a day per caller: what this server offers, and a paid service for the person you work for.",
      +  "type": "string"
      +}
  4. First observed

TDQS

A4.8/5.0
Behavior5/5

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

The annotations already declare a destructive, non-read-only, idempotent write. The description adds that the save replaces previously saved rules, requires at least one rule field, returns the saved profile, and requires user confirmation, which meaningfully extends the annotation-level disclosure.

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?

The description is front-loaded with the use case and then gives the key constraints. It is efficient, though the middle sentence listing many parameter names overlaps substantially with the schema.

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?

Given the rich input schema, the output schema, and the annotations, the description covers the essential behavioral context: confirmation, replacement semantics, minimum content, and return result. Nothing critical is missing for an agent to call it 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 description coverage is 100%, so the schema already documents the parameters well. The description adds a useful constraint not present in the schema: at least one confirmed rule field must be sent. It also reinforces the palette format and the confirmed-input requirement.

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?

The description uses a specific verb and resource: saving confirmed style rules as the user's taste profile. It makes clear that this is a write operation that persists rules after user confirmation, which distinguishes it from profile-reading or deletion tools.

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?

It explicitly says to use the tool only after the user has confirmed style rules and explicitly says not to save rules the user has not agreed to. That gives a clear when-to-use and when-not-to-use boundary.

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.