Skip to main content
Glama

IZeat

Read one recorded meal

get_meal
Read-only

Returns one recorded meal exactly as it is stored: its rows in order (position, description, quantity, calories, macros, source), the meal's totals, and whether it was already corrected. Use it before update_meal action 'revise', to copy the untouched rows exactly, and whenever the customer asks what one meal contains. It draws nothing: for the whole day with its card, use day_summary instead. Identify the meal by its meal type and day — omit date for today, otherwise pass the customer's word (yesterday, 3 days ago, Tuesday) or YYYY-MM-DD only when they said the full date; never compute one yourself. When no meal of that type is recorded that day, the reply says so and names the meal types that day does have, so ask the customer which one they mean rather than reading the day again. Returns typed public meal facts without storage identifiers. Example: get_meal { "meal_type": "lunch" } for today's lunch; get_meal { "date": "yesterday", "meal_type": "dinner" }. statement is the customer-facing IZeat message. It begins with "IZeat ·" so customers can distinguish information returned by IZeat from the assistant's own response. For write operations, it also states whether the requested change was recorded in their IZeat account. Account: Sam (review@izeat.app)

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
dateNoOmit for today. Otherwise the customer's own word — yesterday, 3 days ago, a weekday — or YYYY-MM-DD only when they said the full date
meal_typeYes

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
okYes
dataYes
statementYesCustomer-visible IZeat receipt. Its value begins with "IZeat ·".

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already declare readOnly/openWorld=false/destructive=false, and the description adds substantial context on top: the exact stored representation returned, the correction flag, that storage identifiers are stripped, and the specific degraded behavior when no meal of that type exists (reply names the meal types that day does have). This goes well beyond the safety profile the annotations provide.

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?

The core is front-loaded: identity, returned contents, the day_summary alternative, and the date idiom all land in the first half. The trailing 'statement is the customer-facing IZeat message... For write operations' paragraph is generic boilerplate that does no work for a read-only tool whose output schema already exists.

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?

An output schema exists, so return structure need not be re-explained, and the description still covers the pieces an agent needs: failure mode when no meal matches, date-input semantics, the alternative for whole-day reads, and the copy-before-revise workflow. Nothing required to call it 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 50% — date is documented in the schema but meal_type carries only an enum. The description compensates by teaching the intended date idiom (omit for today; pass the customer's own word; YYYY-MM-DD only for a fully stated date; never compute one yourself), which is meaningfully richer than the schema text. It says little about what distinguishes the six meal_type values, but that is a minor gap.

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 and resource (returns one recorded meal) and enumerates exactly what comes back — ordered rows with named fields, meal totals, and the already-corrected flag. It explicitly contrasts itself with the sibling day_summary, so an agent can separate the two without opening either schema.

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?

Gives explicit when-to-use triggers (before update_meal action 'revise' to copy untouched rows; whenever the customer asks what one meal contains) and an explicit when-not (use day_summary for the whole day). It even prescribes next-step handling when no matching meal is recorded, telling the agent to ask the customer rather than re-read the day.

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