Skip to main content
Glama
AndekQR

Fitatu MCP Unofficial

Replace Fitatu Meal Item

replace_meal_item
Destructive

Replace an existing Fitatu meal item using date, mealKey, itemId, and a new product, recipe, or custom item. Preserves eaten state unless specified, and returns the new itemId.

Instructions

Replaces and confirms one existing Fitatu meal item. Select the existing entry by its exact date, mealKey, and itemId, then provide replacement using the same strict PRODUCT, RECIPE, or fallback CUSTOM_ITEM payload accepted by add_meal_items. If replacement.eaten is omitted, the existing eaten state is preserved. Replacing a PRODUCT or RECIPE with the same catalog definition is rejected; use update_meal_item for quantity, measure, or eaten changes. Returns { status: 'confirmed', date, mealKey, previousItemId, itemId }; use the returned itemId for later mutations. The new item remains in the same meal, but item order is not part of the contract.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
dateYesDay containing the item to replace, in YYYY-MM-DD format.
itemIdYesExisting meal item id. Use itemId returned by get_day_plan_items.
mealKeyYesMeal key containing the item. Use mealKey values returned by get_day_plan_items. Typical keys are breakfast, second_breakfast, lunch, snack, supper, but accounts with renamed or additional meals may use other keys such as dinner.
replacementYesNew meal item using the same payload as one entry in add_meal_items.items.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
dateYesDay containing the confirmed replacement item.
itemIdYesPersisted meal item id to use in later update, move, replace, or remove operations.
statusYesThe requested mutation was observed in the persisted Fitatu day plan.
mealKeyYesMeal containing the confirmed replacement item.
previousItemIdYesPrevious item id confirmed absent after replacement.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.0.0

TDQS

A4.9/5.0
Behavior5/5

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

Goes well beyond the annotations by disclosing key behaviors: replacement is confirmatory, omitted eaten state is preserved, same-catalog replacements are rejected, the exact return shape is provided, and item order is not part of the contract. No contradiction with destructiveHint=true or readOnlyHint=false.

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?

Five sentences, each carrying essential information: action, identification, eaten semantics, rejection/alternative, return value, and ordering caveat. Front-loaded with the core purpose and free of redundant restatement of the schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Complete for a mutation tool with a nested replacement payload. The description covers identification, payload contract, edge-case rejection, output format, and post-return usage. The schema and output schema provide the remaining structural detail, so nothing an agent needs to invoke correctly is missing.

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 the schema already documents all parameters and the three replacement variants. The description adds meaningful semantics beyond the schema by stating that replacement uses the same payload contract as add_meal_items, that eaten defaults to preservation, and that the returned itemId should be used for later mutations.

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 description states a specific verb ('Replaces and confirms'), a resource ('one existing Fitatu meal item'), and the selection criteria (date, mealKey, itemId). It clearly distinguishes itself from update_meal_item by noting that same-catalog-definition swaps are rejected and should use update_meal_item instead.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

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

The description explicitly names an alternative tool and the condition that selects it: 'use update_meal_item for quantity, measure, or eaten changes.' It also instructs how to identify the target entry and which payload variant to prefer (PRODUCT/RECIPE before CUSTOM_ITEM), giving unambiguous when-to-use guidance.

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