Skip to main content
Glama
Fino-wind

Vaultbeat MCP Server

Log weight (replaces day)

log_weight_entry
Destructive

Log an owner's weight in kilograms for a given date, upserting same-day entries and syncing the end-to-end encrypted value to Apple Health.

Instructions

Log the owner's weight (kg) on their behalf (agent write, 2026-07-21).

weight_kg: kilograms (positive, ≤500). date: LOCAL calendar day "YYYY-MM-DD" (default = today). Same-day upsert-in-place semantics (dayID = "body-{dayStart.epoch}") — re-logging the same day overwrites. Encrypted end-to-end before it ever leaves this machine.

A weight's home is Apple Health: the phone carries this one there on its next sync, through the iOS setting "Allow AI to update Apple Health" (MCP tab; OFF by default). It is also readable here at once (get_metric series "weight_kg").

⚠️ When no iPhone of this account has that setting on (with Weight access granted), the write is REFUSED and nothing is saved — from app 1.3.0 a weight may not live only in the cloud. The error says what to turn on; pass it on and do not retry until the person has done it. Never tell them to re-enter the number by hand in the Vaultbeat weight card instead: logging it in both places makes two entries for one day from different sources and corrupts the trend line.

Input Schema

NameRequiredDescriptionDefault
dateNo
weight_kgYes

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv0.9.1
    • addedInput schema / additionalProperties
      Added value: +false
  2. First observedv0.8.1

TDQS

A4.9/5.0
Behavior5/5

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

Goes well beyond the annotations (destructiveHint=true, readOnlyHint=false): same-day upsert-in-place with the dayID scheme, end-to-end encryption before data leaves the machine, the Apple Health sync side effect gated by a default-OFF iOS setting, the hard refusal condition when the setting is off, and the corruption risk of duplicate entry. This is exactly the behavioral context annotations cannot express.

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?

Front-loaded with the core action and parameter semantics before the longer environmental caveats, so the critical path is readable first. It is longer than the two-parameter schema strictly requires, and internal details like 'dayID = "body-{dayStart.epoch}"' add length without helping the agent decide or call.

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

Completeness5/5

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

For a destructive same-day upsert with an output schema already present, the description covers everything an agent needs: the mutation and its overwrite behavior, the prerequisite iOS setting, the failure mode and required error handling, and the read path. Nothing material is missing.

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 carry the load and does: weight_kg is kilograms, positive, ≤500; date is a LOCAL calendar day in 'YYYY-MM-DD' format defaulting to today. Both parameters are given units, format, bounds, and default semantics that the raw schema lacks.

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?

States a specific verb and resource: logging the owner's weight (kg) on their behalf, with the title additionally marking it as a day-replacing write. It is clearly distinguishable from siblings such as log_strength_entry, log_food_entry, and log_symptom without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

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

Gives explicit when-not guidance: when no iPhone has the Apple Health setting on, the write is refused, the agent should pass the error on and not retry until the user acts. It also names the correct alternative path (read via get_metric 'weight_kg', phone syncs to Apple Health) and forbids the wrong workaround (re-entering by hand in the Vaultbeat weight card).

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