MCP Arduino Server (mcp-arduino-server) について
MCP Arduino Serverは、arduino-cliを通じてスケッチ、ボード、ライブラリ、ファイル、シリアルモニターを操作できます。説明文からWireVizの回路図も生成でき、AI支援にはAPIキーが必要です。
主な機能
- 01スケッチの作成、読み取り、編集
- 02スケッチのコンパイルと書き込み
- 03ボード検索とライブラリ管理
- 04シリアル出力のモニタリング
- 05WireViz回路図の生成
活用シーン
- 01Arduinoスケッチの作成と編集
- 02スケッチの検証またはボードへの書き込み
- 03テスト中のシリアル出力の確認
- 04説明文から回路図を生成
MCP 対応
arduino-cliと関連するスケッチ、ボード、ライブラリ、ファイル、シリアルモニターの操作をツールとしてMCPクライアントに提供します。WireVizによる回路図生成にも対応します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
MCP Arduino サーバー (mcp-arduino-server)
FastMCP を利用したブリッジで、Model Context Protocol(MCP)を介して arduino-cli の機能を公開します。スケッチ、ボード、ライブラリ、ファイルを管理できるほか、YAML または自然言語から WireViz の回路図を生成できます。
要件
- Python ≥3.10
PATHに arduino-cli- MCP SDK(
mcp[cli]) - WireViz(任意。図の生成に使用)
- OPENAI_API_KEY(AI を活用した WireViz に使用)
- thefuzz[speedup](任意。ローカルライブラリのあいまい検索を有効化)
インストール
PyPI から:
pip install mcp-arduino-server
ソースから:
git clone https://github.com/Volt23/mcp-arduino-server.git
cd mcp-arduino-server
pip install .
設定
環境変数でデフォルト値を上書きできます:
| 変数 | デフォルト値/説明 |
|---|---|
| ARDUINO_CLI_PATH | 自動検出 |
| WIREVIZ_PATH | 自動検出 |
| MCP_SKETCH_DIR | ~/Documents/Arduino_MCP_Sketches/ |
| LOG_LEVEL | INFO |
| OPENAI_API_KEY | OpenAI API キー(AI を活用した WireViz に必須) |
| OPENROUTER_API_KEY | OPENAI_API_KEY の代替として任意 |
| ARDUINO_SERIAL_LOG_MAX_BYTES | シリアルログファイルごとの最大サイズ(バイト。0 で無効化) |
| ARDUINO_SERIAL_LOG_ROTATE_COUNT | 保持するローテーション済みシリアルログの数 |
クイックスタート
mcp-arduino-server
サーバーは STDIO で JSON-RPC MCP 呼び出しを待ち受けます。主なメソッドは次のとおりです。
スケッチ
create_new_sketch(name)list_sketches()read_file(path)write_file(path, content[, board_fqbn])(自動でコンパイルし、.inoを開きます)
ビルドとデプロイ
verify_code(sketch, board_fqbn)upload_sketch(sketch, port, board_fqbn)
ライブラリ
lib_search(name[, limit])lib_install(name)list_library_examples(name)
ボード
list_boards()board_search(query)
シリアルモニター
serial_monitor_start(port, baud, buffer_lines, log_to_file, ...)serial_monitor_read(monitor_id, lines)serial_monitor_list()serial_monitor_stop(monitor_id)
ファイル操作
rename_file(src, dest)remove_file(path)(破壊的な操作です。操作対象はホームディレクトリとスケッチディレクトリに制限されています)
WireViz の回路図
generate_circuit_diagram_from_description(desc, sketch="", output_base="circuit")(AI を活用します。OPENAI_API_KEYが必要で、PNG を自動的に開きます)
MCP クライアントの設定
MCP クライアント(例:Claude Desktop)と連携するには、環境変数に OpenAI API キーを設定します(または、OpenRouter 用の OPENROUTER_API_KEY を設定します)。
{
"mcpServers": {
"arduino": {
"command": "/path/to/mcp-arduino-server",
"args": [],
"env": {
"WIREVIZ_PATH": "/path/to/wireviz",
"OPENAI_API_KEY": "<your-openai-api-key>"
}
}
}
}
トラブルシューティング
- 詳細なログを出力するには、
LOG_LEVEL=DEBUGを設定します。 - ファイルとシリアルポートの権限を確認します。
- 不足しているコアをインストールします:
arduino-cli core install <spec>。 - デバッグのために
arduino-cliコマンドを手動で実行します。
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。