Skip to main content
Glama
cambroussard9

trail-factors

sync_status

Check the progress and state of a Garmin FIT sync job, including the current step and step errors; omit job_id to view the most recent job.

Instructions

Progress of a sync job. Empty job_id returns the most recent.

States: queued, running (with the current step), done, failed (with which
step failed -- a Garmin outage and a corrupt file are different problems).
A job fails outright only when the DOWNLOAD fails; a later step that
raises is reported inside a `done` job's result, by name, under
`step_errors` with `clean: false`, so the rejections still arrive.

Input Schema

NameRequiredDescriptionDefault
job_idNo

Output Schema

NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A3.8/5.0
Behavior4/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 well: it enumerates the state machine (queued, running with current step, done, failed with failing step), and explains that only DOWNLOAD failures fail the job outright while later-step exceptions surface inside a `done` job under `step_errors` with `clean: false`. That is exactly the kind of non-obvious behavior an agent could not infer from the schema. It stops short of noting polling cost, result persistence, or whether old jobs expire.

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 core behavior and the empty-arg default are front-loaded in the first two sentences, with failure semantics following. Every clause is substantive, though the parenthetical "a Garmin outage and a corrupt file are different problems" is motivational color rather than operational instruction.

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?

An output schema exists, so return structure needn't be restated, yet the description usefully names `step_errors` and `clean`. Combined with the documented states and default-job behavior, this is enough for an agent to call the tool correctly; only edge cases (invalid/expired job_id, polling guidance) are absent.

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% and the only parameter's schema is a bare `string` with `default: ""`, so the description's "Empty job_id returns the most recent" is the sole explanation of what the empty value means and what the parameter selects. That compensates for the near-total schema gap, though it doesn't say what an unrecognized job_id yields.

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 first sentence states a specific resource and read intent: the progress/status of a sync job, which cleanly separates it from the sibling `sync` (the trigger) and from analytical siblings like `report` or `session_load`. It does not explicitly name `sync` as the companion tool, so the differentiation is inferable rather than spelled out.

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?

"Empty job_id returns the most recent" gives concrete guidance on the parameter's default case, implying the intended poll-after-sync workflow. However, there is no explicit statement of when to call this versus `sync`, whether it should be polled repeatedly, or what happens with an unknown job_id — the usage is implied, not directed.

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