Skip to main content
Glama

get_activity_details

Read-only

Retrieve splits, heart-rate, weather, gear, terrain, power and swim interval details for one activity by ID to explain why a run, ride or swim felt slow or hard.

Instructions

Splits and heart-rate detail for one activity.

Args: activity_id: The activityId from get_activities.

For a run, also returns the weather during it (temperature, dew point, wind, and what that does to pace), the shoes worn, the terrain (climbs, pace on uphill, flat and downhill, the pace the effort was worth on the flat, heart-rate decoupling and where it faded) and earlier runs of the same route with their pace and heart rate. Use these to explain a run rather than guessing why it was slow or hard. For a ride: normalised, average and max power, intensity factor and training stress against FTP, best efforts from 5 seconds to an hour, variability, time in power zones, climbs with speed, VAM and power, the weather during it, and earlier rides of the same route. For a swim: pace per 100 m, pool length, SWOLF, stroke rate and strokes, and the set as swum, each interval with its pace, stroke and the rest after it. Talk about a swim in those terms, never pace per km.

Input Schema

NameRequiredDescriptionDefault
activity_idYes

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changedv0.1.1
    • removedInput schema / properties / activity_id / title
      Removed value: -"Activity Id"
    • removedInput schema / title
      Removed value: -"get_activity_detailsArguments"
    • removedOutput schema / title
      Removed value: -"get_activity_detailsDictOutput"
  2. First observedv0.1.0

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so safety is covered; the description adds the non-obvious trait that the response shape varies substantially by sport (run/ride/swim get different fields). It omits behavior on invalid IDs and payload size, which keeps it off a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose and the ID source are front-loaded, but the three sport-specific paragraphs are long and largely enumerate return values, which is redundant with the output schema. The content is useful but not efficiently sized for what the structured fields already carry.

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 a one-parameter, read-only tool with an output schema, an agent has everything needed to call it and know what each sport returns. The missing piece is failure behavior (unknown activity_id) and whether the ID must come from the authenticated user's account.

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 coverage is 0% for the single parameter, and the raw schema is just an anyOf integer/string with no description, so the description must compensate. It does by naming the source (the activityId from get_activities), which is the key thing an agent needs; it doesn't clarify why both an integer and a string are accepted.

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+scope: "Splits and heart-rate detail for one activity." That cleanly distinguishes it from the sibling get_activities (which lists many), and the body makes clear the payload expands per sport type. An agent can tell exactly what this returns without opening either schema.

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

Usage Guidelines4/5

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

It gives an explicit usage instruction — "Use these to explain a run rather than guessing why it was slow or hard" — and states the dependency via "The activityId from get_activities," implicitly routing from the list tool. It does not name when NOT to use it or compare against siblings like get_heart_rate, so it falls short of a 5.

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