Skip to main content
Glama

Nutrition by Pack4Back

Update a nutrition entry

update_nutrition

Change an existing food. Do not add a second entry. Prefer log_id from list_nutrition. ok=true only after Garmin re-read shows the new values.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
fatNoFat in grams.
nameNoFood name shown in Garmin Connect.
carbsNoCarbohydrates in grams.
queryNoFood name fragment if log_id is unknown. Prefer log_id.
log_idNoExact log_id from list_nutrition. Required when several foods share a name.
accountNoChatGPT name from list_destinations aliases (я, оксана, mogadanez). Prefer destination_id. Matched only against this user's allow-list.
proteinNoProtein in grams.
caloriesNoEnergy in kcal.
timezoneNoIANA timezone.Europe/Prague
meal_dateNoLocal date YYYY-MM-DD.
meal_typeNoMeal to search in.
destination_idNoStable destination id from list_destinations. Required when more than one destination is writable.
destination_kindNoTracker kind. garmin is supported now. myfitnesspal, cronometer, macrofactor, and apple_health are reserved and unsupported.garmin
user_query_imagesNoHTTPS URLs or MCP image refs for meal photos. Optional. Persist hashes/URLs only.
serving_multiplierNoScale the current serving; 2 doubles the logged portion.
user_query_contextNoOriginal user message. Always forward it. Used for alias hints and audit; never expands the allow-list.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
okYes
fatNo
nameNo
carbsNo
errorNo
goalsNo
log_idNo
accountNo
messageYes
proteinNo
bmr_kcalNo
caloriesNo
consumedNo
meal_nameNo
remainingNo
candidatesNo
plan_goalsNo
goal_sourceNo
destinationsNo
activity_kcalNo
destination_idNo
calories_burnedNo

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?

Beyond the annotations (readOnlyHint=false, openWorldHint=true), the description adds a key behavioral detail: 'ok=true only after Garmin re-read shows the new values.' This tells the agent about the external verification step and success condition. It does not contradict annotations, and it provides valuable context about side effects and confirmation.

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 sentences, each earning its place: the action, the prohibition, the identification preference, and the success condition. It is front-loaded with the core purpose and contains no filler or repetition.

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

Completeness3/5

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

Given the tool's complexity (16 parameters, 0 required, output schema present, annotations covering safety), the description provides the essential usage context but omits one helpful clarification: whether this is a partial update (only provided fields changed) or requires a full replacement. The schema implies optionality, yet explicit statement of partial-update semantics would improve completeness. Overall it is adequate but not comprehensive.

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 parameters are already well-documented. The description adds only one param-related guideline ('Prefer log_id from list_nutrition'), which is useful but limited. Most of the meaning is carried by the schema, so a baseline score of 3 is appropriate.

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 uses a specific verb ('Change') and resource ('an existing food'), and explicitly states 'Do not add a second entry', which distinguishes it from log_nutrition. It also names the preferred way to identify the entry (log_id from list_nutrition), making its purpose unambiguous.

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?

It clearly indicates when to use this tool: when modifying an existing entry rather than adding one. 'Prefer log_id from list_nutrition' gives a concrete selection rule. However, it does not explicitly name alternatives or state conditions for when not to use this tool beyond the add/update distinction.

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