Skip to main content
Glama
Fino-wind

Vaultbeat MCP Server

List analysable series

list_metric_series
Read-onlyIdempotent

Lists all available metric series with row counts, date ranges, and cumulative flags, so you can confirm which health metrics have data before fetching readings.

Instructions

Every series, with how much data actually backs each one.

Call this BEFORE guessing a series name, and before concluding a kind is empty. Each row carries rows / first_date / last_date / latest, so "does this person track VO2max at all" is answered here in one call instead of by reading the kind and getting nothing back.

rows = the days that HAVE a value for that series — counted the way get_metric reads it, so rows: 2 means get_metric can return at most 2 points. A kind's series can differ: a partner with 14 weigh-ins may have a BMI on only 2 of those days.

cumulative: true marks the series whose daily value ACCRUES over the day (steps, energy, water). On those the newest value is routinely a partial day and must not be compared against completed ones — that is what makes "steps are down today" wrong at 9am. Measurements of a state (resting HR, VO2max) carry false and need no such care.

Sleep appears here as numbers (duration, timing, stages, awakenings, vitals); read the nights themselves with get_sleep_nights. Kinds with a richer shape (workouts, strength sets, food, notes, symptoms, cycle) are deliberately absent — flattening them to one number per day would answer a question you did not ask; read them with their own tool.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
freshNo
partnerNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changedv0.9.1
    • addedInput schema / additionalProperties
      Added value: +false
    • addedInput schema / properties / fresh
      Added value: +{
      +  "default": false,
      +  "title": "Fresh",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / partner
      Added value: +{
      +  "default": false,
      +  "title": "Partner",
      +  "type": "boolean"
      +}
  2. First observedv0.8.1

TDQS

A4.4/5.0
Behavior5/5

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

Annotations already declare the safe read-only idempotent profile, yet the description still adds real behavioral context beyond them: what `rows` counts, that `cumulative: true` series have routinely-partial newest values that must not be compared to completed ones, and that state measurements carry `false`. That partial-day caveat is exactly the kind of trap an agent would otherwise fall into.

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 key instruction, then dense supporting detail where every paragraph (rows semantics, cumulative warning, sleep note, deliberate absences) earns its place. It runs long, but no sentence is 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?

An output schema exists so return values needn't be described, and the description still adds the useful semantics of the returned fields. The one real hole is parameter meaning — an agent can call it with defaults, but cannot knowingly use `fresh` or `partner` from this text.

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

Parameters2/5

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

Schema description coverage is 0% and the description never explains the `fresh` parameter at all, nor defines what `partner` filters. `partner` is only obliquely implied by the example about 'a partner with 14 weigh-ins.' With two undocumented booleans, the description does not compensate for the schema gap.

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?

Opens with a specific verb+resource and scope: 'Every series, with how much data actually backs each one.' It explicitly distinguishes itself from get_metric (rows counted the way get_metric reads it), get_sleep_nights, and the richer-shape tools that are deliberately absent, so an agent can place it against siblings 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 an explicit when-to-use imperative ('Call this BEFORE guessing a `series` name, and before concluding a kind is empty') and names the concrete alternative tools for the cases it excludes (get_sleep_nights for nights, 'their own tool' for workouts/strength/food/notes/symptoms/cycle). The routing is unambiguous.

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