关于 nodrix
nodrix 是部署在用户 Cloudflare 账户中的开源单租户 IoT 平台,可收集遥测数据、提供仪表板和自动化,并向 AI 助手开放设备数据与控制能力。
主要功能
- 01通过 HTTPS 或 WebSocket 接收遥测
- 02构建实时仪表板和可嵌入组件
- 03通过仪表板控件操作硬件
- 04配置可视化自动化和集成
- 05读取当前状态与时间序列数据
适用场景
- 01监测已部署 IoT 设备的遥测数据
- 02在可分享的仪表板中查看设备数据
- 03允许 AI 助手读取遥测或控制硬件
MCP 相关
nodrix 内置 MCP 服务,通过 Streamable HTTP 提供令牌和 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 连接到一个端点,观察变量自动出现,构建实时拖放式仪表板、设置自动化,并通过简洁的 API 读取所有数据——整个过程都在你拥有的基础设施上完成。nodrix 是单租户开源平台:它会部署到 你的 Cloudflare 账户中,运行于 Workers、Durable Objects、D1 和 R2。
功能
- 📡 通过 HTTPS 或 WebSocket 传输遥测数据 — 硬件向项目发送 JSON POST 请求;变量首次出现时会自动创建。无需定义架构,也无需运行 MQTT 代理。
- 📊 实时仪表板 — 通过休眠 WebSocket 流式传输更新的拖放式组件网格;可通过公开链接以只读方式分享任意仪表板。
- 🧩 可嵌入组件 — 每个组件都是与框架无关的 Web Component,可直接移植到你自己的应用中。
- 🎮 双向控制 — 开关、滑块、颜色选择器和按钮可通过短轮询或控制套接字将值写回硬件。
- 🤖 可视化自动化 — 变量、计划时间、日出/日落和事件触发器可运行条件和操作,包括 Webhook、代码片段和服务集成。
- 🔌 集成 — 可向 HTTP、电子邮件和聊天服务(Slack、Telegram、Discord 等)分发信息。
- 📖 简洁的读取 API — 通过一个令牌访问最新状态、时间序列和变量列表。
- 🧠 原生 MCP 服务 — 通过 AI 助手读取遥测数据并控制硬件,即使设备不在你身边也可以。默认关闭,仅限所有者启用;请参阅 AI 助手(MCP)。
- 👥 多用户 — 支持所有者/管理员/成员角色、电子邮件邀请和社交账号登录(Google、GitHub)。
- 📝 审计日志 — 记录所有特权操作,并在界面中分页显示。
快速开始
-
部署到你的 Cloudflare 账户 — 一键部署,或在克隆的仓库中运行
bun run deploy:platform。 -
创建所有者账户 — 首次访问时会显示“创建所有者账户”页面;第一个注册的用户将成为
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 服务,因此助手可以读取项目的遥测数据,并在你允许后控制硬件。由于设备向你的部署环境报告数据,而不是向你的笔记本电脑报告,因此运行助手的设备不需要连接开发板;开发板可以位于另一栋楼里。
两个端点均使用 Streamable HTTP:
| 端点 | 身份验证 | 用途 |
|---|---|---|
/v1/mcp | Bearer 令牌 | CLI 和 IDE 客户端 |
/v1/mcp/oauth | OAuth | claude.ai 风格的连接器 |
两个端点默认都处于关闭状态。 所有者可在 Settings → More 中启用:
mcp_enabled— 总开关。关闭时,/v1/mcp会返回 404,让已禁用的服务看起来像不存在,而不是仅仅禁止访问。mcp_write_enabled— 控制管理和控制工具的使用权限。启用前,即使是管理员范围的令牌也只能使用只读工具,因此助手默认无法控制硬件。
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 应用。使用 Durable Objects 管理 Project、Dashboard、Scheduler 和 MCP Agent;使用一个 Workflow 进行配置;使用 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 | 在下一次计划任务/日落自动化触发时间设置的一个闹钟 |
身份验证
Better Auth 负责处理登录。默认启用电子邮件 + 密码;可在运行时通过 Settings → Sign-in providers 启用 Google 和 GitHub OAuth(所有者为每个提供方输入客户端 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 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。