Polar MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| POLAR_CACHE | No | Cache type | sqlite |
| POLAR_SCOPES | No | Space-separated list of OAuth scopes | |
| POLAR_CLIENT_ID | Yes | Your Polar AccessLink client ID | |
| POLAR_CACHE_PATH | No | Path to cache database | ~/.polar-mcp/cache.sqlite |
| POLAR_TOKEN_PATH | No | Path to token storage | ~/.polar-mcp/tokens.json |
| POLAR_PRIVACY_MODE | No | Privacy mode: summary, structured, or raw | structured |
| POLAR_REDIRECT_URI | No | Redirect URI for OAuth callback | http://127.0.0.1:3000/callback |
| POLAR_CLIENT_SECRET | Yes | Your Polar AccessLink client secret |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| prompts | {
"listChanged": true
} |
| resources | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| polar_data_inventoryA | 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_manifestA | Machine-readable install, runtime and client guidance for AI agents. Does not call Polar or expose secrets. |
| polar_capabilitiesA | Explain supported Polar data, privacy boundaries, recommended agent workflow and project links. |
| polar_quickstartA | 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_demoA | 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_urlA | Generate a Polar OAuth authorization URL. Use this first when no local token exists. |
| polar_exchange_codeA | Exchange a Polar OAuth authorization code for local tokens. Tokens are stored locally with 0600 permissions and are never returned. |
| polar_get_account_dataA | Read Polar user account fields exposed by AccessLink. Requires profile:read. |
| polar_list_activityB | List Polar daily activity records. Requires activity:read. |
| polar_list_calendarA | List Polar calendar entries in a date range. Requires calendar:read. |
| polar_list_continuous_samplesA | List continuous sample records for a date range. Requires continuous_samples:read. Not medical advice. |
| polar_list_nightly_rechargeA | List Nightly Recharge results in a date range. Requires nightly_recharge:read. Not medical advice. |
| polar_list_ppi_samplesB | List pulse-to-pulse interval samples in a date range. Requires ppi_data:read. |
| polar_list_skin_contactsA | List skin contact periods in a date range. Requires skin_contact:read. |
| polar_list_sleepsA | List Polar sleep records in a date range. Requires sleep:read. Not medical advice. |
| polar_list_sleep_wake_vectorsB | List sleep/wake vector records in a date range. Requires sleep:read. Not medical advice. |
| polar_list_sportsA | List sports available in the Polar ecosystem. Requires sports:read. |
| polar_list_sport_profile_catalogB | Load Polar sport profile catalog. Requires sports:read. |
| polar_list_sport_profilesB | List the user's Polar sport profiles. Requires sports:read. |
| polar_list_subscriptionsA | List user subscriptions and entitlements. Requires user_subscription:read. |
| polar_list_temperature_measurementsB | List temperature measurements in a date range. Requires temperature_measurement:read. |
| polar_list_testsA | List Polar fitness/orthostatic/running test results in a date range. Requires tests:read. |
| polar_list_training_sessionsA | List Polar training sessions in a date range. Requires training_sessions:read. |
| polar_list_training_targetsB | List calendar training targets in a date range. Requires training_targets:read. |
| polar_list_training_target_favoritesA | List user training target favorites. Requires training_targets:read. |
| polar_list_user_devicesA | List devices registered to the Polar user. Requires devices:read. |
| polar_get_routeA | Load a Polar route by route id. Routes are GPS-sensitive; default privacy modes redact coordinates. Requires routes:read. |
| polar_connection_statusA | 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_statusA | Show optional local SQLite cache status. Enable with POLAR_CACHE=sqlite or POLAR_CACHE=true. |
| polar_privacy_auditA | Return local privacy, cache, token-path and env-presence posture without revealing secret values. |
| polar_revoke_accessA | 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. |
| polar_daily_summaryA | Build a practical daily summary from Polar sleep, activity, Nightly Recharge and training data when available. Read-only and non-medical. |
| polar_weekly_summaryA | Build a weekly Polar scorecard with sleep, activity, Nightly Recharge, training load context, bottlenecks and actions. Read-only and non-medical. |
| polar_wellness_contextA | Normalize Polar Nightly Recharge, sleep and training load into the shared wellness_context shape for recommendation engines. |
| polar_profile_getA | 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_updateA | 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_onboardingA | 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. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| polar_daily_checkin | Ask an agent to create a practical daily health and training check-in from Polar. |
| polar_weekly_review | Ask an agent to review Polar trends across activity, sleep and heart context. |
| polar_training_load_investigation | Investigate Polar training sessions and adjacent sleep/recovery context when API access permits it. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| polar_data_inventory | Static inventory of supported Polar data domains, privacy modes and recommended first calls. |
| polar_capabilities | Static capabilities, API boundary, privacy modes and recommended agent workflow. |
| polar_agent_manifest | Machine-readable install and operating instructions for AI agents. |
| polar_account_data | Authenticated Polar account data using the configured privacy mode. |
| polar_latest_sleep | Most recent Polar sleep record in the configured privacy mode. |
| polar_daily_summary | Daily Polar health summary built from API data. |
| polar_weekly_summary | Weekly Polar health review built from API data. |
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/davidmosiah/polar-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server