MCP for IOT について
MCP for IOT は、Claude などの互換クライアントと Arduino をつなぐ Go 製 MCP サーバーです。シリアルデータの読み取りに加え、デジタルピンやブザーを制御できます。
主な機能
- 01利用可能なシリアルポートの一覧表示
- 02Arduino のシリアルデータ読み取り
- 03デジタルピン値の設定
- 04時間指定でのブザー制御
活用シーン
- 01使用可能なシリアルポートの確認
- 02Arduino から1行のデータを取得
- 03LED やリレーのピン切り替え
- 04接続したブザーの作動
MCP 対応
シリアルポート一覧、シリアル行の読み取り、デジタル出力、ブザー制御のツールを MCP クライアントに公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
MCP for IOT
IoT デバイス(Arduino)向け Model Context Protocol(MCP)サーバー
概要
MCP for IOT は、Claude のような AI モデルが IoT デバイス、特に Arduino ボードと直接やり取りできる、Model Context Protocol(MCP)サーバーの Go による実装です。このサーバーは Claude と Arduino ハードウェアの橋渡しをし、AI によるハードウェアの自動化を可能にします。
機能
- 🔌 利用可能なシリアルポートを一覧表示
- 📡 Arduino のシリアルポートからデータを読み取り
- 🚦 デジタルピン(LED、リレーなど)を制御
- 🔊 オン/オフおよび継続時間の設定でブザーを制御
- 🤖 Claude AI とシームレスに連携
使い方
https://github.com/user-attachments/assets/46d7d731-f5d0-4acd-b53e-c00be8b83215
前提条件
- Go(バージョン 1.24 以降)
- USB 接続の Arduino ハードウェア
- Claude Desktop App または互換性のある MCP クライアント
インストール
ソースからビルド
git clone https://github.com/sukeesh/mcp-iot-go.git
cd mcp-iot-go
go install
バイナリは GOBIN ディレクトリにインストールされます。このディレクトリは PATH に含まれている必要があります。
Arduino のセットアップ
- Arduino をコンピューターに接続します
- 提供されている Arduino ファームウェアを書き込みます:
arduino/firmware.ino
このファームウェアは、シリアル通信経由で次のコマンドを受け付けます:
M,pin,mode- ピンモードを設定します(例:M,6,OUTPUT)D,pin,value- デジタルピンを制御します(例:D,6,HIGHまたはD,6,LOW)BZ,pin,state- ブザーを制御します(例:BZ,8,ONまたはBZ,8,OFF)
MCP クライアントの設定
Claude Desktop を設定します:
- Claude Desktop → Settings → Developer → Edit Config を開きます
- 次の内容を
claude_desktop_config.jsonに追加します:
{
"mcpServers": {
"iot": {
"command": "<path-to-mcp-iot-go-binary>",
"env": {}
}
}
}
- Claude Desktop を再起動します
利用可能なツール
| ツール | 説明 |
|---|---|
port_list | 利用可能なすべてのシリアルポートを一覧表示します |
read_serial_line | 指定したシリアルポートからデータを 1 行読み取ります |
write_digital | 指定したポートのピンにデジタル値(HIGH/LOW)を書き込みます |
buzzer_control | オプションで継続時間を指定して、Arduino のピンに接続されたブザーを制御します |
使用例
セットアップ後、Claude を通じて Arduino ハードウェアと直接やり取りできます:
- 「利用可能なシリアルポートをすべて一覧表示して」
- 「ポート /dev/cu.usbmodem12401 の Arduino からデータを読み取って」
- 「ピン 6 の赤い LED を点灯して」
- 「ピン 8 のブザーを 2 秒間鳴らして」
開発
プロジェクト構成
main.go- MCP サーバーのセットアップとツール定義internal/tools.go- Arduino 通信のツール実装arduino/firmware.ino- コマンドを処理する Arduino ファームウェア
依存関係
- mcp-go - MCP 実装用の Go ライブラリ
- go.bug.st/serial - シリアルポート通信ライブラリ
コントリビューション
コントリビューションを歓迎します!お気軽にプルリクエストを送信してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。