Local-first MCP server that connects AI agents to Polar AccessLink data such as sleep, activity, Nightly Recharge, training sessions, PPI, and continuous heart-rate samples. It handles OAuth locally, normalizes Polar v4 API responses, and redacts GPS by default so tokens stay on the user's machine.
From the registry: Privacy-first unofficial Polar AccessLink v4 MCP server for AI health, sleep and training agents.

$ npx -y polar-mcp-unofficial setup$ npx -y polar-mcp-unofficial auth$ npx -y polar-mcp-unofficial doctorPlease install the `polarmcp` MCP server into my current AI client (that's you).
Required prerequisites (do these first if not already done):
- **Install Node.js 20+** — Node.js 20 or newer is required to run the MCP server via npx.
- **Create a Polar AccessLink client** — Create a Polar AccessLink client and configure its redirect URI as http://127.0.0.1:3000/callback. (https://admin.polaraccesslink.com)
- **Run initial Polar MCP setup** — Run the interactive setup to store your Polar client ID and client secret locally in ~/.polar-mcp/config.json. Run: `npx -y polar-mcp-unofficial setup`
- **Complete OAuth authorization** — Authorize the app in your browser so the server can access your Polar data and store tokens locally. Run: `npx -y polar-mcp-unofficial auth`
Optional prerequisites:
- Verify installation — Run the diagnostic check to confirm the server is ready. Run: `npx -y polar-mcp-unofficial doctor`
Canonical MCP server config (stdio transport):
- command: `npx`
- args: ["-y","polar-mcp-unofficial"]
- required environment variables:
- `POLAR_CLIENT_ID`: Polar AccessLink client ID. Usually written by setup into ~/.polar-mcp/config.json, but can be supplied manually as an environment override. (example: `<your-polar-client-id>`)
- `POLAR_CLIENT_SECRET`: Polar AccessLink client secret. Usually written by setup into ~/.polar-mcp/config.json, but can be supplied manually as an environment override. (example: `<your-polar-client-secret>`)
- `POLAR_REDIRECT_URI`: OAuth redirect URI configured in your Polar AccessLink client. (example: `<your-polar-redirect-uri>`)
- optional environment variables:
- `POLAR_SCOPES`: Space-separated Polar OAuth scopes to request, matching the data you want to access. (example: `<your-polar-scopes>`)
- `POLAR_PRIVACY_MODE`: Privacy mode for API responses. README indicates structured is the default; other supported values are summary and raw. (example: `<your-polar-privacy-mode>`)
- `POLAR_CACHE`: Optional cache backend. README mentions sqlite as an option. (example: `<your-polar-cache-backend>`)
- `POLAR_TOKEN_PATH`: Path to the stored OAuth tokens file. (example: `<your-polar-token-path>`)
- `POLAR_CACHE_PATH`: Path to the cache database file. (example: `<your-polar-cache-path>`)
Note: Preferred install path is the published npm package via npx. The README's MCP config snippet uses stdio with `npx -y polar-mcp-unofficial`. The server stores most configuration in ~/.polar-mcp/config.json, so env vars are supported as manual overrides rather than always required in the MCP config itself. Recommended scopes in the README are: 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.
Add this MCP server to my current client's config in the correct format for you. If you need secrets or credentials I haven't provided, ASK me — do not invent values or leave raw placeholders. After adding it, tell me how to verify the server is connected.POLAR_CLIENT_IDrequiredPolar AccessLink client ID used for OAuth setupPOLAR_CLIENT_SECRETrequiredPolar AccessLink client secret used for OAuth setupPOLAR_REDIRECT_URIrequiredOAuth redirect URI for the local callbackMeta Ads MCP (Facebook + Instagram) - analyze performance, manage budgets, pause campaigns.