mcp-garmin
Read-only access to Garmin Connect health and fitness data, including daily health metrics, activities, workouts, body composition, and profile information.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mcp-garminShow my daily summary for today"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
mcp-garmin
MCP server for Garmin Connect health and fitness data. Read-only access to daily health metrics, activities, workouts, and body composition via the python-garminconnect library.
Prerequisites
Python 3.14+
A Garmin Connect account
Related MCP server: garmin-connect-mcp
Authentication
Garmin Connect uses email/password authentication with optional MFA. The library persists session tokens to ~/.garminconnect/garmin_tokens.json after initial login.
First-time setup
Run the interactive login command to establish tokens. This handles MFA prompts:
# Set credentials (or the CLI will prompt you)
export GARMIN_EMAIL="you@example.com"
export GARMIN_PASSWORD="your-password"
# Interactive login -- prompts for MFA if enabled
uvx mcp-garmin-loginRunning the server
The MCP server requires GARMIN_EMAIL and GARMIN_PASSWORD environment variables. It reuses tokens saved by the login step and refreshes them automatically.
export GARMIN_EMAIL="you@example.com"
export GARMIN_PASSWORD="your-password"Configuration
Claude Desktop
Add to ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"garmin": {
"command": "uvx",
"args": ["mcp-garmin"],
"env": {
"GARMIN_EMAIL": "you@example.com",
"GARMIN_PASSWORD": "your-password"
}
}
}
}Claude Code
claude mcp add garmin -- uvx mcp-garminSet GARMIN_EMAIL and GARMIN_PASSWORD in your shell environment.
Tools
All date parameters use ISO format (YYYY-MM-DD).
Daily Health
Tool | Description |
| Steps, calories, distance, active minutes |
| Heart rate data |
| Sleep stages and metrics |
| Detailed stress levels |
| All-day stress summary |
| Body Battery (energy) levels |
| Detailed step data |
| Heart Rate Variability |
| Blood oxygen saturation |
| Respiratory rate |
| Training readiness score |
| Intensity minutes |
| Resting heart rate |
Activities
Tool | Description |
| List recent activities (paginated) |
| Activities within a date range |
| All activities for a specific date |
| Most recent activity |
| Single activity by ID |
| Detailed metrics (laps, charts) |
| Split/lap data |
| Weather during activity |
| Heart rate zone distribution |
| Equipment used |
| Strength training sets |
Workouts
Tool | Description |
| List saved workout templates |
| Single workout by ID |
Body Composition
Tool | Description |
| Body composition over a date range |
| Weight measurements over a date range |
Profile & Fitness
Tool | Description |
| Profile information |
| VO2 max and fitness metrics |
| Calculated fitness age |
| Training status |
| Personal bests |
Development
uv sync
uv run pytest tests/ -x -q
uv run ruff check src/ tests/
uv run pyright src/Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/obrien-matthew/mcp-garmin'
If you have feedback or need assistance with the MCP directory API, please join our Discord server