Unoffical Polestar 2 MCP
Allows querying Polestar 2 vehicle data, including battery status, charging info, vehicle details, and health alerts via the Model Context Protocol.
Polestar MCP Server
An MCP (Model Context Protocol) server that exposes Polestar 2 vehicle data to AI assistants like Claude. Query your car's battery status, vehicle info, and health data through natural conversation.
Disclaimer: This project uses an unofficial, reverse-engineered API and is not affiliated with or endorsed by Polestar. Use at your own risk. The API may change or break at any time.
Features
Battery & Charging Status — Current charge level, charging state, estimated range, time to full charge
Vehicle Information — Model details, VIN, registration number, software version, performance package
Vehicle Health — Fluid levels, tire pressure warnings, service alerts
Related MCP server: teslamate-mcp
Prerequisites
Python 3.10+
A Polestar account with a registered vehicle
Claude Desktop (or any MCP-compatible client)
Installation
# Clone the repository
git clone https://github.com/holger1411/polestar-mcp.git
cd polestar-mcp
# Create virtual environment
python -m venv .venv
source .venv/bin/activate
# Install dependencies
pip install -r requirements.txtConfiguration
Copy the example environment file and fill in your credentials:
cp .env.example .envEdit .env with your Polestar account credentials:
POLESTAR_USERNAME=your-email@example.com
POLESTAR_PASSWORD=your-password
POLESTAR_VIN= # Optional: specify VIN if you have multiple vehicles
POLESTAR_LOG_LEVEL=INFO # Optional: DEBUG, INFO, WARNING, ERRORClaude Desktop Setup
Add the following to your Claude Desktop configuration (claude_desktop_config.json):
{
"mcpServers": {
"polestar-mcp-server": {
"command": "/path/to/your/venv/bin/python",
"args": ["-m", "polestar_mcp_server"],
"env": {
"POLESTAR_USERNAME": "YOUR_EMAIL",
"POLESTAR_PASSWORD": "YOUR_PASSWORD",
"POLESTAR_VIN": "",
"POLESTAR_LOG_LEVEL": "INFO",
"PYTHONPATH": "/path/to/polestar-mcp/src"
}
}
}
}Available Tools
Tool | Description |
| Current battery level, charging state, range, and odometer reading |
| Static vehicle details (model, VIN, registration, specs) |
| Vehicle health data (fluid levels, tire warnings, service alerts) |
Architecture
Async-first — All API calls use
httpx.AsyncClientfor non-blocking I/OOIDC/PKCE Authentication — Secure OAuth flow against Polestar's identity provider
Smart Caching — TTL-based caching (battery: 3 min, health: 30 min, vehicle info: 24 h)
Automatic Token Refresh — Handles expired tokens and re-authentication transparently
Retry Logic — Handles rate limits (429) and transient server errors (5xx)
Dashboard
A standalone HTML dashboard (polestar-dashboard.html) is included as a visual prototype. It is a static mockup and does not connect to the API.
License
Acknowledgments
Built with MCP (Model Context Protocol)
API groundwork and reverse engineering by pypolestar/polestar_api — this project's authentication and GraphQL integration builds on their research
This server cannot be installed
Maintenance
Latest Blog Posts
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/holger1411/polestar-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server