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
- 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/holger1411/polestar-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server