Skip to main content
Glama

get_in_progress_badges

Read-only

Retrieve Garmin Connect badges currently in progress by merging earned and available badge data, so you can track goals that are not yet complete.

Instructions

no HTTP path of its own: calls getEarnedBadges() and getAvailableBadges(), filters each with an in-progress predicate (progress truthy; if progress === target, only "in progress" when badgeLimitCount is set and badgeEarnedNumber < badgeLimitCount), then merges both filtered lists into a Map keyed by badgeId (available overwrites earned on collision, keeping the earned entry's position); never raises: a null from either call is treated as []. Badges carry badgeImageUrls (inherited from the two calls)

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

B3.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and openWorldHint, and the description goes beyond them usefully: it states the tool never raises (null from either underlying call treated as []), documents collision behavior (available overwrites earned but keeps the earned entry's position), and notes badges carry badgeImageUrls. That is genuine behavioral context not present in the annotations or schema.

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

Conciseness2/5

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

The single dense sentence opens with implementation trivia ('no HTTP path of its own', internal function names, Map keying) rather than the user-facing purpose, so the most selection-relevant fact is buried. Much of the length serves implementation curiosity rather than helping an agent decide to call it or not.

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?

For a zero-parameter, read-only tool with no output schema, the description supplies the essentials: what the returned set contains, its keying, and the badgeImageUrls payload. The main gap is the absence of any routing guidance relative to the many badge-related siblings.

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?

The tool takes zero parameters, so there is nothing for the description to disambiguate and the baseline of 4 applies. Schema coverage is reported at 100% and the input schema is an empty closed object, consistent with the no-argument framing.

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 makes the result set concrete: it filters the earned and available badge lists by an 'in-progress' predicate (progress truthy; progress === target only counts when badgeLimitCount is set and badgeEarnedNumber < badgeLimitCount) and merges them into a badgeId-keyed Map. That effectively tells the agent this returns badges currently being progressed. It does not, however, contrast itself against the visible siblings get_earned_badges / get_available_badges in user-facing terms, so it stops short of 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 Guidelines2/5

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

There is no statement of when to call this versus get_earned_badges, get_available_badges, get_inprogress_virtual_challenges, or get_badge_challenges. The only relational information is the internal call names, which are implementation references rather than selection guidance. An agent gets no explicit use/when-not-to-use condition.

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

Deploy Server

Other Tools