Skip to main content
Glama
Tandoor Recipes MCP

Tandoor Recipes MCP

by Cliftonz

Create shopping entry

create_shopping_entry

Creates a shopping list entry for a specified amount and food, with optional units, lists, and meal plan links so agents can add needed items to Tandoor shopping lists.

Instructions

Create a shopping list entry. Required: amount, food_id. Optional: unit_id, checked, list_recipe, ingredient, order, delay_until, mealplan_id (links to existing/new ShoppingListRecipe for that mealplan), shopping_list_ids. shopping_list_ids (ids from list_shopping_lists) puts the entry on exactly those lists; the food's lists are not added. When shopping_list_ids is omitted, Tandoor copies the food's lists onto the new entry if the user preference shopping_update_food_lists is on. With [], the tool clears any lists Tandoor copied, so the entry is on no list. add_recipe_to_shopping_list always copies each food's lists; food_shopping_update never does. Changing a food's lists later does not change existing entries. Every list id is checked against list_shopping_lists first; unknown or repeated ids are rejected and nothing is written. If the lists after the write differ from the request, the tool errors and names the missing and the extra lists.

Input Schema

NameRequiredDescriptionDefault
orderNo
amountYes
formatNo
checkedNo
food_idYes
unit_idNo
ingredientNo
delay_untilNo
list_recipeNo
mealplan_idNo
shopping_list_idsNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv3.4.0

TDQS

A4.4/5.0
Behavior5/5

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

Beyond the annotations (readOnly=false, idempotent=false, destructive=false), the description discloses hidden behavior: dependence on the user preference shopping_update_food_lists, the fact that list ids are validated before any write, that unknown or repeated ids reject the whole call, and that a post-write list mismatch produces a named-difference error. That is exactly the kind of side-effect and failure detail the annotations cannot carry.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The required/optional inventory is helpfully front-loaded, but the body is a dense wall of nested clauses that circles back to shopping_list_ids twice and spends sentences on Tandoor internals (later food-list edits not affecting existing entries) that are marginal for invocation. It is information-rich but not tight.

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 mutation tool with no output schema and no field-level schema docs, the description is largely sufficient: it covers required inputs, the list-resolution contract, and error behavior. The remaining gap is that several optional parameters and the format enum are left undefined, so an agent cannot construct every valid call from the description alone.

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?

With 0% schema description coverage across 11 parameters, the description compensates well for the hardest ones: shopping_list_ids gets a full semantic model (validate, copy, treat [] as clear) and mealplan_id explains the link to ShoppingListRecipe. However, `format` (the one enum parameter, slim/full) is never mentioned, and order, checked, delay_until, ingredient and list_recipe are only named without meaning.

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 first sentence gives a specific verb and resource ('Create a shopping list entry'), and the rest distinguishes it from the two sibling tools that also touch shopping lists by contrasting their list-copying behavior. An agent can identify what this does relative to add_recipe_to_shopping_list and food_shopping_update without opening any schema.

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?

It clearly establishes the required/optional split and explains the decision point for shopping_list_ids (omit vs explicit ids vs []), with sibling comparisons that help selection. It stops short of an explicit 'use this instead of update_shopping_entry when...' statement, so routing against the other write tools is left partly to inference.

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