Skip to main content
Glama
mealie-agent-mcp

mealie-agent-mcp

by loidolt

Update Recipe

update_recipe
Idempotent

Modify fields of an existing recipe while omitted fields stay unchanged; list fields such as ingredients and instructions replace the full list.

Instructions

Change fields of an existing recipe. Omitted fields stay unchanged; list fields (ingredients, instructions, tags, categories, notes) replace the whole list.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "recipe": "<recipe>"
    },
    "name": "update_recipe"
  }
}

Input Schema

NameRequiredDescriptionDefault
nameNoNew name (also changes the slug).
tagsNoREPLACES tags. Names; created if missing.
notesNoREPLACES notes.
recipeYesSlug or id of the recipe to change.
servingsNo
cook_timeNo
prep_timeNo
categoriesNoREPLACES categories. Names; created if missing.
source_urlNo
total_timeNo
yield_textNo
descriptionNo
ingredientsNoREPLACES all ingredients. Send the full list (read it with get_recipe first). Items: {'text': '2 cups flour'} or {'quantity','unit','food','note','title'}.
instructionsNoREPLACES all steps. Strings or {'title','text'} objects.
parse_ingredientsNoParse free-text ingredient lines into quantity/unit/food (creating missing foods and units in Mealie). If false, text is stored as-is.

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.1

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare non-readOnly, non-destructive, idempotent, so the safety profile is covered. The description adds the genuinely useful behavioral rule that omitted fields are left untouched while list fields are wholesale replaced — this is the key semantic an agent could otherwise get wrong by assuming merge behavior.

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 tight sentences: the core operation first, then the update semantics. No filler, no restatement of the name or title, and the most error-prone rule is stated up front.

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?

With 15 parameters and a partial schema coverage, the description supplies the one cross-cutting rule that matters most (replace vs. leave alone), and an output schema exists so return values need not be explained. Minor gaps remain (name changes regenerate the slug, parse_ingredients behavior), but those are documented in the schema itself.

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 53%, so the description must compensate. It names the affected list parameters (ingredients, instructions, tags, categories, notes) and clarifies the null/omitted-means-no-change convention, which the schema's default of null does not spell out. It doesn't cover the scalar time/source fields, leaving part of the gap to the schema.

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 ('Change fields of an existing recipe'), making clear this is a partial update of an existing entity. It doesn't explicitly contrast with create_recipe or get_recipe, but the 'existing' qualifier does most of the differentiating work.

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?

Usage is implied by 'existing recipe' and the replacement semantics, but there is no explicit when-to-use / when-not guidance and no named alternative (e.g. use create_recipe for new recipes, get_recipe to read current values). The advice to read with get_recipe first lives in the schema, not the description.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.