Skip to main content
Glama

Update recipe

update_recipe
DestructiveIdempotent

Use this when the user asks to change one of their saved recipes (fix an ingredient, rewrite steps, rate it, mark it cooked). Only the fields you pass are changed; passing ingredients, steps or tags replaces that whole list.

Input Schema

NameRequiredDescriptionDefault
tagsNoThe complete new tag list; it replaces the current one.
notesNoNew notes; an empty string clears them.
stepsNoThe complete new list of steps in order; it replaces the current steps (and merges multiple sections into one).
titleNoNew title.
cookedNoWhether the user has cooked this recipe.
ratingNoThe user's rating from 1 to 5; 0 clears it.
recipeIdYesId of the recipe to change.
servingsNoNew number of servings. This does not rescale the ingredients.
ingredientsNoThe complete new ingredient list; it replaces the current one.
prepMinutesNoNew total time in minutes.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true and idempotentHint=true, so the mutation and repeat-safety profile is known. The description adds genuinely new semantics: patch-style partial updates ('Only the fields you pass are changed') plus the important exception that ingredients, steps and tags are wholesale replacements. It does not cover ownership/permission requirements or what the response contains.

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?

Two sentences, front-loaded with the trigger condition, then the update-semantics rule. No filler, no restatement of the tool name or title.

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 10-parameter mutation tool with no output schema, the description covers the two things an agent most needs: when to call it and how field merging works. It leaves unstated whether the updated recipe is returned in the response or must be re-fetched with get_recipe/show_recipe, and says nothing about ownership or failure modes for an invalid recipeId.

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 100%, including per-field notes like 'it replaces the current one' and the interesting 'servings does not rescale the ingredients' caveat, so the schema already does most of the work. The description's contribution is the aggregated partial-vs-replacement rule stated once for all list params, which is helpful framing but largely restates individual field descriptions.

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 uses a specific verb and resource ('change one of their saved recipes') and enumerates concrete change types (fix an ingredient, rewrite steps, rate it, mark cooked) that map onto the schema fields. It implicitly separates itself from add/save/delete siblings, but never names a sibling explicitly (e.g. save_recipe vs. update_recipe), so the differentiation is inferential rather than stated.

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?

'Use this when the user asks to change...' gives a clear triggering condition and the parenthetical examples make the scope concrete. There are no explicit exclusions or named alternatives, which matters here because a sibling named save_recipe could plausibly also touch existing recipes.

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