特斯拉MCP控制台

一个模型上下文协议服务器,连接到特斯拉车队API,允许像克劳德这样的AI助手通过自然语言命令控制特斯拉汽车和访问车辆信息。

home-automation-and-iotos-automation

420 查看 · 2026-07-07 更新

简介

一个模型上下文协议服务器,连接到特斯拉车队API,允许像克劳德这样的AI助手通过自然语言命令控制特斯拉汽车和访问车辆信息。

简介

一个模型上下文协议服务器,连接到特斯拉车队API,允许像克劳德这样的AI助手通过自然语言命令控制特斯拉汽车和访问车辆信息。

Tesla MCP 服务器

一个连接到 Tesla 车队 API 的模型上下文协议 (MCP) 服务器,允许你使用 Claude 和其他支持 MCP 的 AI 助手来控制你的特斯拉车辆。

Tesla Server MCP 服务器

功能

  • 唤醒车辆:从睡眠模式中唤醒你的特斯拉
  • 车辆信息:获取关于你的特斯拉车辆的详细信息
  • 实时更新:按需刷新车辆数据
  • 调试工具:访问详细的车辆信息以帮助故障排除

要求

  • Node.js 18+
  • pnpm(推荐)或 npm
  • 至少有一辆车的特斯拉账户
  • 特斯拉 API 凭证(客户端 ID 和客户端密钥)
  • Ngrok(用于开发和注册)

安全最佳实践

该项目处理敏感的特斯拉 API 凭证。请遵循以下安全做法:

  • 永远不要提交凭证.gitignore 文件已排除 .envkeys/ 目录,但务必再次检查
  • 使用安全检查器:在提交前运行 ./check-secrets.sh 以检测潜在泄露的凭证
  • 保护你的私钥:确保 keys/ 目录内容的安全
  • 分享前审查代码:确保没有任何源文件中硬编码了凭证

当分叉或共享此项目时:

  1. 确保不包含 .env 文件
  2. 检查没有提交任何私钥
  3. 验证 .gitignore 文件是否正确设置

快速开始

  1. 克隆仓库

    git clone https://github.com/yourusername/tesla-mcp.git cd tesla-mcp
  2. 安装依赖

    pnpm install
  3. 设置环境变量 在根目录下创建一个 .env 文件:

    TESLA_CLIENT_ID=your_client_id TESLA_CLIENT_SECRET=your_client_secret TESLA_REFRESH_TOKEN=your_refresh_token
  4. 获取刷新令牌(如果你还没有的话)

    pnpm get-token
  5. 通过特斯拉的 API 注册你的应用程序

    pnpm register

    按照脚本提供的说明操作

  6. 构建服务器

    pnpm build
  7. 运行服务器

    pnpm start

认证与注册

该项目使用官方的特斯拉车队 API OAuth 2.0 认证流程安全地连接到你的特斯拉账户。整个过程涉及两个步骤:

  1. 认证:通过 OAuth 2.0 流程获得刷新令牌
  2. 注册:通过合作伙伴账户 API 将你的应用注册到特斯拉

认证

认证需要:

随附的 pnpm get-token 工具简化了这一过程:

  • 为您打开浏览器以便使用您的 Tesla 账户凭据登录
  • 执行 OAuth PKCE(Proof Key for Code Exchange)流程
  • 用授权码交换刷新令牌和访问令牌
  • 将刷新令牌存储在您的 .env 文件中

注册

Tesla Fleet API 要求应用程序在访问车辆数据之前进行注册。注册服务器 (pnpm register) 自动化了这一过程:

  • 生成所需的 EC 密钥对
  • 使用 ngrok 创建一个临时的公共 URL 用于开发
  • 在所需路径托管公钥
  • 处理与 Tesla 的注册 API 调用

Ngrok 设置(注册必需)

  1. ngrok.com/download 安装 ngrok
  2. ngrok.com 创建一个免费账户
  3. ngrok 控制台 获取您的认证令牌
  4. 认证 ngrok:
    ngrok authtoken YOUR_AUTH_TOKEN

可用的 MCP 工具

服务器提供了以下 Claude 可以使用的工具:

  • wake_up: 从睡眠模式唤醒特斯拉车辆

    • 需要 vehicle_id 作为必需参数
    • 返回车辆的当前状态
  • refresh_vehicles: 刷新特斯拉车辆列表

    • 不需要参数
    • 更新内部车辆缓存
  • debug_vehicles: 显示有关可用车辆的详细信息

    • 不需要参数
    • 返回 ID、vehicle_id、VIN 和状态信息

设置 Claude 以使用 MCP 服务器

  1. 创建 Claude 配置目录:

    mkdir -p ~/Library/Application\ Support/Claude
  2. 创建或编辑配置文件:

    nano ~/Library/Application\ Support/Claude/claude_desktop_config.json
  3. 添加以下配置(根据需要调整路径):

    { "mcpServers": { "tesla-mcp-server": { "command": "/absolute/path/to/tesla-mcp/run-mcp.js" } } }
  4. 使 run-mcp.js 脚本可执行:

    chmod +x run-mcp.js
  5. 完全重启 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 集成以支持更多命令
  • 支持更多的车辆信息端点
  • 用于配置和监控的用户界面

许可证

MIT 许可证

服务配置

[{'mcpServers': {'tesla-mcp-server': {'command': '/absolute/path/to/tesla-mcp/run-mcp.js'}}}]

来源