Skip to main content
Glama
jonas-theobald

garmin-mcp-bridge

get_activity_streams

Get downsampled time-series streams for an activity, including heart rate, altitude, and pace. Returns min/max/mean plus ~200 points per stream for coaching analysis without full per-second data.

Instructions

Get time-series streams for an activity, downsampled to ~200 points each.

Args: activity_id: e.g. "i55751783". types: Stream names. Defaults to heartrate, altitude, velocity_smooth, distance, cadence, grade_smooth. Others: watts, temp, latlng, time, moving, fixed_watts.

Returns min/max/mean plus a downsampled series per stream. Full per-second data is deliberately not returned: a long trail run is >10k samples per stream and the shape is what matters for coaching, not every sample.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
typesNo
activity_idYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.3/5.0
Behavior5/5

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

With no annotations, the description carries the full burden and does so unusually well. It discloses downsampling to ~200 points, the return of min/max/mean per stream, and the deliberate non-return of full per-second data with a concrete rationale. This gives an agent accurate expectations about output shape and data volume.

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 layout is clear: purpose sentence, Args section, then Returns section. The explanation about coaching shape is slightly editorial but earns its place by clarifying why the data is truncated.

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?

Given only two parameters and no output schema, the description covers input format, defaults, valid options, output summary, and a key limitation. Nothing critical is missing for an agent to invoke it correctly.

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 compensate, and it does. It provides a concrete example for activity_id and enumerates valid stream names with defaults and alternatives, giving an agent everything needed to construct valid arguments.

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 description states a specific verb and resource ('Get time-series streams for an activity') plus the downsampling qualifier. It is distinct enough from siblings like get_activity, but it does not explicitly name or contrast any sibling, so it falls just short of full differentiation.

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?

The description gives helpful context about default stream types and explains why full per-second data is intentionally omitted, which implies when the tool is appropriate. However, it never explicitly says when to prefer this tool over get_activity or another sibling, nor does it provide any exclusion criteria.

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