io.github.davidmosiah/polarmcp
Privacy-first MCP server for Polar AccessLink — health, sleep and training data.
Versions
0.3.12latest0.3.110.3.100.3.90.3.8+ show 13 moreshow less
0.3.70.3.60.3.50.3.40.3.30.3.20.3.10.3.00.2.00.1.30.1.20.1.10.1.0Tools 19
polar_data_inventory Inventory supported Polar data domains, auth scope requirements, privacy boundary and recommended first calls. Does not call Polar APIs or expose user data.
polar_agent_manifest Machine-readable install, runtime and client guidance for AI agents. Does not call Polar or expose secrets.
polar_capabilities Explain supported Polar data, privacy boundaries, recommended agent workflow and project links.
polar_quickstart Personalized 3-step setup walkthrough for the human user. Adapts to current state (env vars set? token present? what's next?). Call this first when the user asks 'how do I connect Polar?'
polar_demo Returns realistic example payloads of polar_daily_summary, polar_wellness_context, and polar_list_nightly_recharge so agents see the contract before calling real Polar APIs.
polar_get_auth_url Generate a Polar OAuth authorization URL. Use this first when no local token exists.
polar_exchange_code Exchange a Polar OAuth authorization code for local tokens. Tokens are stored locally with 0600 permissions and are never returned. Requires explicit user action: the user must complete browser OAuth and supply the authorization code (agents must not invent codes).
polar_heart_series Bounded heart-rate series from Polar continuous samples (agent-safe-series/v1).
polar_get_route Load a Polar route by route id. Routes are GPS-sensitive; default privacy modes redact coordinates. Requires routes:read.
polar_connection_status Check local Polar config, token file, Node version, privacy mode, cache readiness and optional MCP client readiness without calling Polar or exposing secrets.
polar_cache_status Show optional local SQLite cache status. Enable with POLAR_CACHE=sqlite or POLAR_CACHE=true.
polar_privacy_audit Return local privacy, cache, token-path and env-presence posture without revealing secret values.
polar_revoke_access Delete the local Polar token file. Use only when the user explicitly wants to disconnect this MCP; revoke the remote grant from Polar if needed. Gated by explicit_user_intent: true (requires explicit user intent).
polar_daily_summary Build a practical daily summary from Polar sleep, activity, Nightly Recharge and training data when available. Read-only and non-medical.
polar_weekly_summary Build a weekly Polar scorecard with sleep, activity, Nightly Recharge, training load context, bottlenecks and actions. Read-only and non-medical.
polar_wellness_context Normalize Polar Nightly Recharge, sleep and training load into the shared wellness_context shape for recommendation engines.
polar_profile_get Read the canonical Delx Wellness profile shared with the other wellness MCP connectors (Nourish, Cycle Coach, CGM, etc.). Read-only. Profile stores only what the user typed during onboarding — never OAuth tokens, API keys, or biomarkers.
polar_profile_update Persist a partial patch to the canonical Delx Wellness profile. Requires explicit_user_intent=true after the user confirms they want to save. Rejects secret-like fields (oauth, token, api_key, password, cookie, refresh, session).
polar_onboarding Read-only. Return the 11-question Delx Wellness onboarding flow (en or pt-BR), the current shared profile, missing critical fields, and a cross-connector hint. Use this when the user starts a fresh wellness session and you need to fill out preferred_name, goals, devices, training context, nutrition, preferences, and safety.
Permissions 3
network medium shell high env_vars low