Skip to main content
Glama

vora_add_biomarker

Record a biomarker / lab value for the signed-in user with unit conversion, fasting-aware plausibility check and GKI derivation (e.g. glucose 95 mg/dL, ketone 1.2 mmol/L, weight 82 kg, CRP 0.4 mg/dL). A reply of created: false, deduped: true means success: the same reading was already stored (typically entered in the app shortly before) and this one was merged into that row, whose id is returned. This path never deletes anything.

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": {
      "biomarker": "<biomarker>",
      "value": "<value>",
      "unit": "<unit>"
    },
    "name": "vora_add_biomarker"
  }
}

Input Schema

NameRequiredDescriptionDefault
unitYese.g. 'mg/dL', 'mmol/L', 'kg'
notesNo
valueYes
deviceNo
biomarkerYese.g. 'glucose', 'ketone', 'weight', 'crp', 'ldl'
observedAtNoYYYY-MM-DD or ISO timestamp, defaults to now
minutesSinceMealNoMinutes since the last meal for a postprandial reading, as stated by the user.
measurementContextNoContext of a glucose/GKI reading as stated by the user: fasted (≥8 h no caloric intake), postprandial (after a meal, with minutesSinceMeal), random, fasting (during a deliberate fast), unknown. If omitted, Vora derives it from Still fasting and Joiva meal times. A given value is stored as the user's statement and never overwritten automatically.
fastingDurationHoursNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A3.7/5.0
Behavior4/5

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

Goes beyond the annotations meaningfully: it discloses unit conversion, a fasting-aware plausibility check, GKI derivation, and most importantly the dedupe-merge response (`created: false, deduped: true`) with the returned `id`. 'This path never deletes anything' reinforces destructiveHint=false rather than restating it, though it does not say what happens when the plausibility check fails (rejection vs. flag).

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?

Three short sentences, front-loaded with the action and examples, then the dedupe caveat, then the non-destructive reassurance. No filler, though the parenthetical example list is slightly long relative to the information it adds beyond the schema.

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?

With no output schema, the description correctly explains the one non-obvious return case (dedupe merge and the returned `id`), which is exactly what an agent needs. It falls short on interaction with measurementContext/fastingDurationHours and on sibling disambiguation, but covers the call-critical behavior.

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 coverage is 56%, and the description's inline examples (glucose mg/dL, ketone mmol/L, weight kg, CRP mg/dL) largely duplicate the `unit` and `biomarker` schema descriptions. Several parameters — minutesSinceMeal, fastingDurationHours, device, notes — receive no treatment in the description, so it does not fully compensate for the mid-level coverage.

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 ('Record a biomarker / lab value for the signed-in user') and enumerates the value-adds (unit conversion, plausibility check, GKI derivation) plus concrete examples. It does not differentiate itself from the nearby sibling still_add_biomarker_reading, which an agent could easily confuse with this one.

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?

Usage is implied by the write verb and the biomarker examples, but there is no explicit when-to-use/when-not guidance and no mention of the sibling still_add_biomarker_reading or why an agent should choose this Vora path over it. Nothing is misleading, but routing is left to inference.

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