使用说明
特斯拉MCP服务器
模型上下文协议(MCP)服务器,连接到特斯拉车队API,允许您使用Claude和其他支持MCP的人工智能助手控制您的特斯拉车辆。
特性
- 唤醒车辆:从睡眠模式中唤醒你的特斯拉
- 车辆信息:获取有关您的特斯拉汽车的详细信息
- 实时更新:按需刷新车辆数据
- 调试工具:访问详细的车辆信息以帮助进行故障排除
需求
- Node.js 18+
- pnpm(首选)或npm
- 特斯拉账户至少有一辆车
- 特斯拉API证书(客户ID和客户机密)
- Ngrok(用于开发和注册)
安全最佳实践
该项目处理敏感的特斯拉API证书。请遵循以下安全措施:
- 从不提交凭据:The
.gitignore文件排除.env和keys/但一定要仔细检查 - 使用安全检查器:运行
./check-secrets.sh在承诺检测潜在泄露的凭据之前 - 保护您的私钥:保留内容
keys/目录安全 - 共享前检查代码:确保在任何源文件中都没有硬编码凭据
分叉或共享此项目时:
- 确保
.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
身份验证和注册
该项目使用官方特斯拉车队API OAuth 2.0身份验证流安全连接到您的特斯拉帐户。整个过程包括两个步骤:
- 认证:通过OAuth 2.0流程获取刷新令牌
- 注册:通过合作伙伴账户API向特斯拉注册您的申请
认证
身份验证要求:
- 客户端ID和客户端密码 特斯拉开发者门户
- 通过OAuth 2.0授权代码流获得的刷新令牌
包括 pnpm get-token 该实用程序通过以下方式简化了此过程:
- 打开浏览器,使用您的特斯拉帐户凭据登录
- 执行OAuth PKCE(代码交换证明密钥)流
- 将授权码替换为刷新和访问令牌
- 将刷新令牌存储在您的
.env文件
注册
特斯拉车队API要求应用程序在访问车辆数据之前进行注册。注册服务器(pnpm register)自动化此过程:
- 生成所需的EC密钥对
- 使用ngrok为开发创建临时公共URL
- 在所需路径上托管公钥
- 处理与特斯拉的API注册电话
Ngrok设置(注册所需)
- 从以下位置安装ngrok ngrok.com/下载
- 在以下网址创建免费帐户 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:使用特斯拉API注册您的应用程序pnpm get-token:从特斯拉获取刷新令牌pnpm test-api:测试您与特斯拉API的连接pnpm inspector:使用MCP检查器运行服务器进行调试
API限制
截至2023-10-09年,特斯拉在其REST API中否决了许多车辆命令端点。像按喇叭这样的命令现在需要 特斯拉车辆指挥协议 而不是REST API。此MCP服务器当前仅支持保持功能的REST API端点。
未来的增强功能
未来可能的改进包括:
- 与特斯拉的车辆指挥协议集成,以获取更多命令
- 支持更多车辆信息端点
- 用于配置和监控的用户界面