Tesla - MyTesla.io

MyTesla.io is an MCP server that bridges your AI assistant and your Tesla.

Community: Submitted by a user or imported; check the owner before granting accessOnlineNo sign-inGlobalFreeRead-only

What it can do

  • Get Vehicles: List all Tesla vehicles connected to this mytesla.io account. Returns id, VIN, display name, and current state (online/asleep). Free — does not consume any credits or require a subscript
  • Get Credit Balance: Return the user's CURRENT credit balance — monthly bucket + extra-usage credits + reset date — read live from the database. Free; does not consume credits or require a subscription
  • Get Vehicle Status: Get a full snapshot of a Tesla's current state: battery level, charging status, climate, location, doors, windows, and odometer. Use this whenever the user asks 'how's my car?' or

What data it sees

Do you need an account

No: the server works without sign-in

MyTesla.io is an MCP server that bridges your AI assistant and your Tesla. Once connected, natural-language requests ("pre-condition the cabin to 70°F before my 8am meeting", "charge to 80%, start at midnight", "where's my car?") turn into signed Tesla Fleet API commands. Built for daily use: clean, actionable errors when Tesla rejects a command, per-tool feature flags, and credit-based billing with no surprises. Works with any MCP-aware client (Claude, ChatGPT Developer Mode, Cursor, VS Code, Claude Code).

How to connect

How to connect Tesla - MyTesla.io to Claude

The server address to paste into Claude settings:

https://mytesla.run.tools

  1. Open Claude (claude.ai or the desktop app).
  2. Go to Settings → Connectors.
  3. Click Add custom connector.
  4. Paste the server address copied below into Remote MCP server URL and click Add.
  5. In a chat, click + → Connectors and switch the new connector on.

Custom connectors are available on Free, Pro, Max, Team and Enterprise plans (Free is limited to one). On Team and Enterprise an organization Owner adds the connector first under Organization settings → Connectors.

Authorization

After you click Add, a sign-in window for the service opens. Sign in with your own account and approve access. Claude never sees your password.

How to connect Tesla - MyTesla.io to ChatGPT

The server address to paste into ChatGPT settings:

https://mytesla.run.tools

  1. Open ChatGPT in a browser (chatgpt.com). A Plus, Pro, Business, Enterprise or Edu plan is required.
  2. Turn on developer mode once: Settings → Apps → Advanced settings → Developer mode.
  3. Open Settings → Connectors and click Create.
  4. Fill in the form: Name (anything), Description (one line about what the service does), MCP server URL (copy it below).
  5. Under Authentication choose OAuth if the service requires sign-in, otherwise None. Click Create.
  6. In a new chat open + → Apps/Connectors and enable the connector.

OpenAI has renamed this section before (Connectors → Apps/Plugins). If the label differs, search settings for "developer mode". On Business/Enterprise workspaces an admin must allow custom connectors first.

Authorization

On first use ChatGPT opens the service's sign-in window. Sign in and approve access.

How to connect Tesla - MyTesla.io to Cursor

The server address to paste into Cursor settings:

https://mytesla.run.tools

Fastest: click Open in Cursor below and confirm the prompt.

Manually:

  1. In Cursor open Settings → Cursor Settings → MCP and click Add new global MCP server.
  2. Paste the JSON copied below into ~/.cursor/mcp.json (per project: .cursor/mcp.json in the repo root).
  3. Save the file. The server appears in the MCP list; authorize it there if asked.

Authorization

If the service needs sign-in, an authorize button appears next to the server in the MCP list.

Server tool list (40)

Raw names from tools/list. Only developers need these.

get_vehiclesList all Tesla vehicles connected to this mytesla.io account. Returns id, VIN, display name, and current state (online/asleep). Free — does not consume any credits or require a subscription. Use this first to discover what vehicles are available before calling any other tool.
get_credit_balanceReturn the user's CURRENT credit balance — monthly bucket + extra-usage credits + reset date — read live from the database. Free; does not consume credits or require a subscription. When to call: - The user just told you they topped up, enabled auto-reload, or upgraded plan, and you previously saw insufficient_credits. Call this BEFORE refusing the next command — the balance may now be sufficient. - The user asks 'how many credits do I have?' / 'what's my balance?'. Do NOT call this before every paid tool — the regular paid tools already check balance live. This is for cases where stale context might cause you to refuse incorrectly.
get_vehicle_statusGet a full snapshot of a Tesla's current state: battery level, charging status, climate, location, doors, windows, and odometer. Use this whenever the user asks 'how's my car?' or any specific question about battery, range, or climate. PREREQUISITE: The vehicle must be online. Before calling this tool, check get_vehicles — if state is 'asleep' or 'offline', call wake_vehicle first and follow its polling pattern to confirm the car is online. Do NOT call this tool on a sleeping car — it costs 1 credit per attempt and will timeout (408) every time until the car is actually online.
wake_vehicleWake a sleeping Tesla and wait for it to come online. Costs 10 credits because wake operations are expensive on Tesla's API. This tool handles everything automatically: sends the wake command, then polls internally with exponential backoff (~45s max) until the car reports 'online' or gives up. You will get back a clear status: 'online' (safe to proceed), 'gave_up' (car unresponsive, suggest user check Tesla app), or 'cooldown' (a wake was already sent recently — no credits charged, just wait longer). IMPORTANT: If you get 'cooldown' or 'gave_up', do NOT call wake_vehicle again. Tell the user to wait a minute and try again. Repeated wake calls waste 10 credits each with no benefit.
lock_vehicleLock the doors of a Tesla. Always confirm with the user before calling — they may have intentionally left the car unlocked. PREREQUISITE: The vehicle must be online. Check get_vehicles first — if asleep, use wake_vehicle and its polling pattern before calling.
unlock_vehicleUnlock the doors of a Tesla. Always confirm with the user before calling — unlocking a parked car remotely has obvious security implications. If the user's request is ambiguous (e.g. just 'open the car'), ask whether they mean unlock doors, open trunk, or frunk. PREREQUISITE: The vehicle must be online. Check get_vehicles first — if asleep, use wake_vehicle and its polling pattern before calling.
start_climateTurn on the Tesla's HVAC system to pre-condition the cabin. Use this before the user plans to enter the car. PREREQUISITE: The vehicle must be online. Check get_vehicles first — if asleep, use wake_vehicle and its polling pattern before calling.
stop_climateTurn off the Tesla's HVAC system. Use after pre-conditioning is no longer needed, or when the user says they're done with the car. PREREQUISITE: The vehicle must be online. Check get_vehicles first — if asleep, use wake_vehicle before calling.
set_cabin_temperatureChange the Tesla's target cabin temperature without starting/stopping climate. Useful when climate is already on and the user wants a different temperature. If climate is off, use start_climate instead (it sets the temperature and turns HVAC on in one call). PREREQUISITE: The vehicle must be online.
max_defrostTurn max defrost on or off. Max defrost overrides cabin temperature to rapidly clear a frozen/fogged windshield. Use for 'defrost the windshield' or weather-driven frost-clear requests. Tesla turns max defrost off automatically after a few minutes; the user can call with on=false to end it early. PREREQUISITE: The vehicle must be online.
set_seat_heaterSet a seat heater to off or one of three heat levels. Seat numbering: 0=front driver, 1=front passenger, 2=rear left, 4=rear centre, 5=rear right. Level 0=off, 1=low, 2=medium, 3=high. Climate must be on for seat heaters to actually warm — call start_climate first if the HVAC is off. PREREQUISITE: The vehicle must be online.
start_chargingBegin charging the Tesla. Requires the charge cable already plugged in — this command cannot plug the car in for you. If the user asks to 'plug in the car', clarify that only they can physically connect the cable; this tool just starts the charge once connected. PREREQUISITE: The vehicle must be online and the charge cable must be plugged in. If the car isn't plugged in, Tesla will reject the command with a clear error.
stop_chargingStop the current charge session. The cable stays physically plugged in; only the flow of energy stops. Use this for scheduling off-peak charging windows or when the user wants to unplug and drive now. PREREQUISITE: The vehicle must be online.
set_charge_limitSet the target state-of-charge percentage. Tesla will stop charging automatically when the battery reaches this level. Use for 'charge to 80%' or 'charge to 100% by 7am tomorrow'. For daily use Tesla recommends 80-90%; 100% is for trips. PREREQUISITE: The vehicle must be online.
open_charge_portUnlatch the charge port door so the user can plug in. Also unlatches the connector so they can unplug — Tesla uses the same command for both 'open to plug in' and 'release to unplug'. PREREQUISITE: The vehicle must be online.
close_charge_portClose the charge port door. Only works on cars with a motorised charge port door (most modern Model S/X and some Model 3/Y). If the car rejects the command, the user probably needs to close it by hand. PREREQUISITE: The vehicle must be online and unplugged.
honk_hornSound the horn once. Primary use case is 'find my car in a parking lot'. Always confirm with the user before calling — honking is a disturbance to people nearby. PREREQUISITE: The vehicle must be online.
flash_lightsFlash the headlights once. Quieter alternative to honk_horn for 'find my car in a parking lot'. Prefer this over the horn at night or in residential areas. PREREQUISITE: The vehicle must be online.
actuate_trunkToggle the front trunk (frunk) or rear trunk. Modern Teslas auto-close the rear trunk; the front trunk must be closed by hand on most models. Always confirm with the user before calling — opening either creates a theft/weather risk if the user isn't present.
control_windowsVent (slightly open) or close all four windows. The tool resolves the car's current lat/lon internally — you do NOT need to call get_vehicle_status first or pass coordinates. Tesla requires the location match (within ~0.1 miles) as a safety check for 'vent'; 'close' also works this way. PREREQUISITE: The vehicle must be online.
sun_roof_controlVent or close the panoramic sunroof. Only supported on older Model S vehicles that have the panoramic roof — Tesla will reject the command with a clear error on unsupported models.
set_steering_wheel_heaterTurn the steering-wheel heater on or off. Only supported on trims with the heated steering wheel option (most Model 3/Y Performance and Model S/X built 2020+). Climate must be on for this to actually warm.
set_seat_coolerSet a cooled seat to a cooling level. Only supported on trims with ventilated seats (most Model S/X Plaid, some Model 3/Y Performance). On unsupported trims Tesla rejects with a clear error — do not retry. Seat cooler uses a DIFFERENT numbering than the seat heater: seat_position: 1=front-left (driver in LHD), 2=front-right. level: 1=low, 2=medium, 3=high. Rear seats are not supported. To turn cooling off entirely, call stop_climate (there is no dedicated off level here).
set_climate_keeper_modeKeep the cabin climate controlled while parked. Modes: 0 = off 1 = Keep climate on (standard) 2 = Dog mode (also shows 'My owner will be back soon' on the display) 3 = Camp mode (power accessories and USB stay on) Climate must already be on; this tool just prevents it from auto-off-ing.
set_cabin_overheat_protectionEnable overheat protection so the car automatically vents or runs A/C when the parked cabin exceeds a threshold. fan_only=true uses just the vents (lower battery drain); fan_only=false runs full A/C if needed.
set_scheduled_chargingSchedule the car to begin charging at a specific time each day. Useful for 'charge during off-peak hours' requests. Pass enable=false to clear the schedule and charge immediately when plugged in.
set_scheduled_departureTell the car when you plan to leave so it pre-conditions cabin & battery in time, and can optionally charge off-peak only. This is the right tool for 'make sure the car is at 100% by 7am' or 'pre-condition for my 8am meeting'.
set_charging_ampsSet how fast the car draws from the current charger in amps. Useful when sharing a circuit (e.g. 'reduce to 16A so the dryer can run') or limiting draw on a weaker outlet. The car clamps to the charger's maximum.
share_destinationPush a destination to the car's nav so it's ready when the user gets in. Accepts any address, place name, or maps URL — the car's share sheet parses the same formats the mobile app does. Useful for 'route me to my next meeting' workflows.
trigger_homelinkActivate a HomeLink-programmed device (garage door, gate, etc.). The tool uses the car's own current GPS — you don't need to pass coordinates. The car must be within ~30 meters of the trained HomeLink location for it to respond. PREREQUISITE: The vehicle must be online.
set_sentry_modeEnable or disable Sentry Mode, which records the cameras when the car detects suspicious activity while parked. Sentry uses battery faster than standby — expect ~1% per hour.
set_valet_modeValet mode limits speed, locks the glovebox, and hides personal info. Requires a 4-digit PIN the valet enters on the touchscreen to exit. WARNING: never share the PIN over an unencrypted channel.
reset_valet_pinClear the current Valet Mode PIN so a fresh one can be set. Use this if the PIN was compromised or forgotten. Valet Mode must be off first.
speed_limit_activateLock the car to a reduced top speed (set separately via set_speed_limit). Useful for teen drivers or loaned-out cars. Requires the 4-digit PIN set via the mobile app or Tesla touchscreen.
speed_limit_deactivateRemove the current speed limit. Requires the PIN set via the mobile app or touchscreen.
speed_limit_clear_pinClear the Speed Limit PIN. Speed Limit mode must be off first (call speed_limit_deactivate).
set_speed_limitSet the maximum speed allowed when Speed Limit mode is active. Tesla accepts 50-90 mph. Call speed_limit_activate afterwards to enforce it.
schedule_software_updateTell the car to install a pending software update after a delay. offset_sec=0 starts immediately; longer values let the user finish their day before the ~30-minute install window. Only works if an update is already downloaded and awaiting install.
cancel_software_updateCancel a scheduled software update before it installs. Only works between the scheduled time and the actual install start. Does not delete the downloaded update — you can reschedule later.
report_bugFile a bug report for a command that failed in a way the user finds unexpected. Free — no credits, no subscription required. Admins aggregate reports in the admin dashboard to prioritise fixes. IMPORTANT — When to call: - Only AFTER asking the user and getting an explicit yes. DO NOT auto-file. - Only when the prior error response included `suggest_bug_report: true`, or when the user proactively asks to file a bug. - Do NOT file for expected outcomes (no subscription, insufficient credits, rate limited, virtual key not registered, trim not supported, etc.). What to include: - tool_name: the command that failed (e.g. 'set_seat_heater') - error_code / error_reason: from the failed response - user_description: the user's own words if they provided any - ai_summary: your brief one-sentence take on what went wrong Privacy: user_description may contain free text — avoid prompting the user for addresses, schedules, or identifiers unrelated to the bug.