garmin-mcp
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., "@garmin-mcpHow many steps did I take yesterday?"
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.
Garmin MCP Server
Connect your Garmin watch data to Claude Desktop. This is a lightweight Model Context Protocol server that lets Claude answer questions like "How did I sleep last night?" or "Summarize my workouts this week" using your real Garmin Connect data.

Tools
Tool | What it returns |
| Step count and step goal for a date |
| Steps, calories, distance, floors, intensity minutes, resting HR, stress, body battery |
| Sleep duration, deep/light/REM/awake breakdown, sleep score |
| Resting, min, max, and 7-day average resting heart rate |
| Recent workouts with distance, duration, pace, calories, heart rate |
| Average and max stress level for a date |
Setup
Requires Python 3.10+ and Claude Desktop.
git clone https://github.com/cadencheng888/garmin-mcp.git
cd garmin-mcp
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt1. Log in to Garmin (one time)
python garmin_login.pyEnter your Garmin Connect email and password (and an MFA code if your
account uses one). OAuth tokens are saved to ~/.garminconnect and last
about a year — your password is never stored anywhere. If you see
429 — IP rate limited by Garmin warnings, ignore them; the library
falls back to another login method automatically.
2. Add the server to Claude Desktop
Edit your Claude Desktop config:
Mac:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"garmin": {
"command": "/absolute/path/to/garmin-mcp/.venv/bin/python",
"args": ["/absolute/path/to/garmin-mcp/server.py"]
}
}
}3. Try it
Fully quit Claude Desktop (Cmd+Q) and reopen it. Click the tools icon in the chat input to confirm the server is listed, then ask:
How many steps did I take yesterday?
Adding more tools
Add another @mcp.tool() function in server.py that calls any
garminconnect method
(body battery, VO2 max, training status, hydration, weight, and more), then
restart Claude Desktop.
Disclaimer
This project uses the unofficial garminconnect library, which talks to
Garmin's private API. It is not affiliated with or endorsed by Garmin, and
the API can change without notice. Use at your own risk.
This server cannot be installed
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/cadencheng888/garmin-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server