Skip to main content
Glama
pluton74mac

garmin-mcp-triathlon

by pluton74mac

log_custom_food

Log a food item to a Garmin Connect meal by date and time; the meal is auto-assigned by time, with Garmin custom or FatSecret foods.

Instructions

Log a food item to a meal on a date

Adds a food entry to the nutrition log. The meal is determined automatically by matching meal_time against each meal's startTime/endTime window; falls back to SNACKS if no window matches.

Food sources:

  • "GARMIN" (default): user's custom food library. Use get_custom_foods to find food_id and serving_id.

  • "FATSECRET": branded/catalog food from FatSecret. Use search_foods to find food_id and serving_id. Pass the source value from the search_foods result (e.g. "FATSECRET").

Garmin custom food IDs are 32-char hex UUIDs; FatSecret IDs are numeric strings (e.g. "4132350"). Passing the wrong source for a given food_id returns a 400 from Garmin.

Args: meal_date: Date in YYYY-MM-DD format meal_time: Time in HH:MM:SS format (e.g. "12:30:00", account timezone) food_id: Food ID from get_custom_foods (GARMIN) or search_foods (FATSECRET) serving_id: Serving ID from get_custom_foods or search_foods serving_qty: Number of servings (default 1) source: Food namespace — "GARMIN" (default) or "FATSECRET"

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
sourceNoGARMIN
food_idYes
meal_dateYes
meal_timeYes
serving_idYes
serving_qtyNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.0.0

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does well: it explains automatic meal-window matching, the SNACKS fallback, ID format differences, and the 400 error on source mismatch. It omits duplicate/idempotency behavior and whether an existing entry is overwritten, which matters for a write tool.

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?

Well structured with source and lookup cues front-loaded, but there is mild redundancy between the title line and 'Adds a food entry to the nutrition log', and the Args block duplicates parameter info. Still, every section serves a purpose and it is easy to scan.

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 covers meal resolution, source namespaces, ID formats, and a failure mode. The notable gap is how this tool relates to log_food and upsert_and_log, which an agent needs to choose correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate, and it does: it documents all six parameters with concrete formats (YYYY-MM-DD, HH:MM:SS with account timezone), default values, and enum semantics for source. It even gives example ID shapes for both namespaces, adding meaning well beyond the bare schema.

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 ('Log a food item to a meal on a date') and elaborates what it does. However, it never distinguishes itself from its close siblings log_food and upsert_and_log, which appear to do overlapping things, so an agent cannot tell them apart from the description alone.

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?

Gives clear routing guidance: use get_custom_foods for GARMIN IDs and search_foods for FATSECRET IDs, and warns that a wrong source yields a 400. It lacks any when/when-not guidance relative to log_food or upsert_and_log, so the alternative-selection story is incomplete.

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

Deploy Server

Other Tools