Skip to main content
Glama
gohluke

Dayze MCP

by gohluke

Update Food (diary patch)

update_food

Modify an existing food diary entry by providing its unique ID and any fields to update, such as dish name, notes, or meal time. Adjusts details like cost, companions, or venue without creating a new record.

Instructions

MUTATES one existing Food Diary row the authenticated user owns. Required: food_id (UUID). Optional patch (same fields as log_food): what, kind, place, merchant, notes, append_notes (concat), consumed_at / meal_period (profile TZ civil wall-clock), amount, currency, paid_by / payment_method, with / people_names / person_ids. Example: add hot tea onto an existing Salmon Bento → update_food({ food_id, what: "Salmon Bento + hot tea" }). Unknown or other-user food_id returns an error and does not create a row. Syncs the mirrored calendar event and rebuilds life_state. Requires API key or OAuth with scope context. Share tokens cannot write. ($0.10; API key required)

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
kindNo
whatNoFull updated dish/drink text (replaces, does not append). Example: Salmon Bento + hot tea
withNoCompanion names, aliases, or ids to add (does not remove existing tags)
notesNoReplaces notes. Empty or null clears
placeNoVenue or location. Empty or null clears
amountNoPrice if mentioned
food_idYesUUID of a food diary row the authenticated user owns
paid_byNoWho paid (name or alias)
currencyNoISO currency, e.g. SGD
merchantNoRestaurant, stall, or shop. Empty or null clears
person_idsNoOwned person UUIDs to tag (user-scoped)
request_idNoClient idempotency key (retries return original result).
consumed_atNoISO 8601 datetime; wins over meal_period
meal_periodNoSpoken period when consumed_at is omitted, e.g. "late lunch"
append_notesNoAppend text to existing notes (newline-separated)
people_namesNoAlias for with
payment_methodNoAlias of paid_by for expense-style agents
idempotency_keyNoAlias for request_id.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
changedYesChanged fields with before and after values.
food_idYes
event_idYes
food_logYesUpdated Food Diary row.
people_taggedYes
unresolved_peopleYes
life_state_rebuiltYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv1.28.0

TDQS

A4.5/5.0
Behavior5/5

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

Annotations already declare readOnlyHint:false and destructiveHint:false, but the description adds significant behavioral detail beyond them: error handling for unknown/other-user food_id ('returns an error and does not create a row'), side effects ('Syncs the mirrored calendar event and rebuilds life_state'), authentication requirements ('Requires API key or OAuth with scope context. Share tokens cannot write'), and pricing/cost ('$0.10; API key required'). These are not available in annotations and are crucial for correct invocation.

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 description is dense but efficient, front-loaded with 'MUTATES' and the required parameter. Every sentence contributes useful information (error behavior, side effects, auth, cost). While it is long, it doesn't waste words; the length is justified by the tool's complexity.

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?

Given the high schema coverage (94%), an existing output schema, and a complex tool (18 parameters), the description covers the key operational aspects: the mutation intent, required parameter, error/scoping behavior, side effects, auth and cost. It doesn't list every optional field, but that is already handled by the schema; the description adds the critical contextual details.

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 94%, so the schema already documents most parameters. The description still adds value by clarifying semantic nuances: 'append_notes (concat)' indicates concatenation behavior, 'consumed_at / meal_period (profile TZ civil wall-clock)' specifies timezone handling, and the example ('add hot tea onto an existing Salmon Bento') illustrates how to use the patch. This goes beyond the raw schema.

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 states the exact verb ('MUTATES'), the resource ('one existing Food Diary row'), and the ownership condition ('the authenticated user owns'). It differentiates from siblings by referencing 'same fields as log_food' and explicitly stating it 'does not create a row', which separates it from log_food (creation) and delete_food (deletion).

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 implies usage for updating existing entries (vs. creating with log_food or deleting with delete_food) through the phrase 'same fields as log_food' and the example of 'update_food' on an existing row. It also clarifies that unknown or other-user food_id returns an error and does not create a row, which indirectly tells the agent when not to use it. However, it does not explicitly name alternative tools for creation or deletion.

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