Skip to main content
Glama

ReciPal MCP by usefulapi

Update ingredient

recipal_update_ingredient
DestructiveIdempotent

WRITE: change fields of one of YOUR ingredients (public ingredients cannot be edited); fields you leave out stay unchanged. If nutrition_unit, nutrition_quantity or their measure change, nutrients you do not pass are rescaled to keep the same amount per serving. measures REPLACES the whole list of custom units, so send them all. Setting archived true hides the ingredient from lists; false restores it. The change flows into every recipe using the ingredient. PUT /ingredients/{id}.

Input Schema

NameRequiredDescriptionDefault
nameNoIngredient name.
brandNoBrand name.
sourceNoData source.
archivedNotrue to archive, false to restore.
measuresNoThe FULL list of custom units (replaces the existing list).
allergensNoAllergens by name, e.g. {"Milk": true, "Almond": true, "other-shellfish": "Oyster"}. Standard names: Wheat, Peanuts, Soy, Sesame, Mustard, Sulfites, Milk (Goat milk, Sheep milk), Egg (Duck egg, Quail egg), Fish (Tuna, Cod, Salmon, Bass), Shellfish (Crab, Lobster, Shrimp), tree nuts (Almond, Cashew, Hazelnut, Macadamia nut, Pecan, Pine nut, Pistachio, Walnut ...), Gluten (Barley, Oats, Rye, Triticale). other-milk/-egg/-fish/-shellfish/-treenut take a free-text source. An empty object {} clears all allergens.
nutrientsNoNutrition facts to change; others are kept. Amounts per serving (nutrition_quantity x nutrition_unit): calories; grams for protein, fat, fat_saturated, fat_trans, carbohydrate, fiber, uncounted_fiber, sugar, added_sugar, sugar_alcohol, fat_monounsaturated, fat_polyunsaturated, omega_3, omega_6, water, ash; milligrams for cholesterol, sodium, calcium, iron, potassium, vitamin_c, vitamin_e, thiamin, riboflavin, niacin, vitamin_b6, pantothenic_acid, phosphorus, magnesium, zinc, copper, manganese, chloride, choline; micrograms for vitamin_k, folate, vitamin_b12, biotin, iodine, selenium, chromium, molybdenum; IU for vitamin_d_IU and vitamin_a_IU.
ingredient_idYesReciPal ingredient id (one you created).
nutrition_unitNoUnit the nutrients are entered in.
ingredient_listNoIngredient list text for labels.
nutrition_quantityNoQuantity of nutrition_unit the nutrients are for.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already flag destructiveHint=true and idempotentHint=true, but the description adds behavior the annotations cannot express: omitted fields are preserved, nutrients are rescaled when nutrition_unit/quantity change, "measures" is a full replace rather than a merge, and edits propagate into every recipe using the ingredient. The propagation warning is exactly the kind of downstream-destruction disclosure a mutation tool needs.

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?

Six short clauses, each carrying a distinct non-obvious rule, with the write semantics and ownership constraint front-loaded. No restatement of the title and no filler.

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 an 11-parameter destructive mutation with nested allergens/nutrients and no output schema, the description covers partial-update semantics, replacement vs merge, cascade effects, and archive toggling. Remaining gaps are failure/validation behavior and whether a change can be rolled back after it propagates to recipes — minor, but not nothing for a destructiveHint tool.

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 coverage is 100%, so a baseline of 3 applies, but the description earns extra credit by explaining the interaction effects the schema cannot: which fields trigger automatic nutrient rescaling, and that measures is replacement-not-merge. It does not touch allergens semantics ("{}" clears all) or nutrient units, but those are already documented in the schema.

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?

Opens with an explicit verb class ("WRITE: change fields") applied to a specific resource ("one of YOUR ingredients"), and immediately scopes it away from public ingredients that cannot be edited. That scope constraint alone lets an agent distinguish it from recipal_create_ingredient or recipal_get_ingredient without inspecting 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?

Gives a clear condition for use (editing your own ingredient) and a hard exclusion (public ingredients cannot be edited). It does not name a sibling or alternative path — e.g. that reading should go through recipal_get_ingredient or that bulk nutrient edits elsewhere have different tools — so it stops short of explicit routing.

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.