Tesla MCP 服务器
连接到 Tesla Fleet API 的模型上下文协议 (MCP) 服务器,允许您使用 Claude 和其他支持 MCP 的 AI 助手控制您的 Tesla 车辆。
特征
唤醒车辆:将您的特斯拉从睡眠模式唤醒
车辆信息:获取有关您的特斯拉车辆的详细信息
实时更新:按需刷新车辆数据
调试工具:访问详细的车辆信息以帮助排除故障
Related MCP server: Hass-MCP
要求
Node.js 18+
pnpm(首选)或 npm
拥有至少一辆汽车的 Tesla 账户
Tesla API 凭证(客户端 ID 和客户端密钥)
Ngrok(用于开发和注册)
安全最佳实践
本项目处理敏感的 Tesla API 凭证。请遵循以下安全措施:
永远不要提交凭证:
.gitignore文件排除.env和keys/但始终要仔细检查使用安全检查器:在提交之前运行
./check-secrets.sh以检测可能泄露的凭据保护您的私钥:确保
keys/目录的内容安全共享前检查代码:确保任何源文件中均未对凭据进行硬编码
当 fork 或共享此项目时:
确保
.env文件未包含在内检查没有提交私钥
验证
.gitignore文件是否正确设置
快速入门
克隆存储库
git clone https://github.com/yourusername/tesla-mcp.git cd tesla-mcp安装依赖项
pnpm install设置环境变量在根目录下创建
.env文件:TESLA_CLIENT_ID=your_client_id TESLA_CLIENT_SECRET=your_client_secret TESLA_REFRESH_TOKEN=your_refresh_token获取刷新令牌(如果您没有)
pnpm get-token使用特斯拉的 API注册你的应用程序
pnpm register按照脚本提供的说明进行操作
构建服务器
pnpm build运行服务器
pnpm start
认证与注册
本项目使用官方 Tesla Fleet API OAuth 2.0 身份验证流程,安全地连接到您的 Tesla 帐户。整个流程包含两个步骤:
身份验证:通过 OAuth 2.0 流程获取刷新令牌
注册:通过合作伙伴帐户 API 向特斯拉注册您的应用程序
验证
身份验证要求:
来自Tesla 开发者门户的客户端 ID 和客户端密钥
通过 OAuth 2.0 授权码流程获取的刷新令牌
包含的pnpm get-token实用程序通过以下方式简化此过程:
打开浏览器,使用您的 Tesla 帐户凭证登录
执行 OAuth PKCE(代码交换证明密钥)流程
将授权码交换为刷新令牌和访问令牌
将刷新令牌存储在
.env文件中
登记
Tesla Fleet API 要求应用程序必须先注册才能访问车辆数据。注册服务器 ( pnpm register ) 可自动执行此过程:
生成所需的 EC 密钥对
使用 ngrok 创建临时公共 URL 用于开发
将公钥托管在所需路径
处理与特斯拉的注册 API 调用
Ngrok 设置(注册所需)
从ngrok.com/download安装 ngrok
在ngrok.com创建一个免费帐户
从ngrok 仪表板获取您的授权令牌
验证 ngrok:
ngrok authtoken YOUR_AUTH_TOKEN
可用的 MCP 工具
该服务器提供了 Claude 可以使用的以下工具:
wake_up:将特斯拉汽车从睡眠模式唤醒将
vehicle_id作为必需参数返回车辆的当前状态
refresh_vehicles:刷新特斯拉汽车列表无需参数
更新车辆内部缓存
debug_vehicles:显示有关可用车辆的详细信息无需参数
返回 ID、vehicle_id、VIN 和状态信息
设置 Claude 以使用 MCP 服务器
创建 Claude 配置目录:
mkdir -p ~/Library/Application\ Support/Claude创建或编辑配置文件:
nano ~/Library/Application\ Support/Claude/claude_desktop_config.json添加以下配置(根据需要调整路径):
{ "mcpServers": { "tesla-mcp-server": { "command": "/absolute/path/to/tesla-mcp/run-mcp.js" } } }使 run-mcp.js 脚本可执行:
chmod +x run-mcp.js完全重启Claude
使用 Claude 的 MCP 服务器
一旦服务器运行并且 Claude 配置完成,您可以要求 Claude 执行以下操作:
“我有哪些特斯拉汽车?”
“你能唤醒我的特斯拉吗?”
“显示有关我的特斯拉车辆的调试信息”
故障排除
如果您遇到问题:
环境变量
确保您的
.env文件包含有效的凭据如果需要,运行
pnpm get-token来刷新你的令牌
服务器连接
检查服务器是否正在运行(
pnpm start)验证 Claude 的配置是否指向正确的文件路径
车辆连接
车辆可能处于离线或睡眠状态
尝试先使用
wake_up命令唤醒车辆
调试模式
使用
debug_vehicles命令获取有关车辆的详细信息在运行 MCP 服务器的终端中检查服务器日志
命令行工具
该服务器包含几个有用的脚本:
pnpm build:编译 TypeScript 代码pnpm start:使用 run-mcp.js 脚本运行服务器pnpm register:使用 Tesla 的 API 注册你的应用pnpm get-token:从特斯拉获取刷新令牌pnpm test-api:测试与 Tesla API 的连接pnpm inspector:使用 MCP Inspector 运行服务器进行调试
API 限制
自 2023 年 10 月 9 日起,特斯拉已弃用其 REST API 中的许多车辆命令端点。鸣喇叭等命令现在需要使用特斯拉车辆命令协议 ( VCP),而非 REST API。此 MCP 服务器目前仅支持仍在运行的 REST API 端点。
未来的增强功能
未来可能的改进包括:
与特斯拉车辆指令协议集成以获取更多指令
支持更多车辆信息端点
用于配置和监控的用户界面