Skip to main content
Glama
ASTPoseidon

Tesla Agent Bridge

by ASTPoseidon

Tesla Agent Bridge

把自己的 Tesla 接入聊天 agent、自动化工具或前端应用。统一提供 HTTP / OpenAPI / MCP,可部署在 Cloudflare Workers、Docker 或私人 VPS。

应用代码 MIT 开源;Tesla 协议资源保留 Apache-2.0 许可。本仓库只含通用源码和示例,不含任何车主的生产凭据、车辆记录或私钥。

最简单:把仓库交给 agent

直接把仓库链接发给一个能执行命令、能访问部署环境的 agent,告诉它用什么域名、后端放在哪里、车辆属于哪个地区,让它照着仓库完成配置和部署。可以复制下面这段,改成自己的信息:

请帮我部署这个项目:https://github.com/ASTPoseidon/tesla-agent-bridge
域名:https://tesla.example.com(换成我的域名)
后端位置:Cloudflare Workers(也可改成“我的 VPS,用 Docker”)
车辆地区:中国大陆(也可选北美或欧洲)
先读仓库的 AGENTS.md 和 docs/deployment.md,完成部署及只读验证,
再给我设置页面地址,以及接入聊天 agent 的 HTTP/OpenAPI 或 MCP 配置。
需要我提供 Tesla 应用的 Client ID/Secret 或部署权限时告诉我。
Tesla 账号登录授权和车内虚拟钥匙配对由我自己完成。

配置文件、部署命令和接口适配交给 agent 处理即可;你配合提供部署权限、注册 Tesla 开发者应用,最后登录授权并坐进车里配对钥匙。本人操作见完成首次 Tesla 接入,手动部署步骤放在下面供需要时查阅。

Related MCP server: Universal Host Manager MCP

你会得到什么

  • 电量、温度、门窗等车况查询;按需查询位置。

  • 显式唤醒、空调、座椅、车窗、门锁、行李箱、媒体和充电等命令。

  • 服务端车辆指令签名、OAuth 刷新、加密持久化和幂等去重。

  • 网页完成域名注册、账户授权、虚拟钥匙配对引导。

  • 同一套业务核心:CF 使用 Durable Objects;Node/Docker 使用持久化 SQLite。

  • 只读密钥、控车密钥与管理密钥分离。MCP 默认只开放查询。

一个实例对应一个车主账户,可管理该账户已授权的多辆车。Node/Docker 使用单实例,不要将同一 SQLite 数据库用于多个服务进程。

手动部署(可选)

准备:Node.js 22.17+(推荐 24 LTS)、自己的 HTTPS 域名、已开通 Fleet API 的 Tesla 开发者应用(注册方法见完成首次 Tesla 接入),以及用于配对的 Tesla 手机 App。Docker 路线另需 Docker 与 Compose 2.30+。

git clone https://github.com/ASTPoseidon/tesla-agent-bridge.git
cd tesla-agent-bridge
npm ci
cp .env.example .env

Windows 可用 Copy-Item .env.example .env。在 .env 填写 APP_ORIGIN、TESLA_REGION、TESLA_CLIENT_ID、TESLA_CLIENT_SECRET,然后:

npm run configure

脚本生成本机 .config/ 与 .secrets/,包括车辆 P-256 私钥和三种访问密钥。重复运行保留已有车辆密钥。Tesla client secret 会移入 .secrets/production.json,不会留在公开示例里。

选择一种部署方式:

方式

启动命令

数据保存

Docker + 自动 HTTPS

docker compose up -d --build

bridge_data 卷

Cloudflare Workers

npx wrangler login,再 npm run cf:bootstrap

Durable Objects

本机 / 原生 VPS

npm run build,再 npm start

.data/owner.sqlite

Docker 前将域名 DNS 指向 VPS,开放 80/443;CF 前确保域名在该 Cloudflare 账户的 Zone 中。原生服务默认监听 127.0.0.1:8787,公网由 HTTPS 反向代理接入。完整部署与自动更新。

完成首次 Tesla 接入

以下以中国大陆车辆(TESLA_REGION=cn)为例。

前提:先注册开发者应用

  1. 前往 developer.tesla.cn,登录 Tesla 账号,注册一个应用并开通 Fleet API 所需车辆权限。

  2. Allowed Origin 填 https://你的域名,Redirect URI 填 https://你的域名/callback,与部署时的 APP_ORIGIN 保持一致。

  3. 取得应用的 Client ID 和 Secret。如果由 agent 协助部署,把这两项和域名交给负责部署的 agent,配置 TESLA_CLIENT_ID、TESLA_CLIENT_SECRET 和 APP_ORIGIN,再按上面的流程完成部署。Secret 保存在私有配置中,不提交到公开仓库。

部署后:授权账户并配对虚拟钥匙

  1. 打开 https://你的域名/setup,从本机 .secrets/production.json 取 ADMIN_KEY,点击注册应用域名,使 Tesla 能读取已部署的公钥。

  2. 点击前往 Tesla 官方授权,登录拥有车辆的 Tesla 账号并完成授权;在同一浏览器完成回调,回到设置页确认授权状态。

  3. 坐在车里,确认手机已安装并登录 Tesla App;多辆车时先在 App 选择目标车辆。用手机浏览器打开 https://tesla.cn/_ak/你的域名,往下拉,点击 「完成设置」,进入 Tesla App 按提示把虚拟钥匙配对到车上。如果链接直接打开 App,按 App 提示继续即可。链接里的“你的域名”只填主机名,不带 https:// 或 /callback。

  4. 配对完成后查询车辆列表;车辆在线时可用 key_status 做只读会话验证。

NA/EU 用户在 developer.tesla.com 注册应用,并使用 /setup 按所选地区生成的授权与配对链接。虚拟钥匙流程参见 Tesla 官方说明。

npm run check
npm run check -- --vehicles

第二条命令读取本地只读密钥,只列车辆状态,不会唤醒或控车。/health 正常只代表服务启动;Fleet API 开通、额度/计费、车主授权和车辆配对仍须完成。

给聊天 agent 或前端接入

统一提供地址与调用密钥,无需为每个 agent 重写后端:

接口

地址 / 用途

HTTP 根地址

https://你的域名

Agent OpenAPI

/openapi.agent.json,不包含管理授权接口

完整 OpenAPI

/openapi.json

MCP Streamable HTTP

/mcp,使用 Bearer Header

本地 MCP stdio

node /绝对路径/dist/mcp-stdio.mjs

查询使用 READONLY_API_KEY。需要控车时使用 API_KEY;MCP 控车还需设置 MCP_ALLOW_CONTROL=true 后重新配置/部署。日常调用的聊天 agent 只需业务密钥;ADMIN_KEY、Tesla client secret 和车辆私钥用于部署及车主管理,无需作为聊天接口凭据。

示例配置见 HTTP MCP、stdio MCP;可给 agent 读取 通用调用说明。具体客户端的字段名或导入方式由该客户端适配。通用接口文档。

更新和备份

先将源码与部署配置提交到自己的 GitHub,再部署同一提交。日常 CF 更新使用 npm run cf:deploy,不会重新上传 Secrets;Docker 更新使用 docker compose up -d --build。可按部署文档启用测试通过后自动发布 CF 的 Actions;新 Fork 默认只跑验证。

私钥、令牌加密密钥与数据必须留在自己的私有备份中。项目提供跨平台的口令加密备份/恢复工具,详见 备份与恢复。不要将 .secrets/、.data/ 或备份文件提交到公开 GitHub;公开分支不能隔离同仓库里的秘密。

已知边界

  • 命令受车型、固件、地区和 Tesla 权限影响;前备箱不能远程关闭,媒体控制不支持任意点歌。

  • 导航分享按 Tesla 官方要求走 REST 服务;可能返回上游错误,不保证地址一定被车机接收。

  • HTTP 200 仍要检查 response.result。execution_unknown=true 时不能自动生成新幂等键重发。查询不会自动唤醒。

  • 提供 cn / na / eu 地区配置;NA/EU 的地址和流程按官方文档实现,未做实车验证。测试和容器检查使用模拟凭据,不替代每位用户自己的授权和配对。

开发验证:npm run scan && npm run typecheck && npm test && npm run build。CI 另验证 Docker 镜像、SQLite 重启持久化和 CF 打包。应用不内置大模型或聊天机器人账号,不接管你的聊天记录。

参考:Tesla Fleet API、中国区认证、地区说明、MCP 传输规范。

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Exposes authorized ChatGPT, DeepSeek, Kimi, and Grok web sessions to agents as MCP tools, including chat and local file attachments over HTTP or stdio.
    7
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables MCP clients such as ChatGPT and Claude to administer Linux or macOS hosts through authenticated Streamable HTTP, including running shell commands, reading and writing files within a workspace, listing directories, and retrieving system metrics.
    65 PyPI
    1
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    Connects ChatGPT and MCP clients to authorized local development environments, enabling secure file access, shell execution, persistent tasks, browser/desktop control, and remote management of projects.
    19
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    Enables web-based AI chat clients to securely operate a local computer through an OAuth-gated MCP endpoint, exposing governed tools for files, shell, search, Git, SQLite, browser automation, DevTools, background tasks, localhost services, clipboard, notifications, ports, Postman, and AIObox windows.
    MIT