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)
Privacy-first unofficial Polar AccessLink v4 MCP server for AI health, sleep and training agents.
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.
POLAR_CLIENT_ID, POLAR_CLIENT_SECRET, POLAR_REDIRECT_URI, POLAR_TOKEN_PATH, POLAR_PRIVACY_MODE, POLAR_CACHE, POLAR_CACHE_PATH, POLAR_NO_CACHEValues 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": {
"polarmcp": {
"command": "npx",
"args": [
"-y",
"polar-mcp-unofficial"
],
"env": {
"POLAR_CLIENT_ID": "your-value",
"POLAR_CLIENT_SECRET": "your-value",
"POLAR_REDIRECT_URI": "your-value",
"POLAR_TOKEN_PATH": "your-value",
"POLAR_PRIVACY_MODE": "your-value",
"POLAR_CACHE": "your-value",
"POLAR_CACHE_PATH": "your-value",
"POLAR_NO_CACHE": "your-value"
}
}
}
}Run this in your terminal
claude mcp add polarmcp --env POLAR_CLIENT_ID=your-value --env POLAR_CLIENT_SECRET=your-value --env POLAR_REDIRECT_URI=your-value --env POLAR_TOKEN_PATH=your-value --env POLAR_PRIVACY_MODE=your-value --env POLAR_CACHE=your-value --env POLAR_CACHE_PATH=your-value --env POLAR_NO_CACHE=your-value -- npx -y polar-mcp-unofficialFill in the empty values before running it.
Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"polarmcp": {
"command": "npx",
"args": [
"-y",
"polar-mcp-unofficial"
],
"env": {
"POLAR_CLIENT_ID": "your-value",
"POLAR_CLIENT_SECRET": "your-value",
"POLAR_REDIRECT_URI": "your-value",
"POLAR_TOKEN_PATH": "your-value",
"POLAR_PRIVACY_MODE": "your-value",
"POLAR_CACHE": "your-value",
"POLAR_CACHE_PATH": "your-value",
"POLAR_NO_CACHE": "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": {
"polarmcp": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"polar-mcp-unofficial"
],
"env": {
"POLAR_CLIENT_ID": "your-value",
"POLAR_CLIENT_SECRET": "your-value",
"POLAR_REDIRECT_URI": "your-value",
"POLAR_TOKEN_PATH": "your-value",
"POLAR_PRIVACY_MODE": "your-value",
"POLAR_CACHE": "your-value",
"POLAR_CACHE_PATH": "your-value",
"POLAR_NO_CACHE": "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.
POLAR_CLIENT_ID envPOLAR_REDIRECT_URI envPOLAR_TOKEN_PATH envPOLAR_PRIVACY_MODE envPOLAR_CACHE envPOLAR_CACHE_PATH envPOLAR_NO_CACHE envThese 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 7, 2026
The registry name was verified with the GitHub account davidmosiah, 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: POLAR_CLIENT_SECRET
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 (0.3.6) reached the registry 4 months 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, Langcare MCP FHIR
Servers in the same category from other makers, sorted by stars.
Reading a card:★ 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
An MCP FHIR server written in Go for EMR systems like Epic and Cerner
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.
Upgrading to 0.6.0: read the migration guide for local-only HTTP, disabled authenticated-response caching, and stricter input/profile limits.
Polar MCP
Give your AI agent your Polar Nightly Recharge, training load, PPI and HRV data — locally.
Local-first MCP server — tokens never leave your machine .
⚡ One-command install with Delx Wellness for Hermes:
npx -y delx-wellness-hermes setup— preconfigures this connector and the other 8 in a dedicated Hermes profile.
Or wire it standalone into Claude Desktop / Cursor / ChatGPT Desktop — see the install section below.
Default is stdio. Optional Streamable HTTP — no session id, JSON responses, loopback only:
npx -y polar-mcp-unofficial --http
Env: POLAR_MCP_HOST, POLAR_MCP_PORT, POLAR_MCP_TRANSPORT=http.
Local-first MCP server that connects AI agents to your Polar training, sleep, Nightly Recharge and continuous-sample data.
Unofficial project. Not affiliated with, endorsed by or supported by Polar Electro Oy. Polar is a trademark of its respective owner. Use this only with your own Polar account and in line with the Polar AccessLink API terms.
Built by David Mosiah for people who use Claude, Cursor, Hermes, OpenClaw or other MCP-compatible agents to think about training load, recovery and endurance - without copy-pasting numbers from Polar Flow.
Part of Delx Wellness, a registry of local-first wellness MCP connectors.
If this connector helps your agent workflow, please star the repo. Stars make the project easier for other AI builders to discover and help Delx keep shipping local-first wellness infrastructure.
Polar has one of the deepest training-physiology stacks among consumer wearables - Nightly Recharge, continuous samples, PPI (pulse-to-pulse intervals), training targets, sport profiles, orthostatic and fitness tests. The Polar AccessLink Dynamic API v4 exposes this data, but with 16 fine-grained OAuth scopes and a structure that's harder to navigate than typical consumer APIs.
This package handles the OAuth dance locally, normalizes responses across the v4 endpoints, redacts GPS by default, and exposes Polar through the Model Context Protocol. Tokens never leave your machine.
You'll need a Polar AccessLink client (create one here) with redirect URI http://127.0.0.1:3000/callback.
npx -y polar-mcp-unofficial setup # interactive: paste client id + secret
npx -y polar-mcp-unofficial auth # opens browser, captures the OAuth code npx -y polar-mcp-unofficial doctor # verifies you're ready
Recommended scopes (request the ones matching the data you want):
activity:read calendar:read continuous_samples:read devices:read
nightly_recharge:read ppi_data:read profile:read routes:read skin_contact:read sleep:read sports:read temperature_measurement:read tests:read training_sessions:read training_targets:read user_subscription:read
Then add this to your MCP client config:
{
"mcpServers": { "polar": { "command": "npx", "args": ["-y", "polar-mcp-unofficial"] } } }
For Claude Desktop, run setup --client claude and the snippet is written for you.
Three things to ask first:
Use polar_connection_status to check setup, then run polar_daily_summary.
Give me a 5-line training brief for today.
Call polar_weekly_summary with response_format=json. Identify my biggest
training-load/recovery bottleneck and give me a next-week plan.
Use the polar_training_load_investigation prompt, after=2026-04-01.
Walk me through my recent training sessions + Nightly Recharge.
This package uses the official Polar AccessLink Dynamic API v4. When this README says raw, it means the upstream Polar JSON for a supported endpoint - not raw device sensor streams.
| Data | Available | Notes |
|---|---|---|
| Daily activity + calendar | yes | Requires activity:read / calendar:read |
| Sleep + sleep/wake vectors | yes | Requires sleep:read |
| Nightly Recharge (recovery score) | yes | Requires nightly_recharge:read; supported devices |
| Training sessions + training targets | yes | Requires training_sessions:read / training_targets:read |
| Continuous samples (HR over time) | yes | Requires continuous_samples:read |
| PPI samples (pulse-to-pulse intervals, HRV-relevant) | yes | Requires ppi_data:read; supported devices |
| Temperature measurements | yes | Requires temperature_measurement:read; supported devices |
| Skin contact periods | yes | Requires skin_contact:read |
| Tests (fitness / orthostatic / running) | yes | Requires tests:read |
| Routes + GPS geometry | opt-in | GPS coordinates redacted unless raw mode |
| Sports + sport profiles + devices | yes | Catalog and user metadata |
| Live device telemetry | - | Not exposed by Polar AccessLink |
Start with these:
polar_quickstart - personalized 3-step setup walkthrough that adapts to what's already configuredpolar_connection_status - verify local setup, scopes and readiness before calling Polarpolar_data_inventory — inventory supported data domains, scopes, privacy modes and recommended first calls without calling Polar APIs.polar_demo - synthetic example payloads so agents see the contract before calling the real APIpolar_daily_summary - sleep, activity, Nightly Recharge and training brief for todaypolar_weekly_summary - scorecard, comparison vs prior week, next-week planpolar_wellness_context - Nightly Recharge, sleep and training load in the shared wellness_context shapeAuth & diagnostics
polar_capabilities, polar_agent_manifest, polar_privacy_audit, polar_cache_statuspolar_get_auth_url, polar_exchange_code, polar_revoke_accessAccount
polar_get_account_data, polar_list_user_devices, polar_list_subscriptionsShared wellness profile (local, never Polar data)
polar_onboarding, polar_profile_get, polar_profile_update — the Delx Wellness profile shared with the other connectors; stores only what the user typed, never tokens or biomarkersActivity & sleep
polar_list_activity, polar_list_calendarpolar_list_sleeps, polar_list_sleep_wake_vectors — sleep lists hydrate available dates with the v4 sleep-result, sleep-evaluation, and sleep-score features by defaultpolar_list_nightly_rechargeHeart & physiology (date range)
polar_heart_series — agent-safe-series/v1 bounded HR from continuous samples (prefer this for agents)polar_list_continuous_samples, polar_list_ppi_samplespolar_list_temperature_measurements, polar_list_skin_contactsTraining
polar_list_training_sessions, polar_list_training_targets, polar_list_training_target_favoritespolar_list_testsSports & routes
polar_list_sports, polar_list_sport_profile_catalog, polar_list_sport_profilespolar_get_route - GPS coordinates redacted unless raw modepolar_daily_checkin - practical daily training and recovery check-inpolar_weekly_review - review trends across activity, sleep and recoverypolar_training_load_investigation - investigate training sessions + recovery contextpolar://capabilities, polar://agent-manifest, polar://inventorypolar://summary/daily, polar://summary/weeklypolar://account-data, polar://latest/sleep~/.polar-mcp/tokens.json with 0600 permissions and are never returned by tools.POLAR_PRIVACY_MODE defaults to structured. Structured mode preserves the complete upstream physiological payload while removing secret/GPS fields; normalized aliases are additive and never replace nested v4 objects. Raw Polar JSON is opt-in via raw mode or per-call override.summary and structured modes - only raw mode exposes raw coordinates.features are validated per endpoint. Feature queries that Polar limits to one day are hydrated one available date at a time.setup writes most of these into ~/.polar-mcp/config.json (0600). Manual env override is supported:
POLAR_CLIENT_ID=<client-id>
POLAR_CLIENT_SECRET= POLAR_REDIRECT_URI=http://127.0.0.1:3000/callback
POLAR_SCOPES="activity:read calendar:read continuous_samples:read ..." POLAR_PRIVACY_MODE=structured # summary | structured | raw POLAR_CACHE=sqlite # no effect: authenticated responses are never cached POLAR_TOKEN_PATH=~/.polar-mcp/tokens.json POLAR_CACHE_PATH=~/.polar-mcp/cache.sqlite
npx -y polar-mcp-unofficial setup --client hermes --no-auth
npx -y polar-mcp-unofficial auth # run locally if browser auth is needed npx -y polar-mcp-unofficial doctor --client hermes hermes mcp test polar
After Hermes config changes, use /reload-mcp or hermes mcp test polar. Don't restart the gateway for normal data access.
If browser OAuth has to happen on a different machine than Hermes, run auth locally and copy ~/.polar-mcp/tokens.json to the server with chmod 600.
http://127.0.0.1:3000/callbackgit clone https://github.com/davidmosiOnly the beginning is shown; read the rest in the repo