tesla-fleet-mcp
Integrates with the Tesla Fleet API to list account vehicles, retrieve vehicle state and live data, find nearby chargers, wake vehicles, and issue commands such as climate control, charging, and door lock/unlock.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@tesla-fleet-mcpGet the battery level and location of my Tesla"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
tesla-fleet-mcp
Minimal stdio MCP for Tesla Fleet API. TypeScript. One process, env-based secrets, no extra daemons for read/wake.
Commands (climate, charge, lock) need Tesla’s official tesla-http-proxy plus a virtual key on the car. That proxy is not bundled here.
Hermes server name: tesla-fleet. Tools appear as mcp__tesla_fleet__*.
Tools
Tool | Notes |
| Account vehicles |
| Cheap state ( |
| Live data. Billable. Default = full payload (no |
| Nearby charge sites |
| Wake from sleep |
| Needs command proxy |
| Needs command proxy |
| Needs command proxy |
Do not poll vehicle_data. Tesla bills per call. Check vehicle_get first.
A comma-separated endpoints query returns metadata only (no charge_state). This server rewrites commas to ;.
Requirements
Node 20+
A Tesla developer application (dashboard)
An HTTPS hostname you own (must not contain the word
tesla)Public key at
https://<your-domain>/.well-known/appspecific/com.tesla.3p.public-key.pemPartner
POST /api/1/partner_accountsin each region you usePayment method + billing limit (Fleet API is pay-as-you-go; ~$10/month credit)
Environment
Copy env.example and point TESLA_CACHE_PATH at a 0600 file outside git.
Variable | Required | Meaning |
| yes | Developer app client id |
| yes | Developer app secret |
| yes | Must match the app’s allowed redirect (e.g. |
| yes | Fleet base URL for your region (EU example in |
| no | Token cache path (default: |
| no |
|
| no | Default vehicle if tools omit |
| no | Proxy origin, e.g. |
| no | Proxy TLS CA if you use a self-signed localhost cert |
Never commit secrets. Never paste refresh tokens or client secrets into chat.
Setup (once)
Create the Tesla developer app. Grant type: authorization code and machine-to-machine.
Allowed origin:
https://your.domain. Allowed redirect:https://your.domain/callback.Scopes you need, typically:
openid,offline_access,vehicle_device_data, plusvehicle_cmds/vehicle_charging_cmds/vehicle_locationif you use those tools.Generate a P-256 key pair:
openssl ecparam -name prime256v1 -genkey -noout -out private-key.pem
openssl ec -in private-key.pem -pubout -out public-key.pemHost only the public key at:
https://your.domain/.well-known/appspecific/com.tesla.3p.public-key.pem
Register the partner account (EU example):
# 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>User login (owner of the car):
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=...."The callback host only needs to accept the browser hit; this CLI reads the URL you paste. A blank page is fine.
Hermes
# example wrapper: source your env file, then tsx
hermes mcp add tesla-fleet --command /path/to/tesla-fleet-mcp/run.shrun.sh sources .env in the repo directory or $TESLA_ENV if set. Restart the Hermes process/gateway after adding. Enable/disable tools in the client (tools.include / exclude), not with extra server flags.
Commands (optional)
Model 3 / Y and recent S/X require the Vehicle Command Protocol. Unsigned Fleet command calls are rejected.
Run
tesla-http-proxywith your private key, TLS, localhost only.Pair the virtual key (Tesla app, car online):
https://tesla.com/_ak/your.domainSet
TESLA_COMMAND_BASE=https://127.0.0.1:4443(andNODE_EXTRA_CA_CERTSif the proxy cert is self-signed).
Do not publish the proxy to the internet.
Dev
npm test
npx tsc --noEmitLicense
MIT
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
MCP server wrapping the Tesla Fleet API and TeslaMate API
An MCP server that let you interact with Cycloid.io Internal Development Portal and Platform
Tailscale device, route, DNS, key, user, and ACL management over MCP and CLI.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/supervised-nl/tesla-fleet-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server