Skip to main content
Glama

Almost Fire

Log a meal

log_foods
Idempotent

Use this when the person has agreed what they ate and wants it logged. One entry per food: from a photo read (read_meal_photo's logItems, with their corrections), a saved food or recipe by id and grams (from search_foods), or an estimate with a name, serving, quantity and its numbers per serving. eatenAt null is now. Comes back with an Undo. Do not use before they've agreed the foods and amounts, or for a meal they're only planning.

Input Schema

NameRequiredDescriptionDefault
itemsYes
eatenAtNo
idempotencyKeyYesA new random id for this change (a UUID). Send the same one again only to retry this exact change.

Output Schema

NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, idempotentHint=true and destructiveHint=false, so the mutation/idempotency profile is covered structurally. The description adds two genuinely useful behavioral facts not in the annotations: 'eatenAt null is now' and 'Comes back with an Undo,' which tells the agent the write is reversible. It does not, however, disclose the 30-item cap, partial-failure behavior, or how the response identifies the new entries.

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 when-to-use condition and the three intake modes are front-loaded, and the prohibitions close the paragraph. Sentences are dense but each carries distinct routing or formatting information; the phrasing 'a saved food or recipe by id and grams (from search_foods)' is slightly compressed but still parseable.

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-value documentation is unnecessary, and the description covers the decision-relevant surface: when to call, what an item looks like per mode, the eatenAt default, and undo availability. Gaps remain around item-count limits and what happens if some items are invalid, but for a log-one-meal tool this is close to complete.

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 only 33% schema description coverage, the description carries real weight and does so: it explains what each item should be drawn from (photo logItems, saved food/recipe id+grams, or estimate with name/serving/quantity/macros) and clarifies the null eatenAt default. It leaves certainty, tweaks, and foodKey unexplained, and idempotencyKey relies on the schema's own description.

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 opens with a specific verb and resource ('wants it logged') and immediately enumerates the three input shapes: a photo read via read_meal_photo's logItems, a saved food or recipe by id and grams from search_foods, or a free-form estimate. An agent can distinguish this from search_foods or read_meal_photo purely from the text.

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?

It gives an explicit trigger ('the person has agreed what they ate'), an explicit prohibition ('Do not use before they've agreed the foods and amounts'), and a second exclusion ('or for a meal they're only planning'). It also routes to specific sibling tools for each input mode, leaving little to inference.

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