mcpField
P
Paceva for Garmin

Paceva for Garmin

Local
github.com/OwenScheuerHealth0Updated 2d ago

About Paceva for Garmin

Paceva for Garmin is a local, read-only MCP server for querying personal Garmin Connect data. It is for people who want an MCP app to inspect health and activity records using their own Garmin Personal API key, without added scores or advice.

Key features

  1. 01Sleep, HRV, Body Battery, and stress data
  2. 02Daily summaries and health measurements
  3. 03Training logs and activity details
  4. 04Profile, weight, hydration, and food records
  5. 05Local key storage and read-only access

Use cases

  1. 01Review sleep and HRV trends
  2. 02Compare recent running activities
  3. 03Inspect daily steps and heart rate
  4. 04Ask an MCP app about Garmin health records

MCP support

Exposes Garmin Personal API data to MCP clients through read-only tools for daily metrics, sleep, HRV, activities, and other available records. The server runs locally and uses the user's Garmin Personal API key.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

mcp.json · Universal config
{
"mcpServers": {
"owenscheuer-paceva-garmin": {
"command": "npx",
"args": [
"-y",
"paceva-garmin-mcp"
],
"env": {
"GARMIN_PERSONAL_API_KEY": "<GARMIN_PERSONAL_API_KEY>"
}
}
}
}
Run commandnpx -y paceva-garmin-mcp
Environment variables to set
GARMIN_PERSONAL_API_KEYSecretYour Garmin Personal API key (optional if saved with `npx paceva-garmin-mcp setup`).

Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.

Packages
npmpaceva-garmin-mcp0.1.0

Tools

18

Saved tool list · updated 1d ago

ParameterTypeRequiredDescription
datestringNoCalendar date, YYYY-MM-DD. Defaults to today.
include_seriesbooleanNoInclude minute-by-minute series. Off by default: long series come back as count, min, max and average.

Details

From the project README

Paceva: your Garmin data, in Claude

Paceva for Garmin

Ask Claude or any MCP app about your own Garmin data: sleep, HRV, Body Battery, stress, resting heart rate, steps and activities.

"How did I sleep last night?" "Is my HRV trending down this month?" "Compare my last three long runs." "What could I run a half marathon in right now?"

Free, open source and local. It runs on your computer with your own Garmin Personal API key. Your data goes from Garmin to your computer to your AI app, and never through anyone else's server. It's read-only: it can't change anything in Garmin Connect.

Set up

Claude Desktop: one download
  1. Download paceva-garmin.mcpb and open it.
  2. Claude asks for your Garmin key: open Garmin Connect › Personal API Key, select Create Key, copy it, paste it in.
  3. Switch Paceva for Garmin on. Claude installs extensions switched off.
  4. Ask Claude: "How did I sleep last night?"
Everything else: one command

Needs Node.js 20 or newer. In a terminal:

npx github:OwenScheuer/paceva-garmin-mcp

It opens Garmin for you, picks up the key once you've copied it, checks it with Garmin, and adds itself to Claude Desktop, Claude Code, Cursor and Windsurf, whichever you have. Restart the app and ask away.

For any other MCP app, add this to its MCP servers:

"garmin": { "command": "npx", "args": ["-y", "github:OwenScheuer/paceva-garmin-mcp"] }

ChatGPT only connects to servers on the internet, not ones on your computer, so it can't use this yet.

New key later? npx github:OwenScheuer/paceva-garmin-mcp --new-key. Check it's working: npx github:OwenScheuer/paceva-garmin-mcp check.

What it can read

ToolWhat it gives your AI
get_daily_overviewOne day at a glance: summary, sleep, HRV and Body Battery
get_daily_summariesSteps, calories, resting HR, stress and intensity minutes per day
get_sleepOne night in detail, or nightly summaries over a range
get_hrvOvernight HRV, baseline and status
get_body_batteryCharged, drained, high and low
get_stress · get_steps · get_heart_rate · get_spo2Daily stress, steps, heart rate and Pulse Ox
get_training_logEvery activity in a period (up to a year) with Garmin's main fields: distance, time, speed, heart rate, power, TSS, fastest splits, time in zones
list_activities · get_activityYour activities, and any one in full
get_profileProfile settings and heart rate zones
get_weight · get_fitness_age · get_hydration · get_food_log · get_menstrual_cycleThe rest of what Garmin's Personal API offers

Just Garmin's data. No scores, models or advice are added: every number is Garmin's, in Garmin's own field names and units. Ask "what could I run a 10K in?" and any prediction is your AI's own, made from that data.

Ranges are capped at 92 days per call (a year for the training log). Minute-by-minute series (heart rate through the day, sleep stages) come back as a count, min, max and average unless your AI asks for the full series.

Garmin's Personal API doesn't include training readiness, training status or recovery time, so neither does this.

Your key and your privacy

  • Your key is saved to ~/.config/garmin/connect-personal-api-key, the same place Garmin's own tools look, readable only by you. You can also set GARMIN_PERSONAL_API_KEY instead.
  • The short-lived access token Garmin issues is cached in ~/.config/paceva-garmin/token.json, also readable only by you.
  • The data your AI app reads is sent to that app's provider (for example Anthropic or OpenAI) as part of your chat, under their privacy terms.
  • To revoke access, delete the key in Garmin Connect.

Garmin's Personal API is for your own data. Each person uses their own key; please don't build a service that collects other people's keys.

Troubleshooting

  • "Garmin didn't accept your Personal API key": it expired or was deleted. Run npx github:OwenScheuer/paceva-garmin-mcp --new-key. (For the Claude Desktop extension, update the key in Settings › Extensions.)
  • "No Garmin Personal API key found": run npx github:OwenScheuer/paceva-garmin-mcp in a terminal.
  • "Garmin is rate-limiting requests": wait a minute and ask again.

Development

npm install
npm test
npm run build
./scripts/pack-mcpb.sh   # builds paceva-garmin.mcpb

Not affiliated with or endorsed by Garmin. Garmin and Garmin Connect are trademarks of Garmin Ltd. or its subsidiaries.

MIT licensed. Made by Paceva.

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.