mcp-tesla について
mcp-teslaはTesla Fleet APIとTeslaMate APIをMCPサーバーとして提供し、AIアシスタントから車両、充電、エネルギーのデータや操作にアクセスできます。生成型ダッシュボードツールと分析ワークフロー用スキルも備えています。
主な機能
- 01車両状態の確認と操作
- 02充電、Powerwall、太陽光発電機能
- 03ナビゲーションとセキュリティ操作
- 04TeslaMateの走行・エネルギー分析
- 05生成型チャートと分析ワークフロー
活用シーン
- 01車両状態の確認と空調・ロック操作
- 02充電費用と走行効率の分析
- 03太陽光発電とPowerwallの状態確認
- 04車両データのダッシュボード生成
MCP 対応
Tesla Fleet API向けに98個、TeslaMate API向けに9個のMCPツールを公開し、生成型UIツールとスキルも提供します。MCPクライアントはホスト型エンドポイントに接続し、OAuthまたはAPIトークンで認証できます。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://mcp.myteslamate.com/mcpclaude mcp add --transport http jlestel-mcp-tesla https://mcp.myteslamate.com/mcp{"mcpServers":{"jlestel-mcp-tesla":{"type":"http","url":"https://mcp.myteslamate.com/mcp"}}}Cursor で開く{"servers":{"jlestel-mcp-tesla":{"type":"http","url":"https://mcp.myteslamate.com/mcp"}}}VS Code で開く{"mcpServers":{"jlestel-mcp-tesla":{"type":"http","url":"https://mcp.myteslamate.com/mcp"}}}{"mcpServers":{"jlestel-mcp-tesla":{"serverUrl":"https://mcp.myteslamate.com/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
詳細
Tesla MCP Server: https://mcp.myteslamate.com/mcp
このリポジトリでは、Tesla Fleet API と TeslaMate API の両方をラップする Model Context Protocol サーバーを提供しています。車両のエンドポイント、車両コマンド、エネルギー関連のエンドポイント(Powerwall/Solar)、充電関連のエンドポイントが含まれています。実装はモジュール化され、機能が充実しており、Tesla Fleet API 向けに 98 個の MCP ツール、TeslaMate API 向けに 9 個の MCP ツールを公開しています。
✨ できること
これは単なるリモート操作ではありません。Tesla エコシステム全体と対話できるインターフェースです。やりたいことを AI に直接伝えましょう。平易な言葉で希望を説明すれば、AI がどのツールをどの順序で、どのパラメーターを使って呼び出すかを判断します。アプリを開いたり、メニューをたどったりする必要はありません。
⚡ エネルギーの最適化
「Powerwall の残量は 40% です。今、車を充電すべきですか、それとも午後の太陽光発電を待つべきですか?」
「直近 30 日間のエネルギーデータを分析してください。夜間の充電料金を払いながら電力を系統に売電して、損をしていますか?」
「Powerwall のバックアップ用予備電力を 20% に設定し、午前 2 時から午前 6 時まで、16A で車を充電するようスケジュールしてください。」
AI は太陽光発電量、Powerwall の状態、系統の電気料金、車両のバッテリー残量を相互に照合して、推奨事項を提示し、そのまま実行できます。
🚗 スマートな車両管理
「来週の木曜日にリヨンへドライブ旅行に行きます。普段の電費をもとに、途中で充電が必要か確認してください。ルート上で最適なスーパーチャージャーを探してください。」
「今月と先月のエネルギー消費量を比較してください。何が変わりましたか?」
「平日の毎朝 7:45 に車内を事前空調し、充電上限を 80% に戻してください。旅行で使ったため、現在は 100% になっています。」
📊 データと分析(TeslaMate API を使用)
「直近 3 か月の平均 km/kWh はいくつですか?悪化していますか?」
「今年、充電料金が最も高かったセッションと、その場所を表示してください。」
「車内空調を作動させたまま停車している時間は、週に何時間ですか?エネルギーコストはいくらですか?」
🔐 セキュリティと安心
「車はロックされていますか?セントリーモードはオンですか?フライト前に確認し忘れました。」
「車をダウンタウンに駐車しています。セントリーモードをオンにして、現在地を送ってください。」
🎨 ジェネレーティブ UI — 必要なときに作成できるカスタムダッシュボード
あらかじめ用意されたウィジェットに加え、サーバーは ジェネレーティブ UI 機能を公開しています。AI はその場でインタラクティブな Prefab UI コンポーネントを作成し、テキストだけでなく、チャート、テーブル、指標カードで回答できます。
「先月の場所ごとの充電コストを棒グラフで表示してください。」
「この車のダッシュボードを作成してください。現在の SoC、直近 7 回の走行、バッテリーの劣化状況を表示してください。」
「今冬と昨夏の電費を、横並びの指標カード 2 枚で比較してください。」
AI は generative_generate_prefab_ui を使ってサンドボックス内で Python コードを作成します(サーバー上の Pyodide + Deno)。生成されたウィジェットは Skybridge-mime iframe を通じてチャットに直接表示されます。こちらでテンプレートを作成したり、追加のやり取りをしたりする必要はありません。関連する generative_search_prefab_components 検索ツールにより、LLM はコンポーネントのシグネチャを正確に把握できます。
Tesla Fleet API と TeslaMate のどちらのユーザーにも同様に機能します。同じジェネレーティブツールが、いずれかのサブスクリプションによって利用可能になります。
スキル — あらかじめ構成された分析ワークフロー
このサーバーには MCP Skills も付属しています。これは、LLM が必要に応じて読み込み、ツールを連携させて一貫した回答を作成するための Markdown ワークフローです。最初に利用できるのは drive-efficiency-coach です。
「直近 30 日間のドライブ効率コーチを実行し、レポートとして表示してください。」
このスキルは、TeslaMate の走行データの取得、Wh/km パーセンタイルの計算、外れ値の特定、速度・気温・走行距離との相互照合、ジェネレーティブ UI レポート(指標カード、外れ値テーブル、あなた自身の数値に基づく実行可能なコーチングのヒント 1~3 件)の表示を AI に順を追って指示します。
🤝 スキルへの貢献
スキルは、Python に触れずにこのサーバーを拡張する最も簡単な方法です。プルリクエストを歓迎します — tesla_mcp/skills/ の下に新しいディレクトリを追加するだけで、SkillsDirectoryProvider が自動的に読み込みます。
優れたスキルの条件は次のとおりです。
- 具体的 — 何でもこなそうとするのではなく、具体的な質問に一つしっかり答えます(例:「期間を指定して、場所別の充電費用をまとめる」 は 「充電を管理する」 よりも優れています)。
- ツールを把握している — 呼び出す正確な MCP ツール(
teslamate_get_car_drives、energy_live_status、…)と適切な引数を指定します。 - 数値に基づいている — コーチング/インサイトのステップでは、一般論ではなく、ユーザー自身のデータから導いた数値を引用します。
- 有効な場合は視覚的に示す — 分析/レポートでは最後に
generative_generate_prefab_uiでレンダリングし、一度限りの質問にはプレーンテキストで回答します。 - 落とし穴について正直である — 単位の曖昧さ、データの欠落、LLM が対処すべきエッジケースを明示します。
最小限の構成:
tesla_mcp/skills/your-skill-name/
└── SKILL.md
SKILL.md は YAML フロントマター(name、description)で始まり、その後にワークフローが続きます。参考として drive-efficiency-coach/SKILL.md を参照してください。
作成者募集中のアイデア:
charging-cost-breakdown— 先月の充電を場所別にまとめ、100km あたりの費用を表示しますweekly-tesla-digest— 走行+充電+バッテリーのスナップショット+ソフトウェアアップデートを、月曜朝のメール風レポートにまとめますrange-anxiety-checker— 目的地に基づき、SoC、天候、標高、最近の電費を照合して、途中での充電停止を提案するか、不要だと判断しますhome-charging-window-finder— 時間帯別料金の設定と最近の充電セッションを使い、今夜の最も安い4時間の充電時間帯を見つけます
利用可能な機能(Tesla Fleet API のツール98個+TeslaMate API のツール9個+Generative UI ツール2個+スキル):
- 車両制御:ロック/ロック解除、空調、トランク、ウィンドウ、ライト、クラクション
- 充電:開始/停止、上限設定、スケジュール、充電アンペア数、充電履歴
- Powerwall と Solar:ライブ状況、エネルギー履歴、バックアップ用予備電力、ストームモード、電力網からの電力購入/電力網への電力送出、時間帯別料金の設定
- ナビゲーション:目的地の送信、近くのスーパーチャージャーの検索
- セキュリティ:セントリーモード、バレーモード、速度制限、PIN による運転制限
- データと分析:車両データ、走行履歴、運転統計 (TeslaMate API)
- Generative UI:AI がサンドボックス化された Pyodide ランタイムで作成する、オンデマンドの Prefab ダッシュボード(グラフ、指標、テーブル)
- スキル:AI が必要に応じて読み込み、ツールを連携させて一貫した回答を作成する、あらかじめ構成された分析ワークフロー(例:
drive-efficiency-coach)
🔐 ワンクリック SSO — Tesla アカウントに接続
ホスト型サーバーは、Tesla の公式認可サーバーを介した OAuth 2.0 シングルサインオンに対応しています。対応クライアント(ChatGPT、Claude.ai、VS Code…)では自動サインインフローが開始され、トークンをコピー&ペーストする必要はありません。
MCP server URL: https://mcp.myteslamate.com/mcp
サーバーは OAuth フローを
auth.tesla.comにプロキシし、Tesla トークンを MyTeslaMate トークンに透過的に交換します。Tesla の認証情報がこのサーバーに渡ることはありません。
🤖 ChatGPT での設定(Apps/MCP Connector)
ChatGPT は Settings → Apps からネイティブ MCP コネクターを利用できます。
- chat.openai.com で Settings → Apps を開きます。
- Create app をクリックします。
- MCP サーバーの URL を入力します:
https://mcp.myteslamate.com/mcp - ChatGPT が OAuth メタデータを自動検出し、Connect を促します。
- Tesla アカウントでサインインします。認可は自動的に処理されます。
- コネクターが Enabled apps の一覧に表示され、すべてのチャットで利用できるようになります。
🧠 Claude.ai でのセットアップ(MCP Connector)
- claude.ai を開き、Settings → Connectors に移動します。
- Add custom connector をクリックします。
- 名前(例:
Tesla)と、MCP サーバーの URL を入力します。https://mcp.myteslamate.com/mcp - Add をクリックします。Claude が OAuth メタデータを自動的に検出し、Connect ボタンを表示します。
- Connect をクリックすると、Tesla のログインページにリダイレクトされます。
- 認証が完了すると、Claude はすべての Tesla MCP ツールにアクセスできるようになります。
注: OAuth ベースの SSO を利用するには、MyTeslaMate アカウントが必要です。サーバーが Tesla トークンを検証し、MTM サブスクリプションに自動的に紐付けます。
🤖 Claude Code スキル
この MCP サーバーですぐに使える Claude Code スキルは、myteslamate/tesla-skills で利用できます。
/tesla スラッシュコマンドを 1 ステップでインストールします。
Claude Code で次を実行します。
/tesla what is my battery level?
/tesla lock my car
/tesla how much did I charge last month?
🚀 クイックスタート - VS Code、Claude Desktop などで直接使用
インストールは不要です! ホストされている MCP サーバーを直接使用できます。認証方法は 2 つあります。
オプション A — SSO(Claude.ai と ChatGPT におすすめ)
サーバー URL を指定するだけで、クライアントが OAuth フローを自動的に処理します(上記のセクションを参照)。
オプション B — 手動トークン(VS Code、Cursor、Claude Desktop)
OAuth に対応していないクライアントでは、MyTeslaMate API トークンを Authorization ヘッダーに直接指定します。
VS Code / Cursor(MCP Extension を使用)およびその他の MCP クライアントの場合
優先する連携方法を選べるように、両方のエンドポイントを .vscode/mcp.json 設定に追加します。
{
"servers": {
"tesla": {
"type": "http",
"url": "https://mcp.myteslamate.com/mcp"
}
}
}
- Tesla の公式 Fleet API に直接アクセスするには、
tesla_fleet_apiを使用します。 - TeslaMate API 経由で連携するには、
teslamateを使用します。
Claude Desktop の場合
上記と同じ URL とヘッダーを使って、MCP Connector の設定にエンドポイントを追加します。:
claude mcp add --transport http tesla-api "https://mcp.myteslamate.com/mcp"
認証方法と API の設定に応じてサーバーを選択します。
🔑 トークンの取得(手動モードのみ)
- MyTeslaMate.com にアクセスします。
- Tesla アカウントでサインインします。
- ダッシュボードの API セクションに移動します。
- 個人用 API トークンをコピーします。
- MCP の設定で使用します。
🔧 セルフホスト(上級者向け)
独自のインスタンスを実行する場合、このリポジトリは TeslaMate API と Tesla Fleet API にも対応しています(Tesla Developer Account と適切な Fleet API 登録が必要です)。
機能
- 再利用可能な
TeslaClientを備えた、tesla_mcp配下のモジュール式パッケージです。 - 車両エンドポイント(読み取り専用エンドポイント 29 個):
- 車両の基本情報:
GET /api/1/vehicles- 車両一覧を取得GET /api/1/vehicles/{vehicle_tag}- 車両のメタデータを取得GET /api/1/vehicles/{vehicle_tag}/vehicle_data- 車両のライブデータを取得POST /api/1/vehicles/{vehicle_tag}/wake_up- スリープ中の車両を起動POST /api/1/vehicles/fleet_status- フリートの状態を取得GET /api/1/vehicles/{vehicle_tag}/mobile_enabled- モバイルアクセスを確認GET /api/1/vehicles/{vehicle_tag}/nearby_charging_sites- 近くの充電スポットを取得GET /api/1/vehicles/{vehicle_tag}/service_data- サービスデータを取得GET /api/1/vehicles/{vehicle_tag}/release_notes- ファームウェアのリリースノートを取得GET /api/1/vehicles/{vehicle_tag}/recent_alerts- 最近のアラートを取得GET /api/1/dx/vehicles/options?vin={vin}- 車両のオプションを取得GET /api/1/dx/vehicles/upgrades/eligibility?vin={vin}- 対象となるアップグレードを取得GET /api/1/dx/vehicles/subscriptions/eligibility?vin={vin}- 対象となるサブスクリプションを取得
- ドライバーと共有(エンドポイント 6 個):
GET /api/1/vehicles/{vehicle_tag}/drivers- 許可されたドライバーの一覧を取得(所有者のみ)DELETE /api/1/vehicles/{vehicle_tag}/drivers- ドライバーのアクセス権を削除GET /api/1/vehicles/{vehicle_tag}/invitations- 有効な共有招待の一覧を取得(ページネーション対応)POST /api/1/vehicles/{vehicle_tag}/invitations- 共有招待を作成(有効期限 24 時間、1 回のみ使用可能)POST /api/1/invitations/redeem- 共有招待を引き換えPOST /api/1/vehicles/{vehicle_tag}/invitations/{id}/revoke- 共有招待を取り消し
- フリートテレメトリー(エンドポイント 4 個):
GET /api/1/vehicles/{vehicle_tag}/fleet_telemetry_config- フリートテレメトリーの設定を取得POST /api/1/vehicles/fleet_telemetry_config- セルフホスト可能な fleet-telemetry サーバーを設定DELETE /api/1/vehicles/{vehicle_tag}/fleet_telemetry_config- フリートテレメトリーの設定を削除GET /api/1/vehicles/{vehicle_tag}/fleet_telemetry_errors- 最近のフリートテレメトリーエラーを取得
- プッシュ通知のサブスクリプション(エンドポイント 4 個):
GET /api/1/subscriptions- モバイルデバイスのサブスクリプションを取得POST /api/1/subscriptions- モバイルデバイスのサブスクリプションを設定GET /api/1/vehicle_subscriptions- 車両のサブスクリプションを取得POST /api/1/vehicle_subscriptions- 車両のサブスクリプションを設定
- 保証と署名付きコマンド(エンドポイント 2 個):
GET /api/1/dx/warranty/details?vin={vin}- 保証情報を取得POST /api/1/vehicles/{vehicle_tag}/signed_command- 署名付きコマンドを実行(Tesla Vehicle Command Protocol)
- 車両の基本情報:
- 車両コマンド(制御エンドポイント 64 個):
- ドアとアクセス:door_lock、door_unlock、actuate_trunk
- 空調:auto_conditioning_start/stop、set_temps、set_climate_keeper_mode、set_bioweapon_mode、set_cabin_overheat_protection、set_cop_temp、set_preconditioning_max
- シートとステアリング:remote_seat_heater_request、remote_seat_cooler_request、remote_auto_seat_climate_request、remote_steering_wheel_heater_request、remote_steering_wheel_heat_level_request、remote_auto_steering_wheel_heat_climate_request
- 充電:charge_start、charge_stop、charge_port_door_open/close、set_charge_limit、charge_standard、charge_max_range、set_charging_amps、set_scheduled_charging、add/remove_charge_schedule、add/remove_precondition_schedule
- ウィンドウとサンルーフ:window_control、sun_roof_control
- ライトとクラクション:flash_lights、honk_horn
- メディア:adjust_volume、media_toggle_playback、media_next/prev_track、media_next/prev_fav、media_volume_down
- ナビゲーション:navigation_request、navigation_gps_request、navigation_sc_request
- セキュリティ:set_sentry_mode、set_valet_mode、reset_valet_pin、speed_limit_set_limit、speed_limit_activate/deactivate/clear_pin、speed_limit_clear_pin_admin、set_pin_to_drive、reset_pin_to_drive_pin、clear_pin_to_drive_admin
- ソフトウェア:schedule_software_update、cancel_software_update
- その他:remote_start_drive、trigger_homelink、remote_boombox、set_vehicle_name、guest_mode、erase_user_data
- エネルギーエンドポイント(Powerwall/Solar を制御するエンドポイント 12 個):
- 情報:energy_products(全製品の一覧)、energy_site_info(サイト設定)、energy_live_status(電力・エネルギーのリアルタイムデータ)
- 履歴:energy_history(経時的なエネルギー測定値)、energy_backup_history(オフグリッドイベント)、energy_charge_history(wall connector の使用状況)
- 制御:energy_operation(モードを設定:autonomous/self_consumption)、energy_backup(バックアップ用予備電力の割合を設定)、energy_off_grid_vehicle_charging_reserve(停電時の EV 充電用予備電力)
- 系統設定:energy_storm_mode(ストーム監視を有効化/無効化)、energy_grid_import_export(系統からの充電/系統への電力供給を制御)、energy_time_of_use_settings(電力会社の料金プランを設定)
- 充電エンドポイント(充電履歴と請求書に関するエンドポイント 3 個):
- charging_history(フィルターに対応したページネーション付き充電履歴)
- charging_invoice(充電イベントの PDF 請求書をダウンロード)
- charging_sessions(料金とエネルギーデータを含むセッション情報。法人アカウントのみ)
- エラー処理を一元化し、基本的なログ記録を行うことで、MCP クライアントが有用な診断情報を表示できるようにします。
設定
API エンドポイントの設定
TESLA_BASE_URL 環境変数を使用して、Tesla API のベース URL を設定します。
MyTeslaMate API の場合(デフォルト)
# No configuration needed - uses default
# Or explicitly set:
export TESLA_BASE_URL=https://api.myteslamate.com
Tesla Fleet API の場合(公式)
お住まいの地域のエンドポイントを選択してください。
# North America, Asia-Pacific (excluding China)
export TESLA_BASE_URL=https://fleet-api.prd.na.vn.cloud.tesla.com
# Europe, Middle East, Africa
export TESLA_BASE_URL=https://fleet-api.prd.eu.vn.cloud.tesla.com
# China
export TESLA_BASE_URL=https://fleet-api.prd.cn.vn.cloud.tesla.cn
注:公式の Tesla Fleet API を使用する場合は、次の条件を満たしていることを確認してください。
- Tesla Developer Account に登録していること
- Fleet API への適切なアクセス権限があること
- 有効な OAuth 2.0 ベアラートークンがあること
インストール
Python の依存関係を一度だけインストールします。
pip install -r requirements.txt
MCP サーバーの実行
サーバーは複数の方法で起動できます。
オプション 1:uvicorn を使用する(推奨)
uvicorn tesla_mcp.app:app --host 0.0.0.0 --port 8000 --reload
オプション 2:Docker compose 方式
make up
オプション 3:従来の方式
python server.py
サーバーは http://0.0.0.0:8084 で HTTP ストリーミングを使用して起動します。MCP 対応のクライアント(Cursor や MCP 拡張機能を備えた VS Code など)を接続し、このエンドポイントを指すサーバーエントリを設定してください。
使用例
MyTeslaMate のクイックスタート
# 1. Start the server (uses MyTeslaMate API by default)
uvicorn tesla_mcp.app:app --host 0.0.0.0 --port 8000
# 2. Configure your MCP client with:
# URL: http://localhost:8000/sse
# Authorization: Bearer YOUR_MYTESLAMATE_TOKEN
Tesla Fleet API の使用(公式)
# 1. Set your regional endpoint
export TESLA_BASE_URL=https://fleet-api.prd.na.vn.cloud.tesla.com
# 2. Start the server
uvicorn tesla_mcp.app:app --host 0.0.0.0 --port 8000
# 3. Configure your MCP client with:
# URL: http://localhost:8000/sse
# Authorization: Bearer YOUR_TESLA_FLEET_TOKEN
Docker の使用方法
# Build the image
docker build -t tesla-mcp .
# Run with MyTeslaMate (default)
docker run -p 8000:8000 tesla-mcp
# Run with Tesla Fleet API
docker run -p 8000:8000 -e TESLA_BASE_URL=https://fleet-api.prd.na.vn.cloud.tesla.com tesla-mcp
新しいモジュールの追加
tesla_mcp/modules/の下にTeslaModuleを継承するファイルを作成します。tesla_mcp/modules/__init__.pyにモジュールを登録します。- モジュールのメソッドに処理を委譲する新しい MCP ツールを
server.pyで公開します。
この構成により MCP レイヤーを薄く保ち、Tesla Fleet API と TeslaMate API のロジックをすべて tesla_mcp パッケージに集約できます。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。