Tessie MCP Server
Control and monitor your Tesla via Claude or any MCP-compatible AI assistant, powered by the Tessie API.
Ask AI about Tessie MCP Server
Powered by Claude Β· Grounded in docs
I know everything about Tessie MCP Server. Ask me about installation, configuration, usage, or troubleshooting.
0/500
Reviews
Documentation
Tessie MCP Server
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.
β¨ Features
- π Battery & Range β level, estimated range, voltage, temperature, health/degradation
- π Location β GPS coordinates and street address
- π‘οΈ Climate Control β start/stop, set temperature, seat heat/cool, defrost, Keep/Dog/Camp mode, Bioweapon Defense
- π Security β lock/unlock, Sentry Mode, Valet Mode, Guest Mode, Speed Limit Mode
- β‘ Charging β start/stop, set charge limit %, set amps, charge port control
- π Drive Data β history with distance, energy & speed; GPS path per trip; drive tags
- π Charge History β sessions with cost tracking
- π» Trunks & Covers β frunk, rear trunk, Cybertruck tonneau
- πͺ Windows & Sunroof β vent or close
- π‘ Lights & Horn β flash lights, honk
- π HomeLink β trigger garage door opener
- π Remote Start β keyless driving (2-minute window)
- π± Software Updates β schedule or cancel
- π΄ Auto-Wake β commands automatically wake a sleeping vehicle before executing
- π¨ Fun β Boombox fart sounds π
β‘ Quick Start
1. Get a Tessie Account & API Token
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
2. Install & Build
git clone https://github.com/akrowczyk/tessie-mcp-server.git
cd tessie-mcp-server
npm install
npm run build
π§ Configuration
Environment Variables
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.
Claude Desktop
Add this block to your Claude Desktop config file:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json - Linux:
~/.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 Code (CLI)
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"
Cursor
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"
}
}
}
}
Windsurf
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"
}
}
}
Continue.dev
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"
}
}
}
]
}
}
π΄ Auto-Wake
All vehicle commands automatically wake a sleeping vehicle before executing β no need to call wake_vehicle manually first.
- If the vehicle is already awake, commands execute instantly with zero added latency
- If the vehicle is asleep, the server sends a wake command and polls every 3 seconds until the vehicle is awake (up to 90 seconds), then sends your command
- Read-only data tools (
get_battery,get_location, etc.) use cached data by default and do not wake the vehicle
π‘ MCP Resources
In 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.
π οΈ Available Tools
Vehicle Data
| 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 |
Drives & Charges
| 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) |
Commands (all auto-wake)
| 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 π |
Climate (all auto-wake)
| 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 |
Charging (all auto-wake)
| 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 |
Modes (all auto-wake)
| 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 |
Software (all auto-wake)
| Tool | Description |
|---|---|
schedule_software_update | Schedule a software update |
cancel_software_update | Cancel a scheduled update |
π¬ Example Prompts
Once configured, try asking your AI assistant:
- "How is my Tesla doing right now?" β uses
get_full_status - "What's my battery level and estimated range?"
- "Where is my car parked right now?"
- "Start the climate and set it to 72Β°F" (auto-wakes if needed)
- "Lock the car and turn on Sentry Mode" (auto-wakes if needed)
- "Show me my drives from this week"
- "Open the frunk"
- "What's the tire pressure on all four tires?"
- "Set my charge limit to 80%"
- "Tag all my drives this month as business"
π Security Notes
- Your Tessie API token is passed as an environment variable β never stored in code or config files
- The
.gitignorein this repo explicitly excludes.envfiles - If your token has been exposed, rotate it immediately at dash.tessie.com/settings/api
- All vehicle commands are authenticated with your personal token β only you can control your vehicle
π οΈ Development
npm 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+
π Referrals & Links
If this project is useful to you, consider using these referral links:
- Tessie β The vehicle API that powers this server. Sign up here: share.tessie.com/v4Gklbe1U0b
- Buying a Tesla? Use my referral code for exclusive deals and rewards: ts.la/andrew80231
π License
MIT Β© 2026 Andrew Krowczyk
