Tesla - MyTesla.io
MyTesla.io is an MCP server that bridges your AI assistant and your Tesla.
Что умеет
- 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
Какие данные видит
Нужен ли аккаунт
Не нужен: сервер работает без входа
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).
Как подключить
Как подключить Tesla - MyTesla.io к Claude
Адрес сервера, который нужно вставить в настройках Claude:
https://mytesla.run.tools
- Откройте Claude (сайт claude.ai или приложение для компьютера).
- Перейдите в Настройки → Коннекторы (в английском интерфейсе: Settings → Connectors).
- Нажмите Добавить пользовательский коннектор (Add custom connector).
- Вставьте адрес сервера, скопированный ниже, в поле URL удалённого MCP-сервера и нажмите Добавить.
- В чате нажмите + → Коннекторы и включите новый коннектор.
Пользовательские коннекторы доступны на тарифах Free, Pro, Max, Team и Enterprise. На Free можно добавить только один. В Team и Enterprise коннектор сначала добавляет владелец организации в Настройки организации → Коннекторы.
Авторизация
После нажатия Добавить откроется окно входа в сервис. Войдите под своим аккаунтом и подтвердите доступ. Пароль Claude не видит.
Как подключить Tesla - MyTesla.io к ChatGPT
Адрес сервера, который нужно вставить в настройках ChatGPT:
https://mytesla.run.tools
- Откройте ChatGPT в браузере (chatgpt.com). Нужен тариф Plus, Pro, Business, Enterprise или Edu.
- Один раз включите режим разработчика: Настройки → Приложения → Дополнительные настройки → Режим разработчика (Settings → Apps → Advanced settings → Developer mode).
- Откройте Настройки → Коннекторы и нажмите Создать (Create).
- Заполните форму: Название (любое), Описание (одна фраза, что делает сервис), URL MCP-сервера (скопируйте ниже).
- В поле Аутентификация выберите OAuth, если сервис требует вход, иначе Нет. Нажмите Создать.
- В новом чате откройте + → Приложения/Коннекторы и включите коннектор.
Название раздела у OpenAI менялось (Connectors → Apps/Plugins). Если пункт называется иначе, ищите «режим разработчика» в настройках. В рабочих пространствах Business/Enterprise администратор должен разрешить пользовательские коннекторы.
Авторизация
При первом использовании ChatGPT откроет окно входа в сервис. Войдите и подтвердите доступ.
Как подключить Tesla - MyTesla.io к Cursor
Адрес сервера, который нужно вставить в настройках Cursor:
https://mytesla.run.tools
Быстрый способ: нажмите кнопку Открыть в Cursor ниже, Cursor сам предложит добавить сервер.
Вручную:
- В Cursor откройте Settings → Cursor Settings → MCP и нажмите Add new global MCP server.
- Вставьте JSON, скопированный ниже, в открывшийся файл
~/.cursor/mcp.json(для одного проекта:.cursor/mcp.jsonв корне проекта). - Сохраните файл. Сервер появится в списке MCP; при необходимости пройдите авторизацию по кнопке рядом с ним.
Авторизация
Если сервис требует вход, рядом с сервером в списке MCP появится кнопка авторизации.
Список инструментов сервера (40)
Технические названия из tools/list. Нужны только разработчикам.
| 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 subscription. Use this first to discover what vehicles are available before calling any other tool. |
| 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. 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_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 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_vehicle | Wake 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_vehicle | Lock 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_vehicle | Unlock 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_climate | Turn 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_climate | Turn 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_temperature | Change 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_defrost | Turn 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_heater | Set 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_charging | Begin 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_charging | Stop 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_limit | Set 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_port | Unlatch 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_port | Close 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_horn | Sound 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_lights | Flash 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_trunk | Toggle 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_windows | Vent (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_control | Vent 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_heater | Turn 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_cooler | Set 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_mode | Keep 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_protection | Enable 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_charging | Schedule 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_departure | Tell 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_amps | Set 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_destination | Push 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_homelink | Activate 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_mode | Enable 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_mode | Valet 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_pin | Clear 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_activate | Lock 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_deactivate | Remove the current speed limit. Requires the PIN set via the mobile app or touchscreen. |
| speed_limit_clear_pin | Clear the Speed Limit PIN. Speed Limit mode must be off first (call speed_limit_deactivate). |
| set_speed_limit | Set 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_update | Tell 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_update | Cancel 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_bug | File 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. |