Skip to main content
Glama

List Athlete Activities

strava_list_activities
Read-onlyIdempotent

List the authenticated athlete's activities, newest first. Supports filtering by date range and pagination. Served from stored history, which can be incomplete during backfill.

Instructions

List the authenticated athlete's activities, newest first. Supports filtering by date range and pagination. Served from stored history, which can be incomplete during backfill. A stale listing refresh traverses upstream pages; local page size does not cap API requests. Check strava_sync_status or strava://mirror/budget before broad refreshes; narrow dates/use local SQL first.

Input Schema

NameRequiredDescriptionDefault
pageNoLocal page number (1-1000000, default 1); upstream refresh may traverse all pages
afterNoOnly activities after this epoch timestamp (seconds)
beforeNoOnly activities before this epoch timestamp (seconds)
per_pageNoResults per page (1-200, default 30)

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed8 schema fields changedv4.4.1
    • changedInput schema / $schema
      Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • removedInput schema / additionalProperties
      Removed value: -false
    • addedInput schema / properties / after / maximum
      Added value: +9007199254740991
    • addedInput schema / properties / after / minimum
      Added value: +0
    • addedInput schema / properties / before / maximum
      Added value: +9007199254740991
    • addedInput schema / properties / before / minimum
      Added value: +0
    • changedInput schema / properties / page / description
      Previous value: -"Page number (default 1)"New value: +"Local page number (1-1000000, default 1); upstream refresh may traverse all pages"
    • addedInput schema / properties / page / maximum
      Added value: +1000000
  2. First observedv1.0.0

TDQS

A4.3/5.0
Behavior5/5

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

Goes well beyond the annotations by disclosing that results come from stored history, may be incomplete during backfill, that a stale refresh traverses upstream pages, and that local page size does not cap API requests. These are non-obvious cost/staleness traits an agent could not infer from readOnlyHint/idempotentHint.

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

Conciseness5/5

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

Four tight sentences led by the core purpose, then filtering, then data-freshness caveats, then the operational warning. Minimal waste for the amount of useful content conveyed.

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, return shape is undocumented, but the description compensates with freshness, cost, and escalation guidance, which is what an agent needs to call this safely. Return-field details are the only notable omission.

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 100%, so baseline is 3, and the description meaningfully adds to it by clarifying that 'local page size does not cap API requests' — a semantic point about `page`/`per_page` absent from the schema. No detail is added for after/before beyond the schema.

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 ('List the authenticated athlete's activities') plus ordering ('newest first'), which clearly separates it from single-resource siblings like strava_get_activity. It stops short of explicitly naming sibling alternatives, so not a 5.

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?

Gives clear operational guidance: check strava_sync_status or strava://mirror/budget before broad refreshes, narrow dates, and use local SQL first. This is real when-to-use/when-not guidance with named alternatives, though it never explicitly compares against strava_query or strava_get_activity.

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