Tesla MCP Server

Tesla MCP Server

一个模型上下文协议(Model Context Protocol)服务器,连接到特斯拉车队API,允许像Claude这样的人工智能助手通过自然语言命令控制特斯拉车辆并访问车辆信息。

智能家居与物联网
操作系统自动化
访问服务器

README

Tesla MCP 服务器

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

<a href="https://glama.ai/mcp/servers/t0ako8h64j"> <img width="380" height="200" src="https://glama.ai/mcp/servers/t0ako8h64j/badge" alt="Tesla Server MCP server" /> </a>

功能

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

要求

  • Node.js 18+
  • pnpm (首选) 或 npm
  • 至少拥有一辆 Tesla 车辆的 Tesla 账户
  • Tesla API 凭据 (Client ID 和 Client Secret)
  • Ngrok (用于开发和注册)

安全最佳实践

本项目处理敏感的 Tesla API 凭据。请遵循以下安全实践:

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

在 Fork 或共享本项目时:

  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. 使用 Tesla 的 API 注册你的应用程序

    pnpm register
    

    按照脚本提供的说明进行操作

  6. 构建服务器

    pnpm build
    
  7. 运行服务器

    pnpm start
    

身份验证 & 注册

本项目使用官方 Tesla Fleet API OAuth 2.0 身份验证流程来安全地连接到你的 Tesla 账户。完整的过程包括两个步骤:

  1. 身份验证: 通过 OAuth 2.0 流程获取刷新令牌
  2. 注册: 通过 Partner Accounts API 向 Tesla 注册你的应用程序

身份验证

身份验证需要:

  • 来自 Tesla Developer Portal 的 Client ID 和 Client Secret
  • 通过 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 设置 (注册必需)

  1. ngrok.com/download 安装 ngrok
  2. ngrok.com 创建一个免费账户
  3. ngrok dashboard 获取你的 auth token
  4. 验证 ngrok:
    ngrok authtoken YOUR_AUTH_TOKEN
    

可用的 MCP 工具

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

  • wake_up: 从睡眠模式唤醒 Tesla 车辆

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

    • 不需要参数
    • 更新车辆的内部缓存
  • 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

使用 Claude 的 MCP 服务器

一旦服务器运行并且 Claude 配置完成,你可以要求 Claude:

  • "我有哪些 Tesla 车辆?"
  • "你能唤醒我的 Tesla 吗?"
  • "显示关于我的 Tesla 车辆的调试信息"

故障排除

如果遇到问题:

环境变量

  • 确保你的 .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 License

推荐服务器

Claude Code MCP

Claude Code MCP

一个实现了 Claude Code 作为模型上下文协议(Model Context Protocol, MCP)服务器的方案,它可以通过标准化的 MCP 接口来使用 Claude 的软件工程能力(代码生成、编辑、审查和文件操作)。

精选
本地
JavaScript
@kazuph/mcp-taskmanager

@kazuph/mcp-taskmanager

用于任务管理的模型上下文协议服务器。它允许 Claude Desktop(或任何 MCP 客户端)在基于队列的系统中管理和执行任务。

精选
本地
JavaScript
Beamlit MCP Server

Beamlit MCP Server

一个 MCP 服务器实现,它支持 Beamlit CLI 和 AI 模型之间的无缝集成,并使用模型上下文协议标准。

官方
TypeScript
ThingsPanel MCP

ThingsPanel MCP

一个集成服务器,将人工智能模型与 ThingsPanel 物联网平台连接起来,使人工智能助手能够通过自然语言与物联网设备交互,以进行设备控制、数据检索和管理操作。

官方
Python
systemd-coredump MCP Server

systemd-coredump MCP Server

启用支持 MCP 的应用程序,通过与 systemd-coredump 功能集成,来访问、管理和分析系统核心转储。

本地
JavaScript
Terminal Controller for MCP

Terminal Controller for MCP

一个 MCP 服务器,它通过一个标准化的接口,使 LLM 能够安全地执行终端命令、进行目录导航和进行文件系统操作。

本地
Python
mac-apps-launcher

mac-apps-launcher

一个 MCP 服务器,用于在 MacOS 上列出和启动应用程序。 (Yī gè MCP fúwùqì, yòng yú zài MacOS shàng lièchū hé qǐdòng yìngyòng chéngxù.)

本地
JavaScript
applescript-mcp

applescript-mcp

使LLM应用程序能够通过AppleScript与macOS交互。

本地
TypeScript
Google Tasks MCP Server

Google Tasks MCP Server

与 Google Tasks 集成,允许列出、读取、搜索、创建、更新和删除任务。

本地
TypeScript
MCP 3D Printer Server

MCP 3D Printer Server

通过 MCP 服务器实现与 3D 打印机管理系统的交互,支持 STL 文件操作、切片以及对 OctoPrint、Klipper、Duet 等打印机的控制。

本地
TypeScript