Tools & Safety
The Teslemetry MCP server exposes 11 generic tools, plus a first-class tool for each common vehicle and energy command (e.g. command_door_lock, energy_backup, wake_up). Read tools are served from cache and are free; commands — whether sent through a first-class tool or through send_command — can wake a vehicle and consume credits.
Generic tools
products
Lists the vehicles and energy sites your subscription can control, with each vehicle's known issue (if any) and capability flags. Cache‑only — no credits, never wakes a vehicle. Agents should call this first to discover VINs and site IDs.
get_vehicle_telemetry
Returns the latest cached Fleet Telemetry for a vehicle, with each value stamped with when it was received. Cache‑only — never wakes the car and costs no credits. A field only appears here once it has been configured via add_telemetry_fields.
vin— the vehicle to read.fields(optional) — specific telemetry field names (e.g.BatteryLevel,ChargeState) to return. Omit for the full snapshot.topics(optional) — specific top-level topics to return (state,data,connectivity,alerts,errors,vehicle_data). Omit for every topic except the long, verbosealertsanderrors. Only applies whenfieldsis omitted.
get_vehicle_field_config
Shows the telemetry fields currently configured to stream from a vehicle, plus the stream's delivery settings. Only configured fields ever appear in get_vehicle_telemetry / wait_for_telemetry_change.
vin— the vehicle to read.
add_telemetry_fields
Adds one or more fields to a vehicle's telemetry streaming configuration — required before a field's data shows up in get_vehicle_telemetry or wait_for_telemetry_change. Fields already configured are left unchanged, so it's safe to call repeatedly.
vin— the vehicle to configure.fields— telemetry field names to start streaming.
remove_telemetry_fields
Removes one or more fields from a vehicle's telemetry streaming configuration. Removing every configured field stops the vehicle's telemetry stream entirely.
vin— the vehicle to configure.fields— telemetry field names to stop streaming.
get_energy_live_status, get_energy_site_info, get_energy_tariff
Read an energy site's live status (battery, solar, grid power, backup state), configuration and capabilities, or tariff/rate schedule respectively. Cache‑only — no credits.
site_id— the energy site to read.
wait_for_telemetry_change
Long‑polls a vehicle's live telemetry: returns as soon as a matching event arrives, or after timeout seconds with none. Cache/stream‑only — never wakes the car and costs no credits. Only fires while the vehicle is actively streaming.
vin— the vehicle to watch.fields(optional) — specific telemetry field names to watch. Mutually exclusive withtopics.topics(optional) — specific top-level topics to watch (state,data,connectivity,alerts,errors). Ignored whenfieldsis given.timeout(optional) — seconds to wait before returning (1–25, default 25).
list_commands
Lists every available vehicle and energy command with its parameters, including long‑tail commands not exposed as first‑class tools. Pair with send_command to invoke any of them.
filter(optional) — a case‑insensitive substring to narrow the list.
send_command
Invokes any vehicle or energy command by name. May wake the vehicle and cost credits.
command— a command name fromlist_commands, e.g.command_door_lockorenergy_backup.vin— for vehicle commands.site_id— for energy commands.params— the command's parameters, as defined by its schema.
First-class command tools
The most commonly used vehicle and energy commands are also exposed as their own named tools, so an agent can call them directly instead of going through send_command. These currently include the vehicle commands command_auto_conditioning_start, command_auto_conditioning_stop, command_charge_port_door_close, command_charge_port_door_open, command_charge_start, command_charge_stop, command_door_lock, command_door_unlock, command_flash_lights, command_honk_horn, command_navigation_request, command_set_cabin_overheat_protection, command_set_charge_limit, command_set_charging_amps, command_set_sentry_mode, command_set_temps, command_window_control, and wake_up, plus the energy commands energy_backup, energy_grid_import_export, energy_operation, and energy_storm_mode.
Each takes the same vin/site_id and parameters as its send_command equivalent — use list_commands for the exact parameter schema of any command, first‑class or not. May wake the vehicle and cost credits.
Credits & waking
Reads (products, get_vehicle_telemetry, get_vehicle_field_config, get_energy_live_status, get_energy_site_info, get_energy_tariff, wait_for_telemetry_change, list_commands) and telemetry configuration changes (add_telemetry_fields, remove_telemetry_fields) are always free and never wake your vehicle.
send_command runs the real Fleet API command pipeline. If the vehicle is asleep, Teslemetry wakes it automatically — this costs credits and adds a short delay. See Handling Sleep for the wake‑up process and credit costs, and Command Signing for how signed commands are delivered.
Permissions
An agent connected over MCP has the same access to your Tesla products that you do. There is no separate read‑only mode at the connection level — if you need to restrict an agent to reads, configure it on the client side (for example, by disabling send_command and every first‑class command tool, or keeping command approvals enabled).
Authentication
The server accepts two kinds of credentials:
- OAuth 2.0 with Dynamic Client Registration and PKCE — clients discover the authorization server automatically and send you to teslemetry.com/connect to approve access. No client secret is required.
- Bearer token — pass a Teslemetry access token as
Authorization: Bearer YOUR_TESLEMETRY_TOKENfor unattended use.
The endpoint advertises standard discovery documents at /.well-known/oauth-protected-resource and /.well-known/oauth-authorization-server, and automatically routes to the correct regional cluster for your account.