Skip to main content
Glama

Garmin MCP Lite

[For AI Assistants & LLMs] You are interfacing with a Garmin MCP (Model Context Protocol) server.

  1. Data Freshness: Always query the data if the user asks about their recent workouts or health metrics.

  2. Parameter Tuning: Use the fields parameter in tools like garmin_activity_detail to limit the response payload and save context window (e.g., ["splits", "hrZones"]).

  3. Read-Only: This server provides read-only access to Garmin Connect. You cannot modify user data.

  4. No Password Request: Never ask the user for their Garmin password. Authentication is handled out-of-band via a local token.

  5. Health Tip: garmin_health now supports a metric parameter — use "steps", "sleep", "hrv", "spo2", "body_battery", etc., to query specific data and save context window.

License: MIT Python 3.11+ PyPI version

Read this in other languages: English, 简体中文.

A lightweight Garmin Model Context Protocol (MCP) server, designed specifically for endurance athletes.

It exposes 12 precisely-curated endpoints for deep analysis of running, cycling, swimming, and health data — replacing bulky 80+ endpoint alternatives with a clean, focused toolset.

Core Tools (12)

🏃 Activity & Training

Tool

Functionality

garmin_activities

List running/cycling/swimming/diving records with date & type filters.

garmin_activity_detail

Get single activity details (pace, heart rate zones, splits, GPS, etc.).

garmin_training_plan

Get today's or a specific date's scheduled training workout.

garmin_training_status

Get training status, VO2Max, acute load, load focus distribution (aerobic/anaerobic), recovery time, and training readiness score.

garmin_weekly_stats

Get weekly/monthly/yearly training volume statistics.

garmin_coach

Overview of current Garmin Coach training plans.

💚 Health & Wellness

Tool

Functionality

garmin_health

Get comprehensive health metrics: sleep quality, HRV status, stress, body battery, SpO2, respiration rate, intensity minutes, daily steps, floors climbed, and resting heart rate. Supports metric parameter for targeted queries.

garmin_hr_trend

Get resting heart rate trends for the last 7/30/90 days.

🎯 Goals & Challenges

Tool

Functionality

garmin_events

Get your race calendar: upcoming race dates, target distances, and goal finish times.

garmin_challenges

Get in-progress challenges: virtual climbs, monthly badge challenges, and their completion percentages.

⌚ Device & Gear

Tool

Functionality

garmin_gear

Get your shoe/bike gear list and their real cumulative mileage.

garmin_device

Get connected device info: firmware version, update availability, primary device status, and registration date.

Related MCP server: garmin-connect-mcp

Quickstart (via PyPI & uv)

The easiest way to run this server is using uvx (no cloning required).

1. Authenticate (First Time Only)

Why not just put the password in the AI config? Garmin has strict security measures. Logging in from a new location/MCP server often triggers Cloudflare CAPTCHAs or MFA email codes. If the password is in Claude's background config, the AI assistant will silently freeze or fail when challenged, with no way for you to input the code.

Therefore, this plugin uses a secure two-step strategy: Run a login script in your terminal first. If challenged, you can interactively input the MFA code. Upon success, a session token is cached locally (valid for ~1 year).

GARMIN_EMAIL="your@email.com" GARMIN_PASSWORD="your_password" uvx --with garmin-mcp-lite garmin-mcp-lite-login

(💡 China Region Users: If your account is registered in Garmin China (garmin.cn), prefix the command with GARMIN_IS_CN=true.)

2. Configure Your AI Assistant

Once authenticated, add the server to your favorite MCP-compatible AI assistant.

Claude Desktop

Add this to your ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "garmin-lite": {
      "command": "uvx",
      "args": [
        "garmin-mcp-lite"
      ]
    }
  }
}

Cursor / Windsurf / Gemini CLI / Other MCP Clients

Use the exact same command and args as above. The server will automatically load the cached token from ~/.garmin-mcp-lite/garmin_tokens.json.

Manual Installation (for Developers)

If you want to modify the code:

git clone https://github.com/Golden0Voyager/garmin-mcp-lite.git
cd garmin-mcp-lite
uv sync

# Login
GARMIN_EMAIL="your@email.com" GARMIN_PASSWORD="your_password" python -m garmin_mcp_lite.login

# Run server
python -m garmin_mcp_lite.server

Example Queries

Once connected, you can ask your AI assistant natural-language questions like:

  • "What's my training load focus this week?"

  • "Show me my race goal for June and what my current predicted finish time is."

  • "How's my Grossglockner virtual climb challenge going?"

  • "Is my Descent G1 firmware up to date?"

  • "How many steps have I taken today? Am I on track for my daily goal?"

  • "Analyze my sleep quality from last night."

Comparison with Other Garmin MCPs

Taxuspt/garmin_mcp

garmin_mcp_lite

Tool Count

80+

12

Naming

mcp_garmin_get_activities_by_date

garmin_activities

Deep Queries

No

fields parameter controls detail granularity

Training Load

Basic

Acute load + load focus distribution

Health Depth

Basic

SpO2, respiration, intensity minutes, steps

Race/Challenge

No

Events calendar + challenge progress

Write Ops

Heavy (weight/nutrition/gear)

Read-only

License

MIT © 2026 Haining Yu

This project is built on top of the excellent garminconnect library. It is not an official Garmin product. Please adhere to Garmin Connect's terms of service when using this tool.

Available Tools

12 tools
garmin_activitiesA

List recent activities filtered by date range and type.

Args: start_date: Start date in YYYY-MM-DD format. Defaults to 7 days ago. end_date: End date in YYYY-MM-DD format. Defaults to today. activity_type: Filter by sport type. One of: running, cycling, swimming, diving, all. limit: Maximum number of activities to return.

ParametersJSON Schema
NameRequiredDescriptionDefault
start_dateNo
end_dateNo
activity_typeNoall
limitNo

TDQS

A3.7/5.0
Behavior2/5

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

No annotations provided, so description carries full burden. It does not disclose pagination, authentication needs, rate limits, data freshness, or response format. Only states basic functionality.

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?

Very concise: one sentence for purpose then structured Args list. No unnecessary words, front-loaded with key info. Efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Describes parameters adequately but missing output schema (return fields) and any behavioral notes. For a list tool with 4 params, it covers the basics but lacks completeness on what the agent gets back.

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%, but description adds defaults (start_date defaults to 7 days ago, end_date to today, limit to 10) and enumerates activity_type values. This adds meaning beyond the schema's titles.

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?

Description clearly states 'List recent activities filtered by date range and type' with a specific verb and resource. It distinguishes from siblings like garmin_activity_detail (likely detail view) and other non-activity tools.

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?

Implies usage for listing and filtering activities, but provides no explicit when-to-use, when-not-to-use, or alternatives among siblings. The context is clear but lacks guidance.

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

garmin_activity_detailA

Get detailed metrics for a single activity by ID.

Args: activity_id: The Garmin activity ID. fields: Optional list of extra data sections to include. Supported values: "splits", "hrZones", "laps", "gps". Omit to return the basic summary only.

ParametersJSON Schema
NameRequiredDescriptionDefault
activity_idYes
fieldsNo

TDQS

A3.7/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of disclosing behavioral traits. It fails to mention return format, error handling, authentication requirements, rate limits, or any side effects. The description focuses on parameters but omits key behavioral context.

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 extremely concise: two sentences plus a bullet list, all front-loaded with the main purpose. Every word serves a purpose, making it easy to parse quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simplicity of the tool (2 parameters, no output schema, no annotations), the description covers basic functionality but omits details about the return structure, error responses, and prerequisites. It is sufficient for a simple use case but not comprehensive.

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 0%, so the description must compensate. It explains 'activity_id' as 'The Garmin activity ID' and 'fields' with supported values ('splits', 'hrZones', 'laps', 'gps') and default behavior ('Omit to return the basic summary only'). This adds meaningful context beyond the bare schema.

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?

The description clearly states 'Get detailed metrics for a single activity by ID,' providing a specific verb, resource, and identifier. This distinguishes it from sibling tools like 'garmin_activities' (presumably listing activities) and others.

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?

The description implies usage for retrieving details of a single activity by ID, and explains the optional 'fields' parameter to include extra data sections or omit for a basic summary. However, it lacks explicit guidance on when to use this tool versus alternatives, such as when a list or different metrics tool would be more appropriate.

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

garmin_challengesA

Get in-progress challenges and badge completion status, including virtual challenges and monthly badges.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior2/5

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

No annotations are provided, so the description must fully disclose behavioral traits. It only states a read operation ('Get') without mentioning authentication, scope (user-specific vs. global), or potential side effects. Minimal transparency.

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?

A single, front-loaded sentence that efficiently conveys the tool's purpose with examples. No wasted words.

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 parameterless, read-only tool with no output schema and low complexity, the description adequately specifies what is returned. It could mention the result format but is sufficient for context.

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 has no parameters, and schema coverage is 100% trivially. Baseline for 0 parameters is 4. The description adds no parameter information, which is acceptable.

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?

The description clearly states the tool retrieves in-progress challenges and badge completion status, with specific examples like virtual challenges and monthly badges. It effectively distinguishes from sibling tools focused on activities, health, devices, etc.

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?

No explicit when-to-use or alternatives are given. However, the tool's purpose is straightforward and the sibling context implies usage for challenge-related queries. Guidance is implicit but sufficient for a simple tool.

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

garmin_coachB

List active Garmin Coach training plans.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.4/5.0
Behavior2/5

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

No annotations present, and description fails to disclose behavior beyond listing: no details on output format, scope of 'active', or any authentication/rate limit implications.

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?

Single, clear sentence with no waste. Could add more context without becoming overly long.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Tool is simple with no parameters or output schema, but description lacks detail on what 'active' means and how results differ from sibling tools, leaving incomplete context for an agent.

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?

No parameters exist, so schema coverage is 100%. Description need not add parameter info; baseline 4 is appropriate.

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?

Description clearly states the action ('List') and the specific resource ('active Garmin Coach training plans'), distinguishing it from siblings like garmin_training_plan which might cover different plan types.

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?

No guidance on when to use this tool versus alternatives. Sibling garmin_training_plan likely overlaps but no distinction is provided.

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

garmin_deviceB

Get connected device information including firmware version, update availability, primary tracker role, and registration date.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description must convey behavioral traits. It implies a read-only operation but does not explicitly state side effects, permissions, or rate limits. The lack of behavioral detail is a gap.

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 description is a single clear sentence with no fluff. Each word contributes meaning. However, it lacks structure (e.g., bullet points or sections) which could improve scanability.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description partially explains return values by listing examples, but it is not exhaustive and does not clarify terms like 'primary tracker role'. The tool is simple (0 params), so the depth is moderate but could be more complete.

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?

There are 0 parameters, and schema coverage is 100%. The description adds value by enumerating the fields returned (firmware version, update availability, etc.), which goes beyond the empty schema. With no parameters, baseline is 4, and the description provides meaningful details.

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 connected device information and lists specific fields (firmware version, update availability, etc.). It is a specific verb ('Get') and resource ('connected device information'), but it does not explicitly differentiate from siblings, though no sibling appears to overlap.

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?

No guidance on when to use this tool versus alternatives (e.g., garmin_health, garmin_gear). No context about prerequisites or exclusions. The description merely states what it returns without usage direction.

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

garmin_eventsA

Get upcoming race events from the Garmin calendar, including target distance and goal finish time.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior3/5

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

With no annotations, the description must explain behavior. It discloses that events include target distance and goal finish time, but does not discuss authentication needs, rate limits, or edge cases (e.g., empty calendar). The behavior is simple due to zero parameters, but more detail on the output would improve transparency.

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 a single, well-formed sentence that quickly conveys the core functionality. It is front-loaded with the action and resource, and every word adds value.

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 zero parameters and no output schema, the description is fairly complete for a simple retrieval tool. It mentions two key data points (distance, goal time) beyond just 'events.' However, it could hint at data freshness or event details like date/location to anticipate common agent queries.

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?

There are no parameters, achieving 100% schema coverage trivially. The description correctly adds no param-specific information. Since no parameters exist, the baseline of 4 applies, as the tool requires no user input.

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?

The description clearly identifies the tool's purpose: retrieving upcoming race events from a Garmin calendar. It specifies the resource (race events) and action (get), and implicitly distinguishes from siblings like garmin_activities (training data) or garmin_challenges (challenges).

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?

While the description states what the tool does, it does not provide explicit guidance on when to use it versus alternatives, such as garmin_training_plan or garmin_activity_detail. The context is clear, but no exclusionary criteria or examples of when not to use are given.

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

garmin_gearB

Get the gear library (shoes, bikes, etc.) with real cumulative mileage for each item.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.3/5.0
Behavior3/5

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

The description discloses that the tool returns cumulative mileage per gear item. With no annotations, this is credible but lacks explicit mention of read-only behavior, authorization needs, or side effects. It adequately describes the primary output but omits potential constraints.

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 description is a single, efficient sentence that conveys the tool's core function. It is front-loaded with the verb 'Get' and the resource. However, it could be slightly expanded to clarify 'real cumulative mileage' without being verbose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple with no parameters and no output schema. The description covers the basic purpose but does not mention response structure, possible empty results, or pagination. It is minimally complete but leaves room for ambiguity about the output format.

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 has zero parameters, so the description does not need to explain parameter semantics. According to guidelines, baseline for 0 parameters is 4. The description adds no parameter-related information, which is acceptable.

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 a gear library (shoes, bikes, etc.) with cumulative mileage. It identifies the resource (gear library) and specific output (mileage). While it distinguishes from siblings like garmin_activities, it could be more explicit about what 'gear library' encompasses.

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?

No guidance is provided on when to use this tool versus alternatives such as garmin_activities or garmin_health. The description implies use when gear data is needed, but no exclusions or comparisons are given.

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

garmin_healthA

Get health metrics for a specific date.

Args: metric: The health metric to retrieve. Options: - "sleep" : Sleep duration, stages (deep/REM/light), and quality score. - "hrv" : HRV status, weekly average, and last-night reading. - "stress" : Average and peak stress levels. - "body_battery" : Body battery charge/drain, peak, and current level. - "spo2" : Blood oxygen saturation (average, lowest, latest). - "respiration" : Respiration rate (average, min, max). - "intensity" : Weekly intensity minutes vs. goal (moderate + vigorous). - "steps" : Daily step count vs. goal, floors climbed, and resting HR. - "all" : All of the above combined (default). date: Date in YYYY-MM-DD format. Defaults to today.

ParametersJSON Schema
NameRequiredDescriptionDefault
metricNoall
dateNo

TDQS

A4.2/5.0
Behavior3/5

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

No annotations provided, so description must cover behavior. It details what each metric returns but omits potential issues like data unavailability for future dates, rate limits, or authentication requirements. Partial transparency.

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?

Well-structured with clear purpose sentence followed by bullet-list parameter details. Slightly verbose but each line adds value. Front-loading is effective.

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?

No output schema, but the description describes the content of each metric sufficiently for an agent to interpret return values. Could mention error handling or default behavior when date is null, but overall adequate.

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 coverage is 0% (no descriptions in the schema). The description fully compensates by explaining all enum values for 'metric' and specifying the date format. Adds complete meaning beyond schema titles.

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?

The description clearly states 'Get health metrics for a specific date' and lists all metric options with explicit return values. It distinguishes itself from sibling tools like garmin_activities and garmin_hr_trend by focusing on daily health metrics.

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 implies usage for retrieving health data by date and metric. It does not explicitly state when to avoid this tool (e.g., for weekly summaries) or mention alternatives, but the parameter options and sibling context provide indirect guidance.

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

garmin_hr_trendB

Get resting heart rate historical trend data.

Args: period: Time window. One of: "7d" (7 days), "30d" (30 days), "90d" (90 days).

ParametersJSON Schema
NameRequiredDescriptionDefault
periodNo7d

TDQS

B3.4/5.0
Behavior2/5

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

With no annotations, the description carries full burden. While it indicates a read operation ('get'), it does not disclose data range, accuracy, or any behavioral traits beyond the period parameter.

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 description is very short and front-loaded with the main purpose. No extra words, though it could benefit from slightly more structure (e.g., bullet points for parameter).

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with one optional parameter and no output schema, the description covers the core purpose and parameter meaning. However, it lacks details on return format or any limitations, making it minimally complete.

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 0%, but the tool description adds clear semantics for the period parameter, explaining each enum value represents days (e.g., '7d' for 7 days), which goes beyond the schema's bare enum list.

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?

The description clearly states the tool gets 'resting heart rate historical trend data', using a specific verb and resource that distinguishes it from sibling tools like garmin_activities or garmin_health.

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?

No guidance is provided on when to use this tool versus alternatives (e.g., garmin_health which may also include HR data). The description lacks context about when it is appropriate.

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

garmin_training_planB

Get the scheduled training workout for a specific date.

Args: date: Date in YYYY-MM-DD format. Defaults to today.

ParametersJSON Schema
NameRequiredDescriptionDefault
dateNo

TDQS

B3.2/5.0
Behavior2/5

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

No annotations provided, so description must disclose behavior. It states 'Get' implying a read operation, but lacks details on side effects, authorization, or error handling (e.g., what if no plan exists). Minimal transparency.

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?

Extremely concise: two sentences for the description and a clear Args section. No redundant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Adequate for a simple get tool with one optional parameter. However, it does not describe the return value or error conditions, leaving some uncertainty despite low complexity.

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%, so description must compensate. It adds format ('YYYY-MM-DD') and default behavior ('Defaults to today'), which are valuable beyond the schema's type and default null.

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?

Clear verb and resource: 'Get the scheduled training workout for a specific date.' It is distinct from siblings like garmin_activities or garmin_activity_detail, though it does not explicitly differentiate.

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?

No guidance on when to use this tool vs alternatives such as garmin_activities or garmin_activity_detail. The description only states what it does, not the context for selection.

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

garmin_training_statusA

Get current training status summary.

Returns training status label, VO2Max, acute training load, load focus distribution (aerobic_low / aerobic_high / anaerobic), recovery time, training readiness score, and sleep score.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior2/5

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

No annotations are provided, so the description should disclose behavioral traits like read-only nature, data recency requirements, or authentication needs. It only lists outputs, missing important context for selection.

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?

Two concise sentences: the first explains the action, the second enumerates specific return fields. No wasted words or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

While the return fields are listed, the description lacks any note about data source requirements (e.g., connected device) or potential variability. Without an output schema, more detail about field types or optionality would improve completeness.

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?

There are no parameters, so schema coverage is 100%. The description provides complete context for what the tool returns without needing parameter details.

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?

The description clearly states the tool gets a 'current training status summary' and lists specific returned metrics (VO2Max, load, etc.), distinguishing it from sibling tools about activities, plans, or devices.

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?

The description implies this tool is for a summary view, but it does not explicitly state when to use versus alternatives like garmin_health or garmin_weekly_stats, nor does it mention prerequisites.

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

garmin_weekly_statsA

Get aggregated training volume statistics for a given period.

Args: period: Time period. One of: "week" (7 days), "month" (30 days), "year" (365 days).

ParametersJSON Schema
NameRequiredDescriptionDefault
periodNoweek

TDQS

A3.8/5.0
Behavior2/5

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

No annotations are provided, so the description must disclose behavioral traits. It states the tool 'gets' data, implying a read operation, but does not explicitly confirm it is non-destructive, require authentication, or explain what 'training volume statistics' includes (e.g., distance, time). The description lacks key operational details for safe invocation.

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 extremely concise: two sentences with no wasted words. The first sentence states the purpose, and the second explains the parameter. It is front-loaded and efficient, earning a top score.

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 simple tool with one parameter and no output schema, the description covers the essential purpose and parameter options adequately. However, it does not describe the return format or the nature of 'aggregated statistics,' which could be helpful. Still, given the tool's low complexity, the description is reasonably complete.

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?

Although schema coverage is 0%, the description adds significant value by explaining the period parameter's meaning and the exact durations (7, 30, 365 days) beyond the schema's enum values. This clarifies the parameter's semantics, compensating for the lack of schema-level descriptions.

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?

The description clearly states the tool gets aggregated training volume statistics for a given period, using the verb 'Get' and specifying the resource. This is distinct from sibling tools like garmin_activities or garmin_health, which focus on lists or health metrics. The purpose is unambiguous and differentiated.

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?

The description implies usage for retrieving training volume stats over a period but provides no explicit guidance on when to use this tool versus alternatives like garmin_activities or garmin_health. No exclusions or context for selecting this tool are given, leaving the agent to infer from the name alone.

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

TDQS

A3.8/5.0
Disambiguation5/5

Each tool addresses a distinct aspect of Garmin data: activities, activity details, health metrics, training, device, gear, challenges, events. No overlap in purpose.

Naming Consistency5/5

All tools follow the pattern 'garmin_<noun>' or 'garmin_<adjective_noun>' in snake_case, providing a clear and uniform naming convention.

Tool Count5/5

12 tools cover the core Garmin data domains without being excessive. Each tool serves a clear need, making the set well-scoped.

Completeness4/5

The tool set covers essential data retrieval (activities, health, training, device, etc.) but lacks write operations (e.g., creating activities or workouts). For a 'Lite' server, this is a minor gap.

Maintenance

ActivitySlowing
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • F
    license
    B
    quality
    D
    maintenance
    A Model Context Protocol server that integrates Garmin Connect data with LLMs to provide personalized running analysis and training plans. It enables users to monitor performance metrics, manage training loads, and receive data-driven workout suggestions based on health indicators like VO2 Max and recovery status.
    43
    5
  • A
    license
    A
    quality
    D
    maintenance
    A Model Context Protocol (MCP) server that provides comprehensive access to Garmin Connect data including sleep analytics, health metrics, activities, and training volume analysis.
    16
    87
    6
    MIT

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/Golden0Voyager/garmin-mcp-lite'

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