Tesla MCP Server

local-only server

The server can only run on the client’s local machine because it depends on local resources.

Integrations

  • Connects to the Tesla Fleet API to retrieve vehicle information and control Tesla vehicles, providing functionality to wake up vehicles from sleep mode and get detailed vehicle information

テスラ MCP サーバー

Tesla Fleet API に接続する Model Context Protocol (MCP) サーバー。これにより、Claude や MCP をサポートするその他の AI アシスタントを使用して Tesla 車両を制御できるようになります。

特徴

  • 車両を起動する:テスラをスリープモードから起動する
  • 車両情報: テスラ車の詳細情報を入手
  • リアルタイム更新:オンデマンドで車両データを更新
  • デバッグツール: トラブルシューティングに役立つ詳細な車両情報にアクセスします

要件

  • Node.js 18歳以上
  • pnpm(推奨)またはnpm
  • 少なくとも1台の車両を所有するTeslaアカウント
  • Tesla API 認証情報 (クライアント ID とクライアント シークレット)
  • Ngrok(開発と登録用)

セキュリティのベストプラクティス

このプロジェクトは、機密性の高いTesla 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. TeslaのAPIにアプリケーションを登録する
    pnpm register
    スクリプトの指示に従ってください
  6. サーバーを構築する
    pnpm build
  7. サーバーを実行する
    pnpm start

認証と登録

このプロジェクトでは、Tesla Fleet APIの公式OAuth 2.0認証フローを使用して、Teslaアカウントに安全に接続します。プロセス全体は以下の2つのステップで構成されます。

  1. 認証: OAuth 2.0フローを通じてリフレッシュトークンを取得する
  2. 登録: パートナーアカウントAPI経由でTeslaにアプリケーションを登録する

認証

認証には以下が必要です:

  • Tesla 開発者ポータルのクライアント ID とクライアント シークレット
  • OAuth 2.0 認証コードフローを通じて取得されたリフレッシュトークン

付属のpnpm get-tokenユーティリティは、次の方法でこのプロセスを簡素化します。

  • ブラウザを開いて、Teslaアカウントの認証情報でログインします
  • OAuth PKCE(コード交換用証明キー)フローを実行する
  • 認証コードをリフレッシュトークンとアクセストークンと交換する
  • リフレッシュトークンを.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、車両ID、VIN、および状態情報を返します

MCP サーバーを使用するための Claude の設定

  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. クロードを完全に再起動する

クロードとMCPサーバーの使用

サーバーが稼働し、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月9日現在、TeslaはREST APIの多くの車両コマンドエンドポイントを廃止しました。クラクションを鳴らすなどのコマンドは、REST APIではなくTesla車両コマンドプロトコル(VCP)を使用する必要があります。このMCPサーバーは現在、機能しているREST APIエンドポイントのみをサポートしています。

将来の機能強化

今後の改善点としては以下が考えられます。

  • 追加コマンドのためのTeslaのVehicle Command Protocolとの統合
  • より多くの車両情報エンドポイントのサポート
  • 構成と監視のためのユーザーインターフェース

ライセンス

MITライセンス

You must be authenticated.

A
security – no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

Tesla Fleet API に接続するモデル コンテキスト プロトコル サーバー。これにより、Claude などの AI アシスタントが自然言語コマンドを通じて Tesla 車両を制御し、車両情報にアクセスできるようになります。

  1. Features
    1. Requirements
      1. Security Best Practices
        1. Quick Start
          1. Authentication & Registration
            1. Authentication
            2. Registration
          2. Available MCP Tools
            1. Setting Up Claude to Use the MCP Server
              1. Using the MCP Server with Claude
                1. Troubleshooting
                  1. Environment Variables
                  2. Server Connection
                  3. Vehicle Connectivity
                  4. Debug Mode
                2. Command Line Tools
                  1. API Limitations
                    1. Future Enhancements
                      1. License
                        ID: t0ako8h64j