Polar MCP
An unofficial, local-first MCP server that connects AI agents to Polar AccessLink v4 data, exposing training, sleep, Nightly Recharge, PPI/HRV, and continuous sample signals. It handles OAuth locally, normalizes API responses, and redacts GPS coordinates by default to ensure privacy.
Package and access
Local package with source-attributed installation metadata. Koskamo does not execute packages during review.
What you can do with it
- Analyze training load and recovery metrics
- Review PPI and HRV physiology data
- Plan nightly recharge strategies
- Investigate route-aware session analysis
Source and maintenance
- Maintenance checked
Packages and installation
Source-provided package data. Koskamo has not executed or live-probed this package.
polar-mcp-unofficial 0.3.6
{
"version": "0.3.6",
"transport": "stdio",
"identifier": "polar-mcp-unofficial",
"registryType": "npm",
"environmentVariables": [
{
"name": "POLAR_CLIENT_ID",
"format": "string",
"description": "Polar OAuth client ID. Optional when configured with polar-mcp-server setup."
},
{
"name": "POLAR_CLIENT_SECRET",
"format": "string",
"description": "Polar OAuth client secret. Prefer polar-mcp-server setup so this secret is stored in ~/.polar-mcp/config.json instead of MCP client config."
},
{
"name": "POLAR_REDIRECT_URI",
"format": "string",
"description": "Redirect URI configured in the Polar AccessLink admin. Optional when configured with polar-mcp-server setup."
},
{
"name": "POLAR_TOKEN_PATH",
"format": "string",
"description": "Optional local path for OAuth tokens. Defaults to ~/.polar-mcp/tokens.json."
},
{
"name": "POLAR_PRIVACY_MODE",
"format": "string",
"description": "Optional payload mode: summary, structured, or raw. Defaults to structured. raw means full Polar AccessLink payloads for supported endpoints."
},
{
"name": "POLAR_CACHE",
"format": "string",
"description": "Optional SQLite cache toggle. Set to true or sqlite to enable."
},
{
"name": "POLAR_CACHE_PATH",
"format": "string",
"description": "Optional local SQLite cache path. Defaults to ~/.polar-mcp/cache.sqlite."
},
{
"name": "POLAR_NO_CACHE",
"format": "string",
"description": "Set to true to bypass the in-memory HTTP response cache (60s TTL for GET only). POST/PUT/DELETE and 4xx/5xx responses are never cached regardless."
}
]
}Tools
Reported by the attributed source; not independently observed by Koskamo.
Connect from your client
Each snippet configures the same source-provided package; replace placeholders before use.
Cursor
{
"mcpServers": {
"polar-mcp": {
"command": "npx",
"args": [
"-y",
"polar-mcp-unofficial@0.3.6"
],
"env": {
"POLAR_CLIENT_ID": "<YOUR_POLAR_CLIENT_ID>",
"POLAR_CLIENT_SECRET": "<YOUR_POLAR_CLIENT_SECRET>",
"POLAR_REDIRECT_URI": "<YOUR_POLAR_REDIRECT_URI>",
"POLAR_TOKEN_PATH": "<YOUR_POLAR_TOKEN_PATH>",
"POLAR_PRIVACY_MODE": "<YOUR_POLAR_PRIVACY_MODE>",
"POLAR_CACHE": "<YOUR_POLAR_CACHE>",
"POLAR_CACHE_PATH": "<YOUR_POLAR_CACHE_PATH>",
"POLAR_NO_CACHE": "<YOUR_POLAR_NO_CACHE>"
}
}
}
}Cline
{
"mcpServers": {
"polar-mcp": {
"command": "npx",
"args": [
"-y",
"polar-mcp-unofficial@0.3.6"
],
"env": {
"POLAR_CLIENT_ID": "<YOUR_POLAR_CLIENT_ID>",
"POLAR_CLIENT_SECRET": "<YOUR_POLAR_CLIENT_SECRET>",
"POLAR_REDIRECT_URI": "<YOUR_POLAR_REDIRECT_URI>",
"POLAR_TOKEN_PATH": "<YOUR_POLAR_TOKEN_PATH>",
"POLAR_PRIVACY_MODE": "<YOUR_POLAR_PRIVACY_MODE>",
"POLAR_CACHE": "<YOUR_POLAR_CACHE>",
"POLAR_CACHE_PATH": "<YOUR_POLAR_CACHE_PATH>",
"POLAR_NO_CACHE": "<YOUR_POLAR_NO_CACHE>"
}
}
}
}VS Code
{
"servers": {
"polar-mcp": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"polar-mcp-unofficial@0.3.6"
],
"env": {
"POLAR_CLIENT_ID": "<YOUR_POLAR_CLIENT_ID>",
"POLAR_CLIENT_SECRET": "<YOUR_POLAR_CLIENT_SECRET>",
"POLAR_REDIRECT_URI": "<YOUR_POLAR_REDIRECT_URI>",
"POLAR_TOKEN_PATH": "<YOUR_POLAR_TOKEN_PATH>",
"POLAR_PRIVACY_MODE": "<YOUR_POLAR_PRIVACY_MODE>",
"POLAR_CACHE": "<YOUR_POLAR_CACHE>",
"POLAR_CACHE_PATH": "<YOUR_POLAR_CACHE_PATH>",
"POLAR_NO_CACHE": "<YOUR_POLAR_NO_CACHE>"
}
}
}
}Claude Desktop
{
"mcpServers": {
"polar-mcp": {
"command": "npx",
"args": [
"-y",
"polar-mcp-unofficial@0.3.6"
],
"env": {
"POLAR_CLIENT_ID": "<YOUR_POLAR_CLIENT_ID>",
"POLAR_CLIENT_SECRET": "<YOUR_POLAR_CLIENT_SECRET>",
"POLAR_REDIRECT_URI": "<YOUR_POLAR_REDIRECT_URI>",
"POLAR_TOKEN_PATH": "<YOUR_POLAR_TOKEN_PATH>",
"POLAR_PRIVACY_MODE": "<YOUR_POLAR_PRIVACY_MODE>",
"POLAR_CACHE": "<YOUR_POLAR_CACHE>",
"POLAR_CACHE_PATH": "<YOUR_POLAR_CACHE_PATH>",
"POLAR_NO_CACHE": "<YOUR_POLAR_NO_CACHE>"
}
}
}
}Let your agent find its tools
Find servers like Polar MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.