テスラ MCP サーバー
Tesla Fleet API に接続する Model Context Protocol (MCP) サーバー。これにより、Claude や MCP をサポートするその他の AI アシスタントを使用して Tesla 車両を制御できるようになります。
特徴
車両を起動する:テスラをスリープモードから起動する
車両情報: テスラ車の詳細情報を入手
リアルタイム更新:オンデマンドで車両データを更新
デバッグツール: トラブルシューティングに役立つ詳細な車両情報にアクセスします
Related MCP server: Hass-MCP
要件
Node.js 18歳以上
pnpm(推奨)またはnpm
少なくとも1台の車両を所有するTeslaアカウント
Tesla API 認証情報 (クライアント ID とクライアント シークレット)
Ngrok(開発と登録用)
セキュリティのベストプラクティス
このプロジェクトは、機密性の高いTesla API認証情報を取り扱います。以下のセキュリティ対策に従ってください。
認証情報をコミットしない:
.gitignoreファイルは.envとkeys/除外しますが、必ず二重チェックを行ってください。セキュリティチェッカーを使用する: コミットする前に
./check-secrets.shを実行して、漏洩の可能性がある資格情報を検出する秘密鍵を保護する:
keys/ディレクトリの内容を安全に保つ共有する前にコードを確認する: ソースファイルに資格情報がハードコードされていないことを確認する
このプロジェクトをフォークまたは共有する場合:
.envファイルが含まれていないことを確認してください秘密鍵がコミットされていないことを確認する
.gitignoreファイルが正しく設定されていることを確認する
クイックスタート
リポジトリをクローンする
git clone https://github.com/yourusername/tesla-mcp.git cd tesla-mcp依存関係をインストールする
pnpm install環境変数を設定するルート ディレクトリに
.envファイルを作成します。TESLA_CLIENT_ID=your_client_id TESLA_CLIENT_SECRET=your_client_secret TESLA_REFRESH_TOKEN=your_refresh_tokenリフレッシュトークンを取得する(持っていない場合)
pnpm get-tokenTeslaのAPIにアプリケーションを登録する
pnpm registerスクリプトの指示に従ってください
サーバーを構築する
pnpm buildサーバーを実行する
pnpm start
認証と登録
このプロジェクトでは、Tesla Fleet APIの公式OAuth 2.0認証フローを使用して、Teslaアカウントに安全に接続します。プロセス全体は以下の2つのステップで構成されます。
認証: OAuth 2.0フローを通じてリフレッシュトークンを取得する
登録: パートナーアカウント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 セットアップ(登録に必要)
ngrok.com/downloadからngrokをインストールします。
ngrok.comで無料アカウントを作成してください
ngrokダッシュボードから認証トークンを取得する
ngrokを認証します:
ngrok authtoken YOUR_AUTH_TOKEN
利用可能なMCPツール
サーバーは、Claude が使用できる次のツールを提供します。
wake_up: テスラ車をスリープモードから起動します必須パラメータとして
vehicle_idを指定します車両の現在の状態を返します
refresh_vehicles: テスラ車両リストを更新しますパラメータは必要ありません
車両の内部キャッシュを更新します
debug_vehicles: 利用可能な車両に関する詳細情報を表示しますパラメータは必要ありません
ID、車両ID、VIN、および状態情報を返します
MCP サーバーを使用するための Claude の設定
Claude 構成ディレクトリを作成します。
mkdir -p ~/Library/Application\ Support/Claude構成ファイルを作成または編集します。
nano ~/Library/Application\ Support/Claude/claude_desktop_config.json次の構成を追加します (必要に応じてパスを調整します)。
{ "mcpServers": { "tesla-mcp-server": { "command": "/absolute/path/to/tesla-mcp/run-mcp.js" } } }run-mcp.js スクリプトを実行可能にします。
chmod +x run-mcp.jsクロードを完全に再起動する
クロードと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との統合
より多くの車両情報エンドポイントのサポート
構成と監視のためのユーザーインターフェース