Skip to main content
Glama

Move a logged food

move_item
Destructive

Move a logged food row to another meal or day; returns a new row_id and confirms via re-read that both changed.

Instructions

Move a logged food row to another meal and/or day. The moved row gets a new row_id, returned here; the old one is gone. data.ok says a re-read confirms both.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
dateYesDay as YYYY-MM-DD; when the user says today, yesterday, this week or a weekday, call get_today and count from its date.
row_idYesrow_id of a food row on that day, from get_day (meals[].items[].row_id).
to_dateNoDay to move it to, as YYYY-MM-DD (default: the same day); when the user says today, yesterday, this week or a weekday, call get_today and count from its date.
to_mealYesMeal to move it to. Meal slot. The keys are fixed, but users rename their meals in the app: match the user's words against get_day's meal_name and pass that meal's meal_key. Only the meals get_day lists exist.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
okYes
dataNo
errorNodescribe_error() of what went wrong; docs/AGENTS.md, Results and errors.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true and idempotentHint=false, so the safety profile is covered. The description goes further and discloses the non-obvious consequence: the moved row receives a new row_id and the old one no longer exists, plus that data.ok is a re-read confirmation. That row_id change is exactly the kind of follow-up-relevant behavior structured fields don't convey.

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?

Three short sentences with the core action front-loaded, followed by the two behavioral facts an agent actually needs. No filler or restatement of the title.

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?

An output schema exists, so return values need not be explained, and the description wisely limits itself to the one behavioral twist (new row_id, old row gone). For a destructive mutation, nothing essential about correct invocation is missing.

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 description coverage is 100%, so the schema already documents date, row_id, to_date, and the meal_key matching rule thoroughly. The description adds no parameter-level detail (e.g., no mention of required vs optional or to_date defaulting), so baseline 3 applies.

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?

States a specific verb and resource ('Move a logged food row to another meal and/or day') and clarifies that this is a relocation, not a copy, by noting the old row is gone. It never names the nearest sibling (copy_meal, update_item), so the differentiation is only implied.

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?

The phrase 'to another meal and/or day' implies the intended use case, and the schema descriptions point at get_day/get_today as upstream steps. However, there is no explicit statement of when to choose this over update_item or copy_meal, so the agent must infer.

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