Skip to main content
Glama
hsavelli

Garmin MCP Server

by hsavelli

Garmin MCP (Model Context Protocol) Server

A Model Context Protocol server that provides seamless integration with Garmin Connect, allowing AI assistants to access your Garmin fitness and health data.

Features

  • Activity Data: Access recent activities, detailed workout information

  • Health Metrics: Retrieve heart rate, sleep, and stress data

  • Daily Statistics: Get daily activity summaries and statistics

  • Device Information: Query connected Garmin device details

  • Date Range Queries: Fetch historical data for specific time periods

Related MCP server: GC-MCP

Prerequisites

  • Python 3.8 or higher

  • A Garmin Connect account

  • MCP-compatible AI assistant (Claude Desktop, etc.)

Installation

  1. Clone this repository:

git clone https://github.com/hsavelli/Garmin-MCP.git
cd Garmin-MCP
  1. Install dependencies:

pip install garminconnect mcp

Note: in some instances you might need to use the command pip3 instead.

Configuration

For Claude Desktop

Add the following to your Claude Desktop configuration file:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

Windows: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "garmin": {
      "command": "python", 
      "args": ["/path/to/garmin_mcp.py"]
    }
  }
}

Note: in some instances you might need to use the command python3 instead.

Usage

Once configured, the MCP server provides the following capabilities:

Resources

The server exposes these Garmin data resources:

  • garmin://activities/recent - Recent activities list

  • garmin://stats/daily - Today's statistics

  • garmin://health/heart-rate - Heart rate data

  • garmin://health/sleep - Sleep tracking data

  • garmin://health/stress - Stress level measurements

  • garmin://device/info - Connected device information

Tools

Available tools for interacting with Garmin Connect:

  1. authenticate_garmin - Authenticate with your Garmin Connect account

    • Parameters: email, password

  2. get_activity_details - Get detailed information about a specific activity

    • Parameters: activity_id

  3. get_stats_range - Get statistics for a date range

    • Parameters: start_date, end_date (format: YYYY-MM-DD)

  4. sync_device - Trigger device sync with Garmin Connect

Example Interactions

In your AI assistant, you can:

"Authenticate with my Garmin account using email@example.com"
"Show me my recent activities"
"What was my heart rate data today?"
"Get my sleep data from last night"
"Show me my activity statistics for the past week"

Security Notes

  • Credentials are never stored by the MCP server

  • Authentication is required for each session

  • All data is fetched directly from Garmin Connect API

  • No data is cached or persisted locally

Development

Project Structure

garmin_mcp.py    # Main MCP server implementation
README.md        # This file

Adding New Features

To add new Garmin data endpoints:

  1. Add a new resource in list_resources()

  2. Implement the data fetching logic in read_resource()

  3. Create a helper method for the specific data type

  4. Optionally add a new tool in list_tools() for advanced functionality

Troubleshooting

Authentication Issues

  • Ensure your Garmin Connect credentials are correct

  • Check if you have 2FA enabled (may require app-specific password)

  • Verify your account isn't locked due to too many attempts

Connection Errors

  • Check your internet connection

  • Garmin Connect may be temporarily unavailable

  • Rate limiting may apply for excessive requests

MCP Connection Issues

  • Verify the path to garmin_mcp.py in your configuration

  • Ensure Python is in your system PATH

  • Check MCP server logs for detailed error messages

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Disclaimer

This project is not affiliated with, endorsed by, or sponsored by Garmin Ltd. or its subsidiaries. It uses the unofficial garminconnect Python library to interact with Garmin Connect services.

Acknowledgments

A
license - permissive license
-
quality - not tested
D
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

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

Related MCP Servers

  • F
    license
    B
    quality
    D
    maintenance
    Integrates with Garmin Connect to retrieve activity data, health metrics, and provide AI-powered training insights and personalized coaching recommendations based on your fitness activities and performance trends.
    14
  • F
    license
    -
    quality
    B
    maintenance
    Enables AI assistants to access and query Garmin Connect health and fitness data, including sleep, HRV, training load, and activities, with an optional coaching plugin for personalized training plans.
    0
    4
  • A
    license
    -
    quality
    D
    maintenance
    Enables AI assistants to query live Garmin Connect health and fitness data, including daily metrics, activities, sleep analysis, and trends via natural language.
    MIT

View all related MCP servers

Related MCP Connectors

  • Garmin data in Claude & ChatGPT via the Garmin Health API. OAuth sign-in, no password sharing.

  • Garmin data in Claude: 135 tools — activities, sleep, HRV, training, workouts. Free, open source.

  • Connect your Oura Ring account securely in minutes. Enable authorized access to your sleep, activi…

View all MCP Connectors

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/hsavelli/Garmin-MCP'

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