Independent by design · no pay-to-rank placements  · How we evaluate tools →
Anclum Submit
H

happyc0der/garmin-connect-api

Read and write Garmin Connect from Claude, Python or HTTP: activities, strength sets, health data, workouts, weigh-ins. MCP server.

Before you install: a copy-paste command is available · license MIT · link reachable

SECURITY.md ✓
View on GitHub ↗Link checked 2026-11-12 · HTTP 200 · opens the vendor's own site
Install & config
  1. Copy the command above
  2. Paste it as one entry under mcpServers in claude_desktop_config.json — local servers take command + args (example: clients)
  3. Restart your client
Client config (built from the install command this repo gives)
{
  "mcpServers": {
    "happyc0der-garmin-connect-api": {
      "command": "uvx",
      "args": ["garmin-connect-api@latest"]
    }
  }
}

Parsed from the README we fetched on 2026-10-26; we have not executed it.

command/args come from the install command the repository states. When it is ambiguous, the project README wins.
VS Code (.vscode/mcp.json - the key is servers)
{
  "servers": {
    "happyc0der-garmin-connect-api": {
      "command": "uvx",
      "args": ["garmin-connect-api@latest"]
    }
  }
}
Same server, but VS Code keeps it under <code>servers</code>.
Claude Code (command line)
claude mcp add --transport stdio happyc0der-garmin-connect-api -- uvx garmin-connect-api@latest
Claude Code does not read a config file; add the server with this command.
Key names differ by client: Clients & CLI
Star count
2 ★ · happyc0der/garmin-connect-api · read from the GitHub search API · (checked 2026-11-13 20:00:50)
Source
collected from the punkpeye/awesome-mcp-servers list · type: MCP server
Harvest history
first seen 2026-10-23 · last seen 2026-11-14 · seen 26× · listed by 23 sources
Score
score 2,300 · 2 ★ · 23 sources · mcp
Install
uvx garmin-connect-api@latest
FAQ (answers come from our records)
How do I install it?
The repository provides this install command: uvx garmin-connect-api@latest. It comes from the repository itself; we cannot guarantee it runs as-is in your client.
Who is it for?
We filed it under these tags: MCP 服务. The tags come from the entry itself, not a taxonomy we imposed.
Who maintains it?
repository happyc0der/garmin-connect-api;first catalogued 2026-10-23;last seen 2026-11-14。There is no official certification or quality rating here — we record sources and dates only.

# garmin-connect-api

以下摘录自该仓库的 README(片段) · 在 GitHub 读完整 README →

Read and write Garmin Connect from an MCP client such as Claude, from Python, or over a local HTTP
API: activities with per-set strength detail, daily health data, planned workouts, completed
strength sessions, and weigh-ins with full body composition.
> Unofficial. Not affiliated with or endorsed by Garmin. It uses the same private endpoints as
> the Garmin Connect website, through python-garminconnect,
> because Garmin offers no public API for individuals. Those endpoints can change without notice,
> and using them is not sanctioned by Garmin's terms. It is meant for your own account and your
> own data.
## Status
v0.3. Reads activities with per-set strength detail, laps and pool-swim lengths, daily health,
trends over up to two years and named personal records; writes strength, run, ride and swim
workouts, completed strength sessions, set corrections and weigh-ins with body composition. 38
tools, every one checked against a real account. Bug reports and feature requests go to
GitHub Issues.
## Quick start
You need uv and Python 3.12 or newer.
1. Log in once, at a terminal:
bash
uvx --from garmin-connect-api garmin login
This is the only place a password is ever typed. It asks for your Garmin email, password and any
multi-factor code, then stores tokens in ~/.garmin-api/default, readable by your user only.
Nothing else ever prompts for a password; without tokens, every tool says to run this.
2. Add the server to your MCP client.
Claude Code:
bash
claude mcp add --scope user --transport stdio garmin -- uvx garmin-connect-api@latest
Claude Desktop, in claudedesktopconfig.json (in ~/Library/Application Support/Claude/ on
macOS, %APPDATA%\Claude\ on Windows):
json
"mcpServers": {
"garmin": {
"command": "uvx",
"args": ["garmin-connect-api@latest"]
@latest makes uvx check for a new release each time the server starts. Without it, uvx keeps
running the first version it downloaded.
3. Ask. "How did I sleep this week?", "Did my pace hold up in yesterday's swim?",
"How has my resting heart rate moved since summer?", "Show my last strength session's sets, and
change sets 3 to 5 to dumbbell rows", "Schedule a swim for Thursday: 200 easy, then 8 x 100 free
on 20 seconds rest, in a 25-yard pool".
## What it can do
38 tools, each annotated so your client knows which only read (24), which add something (8) and
which delete or overwrite (6), and can ask before running those. Every argument, down to a
workout step's pace target, carries a description.
| Read | Write |
| Activities, filtered by type and date | Create a strength workout, schedule it, push it to a watch |
| Per-set strength detail: exercise, reps, weight | Create a run, ride or pool swim workout, with targets |
| Laps for runs and rides; pace per 100 for pool swims | Log a completed strength session, with every set |
| A day in one answer: steps, heart rate, stress, body battery, sleep, HRV, readiness | Correct a session's sets: exercise, reps, weight |
| Trends over up to two years: twelve metrics, daily, weekly or monthly | Record a weigh-in, or a full body composition reading |
| Personal records, named and in units | Rename an activity or change its description |
Listed badge (optional)
Copy this line into the README if you want the listing mark. Optional, and it does not affect being listed.
[![Listed on Anclum](https://anclum.com/badge/listed.svg)](https://anclum.com/en/s/happyc0der-garmin-connect-api/)
Source
awesome · https://github.com/happyc0der/garmin-connect-api
Browse by field
MCP servers
Traction
2 ★
Listed by
23 independent sources
added
today
Security policy
the repository has SECURITY.md at its root (we checked that the file exists, not what it says)

More like this

All 6,229 →

Filed under

Every tag opens the full list for that filter. Counts are the live catalogue figures.

Browse all fields →

← Back to index