Skip to main content
Glama

tesla-fleet-mcp

Минимальный stdio MCP для Tesla Fleet API. TypeScript. Один процесс, секреты на основе переменных окружения, без дополнительных демонов для чтения/пробуждения.

Команды (climate, charge, lock) требуют официальный tesla-http-proxy от Tesla, а также виртуальный ключ в автомобиле. Этот прокси не включён в комплект.

Имя сервера Hermes: tesla-fleet. Инструменты отображаются как mcp__tesla_fleet__*.

Инструменты

Инструмент

Примечания

vehicles_list

Автомобили аккаунта

vehicle_get

Дешёвое состояние (online / asleep / offline)

vehicle_data

Живые данные. Платные. По умолчанию — полная полезная нагрузка (без фильтра endpoints). Необязательный список endpoints; Tesla ожидает ; (запятые принимаются этим MCP и переписываются). location_data для GPS

nearby_chargers

Ближайшие зарядные станции

wake_up

Пробуждение из сна

climate_start / climate_stop / set_temps

Требуется прокси команд

charge_start / charge_stop / set_charge_limit

Требуется прокси команд

door_lock / door_unlock

Требуется прокси команд

Не опрашивайте vehicle_data в цикле. Tesla выставляет счёт за каждый вызов. Сначала проверяйте vehicle_get.

Запрос endpoints через запятую возвращает только метаданные (без charge_state). Этот сервер переписывает запятые в ;.

Related MCP server: mcp-teslamate-fleet

Требования

  • Node 20+

  • Приложение разработчика Tesla (dashboard)

  • HTTPS-домен в вашей собственности (не должен содержать слово tesla)

  • Публичный ключ по адресу https://<your-domain>/.well-known/appspecific/com.tesla.3p.public-key.pem

  • Партнёрский POST /api/1/partner_accounts в каждом используемом регионе

  • Способ оплаты + лимит биллинга (Fleet API оплачивается по мере использования; ~$10/мес кредита)

Окружение

Скопируйте env.example и укажите TESLA_CACHE_PATH на файл с правами 0600 вне git.

Переменная

Обязательная

Значение

TESLA_CLIENT_ID

да

Идентификатор клиента приложения разработчика

TESLA_CLIENT_SECRET

да

Секрет приложения разработчика

TESLA_REDIRECT_URI

да

Должен совпадать с разрешённым редиректом приложения (например, https://your.domain/callback)

TESLA_AUDIENCE

да

Базовый URL Fleet для вашего региона (пример для ЕС в env.example)

TESLA_CACHE_PATH

нет

Путь к кэшу токенов (по умолчанию: ./token-cache.json)

TESLA_REGION

нет

eu (по умолчанию) или na

TESLA_VIN

нет

Автомобиль по умолчанию, если инструменты не указывают vin

TESLA_COMMAND_BASE

нет

Origin прокси, например https://127.0.0.1:4443

NODE_EXTRA_CA_CERTS

нет

TLS CA прокси, если вы используете самоподписанный сертификат localhost

Никогда не коммитьте секреты. Никогда не вставляйте refresh-токены или секреты клиента в чат.

Настройка (однократно)

  1. Создайте приложение разработчика Tesla. Тип гранта: authorization code и machine-to-machine.

  2. Разрешённый origin: https://your.domain. Разрешённый редирект: https://your.domain/callback.

  3. Нужные вам scopes, как правило: openid, offline_access, vehicle_device_data, плюс vehicle_cmds / vehicle_charging_cmds / vehicle_location, если вы используете эти инструменты.

  4. Сгенерируйте пару ключей P-256:

openssl ecparam -name prime256v1 -genkey -noout -out private-key.pem
openssl ec -in private-key.pem -pubout -out public-key.pem

Разместите только публичный ключ по адресу:

https://your.domain/.well-known/appspecific/com.tesla.3p.public-key.pem

  1. Зарегистрируйте партнёрский аккаунт (пример для ЕС):

# partner token
curl -s --data-urlencode grant_type=client_credentials \
  --data-urlencode client_id="$TESLA_CLIENT_ID" \
  --data-urlencode client_secret="$TESLA_CLIENT_SECRET" \
  --data-urlencode audience="$TESLA_AUDIENCE" \
  --data-urlencode scope='openid vehicle_device_data vehicle_cmds' \
  https://fleet-auth.prd.vn.cloud.tesla.com/oauth2/v3/token

# then POST {"domain":"your.domain"} to $TESLA_AUDIENCE/api/1/partner_accounts
# with Authorization: Bearer <partner access_token>
  1. Вход пользователя (владельца автомобиля):

set -a && source .env && set +a
npm install
npm run login
# open the printed URL, approve, paste the full https://your.domain/callback?code=... URL:
npm run login -- "https://your.domain/callback?code=...."

Хост обратного вызова должен лишь принять запрос браузера; этот CLI читает URL, который вы вставляете. Пустая страница — нормально.

Hermes

# example wrapper: source your env file, then tsx
hermes mcp add tesla-fleet --command /path/to/tesla-fleet-mcp/run.sh

run.sh подключает .env в каталоге репозитория или $TESLA_ENV, если он задан. Перезапустите процесс/шлюз Hermes после добавления. Включайте/отключайте инструменты в клиенте (tools.include / exclude), а не дополнительными флагами сервера.

Команды (необязательно)

Model 3 / Y и новые S/X требуют Vehicle Command Protocol. Неподписанные вызовы команд Fleet отклоняются.

  1. Запустите tesla-http-proxy с вашим приватным ключом, TLS, только localhost.

  2. Сопрягите виртуальный ключ (приложение Tesla, автомобиль онлайн): https://tesla.com/_ak/your.domain

  3. Задайте TESLA_COMMAND_BASE=https://127.0.0.1:4443 (и NODE_EXTRA_CA_CERTS, если сертификат прокси самоподписанный).

Не публикуйте прокси в интернете.

Разработка

npm test
npx tsc --noEmit

Лицензия

MIT

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    An MCP server that connects to the Tesla Fleet API, allowing users to control vehicles and retrieve real-time status updates through Claude and other AI assistants. It supports functions such as waking up vehicles, viewing detailed vehicle information, and debugging via both stdio and HTTP/SSE transports.
    MIT
  • A
    license
    B
    quality
    D
    maintenance
    MCP server combining TeslaMate historical analytics with Fleet API live data and commands. Works with Claude Code, Claude Desktop, Cursor, and any MCP-compatible client.
    29
    2
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    Local MCP server for Hey.com email - read, search, send, reply, and manage the screener via stored session cookies. Runs over stdio, stores no credentials.
    37
    13
    MIT
  • A
    license
    B
    quality
    D
    maintenance
    Production-ready TypeScript MCP server exposing utility, GitHub, and Microsoft Teams tools over stdio.
    14
    1
    MIT