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
MacOS Clipboard MCP Server

MacOS Clipboard MCP Server

通过 OSAScript 为 AI 助手提供访问 macOS 剪贴板内容的能力,支持文本、图像和二进制数据。

本地
TypeScript
Ollama MCP Server

Ollama MCP Server

一个桥梁,能够将 Ollama 的本地 LLM 功能无缝集成到 MCP 驱动的应用程序中,允许用户在本地管理和运行 AI 模型,并提供完整的 API 覆盖。

本地
JavaScript
Android MCP Server

Android MCP Server

一个服务器,可以通过 ADB 以编程方式控制 Android 设备,提供诸如屏幕截图捕获、UI 布局分析和软件包管理等功能,这些功能可以被像 Claude Desktop 这样的 MCP 客户端访问。

本地
Python
mcp-wsl-exec

mcp-wsl-exec

一个安全的 MCP 服务器,用于 Windows Linux 子系统环境,通过广泛的验证和保护机制,促进安全的命令执行,并防御诸如 Shell 注入和危险命令等漏洞。

本地
JavaScript
simulator-mcp-server

simulator-mcp-server

一个用于控制 iOS 模拟器的 MCP 服务器。

本地
JavaScript
mcp-server-commands

mcp-server-commands

一个用于运行指令的 MCP 服务器。

本地
JavaScript