MCP server for TeslaMate analytics + Fleet API commands
Project description
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
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file mcp_teslamate_fleet-0.1.0.tar.gz.
File metadata
- Download URL: mcp_teslamate_fleet-0.1.0.tar.gz
- Upload date:
- Size: 18.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a2e010771afbb516c3e63b3db677c8b1d1e2df5a928cd0a6da88e7f4991944b1
|
|
| MD5 |
65fd80af37c94064280420ed00379d98
|
|
| BLAKE2b-256 |
127008fe073ac0fd658533425659a535d408ec8f5f2aee1c733895ce050390f6
|
Provenance
The following attestation bundles were made for mcp_teslamate_fleet-0.1.0.tar.gz:
Publisher:
publish.yml on lodordev/mcp-teslamate-fleet
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
mcp_teslamate_fleet-0.1.0.tar.gz -
Subject digest:
a2e010771afbb516c3e63b3db677c8b1d1e2df5a928cd0a6da88e7f4991944b1 - Sigstore transparency entry: 1160533191
- Sigstore integration time:
-
Permalink:
lodordev/mcp-teslamate-fleet@745dc9536848093e7c4a10b7f178adca80444f57 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/lodordev
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@745dc9536848093e7c4a10b7f178adca80444f57 -
Trigger Event:
release
-
Statement type:
File details
Details for the file mcp_teslamate_fleet-0.1.0-py3-none-any.whl.
File metadata
- Download URL: mcp_teslamate_fleet-0.1.0-py3-none-any.whl
- Upload date:
- Size: 27.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3a5744e96e5bcff67ebb1e38dfb9f8a5af796ee9b89632cc6bd7e9cfc8eafbf2
|
|
| MD5 |
a58118f630db35889482b79db6ac169f
|
|
| BLAKE2b-256 |
6a58adb0b883eb00557522bc8643b3da92e35a51a0139f7bb87a54b47fc048c3
|
Provenance
The following attestation bundles were made for mcp_teslamate_fleet-0.1.0-py3-none-any.whl:
Publisher:
publish.yml on lodordev/mcp-teslamate-fleet
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
mcp_teslamate_fleet-0.1.0-py3-none-any.whl -
Subject digest:
3a5744e96e5bcff67ebb1e38dfb9f8a5af796ee9b89632cc6bd7e9cfc8eafbf2 - Sigstore transparency entry: 1160533346
- Sigstore integration time:
-
Permalink:
lodordev/mcp-teslamate-fleet@745dc9536848093e7c4a10b7f178adca80444f57 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/lodordev
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@745dc9536848093e7c4a10b7f178adca80444f57 -
Trigger Event:
release
-
Statement type: