Skip to main content
Glama

tesla-fleet-mcp

MCP stdio mínimo para la Fleet API de Tesla. TypeScript. Un solo proceso, secretos basados en variables de entorno, sin demonios adicionales para lectura/activación.

Los comandos (clima, carga, bloqueo) requieren el tesla-http-proxy oficial de Tesla más una llave virtual en el coche. Ese proxy no está incluido aquí.

Nombre del servidor Hermes: tesla-fleet. Las herramientas aparecen como mcp__tesla_fleet__*.

Herramientas

Herramienta

Notas

vehicles_list

Vehículos de la cuenta

vehicle_get

Estado económico (online / asleep / offline)

vehicle_data

Datos en vivo. Facturables. Predeterminado = carga completa (sin filtro endpoints). Lista endpoints opcional; Tesla espera ; (las comas son aceptadas por este MCP y reescritas). location_data para GPS

nearby_chargers

Puntos de carga cercanos

wake_up

Despertar del sueño

climate_start / climate_stop / set_temps

Requiere proxy de comandos

charge_start / charge_stop / set_charge_limit

Requiere proxy de comandos

door_lock / door_unlock

Requiere proxy de comandos

No sondees vehicle_data. Tesla factura por llamada. Comprueba vehicle_get primero.

Una consulta endpoints separada por comas devuelve solo metadatos (sin charge_state). Este servidor reescribe las comas a ;.

Related MCP server: mcp-teslamate-fleet

Requisitos

  • Node 20+

  • Una aplicación de desarrollador de Tesla (panel)

  • Un nombre de host HTTPS que poseas (no debe contener la palabra tesla)

  • Clave pública en https://<your-domain>/.well-known/appspecific/com.tesla.3p.public-key.pem

  • POST /api/1/partner_accounts de socio en cada región que uses

  • Método de pago + límite de facturación (la Fleet API es de pago por uso; ~$10/mes de crédito)

Entorno

Copia env.example y apunta TESLA_CACHE_PATH a un archivo 0600 fuera de git.

Variable

Requerida

Significado

TESLA_CLIENT_ID

sí

ID de cliente de la aplicación de desarrollador

TESLA_CLIENT_SECRET

sí

Secreto de la aplicación de desarrollador

TESLA_REDIRECT_URI

sí

Debe coincidir con la redirección permitida de la aplicación (p. ej. https://your.domain/callback)

TESLA_AUDIENCE

sí

URL base de Fleet para tu región (ejemplo UE en env.example)

TESLA_CACHE_PATH

no

Ruta de caché de tokens (predeterminado: ./token-cache.json)

TESLA_REGION

no

eu (predeterminado) o na

TESLA_VIN

no

Vehículo predeterminado si las herramientas omiten vin

TESLA_COMMAND_BASE

no

Origen del proxy, p. ej. https://127.0.0.1:4443

NODE_EXTRA_CA_CERTS

no

CA TLS del proxy si usas un certificado localhost autofirmado

Nunca hagas commit de secretos. Nunca pegues tokens de refresco o secretos de cliente en el chat.

Configuración (una vez)

  1. Crea la aplicación de desarrollador de Tesla. Tipo de concesión: código de autorización y máquina a máquina.

  2. Origen permitido: https://your.domain. Redirección permitida: https://your.domain/callback.

  3. Ámbitos que necesites, típicamente: openid, offline_access, vehicle_device_data, más vehicle_cmds / vehicle_charging_cmds / vehicle_location si usas esas herramientas.

  4. Genera un par de claves P-256:

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

Aloja solo la clave pública en:

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

  1. Registra la cuenta de socio (ejemplo UE):

# 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. Inicio de sesión del usuario (propietario del coche):

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=...."

El host de devolución de llamada solo necesita aceptar la visita del navegador; este CLI lee la URL que pegues. Una página en blanco está bien.

Hermes

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

run.sh carga .env en el directorio del repositorio o $TESLA_ENV si está definido. Reinicia el proceso/puerta de enlace de Hermes después de añadirlo. Habilita/deshabilita herramientas en el cliente (tools.include / exclude), no con banderas adicionales del servidor.

Comandos (opcional)

Model 3 / Y y S/X recientes requieren el Protocolo de Comandos de Vehículo. Las llamadas de comandos Fleet sin firmar son rechazadas.

  1. Ejecuta tesla-http-proxy con tu clave privada, TLS, solo localhost.

  2. Vincula la llave virtual (app de Tesla, coche en línea): https://tesla.com/_ak/your.domain

  3. Define TESLA_COMMAND_BASE=https://127.0.0.1:4443 (y NODE_EXTRA_CA_CERTS si el certificado del proxy es autofirmado).

No publiques el proxy en internet.

Desarrollo

npm test
npx tsc --noEmit

Licencia

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