claude.ai(Web版)・GrokからもLUNAを操作できるようにした話 — OAuthプロキシを添えて
はじめに
以前、ESP32上で動くMCP(Model Context Protocol)サーバーという記事でLUNAを紹介しました。今回は、LUNAが実際にどこまでできるのかをもう少し詳しく紹介しつつ、新しく公開したOAuthプロキシについてまとめます。
LUNAとは、改めて
LUNAは、ESP32上で動くMCP(Model Context Protocol)サーバー + Lua 5.1スクリプトエンジンです。一言でいうと「AIと会話するだけで、ESP32上のコードが書かれ、実行され、結果を見てAI自身が修正までしてくれる」という組み込み開発の体験を提供します。
あなた ──→ Claude AI ──→ LUNA (ESP32) ──→ 望遠鏡・シリアル機器
「M42に向けて」 シリアルコマンド 🔭 導入完了
何が「実力」なのか
Arduino IDEやPlatformIOでの「書く→ビルド→書き込む→確認する」というサイクルを、LUNAは「AIに話す→AIが書いて実機で実行→結果を見て自己修正」に置き換えます。ポイントは、ファームウェアの書き換えが一切不要な点です。ロジックはESP32のSPIFFS上に保存されたLuaスクリプトとして存在し、AIがリアルタイムに書き換え続けられます。
Claudeが実際に呼び出せるMCPツールの一部:
| ツール | 内容 |
|---|---|
lua_exec / lua_save / lua_run
|
スクリプトの即時実行・保存・非同期実行 |
lua_status / lua_log / lua_stop
|
実行状態・ログの確認、停止 |
serial_query / serial_write / serial_read
|
シリアル機器への直接制御(RS-232C) |
fs_read / fs_write
|
ESP32上のファイル読み書き |
check_notify |
Luaスクリプトからの非同期通知の受信 |
Lua側からは、http.get/put/post(ASCOM/Alpaca、NINA Advanced API、Vixen STAR BOOK TEN連携)、udp.*(Vixen Wireless Unit連携)、log.save/load(スクリプト間のデータ受け渡し)、notify.set(AIへの通知)といったモジュールが使えます。FreeRTOSのデュアルコア構成で、MCPサーバーとLua実行エンジンが別コアで動くため、スクリプト実行中もMCP通信がブロックされません。
実際の連携例
NINA(無料の天体撮影ソフト)と組み合わせると、天候チェック→望遠鏡導入→オートフォーカス→撮影シーケンス開始→気温変化に応じた再フォーカス→悪天候時の自動中断、という一連の流れを「今夜M42を撮って」の一言で任せられます。Vixen Wireless Unit(AXD/SXP/SXD2/AP/SX2/AXJ/SXP2)やSTAR BOOK TENへのGoToも、Claudeが内蔵のガイド(vixen_guide)を使って自動でコマンドを組み立てます。
つまりLUNAは「望遠鏡を動かすためのAI」ではなく、AIがハードウェアを直接プログラムし続けるための土台です。天体観測はその最初の具体的なユースケースにすぎません。
これまでの制約: Claude Desktop専用だった
ここまで便利なLUNAですが、これまで接続できるのはClaude Desktopのみでした。claude.ai(Web版)やGrokの「カスタムコネクタ」機能は、リモートMCPサーバーにOAuth 2.0認証(Dynamic Client Registration + Authorization Code + PKCE)を必須としますが、LUNAのStreamableHTTP MCP実装は認証機能を持たないため、そのままでは接続できませんでした。
解決策: AiBridgeMCP OAuth Proxy
そこで、この認証層だけを肩代わりする軽量な中継プログラムAiBridgeMCP OAuth Proxyを公開しました。
claude.ai / Grok ──→ HTTPSトンネル ──→ OAuthプロキシ(PC上) ──→ LUNA(ESP32)
認証はここで完結 /mcpへ素通し
- Node.js標準モジュールのみ・依存ゼロで実装
- Cloudflare Quick Tunnelを既定で使用 — アカウント登録不要、初回起動時に自動ダウンロード
- 固定URLが欲しい場合は、詳細設定からngrok(要アカウント登録)にも切り替え可能
- ソースコード同梱・MITライセンスで、中身をそのまま確認できる
使い方
-
.exeをダブルクリック(Node.jsのインストール不要) - ブラウザが自動で開く
- LUNAのIPアドレスを入力してボタンを押す
- 表示されたURLとPINを、claude.ai / Grokの「コネクタを追加」画面に登録
これだけで、claude.ai(Web版)からもGrokからも、Claude Desktopと同じようにLUNAを操作できるようになります。
ダウンロード
- https://github.com/OnStepNinja/LUNA/releases/tag/oauth-proxy-v1.0-ja
- Lab Edition版: https://github.com/OnStepNinja/LUNA-Lab/releases/tag/oauth-proxy-v1.0-ja
現時点では日本語UI版のみですが、英語版も後日公開予定です。
おわりに
LUNA本体についてはこれまでも記事にしてきましたが、今回のOAuthプロキシによって「Claude Desktopを開いていないと使えない」という制約がなくなり、ブラウザさえあればどこからでもLUNAと対話できるようになりました。天体観測に限らず、ESP32を使った電子工作全般でも同じ仕組みが使えます(LUNA-Lab参照)。
質問や要望があれば、アプリ内の「説明書をAIに質問する」ボタンからClaude/Grokに直接聞くこともできますし、AiBridgeMCP Community(Facebook)でも受け付けています。