
MCP server for your own Garmin data, using Garmin's Personal API key.
概览
Your whole Garmin history, in Claude. Every activity since your first watch, the original FIT files, sleep, HRV, Body Battery. Runs on your machine with a key only you hold. In October 2026 Garmin opened a Personal tier of the Connect API: one key, one person, your own data, no application to file. This is a TypeScript MCP server over that API, so Claude Desktop, Claude Code, Cursor, ChatGPT or any other MCP client can ask questions of your data directly. It is read-only. Nothing is written to your Garmin account and nothing is sent anywhere except to the AI client you connect. Not affiliated with Garmin. Garmin and Garmin Connect are trademarks of Garmin Ltd. 1. Create a key at connect.garmin.com/app/settings/personalApiToken. Pick . 2. Save it: ChatGPT and the Claude mobile app can only reach servers over HTTPS. See Running it on a server. Use the same node .../dist/index.js as the command in any other client's config. Needs Node 20 or newer.
README
以下为原文 README 节选,完整内容请查看原文。
garmin-personal-mcp
Your whole Garmin history, in Claude. Every activity since your first watch, the original FIT files, sleep, HRV, Body Battery. Runs on your machine with a key only you hold.
In October 2026 Garmin opened a Personal tier of the Connect API: one key, one person, your own data, no application to file. This is a TypeScript MCP server over that API, so Claude Desktop, Claude Code, Cursor, ChatGPT or any other MCP client can ask questions of your data directly. It is read-only. Nothing is written to your Garmin account and nothing is sent anywhere except to the AI client you connect.
Not affiliated with Garmin. Garmin and Garmin Connect are trademarks of Garmin Ltd.
Quick start
-
Create a key at connect.garmin.com/app/settings/personalApiToken. Pick 1 year.
-
Save it:
mkdir -p ~/.config/garmin && chmod 700 ~/.config/garmin printf '%s' 'YOUR_KEY' > ~/.config/garmin/connect-personal-api-key chmod 600 ~/.config/garmin/connect-personal-api-key -
Connect a client:
# Claude Code claude mcp add garmin -- npx -y garmin-personal-mcp// Claude Desktop, Cursor, Windsurf, Zed: claude_desktop_config.json or the equivalent { "mcpServers": { "garmin": { "command": "npx", "args": ["-y", "garmin-personal-mcp"] } } }ChatGPT and the Claude mobile app can only reach servers over HTTPS. See Running it on a server.
From a clone (no npm needed):
git clone https://github.com/Shape-Calendar/garmin-personal-mcp && cd garmin-personal-mcp pnpm install && pnpm build claude mcp add garmin -- node "$PWD/dist/index.js"Use the same
node .../dist/index.jsas the command in any other client’s config.
Needs Node 20 or newer. The key can also come from GARMIN_PERSONAL_API_KEY or --api-key-file . The file path is the one Garmin’s own Python client reads, so the two share a key.
What you can ask
- “How has my weekly running volume changed over the last three years?”
- “Compare my resting heart rate and sleep this month with the same month last year.”
- “Pull the FIT file for yesterday’s ride and show me power and heart rate per lap.”
安装
npx -y garmin-personal-mcp配置
// Claude Desktop, Cursor, Windsurf, Zed: claude_desktop_config.json or the equivalent
{ "mcpServers": { "garmin": { "command": "npx", "args": ["-y", "garmin-personal-mcp"] } } }