nodrix について
nodrixは、運用者のCloudflareアカウントにデプロイするオープンソースのシングルテナントIoTプラットフォームです。テレメトリー収集、ダッシュボード、自動化に加え、AIアシスタントへのデータ提供や機器制御に対応します。
主な機能
- 01HTTPSまたはWebSocketでテレメトリーを受信
- 02リアルタイムダッシュボードと埋め込みウィジェット
- 03ダッシュボードからハードウェアを操作
- 04ビジュアルオートメーションと連携の設定
- 05現在の状態と時系列データの取得
活用シーン
- 01設置済みIoTデバイスのテレメトリー監視
- 02共有可能なダッシュボードで機器データを表示
- 03AIアシスタントによるテレメトリー閲覧や機器制御
MCP 対応
nodrixはネイティブMCPサーバーを備え、Streamable HTTPでBearerトークンとOAuthのエンドポイントを提供します。有効化すると読み取りツールを利用でき、管理および機器制御ツールには書き込み設定も必要です。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://{host}/v1/mcp/oauthclaude mcp add --transport http live-nodrix-nodrix https://{host}/v1/mcp/oauth{"mcpServers":{"live-nodrix-nodrix":{"type":"http","url":"https://{host}/v1/mcp/oauth"}}}Cursor で開く{"servers":{"live-nodrix-nodrix":{"type":"http","url":"https://{host}/v1/mcp/oauth"}}}VS Code で開く{"mcpServers":{"live-nodrix-nodrix":{"type":"http","url":"https://{host}/v1/mcp/oauth"}}}{"mcpServers":{"live-nodrix-nodrix":{"serverUrl":"https://{host}/v1/mcp/oauth"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
https://{host}/v1/mcp/oauthhttps://{host}/v1/mcp認証が必要ツール
詳細
nodrix
Cloudflare が構築しなかった IoT プラットフォームです。 ハードウェアを HTTPS または WebSocket 経由で 1 つのエンドポイントに接続するだけで、変数が自動的に作成されます。リアルタイムのドラッグ&ドロップ式ダッシュボードを構築し、自動化を設定して、クリーンな API 経由ですべてのデータを読み取れます。すべて、ご自身が所有するインフラストラクチャ上で動作します。nodrix はシングルテナントのオープンソースで、Workers、Durable Objects、D1、R2 を使って、お使いの Cloudflare アカウントにデプロイします。
機能
- 📡 HTTPS または WebSocket 経由のテレメトリ — ハードウェアからプロジェクトに JSON を POST すると、変数は初回の受信時に自動作成されます。スキーマの定義も、MQTT ブローカーの運用も不要です。
- 📊 リアルタイムダッシュボード — ドラッグ&ドロップ式のウィジェットグリッドに、休止状態から復帰する WebSocket 経由で更新がストリーミングされます。任意のダッシュボードを公開リンクで読み取り専用共有できます。
- 🧩 埋め込み可能なウィジェット — すべてのウィジェットはフレームワークに依存しない Web Component で、独自のアプリにそのまま組み込めます。
- 🎮 双方向制御 — トグル、スライダー、カラーピッカー、ボタンから、短いポーリングまたは制御ソケット経由でハードウェアに値を書き戻します。
- 🤖 ビジュアル自動化 — 変数、スケジュール、日の出/日の入り、イベントをトリガーとして、条件とアクションを実行します。アクションには Webhook、コードスニペット、サービス連携があります。
- 🔌 連携機能 — HTTP、メール、チャット(Slack、Telegram、Discord など)に配信します。
- 📖 クリーンな読み取り API — 最新の状態、時系列データ、変数一覧を 1 つのトークンで利用できます。
- 🧠 ネイティブ MCP サーバー — AI アシスタントからテレメトリを読み取り、物理的にそばにいないデバイスも制御できます。所有者の許可が必要で、デフォルトでは無効です。詳しくはAI アシスタント(MCP)をご覧ください。
- 👥 複数ユーザー対応 — owner/admin/member のロール、メール招待、ソーシャルサインイン(Google、GitHub)に対応します。
- 📝 監査ログ — 特権操作をすべて記録し、UI でページ分割して表示します。
クイックスタート
-
Cloudflare アカウントにデプロイします — ワンクリック、またはクローンから
bun run deploy:platformを実行します。 -
所有者アカウントを作成します — 初回アクセス時に「Create owner account」ページが表示され、最初に登録したユーザーが
ownerになります。 -
プロジェクトを作成し、ダッシュボードからプロジェクトトークンを発行します。
-
テレメトリを送信します — データが届くと、その時点で変数が作成されます。
curl -X POST https://<your-worker>/v1/telemetry \ -H "Authorization: Bearer $NODRIX_TOKEN" \ -H "Content-Type: application/json" \ -d '{"metrics":{"temperature":23.4,"humidity":61}}' -
データを読み取ります。
curl https://<your-worker>/v1/projects/<project>/state \ -H "Authorization: Bearer $NODRIX_TOKEN"
AI アシスタント(MCP)
nodrix にはネイティブの Model Context Protocol サーバーが付属しているため、アシスタントはプロジェクトのテレメトリを読み取り、許可を与えればハードウェアを操作できます。デバイスはノート PC ではなくデプロイ先にデータを送信するため、ボードをアシスタントの実行中のマシンに接続する必要はありません。別の建物にあっても利用できます。
エンドポイントは 2 つあり、どちらも Streamable HTTP です。
| エンドポイント | 認証 | 対象 |
|---|---|---|
/v1/mcp | Bearer トークン | CLI および IDE クライアント |
/v1/mcp/oauth | OAuth | claude.ai 形式のコネクター |
どちらもデフォルトでは無効です。 所有者が Settings → More で有効にします。
mcp_enabled— マスタースイッチです。オフの間、/v1/mcpは 404 を返すため、無効なサーバーはアクセス禁止ではなく、存在しないように見えます。mcp_write_enabled— 管理ツールと制御ツールを有効にします。オンにするまでは、admin スコープのトークンでも読み取り専用ツールのみを利用できるため、アシスタントがデフォルトでハードウェアを操作することはありません。
読み取りツールは 12 個 — list_projects、list_variables、get_state、get_series、list_dashboards、get_dashboard、list_widget_types、list_widgets、list_block_types、list_integration_kinds、list_automations、list_integrations。
書き込みツールは 16 個 — プロジェクト、変数、ダッシュボード、ウィジェット、自動化、連携機能の作成と更新に加え、set_variable(アシスタントがリレーをオンにする方法)、run_automation、emit_event、test_integration が含まれます。
設計上、削除ツールはありません。 すべてのツールは実行前に、トークンのスコープを通じて対象プロジェクトを解決するため、トークンからアクセスできないプロジェクトには到達できません。
アーキテクチャ
- Worker (worker/) — 単一の Hono アプリです。Project、Dashboard、Scheduler、MCP エージェントには Durable Objects を使用し、プロビジョニングには Workflow を 1 つ使用します。D1(メタデータ)、R2(テレメトリー履歴)、KV(読み取りキャッシュ + JWKS)も使用します。
- Web (web/) — Vue 3 + Tailwind + Reka UI による管理パネルと、ドラッグ&ドロップ式のダッシュボードビルダーです。Worker の静的アセットとしてビルド、配信されます。
- Shared (shared/) — フレームワークに依存しない Web Component ウィジェット、インテグレーションカタログ、自動化ブロックです。単一の信頼できる情報源となるよう、Web と Worker の両方で使用します。
- Deploy (deploy/) — ワンクリックの Cloudflare へのデプロイを支える、小規模な設定用パッケージです。
worker/ Cloudflare Worker — API, Durable Objects, Workflow
web/ Vue 3 admin panel + dashboard builder
shared/ Web Component widgets, integration catalog, automation blocks
deploy/ One-click Deploy to Cloudflare config
scripts/ Build, version, and migration generators
ストレージ
| ストア | 格納するデータ |
|---|---|
| Project DO(SQLite) | 最新の変数状態、直近のリングバッファー、保留中の制御書き込み、フラッシュカーソル |
| R2 | コールドテレメトリー履歴(NDJSON、プロジェクト + 時間単位でパーティション分割) |
| D1 | ユーザー、セッション、アカウント、プロジェクト、変数、ダッシュボード、トークン、自動化、インテグレーション、監査ログ、OAuth プロバイダー設定(メタデータのみ — テレメトリーポイントは一切保存しません) |
| KV | キャッシュされた /state レスポンスと JWKS |
| Dashboard DO | ダッシュボードごとのサブスクリプション + ハイバネーション中の WebSocket |
| Scheduler DO | 次回のスケジュール実行または日没時の自動化実行時刻に設定されるアラーム 1 件 |
認証
Better Auth がサインインを処理します。メールアドレス + パスワードはデフォルトで有効です。Google と GitHub の OAuth は、実行時に Settings → Sign-in providers から有効にできます(オーナーが各プロバイダーのクライアント ID + シークレットを入力すると、ログインページに対応するボタンがすぐに表示されます)。
新規デプロイで最初にサインアップしたユーザーが owner になります。それ以降は登録が締め切られ、オーナーが Users から owner / admin / member のいずれかのロールを割り当ててユーザーを招待します。セッションは Cookie ベースで、30 日間有効です。デバイスごとに個別のセッションが作成され、Users から一覧表示および取り消しができます。
開発
nodrix は Bun を使用します。
bun install
bun run dev # worker (wrangler dev)
bun run dev:web # web (vite)
bun run typecheck
bun run build
bun run deploy:platform # build + deploy the worker
リンク
- サイト — https://nodrix.live
- 変更履歴 — https://nodrix.live/changelog
- ロードマップ — https://nodrix.live/roadmap
ライセンス
MIT © Arjun Krishna
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。