Skip to main content
Glama

garmin_log_food

Log a saved food by ID and serving, or quick-add a food by name and calories, to Garmin Connect's food log for a chosen meal date and time.

Instructions

Log food to Garmin Connect's food log: a saved food by id and serving, or a quick add by name and calories, to Garmin Connect's food log.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "meal_time": "<meal_time>"
    },
    "name": "garmin_log_food"
  }
}

Input Schema

NameRequiredDescriptionDefault
nameNoQuick add: what it was
fat_gNo
sourceNoGARMIN
carbs_gNo
food_idNoA saved food (garmin_food_search)
caloriesNo
meal_dateNoYYYY-MM-DD, 'today' or 'yesterday'today
meal_timeYesHH:MM local; picks the meal it falls in
protein_gNo
serving_idNo
serving_qtyNo
save_as_customNoQuick add, but also keep it as a custom food

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, destructiveHint=false and openWorldHint=false, so the write-to-remote-account nature is partly covered. The description confirms the write target (the food log) and that meal placement is derived from time, but omits notable behavior such as duplicate entries, whether re-logging the same food appends a new row, or auth requirements.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core action and mode split, but the phrase 'to Garmin Connect's food log' is repeated at the end of the same sentence, which is pure waste. The content is short overall, yet the redundancy weakens an otherwise tight single sentence.

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?

For a 12-parameter mutation tool with no output schema, the description conveys the essential decision structure (saved food vs quick add) and the purpose of the id-based path. Remaining gaps, chiefly the macro/source parameters and mode-conflict handling, are partially mitigated by the inline schema descriptions on the key fields.

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 only 42% across 12 parameters, so the description must compensate. It adds meaning for food_id, serving_id, name and calories via the mode explanation, but says nothing about the macro fields (fat_g, carbs_g, protein_g), the GARMIN/FATSECRET source enum, serving_qty, or how save_as_custom interacts with quick add.

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 concrete verb and resource ('Log food to Garmin Connect's food log') and distinguishes two operating modes: a saved food by id/serving versus a quick add by name/calories. It does not name the sibling it differs from (garmin_save_custom_food, garmin_food_search), but the mode split alone makes the 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 Guidelines3/5

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

The two modes imply when each is appropriate: use food_id/serving_id for an already-known saved food, use name/calories for an ad-hoc entry. However, it never says when to prefer this over garmin_save_custom_food or garmin_nutrition, nor what happens if fields from both modes are supplied, leaving the caller to infer the exclusivity rule.

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