一个模型上下文协议服务器,连接到特斯拉车队API,允许像克劳德这样的AI助手通过自然语言命令控制特斯拉汽车和访问车辆信息。
420 查看 · 2026-07-07 更新
简介
一个模型上下文协议服务器,连接到特斯拉车队API,允许像克劳德这样的AI助手通过自然语言命令控制特斯拉汽车和访问车辆信息。
简介
一个模型上下文协议服务器,连接到特斯拉车队API,允许像克劳德这样的AI助手通过自然语言命令控制特斯拉汽车和访问车辆信息。
Tesla MCP 服务器
一个连接到 Tesla 车队 API 的模型上下文协议 (MCP) 服务器,允许你使用 Claude 和其他支持 MCP 的 AI 助手来控制你的特斯拉车辆。
功能
- 唤醒车辆:从睡眠模式中唤醒你的特斯拉
- 车辆信息:获取关于你的特斯拉车辆的详细信息
- 实时更新:按需刷新车辆数据
- 调试工具:访问详细的车辆信息以帮助故障排除
要求
- Node.js 18+
- pnpm(推荐)或 npm
- 至少有一辆车的特斯拉账户
- 特斯拉 API 凭证(客户端 ID 和客户端密钥)
- Ngrok(用于开发和注册)
安全最佳实践
该项目处理敏感的特斯拉 API 凭证。请遵循以下安全做法:
- 永远不要提交凭证:
.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 工具简化了这一过程:
- 为您打开浏览器以便使用您的 Tesla 账户凭据登录
- 执行 OAuth PKCE(Proof Key for Code Exchange)流程
- 用授权码交换刷新令牌和访问令牌
- 将刷新令牌存储在您的
.env文件中
注册
Tesla Fleet API 要求应用程序在访问车辆数据之前进行注册。注册服务器 (pnpm register) 自动化了这一过程:
- 生成所需的 EC 密钥对
- 使用 ngrok 创建一个临时的公共 URL 用于开发
- 在所需路径托管公钥
- 处理与 Tesla 的注册 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
使用 MCP 服务器与 Claude
一旦服务器运行并且 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: 从 Tesla 获取刷新令牌pnpm test-api: 测试与 Tesla API 的连接pnpm inspector: 使用 MCP Inspector 运行服务器以进行调试
API 限制
截至 2023-10-09,Tesla 已废弃其 REST API 中的许多车辆命令端点。现在像鸣笛这样的命令需要使用 Tesla Vehicle Command Protocol,而不是 REST API。此 MCP 服务器目前仅支持仍然可用的 REST API 端点。
未来增强
可能的未来改进包括:
- 与 Tesla 的 Vehicle Command Protocol 集成以支持更多命令
- 支持更多的车辆信息端点
- 用于配置和监控的用户界面
许可证
服务配置
[{'mcpServers': {'tesla-mcp-server': {'command': '/absolute/path/to/tesla-mcp/run-mcp.js'}}}]
来源
- 来源:github
- 链接:https://github.com/scald/tesla-mcp