loading…
Search for a command to run...
loading…
Enables AI assistants to control and monitor Tesla vehicles via natural language through the Tessie API, supporting battery, climate, security, charging, and mo
Enables AI assistants to control and monitor Tesla vehicles via natural language through the Tessie API, supporting battery, climate, security, charging, and more.
Control and monitor your Tesla from any MCP-compatible AI assistant — including Claude, Cursor, and more.
An MCP (Model Context Protocol) server that bridges AI assistants to the Tessie API, giving you natural-language control of your Tesla vehicle. Ask Claude to check your battery, preheat the cabin, lock the car, or pull charging history — all in plain English.
Tessie is the service that provides secure API access to your Tesla.
👉 Sign up for Tessie: share.tessie.com/v4Gklbe1U0b
Once signed in, get your API token at: dash.tessie.com/settings/api
git clone https://github.com/akrowczyk/tessie-mcp-server.git
cd tessie-mcp-server
npm install
npm run build
Authentication and preferences are configured entirely via environment variables — no secrets ever touch source code.
| Variable | Required | Description |
|---|---|---|
TESSIE_API_TOKEN |
✅ Yes | Your Tessie API token |
TESSIE_DEFAULT_VIN |
Optional | Default VIN when not specified per-call |
TESSIE_DISTANCE_FORMAT |
Optional | mi or km — applies to all distance tools |
TESSIE_TEMP_FORMAT |
Optional | f or c — applies to all temperature tools |
TESSIE_PRESSURE_FORMAT |
Optional | psi, bar, or kpa — applies to tire pressure |
Per-call parameters always override the env var defaults.
Add this block to your Claude Desktop config file:
~/Library/Application Support/Claude/claude_desktop_config.json%APPDATA%\Claude\claude_desktop_config.json~/.config/Claude/claude_desktop_config.json{
"mcpServers": {
"tessie": {
"command": "node",
"args": ["/absolute/path/to/tessie-mcp-server/dist/index.js"],
"env": {
"TESSIE_API_TOKEN": "your-tessie-api-token",
"TESSIE_DEFAULT_VIN": "your-17-digit-vin",
"TESSIE_DISTANCE_FORMAT": "mi",
"TESSIE_TEMP_FORMAT": "f",
"TESSIE_PRESSURE_FORMAT": "psi"
}
}
}
}
Note: Replace
/absolute/path/to/tessie-mcp-serverwith the actual path where you cloned this repo.
After saving, restart Claude Desktop.
claude mcp add tessie -- node /absolute/path/to/tessie-mcp-server/dist/index.js
export TESSIE_API_TOKEN="your-tessie-api-token"
export TESSIE_DEFAULT_VIN="your-17-digit-vin"
export TESSIE_DISTANCE_FORMAT="mi"
export TESSIE_TEMP_FORMAT="f"
export TESSIE_PRESSURE_FORMAT="psi"
Add to .cursor/mcp.json (project) or ~/.cursor/mcp.json (global):
{
"mcpServers": {
"tessie": {
"command": "node",
"args": ["/absolute/path/to/tessie-mcp-server/dist/index.js"],
"env": {
"TESSIE_API_TOKEN": "your-tessie-api-token",
"TESSIE_DEFAULT_VIN": "your-17-digit-vin",
"TESSIE_DISTANCE_FORMAT": "mi",
"TESSIE_TEMP_FORMAT": "f",
"TESSIE_PRESSURE_FORMAT": "psi"
}
}
}
}
Open Settings → MCP Servers → Add:
{
"tessie": {
"command": "node",
"args": ["/absolute/path/to/tessie-mcp-server/dist/index.js"],
"env": {
"TESSIE_API_TOKEN": "your-tessie-api-token",
"TESSIE_DEFAULT_VIN": "your-17-digit-vin",
"TESSIE_DISTANCE_FORMAT": "mi",
"TESSIE_TEMP_FORMAT": "f",
"TESSIE_PRESSURE_FORMAT": "psi"
}
}
}
In ~/.continue/config.json:
{
"experimental": {
"modelContextProtocolServers": [
{
"transport": {
"type": "stdio",
"command": "node",
"args": ["/absolute/path/to/tessie-mcp-server/dist/index.js"],
"env": {
"TESSIE_API_TOKEN": "your-tessie-api-token",
"TESSIE_DEFAULT_VIN": "your-17-digit-vin",
"TESSIE_DISTANCE_FORMAT": "mi",
"TESSIE_TEMP_FORMAT": "f",
"TESSIE_PRESSURE_FORMAT": "psi"
}
}
}
]
}
}
All vehicle commands automatically wake a sleeping vehicle before executing — no need to call wake_vehicle manually first.
get_battery, get_location, etc.) use cached data by default and do not wake the vehicleIn addition to tools, this server exposes vehicle data as MCP Resources — structured data that AI clients can read as contextual documents:
| URI | Description |
|---|---|
tessie://vehicles |
Fleet overview — all vehicles on the account |
tessie://{vin}/state |
Full live vehicle state (charge, climate, drive, config) |
tessie://{vin}/status |
Current awake/asleep status |
Resources are accessible in Claude Desktop and other MCP clients that support the resources protocol.
| Tool | Description |
|---|---|
get_vehicles |
List all vehicles on the account |
get_vehicle_state |
Full state — drive, charge, climate, config |
get_vehicle_status |
Check if vehicle is awake/asleep |
get_full_status |
Combined battery + location + state in one call |
get_battery |
Battery level, range, voltage, temperature |
get_battery_health |
Battery degradation over time |
get_location |
GPS coordinates and street address |
get_weather |
Weather at the vehicle's current location |
get_tire_pressure |
All four tire pressures |
get_consumption_since_charge |
Energy usage since last charge |
get_firmware_alerts |
Vehicle firmware alerts |
| Tool | Description |
|---|---|
get_drives |
Drive history with distance, energy, speed |
get_drive_path |
GPS path for drives |
set_drive_tag |
Tag drives as business/personal |
get_charges |
Charging session history |
set_charge_cost |
Set cost for a charge session |
get_idles |
Idle periods (parked, not charging) |
| Tool | Description |
|---|---|
wake_vehicle |
Explicitly wake from sleep |
lock / unlock |
Door locks |
open_front_trunk / open_rear_trunk |
Trunk controls |
vent_windows / close_windows |
Window controls |
vent_sunroof / close_sunroof |
Sunroof controls |
open_tonneau / close_tonneau |
Cybertruck tonneau cover |
flash_lights / honk |
Lights and horn |
trigger_homelink |
Garage door opener |
remote_start |
Keyless driving (2-min window) |
boombox |
External speaker fart sound 🐄 |
| Tool | Description |
|---|---|
start_climate / stop_climate |
Climate system |
set_temperatures |
Set cabin temp (15–28°C) |
set_seat_heat / set_seat_cool |
Seat heating/cooling (0–3) |
start_defrost / stop_defrost |
Max defrost mode |
start_steering_wheel_heater / stop_steering_wheel_heater |
Steering wheel heater |
set_cabin_overheat_protection |
Cabin Overheat Protection |
set_climate_keeper_mode |
Keep / Dog / Camp mode |
set_bioweapon_mode |
Bioweapon Defense Mode |
| Tool | Description |
|---|---|
start_charging / stop_charging |
Start/stop charging |
set_charge_limit |
Set charge limit (50–100%) |
set_charging_amps |
Set charging amperage |
open_charge_port / close_charge_port |
Charge port door |
| Tool | Description |
|---|---|
enable_sentry_mode / disable_sentry_mode |
Sentry Mode |
enable_valet_mode / disable_valet_mode |
Valet Mode |
enable_guest_mode / disable_guest_mode |
Guest Mode |
enable_speed_limit / disable_speed_limit |
Speed Limit Mode |
| Tool | Description |
|---|---|
schedule_software_update |
Schedule a software update |
cancel_software_update |
Cancel a scheduled update |
Once configured, try asking your AI assistant:
get_full_status.gitignore in this repo explicitly excludes .env filesnpm install # Install dependencies
npm run build # Compile TypeScript
npm run dev # Watch mode (auto-rebuild on changes)
npm start # Run the compiled server
Requirements: Node.js 18+
If this project is useful to you, consider using these referral links:
MIT © 2026 Andrew Krowczyk
Run in your terminal:
claude mcp add tessie-mcp-server -- npx Security
Low riskAutomated heuristic from public metadata — not a security guarantee.