lodordev/mcp-teslamate-fleet
29 tools for vehicle telemetry, driving history, energy analytics, and remote control (climate, charging, locks, sentry).
Ask AI about lodordev/mcp-teslamate-fleet
Powered by Claude Β· Grounded in docs
I know everything about lodordev/mcp-teslamate-fleet. Ask me about installation, configuration, usage, or troubleshooting.
0/500
Reviews
Documentation
TeslaMate + Fleet API MCP Server
MCP server combining TeslaMate historical analytics with Fleet API live data and commands. Works with Claude Code, Claude Desktop, Cursor, and any MCP-compatible client.
The first MCP server to bring both data sources together β use TeslaMate for deep analytics and Fleet API for real-time control, or configure just one.
Features
29 tools across four categories:
| Category | Tools | Backend |
|---|---|---|
| Status & History | tesla_status, tesla_drives, tesla_charging_history, tesla_battery_health, tesla_efficiency, tesla_location_history, tesla_state_history, tesla_software_updates | TeslaMate |
| Analytics | tesla_savings, tesla_trip_cost, tesla_efficiency_by_temp, tesla_charging_by_location, tesla_top_destinations, tesla_longest_trips, tesla_monthly_summary, tesla_vampire_drain | TeslaMate |
| Live Data | tesla_live | Fleet API |
| Commands | tesla_climate_on/off, tesla_set_temp, tesla_charge_start/stop, tesla_set_charge_limit, tesla_lock, tesla_unlock, tesla_honk, tesla_flash, tesla_trunk, tesla_sentry | Fleet API |
Safety: unlock and trunk commands require confirm=True. All commands are rate-limited to 40/day.
Quick Start
Claude Code (.mcp.json)
{
"mcpServers": {
"tesla": {
"command": "uvx",
"args": ["--from", "git+https://github.com/lodordev/mcp-teslamate-fleet", "mcp-teslamate-fleet"],
"env": {
"TESLAMATE_DB_HOST": "localhost",
"TESLAMATE_DB_PASS": "your_password",
"TESLA_VIN": "your_vin",
"TESLA_TOKEN_FILE": "/path/to/tokens.json",
"TESLA_CLIENT_ID": "your_client_id",
"TESLA_CLIENT_SECRET": "your_client_secret",
"TESLA_PROXY_URL": "https://localhost:4443",
"TESLA_VERIFY_SSL": "false"
}
}
}
}
Claude Desktop (claude_desktop_config.json)
Same structure β add under mcpServers.
Local install
git clone https://github.com/lodordev/mcp-teslamate-fleet
cd tesla-mcp
pip install -e .
Prerequisites
You need at least one of these backends configured. Both is ideal.
TeslaMate (analytics + history)
TeslaMate is an open-source Tesla data logger. It records driving, charging, and vehicle state to a Postgres database.
If you already run TeslaMate, you just need the database connection details. If not, see the TeslaMate installation guide.
Fleet API (live data + commands)
Tesla's Fleet API provides real-time vehicle data and remote commands. Setup requires:
- Register an app at developer.tesla.com
- Generate OAuth tokens β use Tesla's token generation flow
- Set up the HTTP proxy β commands must be signed using the Tesla Vehicle Command Protocol. Deploy the
tesla-http-proxyfrom that repo
The proxy is only needed for commands (tesla_climate_on, tesla_lock, etc.). tesla_live works with just a token.
Tesla provides a $10/month free credit for Fleet API, which is more than enough for personal MCP use.
Configuration
All configuration is via environment variables.
TeslaMate Database
| Variable | Default | Description |
|---|---|---|
TESLAMATE_DB_HOST | (required) | Postgres host |
TESLAMATE_DB_PORT | 5432 | Postgres port |
TESLAMATE_DB_USER | teslamate | Postgres user |
TESLAMATE_DB_PASS | (required) | Postgres password |
TESLAMATE_DB_NAME | teslamate | Database name |
Fleet API
| Variable | Default | Description |
|---|---|---|
TESLA_VIN | (required) | Vehicle VIN |
TESLA_TOKEN_FILE | (required) | Path to tokens.json with OAuth tokens |
TESLA_CLIENT_ID | Fleet API client ID (for token refresh) | |
TESLA_CLIENT_SECRET | Fleet API client secret (for token refresh) | |
TESLA_PROXY_URL | HTTP proxy URL for commands | |
TESLA_FLEET_URL | NA region | Fleet API endpoint (regional options) |
TESLA_VERIFY_SSL | true | Set false for self-signed proxy certs |
Vehicle Configuration
| Variable | Default | Description |
|---|---|---|
TESLA_CAR_ID | 1 | TeslaMate car ID (for multi-car instances) |
TESLA_BATTERY_KWH | 75 | Usable battery capacity in kWh |
TESLA_BATTERY_RANGE_KM | 525 | EPA range at 100% in km |
Energy consumption is estimated from ideal range deltas using these values. Adjust for your vehicle:
| Vehicle | Battery (kWh) | Range (km) |
|---|---|---|
| Model 3 Standard Range | 54 | 350 |
| Model 3 Long Range | 75 | 500 |
| Model Y Long Range | 75 | 525 |
| Model S Long Range | 100 | 650 |
| Model X Long Range | 100 | 560 |
Cost Defaults
These are defaults β tesla_savings and tesla_trip_cost accept per-call overrides.
| Variable | Default | Description |
|---|---|---|
TESLA_ELECTRICITY_RATE | 0.12 | Electricity cost in $/kWh |
TESLA_GAS_PRICE | 3.50 | Gas price in $/gallon (for comparison) |
TESLA_GAS_MPG | 28 | Comparable gas vehicle MPG |
Architecture
Single-file Python server (~1400 lines) using FastMCP. Two data paths:
βββββββββββββββ ββββββββββββββββ
β TeslaMate ββββββΆβ Postgres ββββ
β (logger) β β (telemetry) β β
βββββββββββββββ ββββββββββββββββ β βββββββββββββ ββββββββββββββ
ββββΆβ tesla.py ββββββΆβ MCP Client β
βββββββββββββββ ββββββββββββββββ β β (server) β β (Claude, β
β Tesla ββββββΆβ HTTP Proxy ββββ βββββββββββββ β Cursor) β
β Fleet API β β (commands) β ββββββββββββββ
βββββββββββββββ ββββββββββββββββ
Limitations
- Single vehicle β queries use a configurable
car_idbut tools don't accept it as a parameter. Multi-car users should run separate server instances. - Imperial units β output is in miles, Β°F, and PSI. Metric support is planned.
- Estimated kWh β TeslaMate's
drivestable doesn't include energy consumed directly. We estimate from ideal range deltas using your configured battery capacity. Accuracy is ~90-95%.
Credits
Inspired by cobanov/teslamate-mcp. Built with FastMCP and TeslaMate.
License
MIT
