Skip to main content
Glama

Mise — Meal Planner, Grocery List & Calories

Grocery List & Checkout

build_shopping_list

Make a grocery list and a checkout link. Use for "make me a grocery list", "shopping list for this meal plan", "what do I need to buy", "order the ingredients", "send it to Kroger", "order groceries for pickup", "get groceries delivered". Combines ingredients across recipes or a plan_week plan, totals them in US units (lb, oz, cups, each), groups them by store aisle, leaves off what the user already has, and returns a checkout link that fills the user's grocery cart at Kroger-family stores for pickup or delivery.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "build_shopping_list"
  }
}

Input Schema

NameRequiredDescriptionDefault
plan_idNoplan_id from plan_week.
recipesNoCatalog recipes to shop for, with how many servings to make.
extra_itemsNoAnything else to add, e.g. {"name": "coffee"}.
have_on_handNoItems the user already has; they are left off the list.
skip_pantry_staplesNoLeave off salt, pepper, oil, flour, sugar and common spices.

Output Schema

NameRequiredDescriptionDefault
notesYes
aislesYes
skippedYesItems left off because the user has them or they are pantry staples.
checkoutYes
item_countYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=false and openWorldHint=true, so the external side effect is partly structured; the description adds real value by explaining that it returns a checkout link which fills a cart at Kroger-family stores for pickup or delivery, and that have_on_hand items are excluded. It does not address repeat-call behavior even though idempotentHint=false, leaving unclear whether calling twice creates duplicate carts/links — a notable gap for a non-idempotent tool.

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?

Front-loaded with the core action, then routing phrases, then behavioral detail — a sensible order. The long run of quoted user utterances is dense but each maps to a distinct entry point (list vs order vs delivery), so it mostly earns its space; a couple could be trimmed.

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 an output schema present, the description needn't explain the return object, and it correctly focuses on inputs and side effects: unit normalization, aisle grouping, on-hand exclusion, and the Kroger store scope. The remaining undefined element is repeated-invocation behavior for a non-idempotent, externally-acting tool.

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%, so plan_id, recipes/servings, extra_items, have_on_hand and skip_pantry_staples are all documented inline; baseline is 3. The description only lightly adds meaning ('combines ingredients across recipes or a plan_week plan'), which clarifies that plan_id and recipes are alternate sources but adds no format or unit-syntax detail beyond 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?

States a specific verb+resource pair ('Make a grocery list and a checkout link') and then elaborates the transformation: combines ingredients across recipes or a plan_week plan, normalizes to US units, groups by aisle, omits on-hand items. It references the sibling plan_week by name and clearly separates itself from single-recipe generation, so an agent can distinguish it 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 Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The quoted utterance list ('make me a grocery list', 'order the ingredients', 'send it to Kroger', 'get groceries delivered') gives concrete when-to-use conditions across the list/order/deliver space. It never names a sibling as the alternative or states an exclusion (e.g. 'use generate_recipe for a single recipe'), so the boundary is implied rather than explicit.

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