Skip to main content
Glama
Fino-wind

Vaultbeat MCP Server

Workouts

get_workouts
Read-onlyIdempotent

Retrieve and decrypt recent workout sessions from Apple Health, showing type, duration, calories, and distance. Filter by owner and get coverage details to know how far back data goes.

Instructions

Decrypt recent workout sessions (type, duration, calories, distance). Use owner prefix to filter by person.

Carries a coverage block: quote coverage.days_covered (distinct days, not the row count) and coverage.span_days beside any average or trend, and read coverage.window_satisfied: false as a shorter history than asked, not as a missing kind. πŸ”΄ Before saying how far back someone's data goes, read coverage.more_available: true means this server can decrypt days OLDER than first_day that your limit left behind β€” re-read with a larger limit, or quote coverage.oldest_available as the real start of their history. Never report a limit-shaped window as the extent of their data.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
freshNo
limitNo
ownerNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.8.1

TDQS

A3.8/5.0
Behavior5/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, but the description adds substantial non-obvious behavior: the coverage block semantics, how to interpret `coverage.window_satisfied: false`, and the warning about `limit`-shaped windows not representing true data history. This goes far beyond the structured annotations and prevents a realistic misinterpretation.

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 core purpose is front-loaded in the first sentence, followed by a short parameter tip and then a detailed coverage block. The coverage block is essential but fairly long; the emoji and explicit formatting make it scannable. It is not overly padded, though a bit verbose for such a small parameter set.

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 complexity of the coverage block and the presence of an output schema, the description covers the main pitfalls thoroughly and explains how to report data extent correctly. The only noticeable gap is the `fresh` parameter, which is undocumented in both schema and description. Overall, it is nearly complete for an agent to call and interpret the result correctly.

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 description coverage is 0%, so the description must compensate. It does explain `owner` ('filter by person') and `limit` (it leaves older days behind and can be increased to retrieve them), which adds real meaning beyond the raw schema. However, `fresh` is never described, leaving one of three parameters without semantic context.

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?

The first sentence, 'Decrypt recent workout sessions (type, duration, calories, distance),' identifies a specific verb and resource with the key fields returned. It is clear and distinct from siblings like get_activity, but it does not explicitly name an alternative or contrast its scope, so it stops short of full sibling differentiation.

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

Usage Guidelines2/5

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

The only usage guidance is 'Use `owner` prefix to filter by person,' which is a parameter tip, not guidance on when to choose this tool over alternatives such as get_activity or get_strength_log. There is no when/when-not language, no prerequisites, and no mention of alternative tools, so the description provides little decision support.

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