Skip to main content
Glama
willc121

Garmin Health MCP Server

by willc121

Garmin Health MCP Server

Query your Garmin health data in plain English through Claude Desktop.

Live Demo & Full Writeup →

Quick Start

Prerequisites

  • Node.js 18+

  • Claude Desktop

  • Garmin data in Supabase

Install

git clone https://github.com/willc121/garmin-health-mcp-server.git
cd garmin-health-mcp-server
npm install
npm run build

Configure Claude Desktop

Add to your Claude Desktop config:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "garmin": {
      "command": "node",
      "args": ["/absolute/path/to/dist/index.js"],
      "env": {
        "SUPABASE_URL": "your-supabase-url",
        "SUPABASE_ANON_KEY": "your-supabase-anon-key"
      }
    }
  }
}

Restart Claude Desktop. The Garmin connector should appear in your connectors menu.

Related MCP server: garmin-mcp

Available Tools

Tool

Description

get_health_summary

Overview of all health data

get_vo2max

VO2 max history and trends

get_activities

Activity breakdown by type

get_sleep

Sleep statistics

get_race_predictions

Predicted race times

get_heart_rate_zones

Personalized HR training zones

get_training_load

Acute/chronic workload ratio

Example Queries

What's my VO2 max?
Am I overtraining?
Compare my running vs cycling this year

Getting Your Garmin Data

1. Request your data export

2. Wait for the email

Garmin sends a download link within 48 hours. The export can be several GB depending on how long you've been tracking.

3. Download and extract

You'll get a zip with JSON files for activities, sleep, VO2 max, heart rate, and more.

4. Load into a database

The raw export is too large to query directly (mine was 9 years of data), so I loaded it into Supabase (free tier works fine).

You'll need these tables:

  • vo2_max — VO2 max readings by date and sport

  • activities — Activity records with type, duration, distance, HR

  • sleep_summary — Aggregated sleep stats

  • race_predictions — Garmin's predicted race times

  • heart_rate_zones — HR zone boundaries

  • training_load — Daily training load metrics

I wrote Python scripts to parse the Garmin JSON and insert into Supabase. Happy to share if there's interest — open an issue.

Troubleshooting

Problem

Fix

Connector doesn't appear

Check JSON syntax, use absolute path, fully restart Claude

Connection errors

Verify Supabase credentials

License

MIT


🏃 Powered by questionable cardio and an unhealthy amount of VO2 max anxiety. No treadmills were harmed in the making of this server.

Available Tools

7 tools
get_activitiesC

Get activity breakdown by type, including counts, distances, and durations

ParametersJSON Schema
NameRequiredDescriptionDefault
start_dateNoStart date (YYYY-MM-DD)
end_dateNoEnd date (YYYY-MM-DD)
activity_typeNoFilter by activity type (e.g., 'running')

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool retrieves data but doesn't mention whether it's read-only, has rate limits, requires authentication, or how it handles errors. For a data retrieval tool with zero annotation coverage, this is a significant gap in 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.

Conciseness4/5

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

The description is a single, efficient sentence that front-loads the core purpose. It avoids unnecessary words and gets straight to the point, though it could be slightly more structured by explicitly separating scope from data details.

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

Completeness2/5

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

Given the lack of annotations and output schema, the description is incomplete. It doesn't explain the return format, error handling, or behavioral traits, which are crucial for a tool with three parameters. For a data retrieval tool in a health/fitness context, more detail on data scope and limitations would improve completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage, clearly documenting all three parameters. The description adds minimal value beyond the schema by implying filtering by activity type and date range, but doesn't provide additional context like default behaviors or parameter interactions. Baseline 3 is appropriate when the schema does the heavy lifting.

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's purpose with a specific verb ('Get') and resource ('activity breakdown'), specifying what data is retrieved (counts, distances, durations). However, it doesn't explicitly differentiate from sibling tools like 'get_health_summary' or 'get_training_load', which might also provide activity-related data, leaving some ambiguity about its unique role.

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?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools, prerequisites, or specific contexts for usage, leaving the agent to infer based on tool names alone. This lack of explicit when/when-not instructions reduces its utility for correct tool selection.

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

get_health_summaryB

Get an overview of all health data including VO2 max, activities, sleep, and race predictions

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 are provided, so the description carries full burden. It describes what data is included but lacks behavioral details such as data freshness, rate limits, authentication requirements, or error handling. For a read operation with zero annotation coverage, this is a significant gap in 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, efficient sentence that front-loads the core purpose ('Get an overview of all health data') and lists specific data types without waste. Every word contributes to understanding the tool's scope, making it appropriately sized and well-structured.

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 tool's complexity (aggregating multiple data types) and lack of annotations/output schema, the description is minimally adequate. It covers what data is included but misses details like response format, data granularity, or how it differs from combining sibling tools. For a read-only tool with no structured metadata, it should provide more 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 0 parameters with 100% schema description coverage, so no parameter documentation is needed. The description appropriately adds no parameter details, focusing on the tool's purpose instead. Baseline is 4 for zero parameters, as it avoids unnecessary repetition.

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's purpose with a specific verb ('Get') and resource ('overview of all health data'), listing key data types (VO2 max, activities, sleep, race predictions). It distinguishes from siblings by aggregating multiple data types, unlike single-focus tools like get_vo2max or get_sleep, though it doesn't explicitly contrast them.

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 a comprehensive health summary, suggesting it's an alternative to calling multiple sibling tools individually. However, it lacks explicit guidance on when to use this vs. specific tools (e.g., if only sleep data is needed) or any prerequisites/exclusions, leaving usage context somewhat inferred.

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

get_heart_rate_zonesB

Get personalized heart rate training zones based on max HR and lactate threshold

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.2/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 behavioral disclosure. It states what the tool does but lacks details on traits like whether it's read-only (implied by 'Get'), requires authentication, has rate limits, or returns data in a specific format. This is a significant gap for a tool with no structured safety hints.

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, efficient sentence that front-loads the core action ('Get personalized heart rate training zones') and adds necessary detail ('based on max HR and lactate threshold'). There is zero waste, making it appropriately sized for a simple tool.

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 tool's low complexity (0 parameters, no output schema, no annotations), the description is minimally complete. It states the purpose clearly but lacks behavioral context and usage guidelines. For a fitness data tool, more details on output format or integration with siblings would enhance completeness, but it's adequate for basic understanding.

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 input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description adds value by specifying the basis for calculations ('max HR and lactate threshold'), which clarifies the tool's logic beyond the empty schema. This compensates well for the lack of parameters.

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's purpose: 'Get personalized heart rate training zones' with specific criteria ('based on max HR and lactate threshold'). It distinguishes from siblings like get_activities or get_sleep by focusing on heart rate zones, but doesn't explicitly differentiate from similar tools like get_health_summary or get_training_load, which might overlap in fitness data.

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. The description implies usage for heart rate zone calculation but doesn't specify contexts (e.g., training planning vs. health monitoring) or exclusions (e.g., if other tools like get_training_load might be better for broader metrics). This leaves the agent to infer usage without explicit direction.

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

get_race_predictionsB

Get predicted race times for 5K, 10K, half marathon, and marathon based on current fitness

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool 'Get[s] predicted race times,' implying a read-only operation, but doesn't clarify if it requires specific permissions, how predictions are generated (e.g., algorithm details), latency, or error handling. For a tool with zero annotation coverage, this leaves significant gaps in understanding its behavior and constraints.

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, efficient sentence that front-loads the core action ('Get predicted race times') and includes essential details (distances and fitness basis) without waste. Every word contributes to understanding the tool's purpose, making it appropriately sized and well-structured for quick comprehension.

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 tool's complexity (predictive analysis based on fitness) and lack of annotations and output schema, the description is minimally adequate. It covers the purpose and output types (race times for specific distances) but doesn't explain how predictions are derived, what data sources are used, or the format of results. For a predictive tool with no structured output, more detail would improve completeness, but it meets the baseline for a simple read operation.

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 input schema has 0 parameters with 100% coverage, so no parameters need documentation. The description adds value by specifying the types of race distances predicted (5K, 10K, etc.) and the basis ('current fitness'), which provides context beyond the empty schema. This compensates adequately for the lack of parameters, earning a high score as it clarifies what the tool does without redundant parameter info.

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's purpose with a specific verb ('Get') and resource ('predicted race times'), specifying the distances (5K, 10K, half marathon, marathon) and the basis ('based on current fitness'). It distinguishes from siblings like get_activities or get_health_summary by focusing on race predictions rather than raw data or summaries. However, it doesn't explicitly differentiate from all siblings (e.g., get_training_load might overlap in fitness assessment).

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?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing fitness data from other tools), exclusions, or comparisons to siblings like get_vo2max (which might relate to fitness metrics). Usage is implied by the phrase 'based on current fitness,' but this is vague and lacks explicit context for selection.

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

get_sleepC

Get sleep statistics including average duration and total nights tracked. Optionally filter by date range.

ParametersJSON Schema
NameRequiredDescriptionDefault
start_dateNoStart date (YYYY-MM-DD)
end_dateNoEnd date (YYYY-MM-DD, exclusive recommended)

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions 'Get sleep statistics' which implies a read-only operation, but doesn't address permissions, rate limits, error conditions, or response format. For a tool with zero annotation coverage, this is a significant gap in 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?

The description is concise and front-loaded, stating the core purpose in the first clause. The second sentence adds optional filtering information. Both sentences earn their place, though it could be slightly more structured (e.g., by explicitly noting parameters are optional).

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

Completeness2/5

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

Given the lack of annotations and output schema, the description is incomplete. It doesn't explain what 'sleep statistics' includes beyond 'average duration and total nights tracked,' nor does it cover behavioral aspects like permissions or error handling. For a tool with no structured metadata, this leaves significant gaps for an agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds minimal value beyond the input schema, which has 100% coverage. It mentions 'Optionally filter by date range,' aligning with the two parameters (start_date, end_date) but doesn't provide additional context like default behavior or date format details. With high schema coverage, the baseline score of 3 is appropriate.

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's purpose: 'Get sleep statistics including average duration and total nights tracked.' It specifies the verb ('Get') and resource ('sleep statistics') with concrete metrics. However, it doesn't explicitly differentiate from sibling tools like 'get_health_summary' which might also include sleep data, preventing a perfect score.

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?

The description provides minimal guidance: 'Optionally filter by date range.' It doesn't specify when to use this tool versus alternatives like 'get_health_summary' or other sibling tools, nor does it mention prerequisites or exclusions. This leaves the agent with little context for tool selection.

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

get_training_loadB

Get training load data including acute/chronic workload ratio to assess overtraining risk

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNoNumber of days (default: 30)

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 carries the full burden of behavioral disclosure. It states the tool retrieves data (implying read-only behavior) but doesn't mention any behavioral traits such as authentication requirements, rate limits, data freshness, or error conditions. For a tool with no annotations, this leaves significant gaps in understanding how it operates.

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-structured sentence that efficiently conveys the tool's purpose and key data included. It's front-loaded with the main action ('Get training load data') and adds necessary detail without redundancy. Every word earns its place, making it highly concise.

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 tool's moderate complexity (retrieving calculated metrics), no annotations, no output schema, and 1 parameter with full schema coverage, the description is minimally adequate. It explains what data is fetched and its purpose, but lacks details on output format, behavioral constraints, or integration with sibling tools. This leaves room for improvement in completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage, with the 'days' parameter documented as 'Number of days (default: 30)'. The description doesn't add any meaning beyond this, as it doesn't explain how the 'days' parameter affects the training load calculation or the acute/chronic ratio. With high schema coverage, the baseline score of 3 is appropriate.

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's purpose: 'Get training load data' specifies the verb and resource, and 'including acute/chronic workload ratio to assess overtraining risk' adds valuable context about what specific data is retrieved and its purpose. However, it doesn't explicitly differentiate this tool from sibling tools like 'get_activities' or 'get_health_summary', which might also provide related fitness data.

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?

The description provides no guidance on when to use this tool versus alternatives. It mentions assessing overtraining risk, which implies a use case, but doesn't specify prerequisites, compare it to sibling tools, or indicate when not to use it. For example, it doesn't clarify if this should be used instead of 'get_activities' for workload analysis.

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

get_vo2maxC

Get VO2 max history and trends. VO2 max measures cardiovascular fitness in ml/kg/min.

ParametersJSON Schema
NameRequiredDescriptionDefault
start_dateNoStart date (YYYY-MM-DD)
end_dateNoEnd date (YYYY-MM-DD, exclusive recommended)
sportNoFilter by sport (e.g., 'running', 'cycling')

TDQS

C2.9/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 behavioral disclosure. It states this is a 'get' operation, implying read-only behavior, but doesn't address critical aspects like authentication needs, rate limits, data freshness, or error conditions. For a tool with no annotation coverage, this leaves significant gaps in understanding how it behaves in practice.

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 appropriately sized with two sentences that efficiently convey the tool's purpose and define VO2 max. It's front-loaded with the core functionality, though the second sentence could be integrated more seamlessly. There's minimal waste, earning a high score for conciseness.

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 tool's moderate complexity (3 parameters, no output schema, no annotations), the description is minimally adequate. It explains what VO2 max is but doesn't cover return values, error handling, or data format. Without annotations or output schema, more context on behavioral traits would improve completeness, but it meets basic requirements for a read operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds no parameter-specific information beyond what's already in the input schema, which has 100% coverage with clear descriptions for start_date, end_date, and sport. Since schema_description_coverage is high (>80%), the baseline score is 3, as the description doesn't compensate with additional semantic context like date range defaults or sport filtering nuances.

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's purpose: 'Get VO2 max history and trends' with the specific resource (VO2 max) and verb (get). It distinguishes VO2 max as a measure of cardiovascular fitness in ml/kg/min, which helps differentiate it from siblings like get_heart_rate_zones or get_health_summary. However, it doesn't explicitly contrast with siblings beyond defining VO2 max.

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?

The description provides no guidance on when to use this tool versus alternatives like get_health_summary or get_activities, which might also contain fitness data. It lacks context about prerequisites, such as whether VO2 max data is available only for certain users or time periods, and offers no explicit when-not-to-use advice.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 7 tool updatesv1.0.0
    • First observedget_activities
    • First observedget_health_summary
    • First observedget_heart_rate_zones
    • First observedget_race_predictions
    • First observedget_sleep
    • First observedget_training_load
    • First observedget_vo2max

TDQS

A3.5/5.0

Scored across 7 tools

Disambiguation5/5

Each tool has a clearly distinct purpose targeting specific health and fitness data domains, such as activities, health summary, heart rate zones, race predictions, sleep, training load, and VO2 max. There is no overlap in functionality, and an agent can easily differentiate between them based on their descriptive names and scopes.

Naming Consistency5/5

All tool names follow a consistent 'get_' prefix pattern with descriptive nouns, such as get_activities, get_health_summary, and get_heart_rate_zones. This uniformity makes the tool set predictable and easy to navigate, adhering to a clear verb_noun convention throughout.

Tool Count5/5

With 7 tools, the server is well-scoped for a health and fitness data domain, covering key aspects like activities, sleep, training metrics, and predictions. Each tool serves a distinct purpose without redundancy, making the count appropriate and manageable for the server's intended use.

Completeness4/5

The tool set provides comprehensive read-only coverage for retrieving health and fitness data, including summaries, detailed metrics, and predictions. A minor gap exists in the lack of write or update operations, but for a data retrieval-focused server, this is reasonable and agents can work effectively with the available tools.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers