Tools & Safety

The tools an agent can call, and what each one costs

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, verbose alerts and errors. Only applies when fields is 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 with topics.
  • topics (optional) — specific top-level topics to watch (state, data, connectivity, alerts, errors). Ignored when fields is 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 from list_commands, e.g. command_door_lock or energy_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).

Review what your agent does
Agents can lock doors, start charging, change charge limits, and switch your Powerwall between modes. Keep command approvals enabled where your client supports them, and only connect agents you trust.

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_TOKEN for 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.