MCP.so
Sign In
P

Polar Mcp Unofficial

@davidmosiah

About Polar Mcp Unofficial

No overview available yet

Config

Add this server to your MCP-compatible client using the configuration below.

{
  "mcpServers": {
    "polar": {
      "command": "npx",
      "args": [
        "-y",
        "polar-mcp-unofficial"
      ]
    }
  }
}

Tools

38

Inventory supported Polar data domains, auth scope requirements, privacy boundary and recommended first calls. Does not call Polar APIs or expose user data.

Machine-readable install, runtime and client guidance for AI agents. Does not call Polar or expose secrets.

Explain supported Polar data, privacy boundaries, recommended agent workflow and project links.

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?'

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.

Generate a Polar OAuth authorization URL. Use this first when no local token exists.

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).

Read Polar user account fields exposed by AccessLink. Requires profile:read.

List Polar daily activity records. Requires activity:read.

List Polar calendar entries in a date range. Requires calendar:read.

List continuous sample records for a date range. Requires continuous_samples:read. Prefer polar_heart_series for agent-safe bounded HR series. Not medical advice.

Bounded heart-rate series from Polar continuous samples (agent-safe-series/v1). Exact stats on full-resolution samples plus a series capped at 500 points. Prefer polar_daily_summary first. Shared contract with garmin/strava/fitbit series tools. Not medical advice.

List Nightly Recharge results in a date range. Requires nightly_recharge:read. Not medical advice.

List pulse-to-pulse interval samples in a date range. Requires ppi_data:read.

List skin contact periods in a date range. Requires skin_contact:read.

List Polar sleep records in a date range. Requires sleep:read. Not medical advice.

List sleep/wake vector records in a date range. Requires sleep:read. Not medical advice.

List sports available in the Polar ecosystem. Requires sports:read.

Load Polar sport profile catalog. Requires sports:read.

List the user's Polar sport profiles. Requires sports:read.

List user subscriptions and entitlements. Requires user_subscription:read.

List temperature measurements in a date range. Requires temperature_measurement:read.

List Polar fitness/orthostatic/running test results in a date range. Requires tests:read.

List Polar training sessions in a date range. Requires training_sessions:read.

List calendar training targets in a date range. Requires training_targets:read.

List user training target favorites. Requires training_targets:read.

List devices registered to the Polar user. Requires devices:read.

Load a Polar route by route id. Routes are GPS-sensitive; default privacy modes redact coordinates. Requires routes:read.

Check local Polar config, token file, Node version, privacy mode, cache readiness and optional MCP client readiness without calling Polar or exposing secrets.

Show optional local SQLite cache status. Enable with POLAR_CACHE=sqlite or POLAR_CACHE=true.

Return local privacy, cache, token-path and env-presence posture without revealing secret values.

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).

Build a practical daily summary from Polar sleep, activity, Nightly Recharge and training data when available. Read-only and non-medical.

Build a weekly Polar scorecard with sleep, activity, Nightly Recharge, training load context, bottlenecks and actions. Read-only and non-medical.

Normalize Polar Nightly Recharge, sleep and training load into the shared wellness_context shape for recommendation engines.

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.

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).

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.

Overview

What is Polar Mcp Unofficial?

A local-first MCP server that connects AI agents to your Polar training, sleep, Nightly Recharge, and continuous-sample data. It handles the Polar AccessLink Dynamic API v4 OAuth dance locally, normalizes responses, redacts GPS by default, and never lets tokens leave your machine. Built for users of Claude, Cursor, Hermes, OpenClaw, and other MCP‑compatible agents who want to analyze training load, recovery, and endurance without copying numbers from Polar Flow.

How to use Polar Mcp Unofficial?

Install with three npm commands: npx -y polar-mcp-unofficial setup (paste your Polar AccessLink client id and secret), npx -y polar-mcp-unofficial auth (opens browser for OAuth), then npx -y polar-mcp-unofficial doctor to verify readiness. Add the server to your MCP client config with command npx -y polar-mcp-unofficial. For Claude Desktop, run setup --client claude to write the snippet automatically.

Key features of Polar Mcp Unofficial

  • Local‑first OAuth; tokens never leave your machine
  • Exposes Polar data via MCP tools, prompts, and resources
  • Privacy modes: summary, structured, raw (GPS redacted by default)
  • Supports 16 Polar AccessLink OAuth scopes
  • Built‑in diagnostics with doctor and connection_status
  • Caching via optional SQLite cache

Use cases of Polar Mcp Unofficial

  • Get a daily training and recovery brief with polar_daily_summary
  • Analyze weekly training‑load and recovery trends with polar_weekly_summary
  • Investigate recent training sessions alongside Nightly Recharge data
  • Inventory available data domains and scopes before making API calls

FAQ from Polar Mcp Unofficial

What data does Polar Mcp Unofficial expose?

It exposes all Polar AccessLink Dynamic API v4 endpoints you authorize: daily activity, sleep, Nightly Recharge, training sessions, continuous heart‑rate samples, PPI (pulse‑to‑pulse) intervals, temperature measurements, skin contact periods, fitness/orthostatic tests, routes (GPS redacted by default), sports, sport profiles, and devices. Live device telemetry is not available.

What are the runtime requirements?

Node.js 20+ and a Polar AccessLink client created at https://admin.polaraccesslink.com with redirect URI http://127.0.0.1:3000/callback.

Where are my OAuth tokens stored?

Tokens are stored in ~/.polar-mcp/tokens.json with 0600 permissions. The server never prints or returns access or refresh tokens, and the MCP client never sees them.

How does GPS privacy work?

In summary and structured privacy modes, GPS route geometry is redacted. Only raw mode exposes raw coordinates. The default mode is structured.

Is this an official Polar product?

No. This is an unofficial community project not affiliated with, endorsed by, or supported by Polar Electro Oy. Use it only with your own Polar account and in line with the Polar AccessLink API terms.

Frequently asked questions

What data does Polar Mcp Unofficial expose?

It exposes all Polar AccessLink Dynamic API v4 endpoints you authorize: daily activity, sleep, Nightly Recharge, training sessions, continuous heart‑rate samples, PPI (pulse‑to‑pulse) intervals, temperature measurements, skin contact periods, fitness/orthostatic tests, routes (GPS redacted by default), sports, sport profiles, and devices. Live device telemetry is not available.

What are the runtime requirements?

Node.js 20+ and a Polar AccessLink client created at https://admin.polaraccesslink.com with redirect URI `http://127.0.0.1:3000/callback`.

Where are my OAuth tokens stored?

Tokens are stored in `~/.polar-mcp/tokens.json` with `0600` permissions. The server never prints or returns access or refresh tokens, and the MCP client never sees them.

How does GPS privacy work?

In `summary` and `structured` privacy modes, GPS route geometry is redacted. Only `raw` mode exposes raw coordinates. The default mode is `structured`.

Is this an official Polar product?

No. This is an unofficial community project not affiliated with, endorsed by, or supported by Polar Electro Oy. Use it only with your own Polar account and in line with the Polar AccessLink API terms.

Comments

More Other MCP servers