mcpField
M
MCP Arduino Server (mcp-arduino-server)

MCP Arduino Server (mcp-arduino-server)

ローカル
github.com/Volt23開発ツール1039 週間前に更新

MCP Arduino Server (mcp-arduino-server) について

MCP Arduino Serverは、arduino-cliを通じてスケッチ、ボード、ライブラリ、ファイル、シリアルモニターを操作できます。説明文からWireVizの回路図も生成でき、AI支援にはAPIキーが必要です。

主な機能

  1. 01スケッチの作成、読み取り、編集
  2. 02スケッチのコンパイルと書き込み
  3. 03ボード検索とライブラリ管理
  4. 04シリアル出力のモニタリング
  5. 05WireViz回路図の生成

活用シーン

  1. 01Arduinoスケッチの作成と編集
  2. 02スケッチの検証またはボードへの書き込み
  3. 03テスト中のシリアル出力の確認
  4. 04説明文から回路図を生成

MCP 対応

arduino-cliと関連するスケッチ、ボード、ライブラリ、ファイル、シリアルモニターの操作をツールとしてMCPクライアントに提供します。WireVizによる回路図生成にも対応します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

MCP Arduino サーバー (mcp-arduino-server)

License: MIT PyPI version

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_LEVELINFO
OPENAI_API_KEYOpenAI API キー(AI を活用した WireViz に必須)
OPENROUTER_API_KEYOPENAI_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

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

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