返回市场
特斯拉-mcp

特斯拉-mcp

作者:scald11 星标更新:2025-03-15

项目介绍

Tesla MCP 服务器

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

<a href="https://glama.ai/mcp/servers/t0ako8h64j"> <img width="380" height="200" src="https://gips2.baidu.com/it/u=1739994686,2810996158&fm=3081&app=3081&f=PNG?w=760&h=400" alt="特斯拉MCP服务器" /> </a>

特性

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

要求

  • 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向特斯拉注册您的应用

认证

认证需要:

  • 来自Tesla开发者门户的客户端ID和客户端密钥
  • 通过OAuth 2.0授权码流程获得的刷新令牌

包含的pnpm get-token实用程序简化了这一过程:

  • 为您打开浏览器,登录您的特斯拉账户
  • 执行OAuth PKCE(证明密钥交换)流程
  • 使用授权码交换刷新和访问令牌
  • 将刷新令牌存储在您的.env文件中

注册

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

  • 生成所需的EC密钥对
  • 使用ngrok创建临时公共URL供开发使用
  • 在所需路径托管公钥
  • 处理与特斯拉的注册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:向特斯拉API注册您的应用
  • pnpm get-token:从特斯拉获取刷新令牌
  • pnpm test-api:测试您与特斯拉API的连接
  • pnpm inspector:使用MCP Inspector运行服务器进行调试

API限制

截至2023年10月9日,特斯拉已经废弃了许多车辆命令端点在其REST API中。例如,鸣笛现在需要使用Tesla车辆命令协议,而不是REST API。此MCP服务器目前仅支持仍然有效的REST API端点。

未来改进

可能的未来改进包括:

  • 与特斯拉车辆命令协议集成以支持更多命令
  • 支持更多的车辆信息端点
  • 配置和监控的用户界面

许可

MIT许可