nodrix

live.nodrix由 nodrix.live 發布v1.0.1更新於 Oct 24, 2026

Read live and historical IoT telemetry and actuate ESP32/Arduino hardware from a backend you host.

已驗證Streamable HTTP可網頁執行效率與工作流雲端與基礎設施資料與分析

概覽

AI 產生的概覽

nodrix 是自架的 IoT 平台,其 MCP 伺服器讓助理讀取裝置遙測資料,並在開啟後控制 ESP32/Arduino 硬體。

可以做什麼
  • 列出專案、變數、儀表板、小工具、自動化與整合,並讀取最新狀態或時間序列遙測。
  • 建立與更新專案、變數、儀表板、小工具、自動化與整合。
  • 透過 set_variable 將值寫回硬體,執行自動化、發出事件並測試整合。
  • 不提供刪除類工具,每個工具都依權杖所屬專案限定範圍。
適用情境
適用於裝置回報到你自己的 nodrix 部署,而你想讓助理查看即時或歷史感測資料、或遠端操作硬體時,不必把開發板插在執行助理的機器上。
執行需求
需要你自己 nodrix 部署上的遠端 Streamable HTTP 端點,可選 Bearer 權杖端點或供 claude.ai 類連接器使用的 OAuth 端點。需在 Authorization 標頭提供以 'Bearer ' 開頭的 nodrix API 權杖,權杖於設定中建立。擁有者須在 Settings > More 啟用 MCP,並另外啟用寫入工具。
安裝前請注意
Authorization 標頭帶有機密 API 權杖,請避免寫入日誌或共用設定。啟用寫入工具後,助理可操作真實硬體,並變更專案、儀表板、自動化與整合,非必要請保持關閉。兩個 MCP 端點預設關閉,未開啟時會回傳 404。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 nodrix,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Web executable,透過 Streamable HTTP。 遠端服務在工作區中設定後即可從網頁執行環境執行。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

nodrix

The IoT platform Cloudflare didn't build. Point your hardware at one endpoint over HTTPS or WebSocket, watch variables appear on their own, build realtime drag-and-drop dashboards, automate, and read it all back through a clean API — entirely on infrastructure you own. nodrix is single-tenant and open source: it deploys into your Cloudflare account on Workers, Durable Objects, D1, and R2.

Features

  • 📡 Telemetry over HTTPS or WebSocket — hardware POSTs JSON to a project; variables auto-create on first sight. No schema to define, no MQTT broker to run.
  • 📊 Realtime dashboards — a drag-and-drop widget grid streams updates over hibernating WebSockets; share any dashboard read-only by public link.
  • 🧩 Embeddable widgets — every widget is a framework-agnostic Web Component you can lift straight into your own app.
  • 🎮 Two-way control — toggles, sliders, color pickers, and buttons write values back to hardware via short polls or a control socket.
  • 🤖 Visual automations — variable, schedule, sunrise/sunset, and event triggers run conditions and actions: webhooks, code snippets, and service integrations.
  • 🔌 Integrations — fan out to HTTP, email, and chat (Slack, Telegram, Discord, and more).
  • 📖 Clean read API — latest state, time-series, and variable listings behind one token.
  • 🧠 Native MCP server — read telemetry and control hardware from an AI assistant, on devices you are not physically next to. Owner-gated and off by default; see AI assistants (MCP).
  • 👥 Multi-user — owner / admin / member roles, email invites, and social sign-in (Google, GitHub).
  • 📝 Audit log — every privileged action recorded and paginated in the UI.

Quick start

  1. Deploy to your Cloudflare account — one click, or bun run deploy:platform from a clone.

  2. Create the owner account — the first visit prompts a "Create owner account" page; the first signup becomes owner.

  3. Create a project and mint a project token from the dashboard.

  4. Send telemetry — variables are created the moment data arrives:

    bash
    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}}'
  5. Read it back:

    bash
    curl https://<your-worker>/v1/projects/<project>/state \  -H "Authorization: Bearer $NODRIX_TOKEN"

AI assistants (MCP)

nodrix ships a native Model Context Protocol server, so an assistant can read a project's telemetry and — once you allow it — act on the hardware. Because devices report to your deployment rather than to your laptop, the board does not need to be plugged into the machine running the assistant; it can be in another building.

Two endpoints, both Streamable HTTP:

EndpointAuthFor
/v1/mcpBearer tokenCLI and IDE clients
/v1/mcp/oauthOAuthclaude.ai-style connectors

Both are off by default. The owner flips them in Settings → More:

  • mcp_enabled — the master switch. While it is off, /v1/mcp returns 404, so a disabled server looks absent rather than merely forbidden.
  • mcp_write_enabled — gates the management and control tools. Until it is on, even an admin-scope token gets read-only tools, so an assistant cannot command hardware by default.

12 read tools — 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 write tools — creating and updating projects, variables, dashboards, widgets, automations, and integrations, plus set_variable (how an assistant turns a relay on), run_automation, emit_event, and test_integration.

There are no delete tools, by design. Every tool resolves its target project through the token's scope before it runs, so it cannot reach a project the token cannot.

Architecture

  • Worker (worker/) — a single Hono app. Durable Objects for Project, Dashboard, Scheduler, and the MCP agent; one Workflow for provisioning; D1 (metadata), R2 (telemetry history), KV (read cache + JWKS).
  • Web (web/) — Vue 3 + Tailwind + Reka UI admin panel and drag-and-drop dashboard builder, built and served as Worker static assets.
  • Shared (shared/) — framework-agnostic Web Component widgets, the integration catalog, and automation blocks, consumed by both web and worker so there is a single source of truth.
  • Deploy (deploy/) — the small config carrier behind the one-click Deploy to Cloudflare.
worker/   Cloudflare Worker — API, Durable Objects, Workflowweb/      Vue 3 admin panel + dashboard buildershared/   Web Component widgets, integration catalog, automation blocksdeploy/   One-click Deploy to Cloudflare configscripts/  Build, version, and migration generators

Storage

StoreHolds
Project DO (SQLite)Latest variable state, recent ring buffer, pending control writes, flush cursor
R2Cold telemetry history (NDJSON, partitioned by project + hour)
D1Users, sessions, accounts, projects, variables, dashboards, tokens, automations, integrations, audit log, OAuth provider config (metadata only — never any telemetry point)
KVCached /state responses and JWKS
Dashboard DOPer-dashboard subscriptions + hibernated WebSockets
Scheduler DOOne alarm at the next schedule/sunset automation fire time

Authentication

Better Auth handles sign-in. Email + password is on by default; Google and GitHub OAuth can be enabled at runtime from Settings → Sign-in providers (the owner enters a client ID + secret per provider, and the login page shows the matching buttons immediately).

The first signup on a fresh deployment becomes owner. After that, registration is closed: the owner invites people from Users, each with an owner / admin / member role. Sessions are cookie-based and persist 30 days; each device is a separate session, listed and revokable from Users.

Development

nodrix uses Bun.

bash
bun installbun run dev              # worker (wrangler dev)bun run dev:web          # web (vite)bun run typecheckbun run buildbun run deploy:platform  # build + deploy the worker

Links

License

MIT © Arjun Krishna

來源:README.md,提交 8fd634b

工具

0
SourceWeft 尚未讀取此伺服器的工具。

版本歷史

1
  1. v1.0.1最新Sep 18, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通必需25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式必需10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分