Skip to main content
Glama

joiva_log_meal

Log a saved Joiva meal in one call: every component becomes a log entry sharing one meal, labeled with the meal's name. The meal is found by mealName (case-insensitive, e.g. 'Power-Bowl') or by savedMealId. factor scales the portion (0.5 = half, 2 = double). Time defaults to now. With plannedDate the meal is scheduled for a day that has not happened yet ('plane meine Power-Bowl für morgen'): the entries are written as planned, not eaten, and stay out of that day's balance until confirmed.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "joiva_log_meal"
  }
}

Input Schema

NameRequiredDescriptionDefault
tzNoIANA timezone, default Europe/Berlin
factorNoPortion factor, default 1
loggedAtNoISO 8601 timestamp with offset, defaults to now
mealNameNoThe meal's saved name
plannedDateNoYYYY-MM-DD. Schedules the meal for this day instead of logging it as eaten
savedMealIdNoId of the saved meal

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / savedMealId / description
      Previous value: -"Id from joiva_list_meals/joiva_save_meal"New value: +"Id of the saved meal"
  2. First observed

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already cover safety (readOnlyHint=false, destructiveHint=false) and non-idempotency, so the description adds real value beyond them: one log entry per component grouped under a meal, and critically that plannedDate entries are written as planned, excluded from the day's balance, and require later confirmation. It does not warn about duplicate entries on repeated calls despite idempotentHint=false, nor say what happens when mealName/savedMealId match nothing.

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 tight sentences, front-loaded with the core action, then lookup/portion, then the scheduled-mode caveat. Every clause carries information; the quoted utterance is a single compact example rather than filler.

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 6-parameter mutation tool with full annotation coverage and no output schema, the description covers the important behavioral edge (planned vs. eaten). The main gap is that all parameters are optional and nothing states that at least one of mealName or savedMealId must be provided, nor what the tool returns on partial failure.

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 100%, so the baseline is 3, but the description genuinely extends it: mealName is case-insensitive with a concrete example, factor is illustrated numerically (0.5 = half, 2 = double), and plannedDate's downstream effect on balances is explained far beyond the schema's one-liner. It adds no guidance on resolving conflicts when both mealName and savedMealId are supplied.

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 saved Joiva meal') and explains the resulting effect: every component becomes a log entry sharing one meal, labeled with the meal's name. This implicitly separates it from joiva_log_food and joiva_save_meal, but no sibling is named, and the relationship to joiva_plan_food/joiva_confirm_planned is left for the agent to infer.

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 context for each mode: normal logging, portion scaling via factor, and a distinct future-dated path for plannedDate, complete with a natural-language trigger ('plane meine Power-Bowl für morgen'). It stops short of explicit exclusion rules (e.g. when to use joiva_log_food for a single item, or joiva_plan_food instead).

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