Skip to main content
Glama
JJRPF

Garmin MCP Server

by JJRPF

get_activities_by_date

Retrieve activities in a date range with pagination support to avoid large result errors. Filter by activity type and walk pages via next_page until has_more is false.

Instructions

Get activities between specified dates with pagination support.

For accounts with large activity histories, broad date ranges can return thousands of activities in a single response. Use page and page_size to retrieve activities in manageable chunks and avoid "result too large" errors. Activities are ordered newest-first.

Pagination: when has_more is true the response includes next_page — pass that value as page on the next call to retrieve the following page. Repeat until has_more is false.

Note: total_count for a date range is not available from the Garmin API without fetching all results. Use has_more / next_page to walk pages.

Each activity includes an event_type field with values such as:

  • "race" — explicitly tagged as a race by the user

  • "training" — explicitly tagged as a training activity

  • "uncategorized" — no event type set; common for Peloton imports and untagged outdoor runs. Distinct from "training": filter for races with event_type == "race" rather than excluding "training", since many non-race activities appear as "uncategorized" not "training"

  • field absent — API returned no eventType for this activity; not observed in practice in any activity back to 2012 (oldest activities sampled on this account)

Args: start_date: Start date in YYYY-MM-DD format end_date: End date in YYYY-MM-DD format activity_type: Optional activity type filter (e.g., cycling, running, swimming) page: Zero-based page number (default 0) page_size: Number of activities per page, max 200 (default 100)

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
pageNo
end_dateYes
page_sizeNo
start_dateYes
activity_typeNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. First observedv0.1.0

TDQS

A4.6/5.0
Behavior5/5

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

With no annotations provided, the description carries the full burden and does so thoroughly. It discloses pagination mechanics (has_more, next_page), ordering, the unavailability of total_count, and detailed event_type edge cases such as 'uncategorized' versus 'training' and the absent-field case.

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?

The description is detailed but well-structured, with the core purpose front-loaded, followed by pagination mechanics and then event_type semantics. Every section adds practical value and no sentence is redundant.

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?

The description is complete for a tool of this complexity. It covers all parameters, pagination behavior, ordering, and important data interpretation nuances. Since an output schema exists, return-value documentation is not needed, and the description adds substantial context beyond the schema.

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 fully. It does: start_date and end_date formats, activity_type examples, page zero-based indexing, page_size max of 200, and defaults are all explicitly documented.

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 clearly states the tool retrieves activities within a date range and supports pagination, with a specific verb and resource. However, it does not explicitly distinguish itself from sibling tools like get_activities_fordate or get_activities, which would help an agent differentiate at a glance.

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?

The description provides clear usage context: use pagination for large activity histories, page ordering is newest-first, and event_type filtering guidance is included. It does not explicitly state when to prefer this tool over alternatives, but the date-range and pagination context is strong enough for most cases.

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

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/JJRPF/garmin_mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server