Esp Mcp について
Esp Mcp は、ESP-IDF と ESP32 の主要なコマンドを一か所にまとめる、概念実証段階の MCP サーバーです。インストール、プロジェクト作成、ビルド、フラッシュ、テストを LLM との対話で行えます。Espressif のチップを扱う組み込み開発者を対象としています。
主な機能
- 01ESP-IDF 依存関係とツールチェーンのインストール
- 02ESP-IDF プロジェクトの作成と設定
- 03インクリメンタルビルドに対応したプロジェクトビルド
- 04シリアルポートの一覧表示とファームウェアの書き込み
- 05pytest-embedded による pytest テストの実行
- 06プロジェクトごとの ESP-IDF パス指定
活用シーン
- 01チャットからの ESP32 プロジェクトのターゲット設定とビルド
- 02接続中のシリアルポートの確認とデバイスへのファームウェア書き込み
- 03ESP-IDF プロジェクトの pytest テスト実行
MCP 対応
このサーバーは run_esp_idf_install、build_esp_project、flash_esp_project などのツールを提供し、LLM クライアントが MCP 経由で呼び出せるようにします。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
目標
この MCP の目標は次のとおりです。
- ESP-IDF と関連プロジェクトのコマンドを一か所に集約します。
- LLM とのコミュニケーションだけで、簡単に使い始められるようにします。
プロジェクトへの貢献方法
この MCP にないコマンドを見つけて、PR を作成するだけです!
実装を手伝ってほしい場合は、issue を開いてください。
お知らせ
このプロジェクトは現在、ESP-IDF のワークフローに特化した MCP サーバーの**概念実証(PoC)**です。
現在の機能:
主な機能:
run_esp_idf_install:install.shを使用して ESP-IDF の依存関係とツールチェーンをインストールします。create_esp_project:新しい ESP-IDF プロジェクトを作成します。setup_project_esp_target:ESP-IDF プロジェクトの対象チップを設定します(esp32、esp32c3、esp32s3 など)。build_esp_project:インクリメンタルビルドに対応して ESP-IDF プロジェクトをビルドします。list_esp_serial_ports:ESP デバイスで利用可能なシリアルポートを一覧表示します。flash_esp_project:ビルド済みファームウェアを接続された ESP デバイスに書き込みます。run_pytest:ESP-IDF プロジェクト向けの pytest-embedded に対応して pytest テストを実行します。
その他の機能:
- 柔軟な ESP-IDF パス管理:
idf_pathパラメーターを使用して、プロジェクトごとに異なる ESP-IDF バージョンをサポートします。 - SDK 設定の管理:ビルド設定用にカスタムの
sdkconfig_defaultsファイルをサポートします(複数のファイルはセミコロンで区切って指定できます)。 - パフォーマンス監視のためのビルド時間計測。
- 書き込み操作でのポート指定(任意)。
- ビルドログに基づく問題の自動修正を実験的にサポートします。
ビジョンと今後の開発: 長期的なビジョンは、この MCP を組み込みデバイスとやり取りするための包括的なツールキットへと拡張し、ホームアシスタントプラットフォームとの連携や、ESP-IDF および関連技術のドキュメントへのアクセス効率化を実現することです。
次のような機能を構想しています。
- ESP-IDF コマンドのサポート拡大(例:実現可能であれば、
monitorやmenuconfigとの連携)。 - デバイスの管理と情報の取得。
- その他の組み込み開発ツールやプラットフォームとの連携。
アイデアや貢献を歓迎します!issue を開いて、ぜひご意見をお寄せください。
インストール
まず、この MCP リポジトリをクローンします。
git clone [email protected]:horw/esp-mcp.git
次に、チャットボットで設定します。
以下の JSON スニペットは、Model Context Protocol(MCP)に対応したチャットボットまたはエージェントシステムで、この esp-mcp サーバーを設定する方法の一例です。具体的な設定手順や形式は、使用するチャットボットシステムによって異なる場合があります。MCP サーバーの統合方法については、チャットボットのドキュメントを参照してください。
{
"mcpServers": {
"esp-run": { // "esp-run" is an arbitrary name you can assign to this server configuration.
"command": "<path_to_uv_or_python_executable>",
"args": [
"--directory",
"<path_to_cloned_esp-mcp_repository>", // e.g., /path/to/your/cloned/esp-mcp
"run",
"main.py" // If using python directly, this might be just "main.py" and `command` would be your python interpreter
],
"env": {
"IDF_PATH": "<path_to_your_esp-idf_directory>" // e.g., ~/esp/esp-idf or C:\\Espressif\\frameworks\\esp-idf
}
}
}
}
設定に関する注意事項:
command:uvを使用する場合はuv実行ファイルのフルパス、main.pyを直接実行する場合は Python インタープリターのフルパス(例:/usr/bin/python3またはC:\\Python39\\python.exe)を指定します。args:--directoryの最初の引数には、esp-mcpリポジトリをクローンした場所の絶対パスを指定します。uvを使用する場合は、引数としてrun main.pyを指定します。Python を直接使用する場合は、argsリストにmain.pyのみを指定すればよい場合があります。その際は、commandが Python 実行ファイルを指していることを確認してください。
IDF_PATH:(任意)この環境変数には、ESP-IDF インストールのルートディレクトリを指定できます。ESP-IDF は Espressif の公式 IoT 開発フレームワークです。まだインストールしていない場合は、インストール手順についてESP-IDF 公式ドキュメントを参照してください。注:すべてのツールはidf_pathパラメーターに対応しており、ツールの呼び出し時に手動で指定できます。これにより、環境変数を設定せずに、プロジェクトごとに異なる ESP-IDF バージョンを使用できます。idf_pathが指定されていない場合、ツールは利用可能であればIDF_PATH環境変数を使用します。
使い方
esp-mcp サーバーを設定して実行すると、LLM またはチャットボットは、この MCP で定義されたツールを使用してサーバーとやり取りできます。たとえば、チャットボットに次のように依頼できます。
- 「
/path/to/esp-idfにある ESP-IDF インストールの依存関係をインストールしてください。」 - 「
/path/to/my/esp-projectのプロジェクトのターゲットチップを esp32s3 に設定してください。」 - 「
esp-mcpを使用して、/path/to/my/esp-projectにあるプロジェクトをビルドしてください。」 - 「カスタムの sdkconfig デフォルト設定
sdkconfig.defaults;sdkconfig.ci.releaseを使用してプロジェクトをビルドしてください。」 - 「esp32c3 を対象に、
/path/to/my/esp-projectのプロジェクトで pytest テストを実行してください。」 - 「
my_appのプロジェクトについて、接続されている ESP32 デバイスにファームウェアを書き込んでください。」
MCP サーバーは、main.py に実装されたツールに基づいて、対応する ESP-IDF コマンド(idf.py build、idf.py set-target、idf.py flash、pytest など)を実行します。
以下の result.gif は、やり取りの例を示しています。

例
- ビルドと書き込み
スター履歴
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。
