Arduino MCP Server について
Arduino MCP Serverは、arduino-cliを介してAIアシスタントとArduinoボードを接続します。環境設定、スケッチのコンパイルと書き込み、シリアル通信、電気的な安全確認に対応します。
主な機能
- 01ボードとシリアルポートの検出
- 02コアとライブラリの導入・管理
- 03スケッチのコンパイルと書き込み
- 04状態を保持するシリアルセッション
- 05電気的安全性とピン情報の確認
活用シーン
- 01ボード用のarduino-cli環境を設定
- 02接続中のボードへスケッチを書き込み
- 03シリアル出力の準備完了メッセージを待機
- 04ハードウェア操作前にピンの安全性を確認
MCP 対応
MCPクライアントにArduino CLI操作、シリアルセッション制御、安全確認、ボード参照リソース、セットアップ用プロンプトを提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
npx -y arduino-mcp-serverARDUINO_CLI_PATHOptional path to arduino-cli binary. Defaults to arduino-cli on PATH.ARDUINO_SKETCH_ROOTOptional absolute path restricting sketch operations to this directory.ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
21掲載時のツール一覧 · 3 週間前に更新
このツールにパラメーターはありません。
詳細
arduino-mcp-server
AI アシスタントから Arduino を完全に操作できます。コンパイル、アップロード、シリアルのモニタリング、配線の安全確認まで、すべて自然言語で行えます。
HardwareMCP エコシステムの一部です。AI と物理的なハードウェアをつなぐオープンソースの MCP サーバー群です。
できること
AI アシスタントは Jira、GitHub、データベースを操作できます。しかし、これまではマイクロコントローラーと通信できませんでした。
arduino-mcp-server は arduino-cli を MCP サーバーとして利用できるようにし、AI が次の操作を行えるようにします。
- 接続されているボードとポートを自動的に検出
- ターミナルに触れずにスケッチをコンパイルしてアップロード
- 状態を保持するセッションでシリアル出力をモニタリング(開く、読み取る、パターンを待つ、書き込む、閉じる)
- ハードウェアにコマンドを送信する前に電気的な安全性を確認
- コア、ライブラリ、CLI のインストールなど、依存関係を管理
クイックスタート
インストール:
npm install -g arduino-mcp-server
Claude Desktop に追加(claude_desktop_config.json):
{
"mcpServers": {
"arduino": {
"command": "npx",
"args": ["-y", "arduino-mcp-server"],
"env": {
"ARDUINO_CLI_PATH": "arduino-cli",
"ARDUINO_SKETCH_ROOT": "/path/to/your/sketches"
}
}
}
}
PATH 上に arduino-cli が必要です。または、サーバーにインストールさせることもできます。
できることの例
ゼロからセットアップ:
「Arduino CLI がインストールされているか確認して、Arduino Uno 用にすべてセットアップしてください。」
コンパイルとアップロード:
「Blink スケッチをコンパイルして、COM6 に接続された Uno にアップロードしてください。」
シリアルモニタリング:
「COM6 で 115200 baud のシリアル通信を開き、デバイスが READY と出力するまで待ってください。」
安全性を優先したワークフロー:
「コマンドを送信する前に、ピン 13 に 5V、25mA を設定した Arduino Uno の安全性を事前確認してください。」
ツール
| ツール | 説明 |
|---|---|
arduino_cli_doctor | Arduino CLI のインストール状況とバージョンを確認 |
install_arduino_cli | arduino-cli のインストールを案内 |
detect_hardware | 接続されたボードを検出し、FQBN を推定 |
list_connected_boards | 接続されている Arduino ボードをすべて一覧表示 |
list_serial_ports | 利用可能なシリアルポートを一覧表示 |
ensure_core_installed | ボードのコアを確認/インストール |
compile_sketch | 対象ボード用にスケッチをコンパイル |
upload_sketch | コンパイル済みのスケッチをボードにアップロード |
upload_and_wait_ready | アップロードして、デバイスの準備完了信号を待機 |
serial_open_session | 状態を保持するシリアルセッションを開く |
serial_read | バッファー内のシリアルデータを読み取る |
serial_expect | シリアル出力に特定のパターンが現れるまで待機 |
serial_write | シリアル経由でデータを送信 |
serial_close_session | シリアルセッションを閉じる |
serial_list_sessions | アクティブなシリアルセッションを一覧表示 |
read_serial_snapshot | シリアルデータを一度だけ簡易的に読み取る |
safety_preflight | ハードウェア操作前に電気的な安全性を確認 |
get_board_details | ボードのピンと機能の詳細を取得 |
list_supported_boards | arduino-cli がサポートするボードをすべて一覧表示 |
list_board_reference | ボードのピンリファレンスを参照 |
search_board_reference | キーワードでボードリファレンスを検索 |
リソース:
arduino://boards/reference— ボードのピンと機能に関する構造化リファレンス
プロンプト:
arduino-cli-bootstrap-policy— arduino-cli のセットアップ動作に関するポリシーarduino-setup-assistant— Arduino 環境のセットアップを案内
設定
| 変数 | デフォルト | 説明 |
|---|---|---|
ARDUINO_CLI_PATH | arduino-cli | arduino-cli バイナリへのパス |
ARDUINO_SKETCH_ROOT | (none) | スケッチのパスをこのディレクトリ内に制限 |
開発
git clone https://github.com/hardware-mcp/arduino-mcp-server
cd arduino-mcp-server
npm install
npm run typecheck
npm run build
npm run dev
HardwareMCP の一部
このサーバーは HardwareMCP エコシステムの一部です。AI アシスタントが物理的なハードウェアを実際に操作できるようにする MCP サーバーのコレクションです。
ライセンス
MIT — 詳細は LICENSE をご覧ください。
サポート
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。