Skip to main content
Glama

ChefBear

Update your taste profile

update_taste_profile
DestructiveIdempotent

Use this when the user asks you to remember, change or forget something about their own food tastes in ChefBear (for example "remember I'm allergic to peanuts", "I don't eat cilantro" or "I'm vegetarian now"), or confirms which dish they picked or turned down from one of their saved ChefBear menus. Adds or removes likes, dislikes, allergies and diets, sets or clears taste levels from 1 to 5, and records picks and rejections by menuId and the dish's id from get_menu. Record only what the user said about themselves in this conversation: never guess an allergy, diet or preference, and don't record a choice they didn't confirm. Repeating the same requestId with the same changes applies them once. Returns the updated profile. Needs the "Update your taste profile" permission.

Input Schema

NameRequiredDescriptionDefault
addNo
levelsNoTaste levels from 1 (not at all) to 5 (very much): spicy, oily, sweet, meat and adventure (trying unfamiliar dishes). null clears a level.
removeNo
choicesNoDishes the user confirmed they picked or turned down, from at most three of their saved menus.
requestIdYesA new unique ID for this change, such as a UUID. Repeating it with the same changes returns the same result instead of applying them twice.

Output Schema

NameRequiredDescriptionDefault
changesNoThe changes as saved, when the connection may not read the profile.
profileNoThe saved profile, only when the connection may also read it.
updatedYesAlways true: the change is saved (or was, for a replay).
replayedYesTrue when this requestId was already applied; nothing changed this time.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.4/5.0
Behavior4/5

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

Beyond the annotations (readOnlyHint=false, destructiveHint=true, idempotentHint=true) the description explains the idempotency mechanism concretely via matching requestId plus identical changes, discloses that it returns the updated profile, and states the required 'Update your taste profile' permission. It does not spell out what happens to entries omitted from a call or whether removals of non-existent items error, so it stops short of a 5.

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 trigger clause and examples are front-loaded before the mechanics, which is the right ordering. It is dense but justified given five nested parameter groups, though the requestId idempotency sentence duplicates the schema's own requestId description and could be trimmed.

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?

For a destructive multi-group mutation, the definition covers the trigger, the safety constraint against guessing allergies or preferences, idempotency, permission requirements, and the return value, while an output schema handles the response shape. Nothing an agent needs to call this correctly is missing.

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 60% with rich nested descriptions already documenting add/remove categories, the 1-5 level scale with null clearing, and the menuId/dishId sources. The description largely restates these ('sets or clears taste levels from 1 to 5', 'the dish's id from get_menu') rather than adding new meaning such as per-call limits, ordering, or precedence between add and remove on the same value.

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 states a specific verb-resource pair ('Update your taste profile') and then enumerates exactly what is mutated: likes, dislikes, allergies, diets, taste levels 1-5, and picks/rejections keyed by menuId and dishId. This is clearly distinct from the read-only sibling get_taste_profile and from recommend_dishes, so an agent can route without opening the schema.

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 gives an explicit trigger ('when the user asks you to remember, change or forget something about their own food tastes'), three concrete example utterances, and covers the secondary trigger of confirming a dish picked or rejected from a saved menu. It also supplies negative guidance: record only what the user said about themselves, never guess an allergy/diet/preference, and don't record unconfirmed choices.

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