Mirobody
Lab results to LOINC codes and UCUM units, symptoms and diagnoses to ICPC-3. Offline, no API key.
Description from the maker (original English)
Read-only Garmin Connect data on Garmin's official Personal API: training, sleep, HRV, recovery.
These three are never merged into one score: opinions, measurements and popularity are different things.
We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.
Pick the AI app you use, then copy the settings.
GARMIN_PERSONAL_API_KEYValues marked secret are keys to your account. Never share them or paste them into a chat.
You need
Which app do you use?
Pick your app above. We remember it, so next time the button says “Install in …”.
Open Claude Desktop → Settings → Developer → Edit Config, and paste this into claude_desktop_config.json
{
"mcpServers": {
"garmin-connect-personal-api": {
"command": "npx",
"args": [
"-y",
"@hannta/garmin-connect-personal-api-mcp"
],
"env": {
"GARMIN_PERSONAL_API_KEY": "your-value"
}
}
}
}Run this in your terminal
claude mcp add garmin-connect-personal-api --env GARMIN_PERSONAL_API_KEY=your-value -- npx -y @hannta/garmin-connect-personal-api-mcpFill in the empty values before running it.
Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"garmin-connect-personal-api": {
"command": "npx",
"args": [
"-y",
"@hannta/garmin-connect-personal-api-mcp"
],
"env": {
"GARMIN_PERSONAL_API_KEY": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
Paste into .vscode/mcp.json in your project
{
"servers": {
"garmin-connect-personal-api": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@hannta/garmin-connect-personal-api-mcp"
],
"env": {
"GARMIN_PERSONAL_API_KEY": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
This one runs on your computer, and ChatGPT can only connect to servers on the internet. Pick another app.
Your choice stays on this device in a cookie; no account needed.
These settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
Runs on your computer; the tool list appears in your AI app after you install it.
We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 9, 2026
The registry name was verified with the GitHub account hannta, which owns the repo
We have not read this repo from GitHub yet
We have not read this repo from GitHub yet
This one runs on your computer; there is no internet endpoint
Runs on your computer and uses local settings instead
Runs on your computer; we can only read tool lists from internet endpoints
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.
You need to fill in: GARMIN_PERSONAL_API_KEY
It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).
The GitHub repo last changed –, and the latest version (1.1.1) reached the registry 3 days ago.
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need Node.js on your computer.
In the same category: Mirobody, FHIR MCP Server, Google Health MCP
Servers in the same category from other makers, sorted by stars.
Reading a card:↓ Downloads per weeki★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi
Lab results to LOINC codes and UCUM units, symptoms and diagnoses to ICPC-3. Offline, no API key.
MCP server providing seamless access to FHIR APIs for AI tools and healthcare applications
Privacy-first unofficial Google Health API v4 MCP server for health, sleep, activity, HR agents
Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.
Not affiliated with or endorsed by Garmin. Garmin and Garmin Connect are trademarks of
Garmin Ltd.
A read-only MCP server that gives AI assistants your own Garmin Connect training, recovery and health data through the official Garmin Connect Personal API. Run it on your own computer, or host it on your own Cloudflare account to use it from anywhere.
AI agents: to set this up for a user, follow docs/AGENT-SETUP.md.
You need a Garmin Connect Personal API key, which you create in Garmin Connect on the web.
The quickest way, for Claude Code, Claude Desktop, Cursor, VS Code and other clients that run local servers. Needs Node.js 22+.
Paste this into your coding agent:
Connect @hannta/garmin-connect-personal-api-mcp
Or do it yourself: docs/LOCAL.md.
For Claude on the web and on mobile, and any other client that connects to remote servers with OAuth. The free plan is enough, apart from one known limitation.
Then connect your MCP client, such as Claude, ChatGPT, Cursor or VS Code.
| Tool | What it returns |
|---|---|
garmin_get_day | One day at a glance: sleep, HRV, Body Battery, stress, resting HR, intensity minutes, activities |
garmin_get_days | The same over a date range, one row per day, with daily activity totals and training load |
garmin_search_activities | Activities in a date range with Garmin IDs and fastest splits, or totals per week |
garmin_get_activity | One activity in depth: pace, HR zones, running dynamics, power, training effect, interval totals, strength sets per exercise |
garmin_get_activity_streams | One activity's time series (HR, pace, grade-adjusted pace, cadence, power, elevation, …) |
garmin_get_activity_laps | One row per lap and interval rep, from the activity's FIT file |
garmin_get_sleep | One night's sleep in detail: score components with optimal ranges, sleep need and why it changed, naps |
garmin_get_sleep_summaries | Sleep per night over a date range |
garmin_get_hrv | One night's HRV with baseline, status and overnight readings |
garmin_get_hrv_summaries | HRV per night over a date range |
garmin_get_daily_summaries | Resting HR, Body Battery, stress, intensity minutes, steps per day over a date range |
garmin_get_weight | Weigh-ins and body composition over a date range |
garmin_get_profile | Profile settings and heart-rate zones |
garmin_get_body_battery | Body Battery per day: charged, drained and the sleep / activity events behind it |
garmin_get_stress | Stress per day: average level and minutes at rest / low / medium / high |
garmin_get_steps | Steps per day with goal and distance |
garmin_get_heart_rate | One day's resting / min / max heart rate, optionally averaged per 15 minutes |
garmin_get_spo2 | One day's blood oxygen (Pulse Ox), optionally hourly with altitude |
garmin_get_fitness_age | Fitness age and its components (resting HR, BMI, vigorous days / minutes) |
garmin_get_heart_rate_zones | Heart-rate zones per sport |
garmin_get_weight_goals | Weight goals in effect (target kg) |
garmin_get_activity_workouts | The structured workout an activity followed: steps, targets (HR, pace, power) and repeats |
garmin_get_hydration | Hydration per day: intake, goal, sweat loss (ml) |
garmin_get_food_log | One day's food log: calories and macros eaten vs. goals, per meal and food |
garmin_get_wellness_activities | Wellness sessions (e.g. Health Snapshot, breathwork) with HR, stress, HRV, SpO2 |
garmin_get_menstrual_cycle | Cycle day, period and fertile window, predictions and cycle analysis |
garmin_get_menstrual_day | One day's logged flow, symptoms and moods, with that day's cycle summary |
YYYY-MM-DD in your time zone; sleep and HRV are keyed by the wake-up date.garmin_get_activity_laps can fail on long activities on the Cloudflare free plan. See Known limitations.Requires Node.js 24+.
npm install
cp .dev.vars.example .dev.vars # then add GARMIN_API_KEY and OWNER_PASSPHRASE npm run check # typecheck, lint, format check, tests npm run today # print today's recovery data using your key npm run dev # MCP server at http://localhost:8787/mcp npm run build # local server in dist/cli.mjs
To try the local server, connect the MCP Inspector to it and sign in with OWNER_PASSPHRASE.
Architecture and conventions: docs/DEVELOPMENT.md.
MIT