コンテンツにスキップ

【台風6号の影響による出荷への影響について】2026年6月3日(水)については出荷業務を停止いたします。またしばらくの間、出荷への影響が続く見込みです。通常より1~2日遅れての到着となる可能性がございます。ご迷惑をおかけいたしますが、何卒ご理解ご容赦のほどよろしくお願いいたします。

【台風6号の影響による出荷への影響について】2026年6月3日(水)については出荷業務を停止いたします。またしばらくの間、出荷への影響が続く見込みです。通常より1~2日遅れての到着となる可能性がございます。ご迷惑をおかけいたしますが、何卒ご理解ご容赦のほどよろしくお願いいたします。

MicroPython向けのMCPサーバーを作ってみた

MicroPython向けのMCPサーバーを作ってみた

最近LLMをさまざまなツールやシステムにつなげる流れが広がっています。マイコンのような物理デバイスも、うまく扱えればかなりおもしろくなるはずです。そこで今回は MicroPython が動作するボードに対して、LLMから直接コード実行などを行えるMCPサーバーを実装してみました。

SWITCHSCIENCE/mcp-micropython-bridge: MCP bridge server for MicroPython (ESP32, RP2040, etc.) via USB serial

何ができるのか

このMCPサーバーを使うと、LLMがMicroPythonボードに対してファイルの読み書き、コード実行、シリアル出力を確認しながら作業を進めます。単にコードを書くためだけでなく、実機を触って確かめながら進められるのがポイントです。

特におもしろいのは、ボード固有の情報を /HARDWARE.md に蓄積していけるところです。どのGPIOに何がつながっているか、温湿度センサのアドレスは何か、といった情報を会話の中で整理して書き込み、次の作業からその内容を前提に進められます。

たとえば、こんなやり取りができます。
MCP-Micropythonとのチャット1

MCP-Micropythonとのチャット2

こういう形で、一度与えたハードウェア情報をあとから使い回せるようになっています。/HARDWARE.md をデバイスの説明書として扱えます。短いコードをデバイスに書き込み、/HARDWARE.md に使い方を書いておけば、LLMはそのコードを使ってデバイスを制御するようになります。めちゃ便利!

どんな仕組みで動いているのか


MCP Protocol
stdio
USB / UART Serial
MCP Client
Codex / Copilot / Claude Desktop / Antigravity
MCP Server
mcp_micropython
MicroPython Board
ESP32 / RP2040 / etc.

仕組みとしてはシンプルで、MCPサーバーがホストPC上で動作し、USBシリアル経由でMicroPythonボードと通信します。MCPサーバー側で各種操作をツールとして公開し、LLMはそのツールを呼び出すことでMicroPythonボードを操作します。

MicroPython側は特別な常駐プログラムを必要とせず、基本的にはREPLやファイルシステムに対する操作をベースにしています。そのため、既存のMicroPythonボードに対して導入しやすい構成になっています。ESP32やRaspberry Pi Picoなど、MicroPythonが動くボードなら大体動くと思います。

ESPr® Developer C5(16MB Flash / 8MB PSRAM)

今回は先日発売した# ESPr® Developer C5(16MB Flash / 8MB PSRAM)を利用しました。温湿度気圧センサー近接センサーを接続しています。

触ってみると結構おもしろい

実際に触ってみると、これはターミナルを通した対話的なプログラムとは少し違うおもしろさがあります。ファイルを読んで、必要なら書き換えて、コードを試しに実行して、シリアル出力を見ながら挙動を確かめる。そうした一連の流れを、LLMとの会話の中で進められるのは新鮮でした。

特に、MicroPythonのように試行錯誤しながら開発することが多い環境とは相性がよさそうです。センサー値を読んでみる、ピン設定を変えて試す、ログを見て原因を探る、といった作業がうまくいけばかなり自然な形で回せそうだなと。

「AIが書いたコードを実機で動かす」ではなく、「AIが実際にデバイスを触りながら確認する」という体験には何か可能性がありそうだなと感じました。一方で、技術的にはおもしろいものの、決定的なユースケースはまだ見えていません。教育用途、試作の補助、ちょっとした自動化など、相性がよさそうな方向はいくつか考えられますが。。

まとめ

今回はMicroPython向けのMCPサーバーを実装し、LLMからボードを操作できるところまで作ってみました。実装してみたことで、技術的なおもしろさや可能性はかなり感じています。

ただ「これを何に使うと本当にうれしいのか」まだはっきり見えていません。教育、試作、自動化に限らず、こういう場面で使えそう、こういう構成にするとおもしろそう、といったアイディアがあればぜひ知りたいです。みなさんなら、どう活用しますか?

以上です。

前の記事 NT福島に行ってきました
次の記事 Point-to-Point Bluetooth for Your PNT Projects