mcpField
N
nodrix

nodrix

远程服务
nodrix.live数据与分析456 周前更新

关于 nodrix

nodrix 是部署在用户 Cloudflare 账户中的开源单租户 IoT 平台,可收集遥测数据、提供仪表板和自动化,并向 AI 助手开放设备数据与控制能力。

主要功能

  1. 01通过 HTTPS 或 WebSocket 接收遥测
  2. 02构建实时仪表板和可嵌入组件
  3. 03通过仪表板控件操作硬件
  4. 04配置可视化自动化和集成
  5. 05读取当前状态与时间序列数据

适用场景

  1. 01监测已部署 IoT 设备的遥测数据
  2. 02在可分享的仪表板中查看设备数据
  3. 03允许 AI 助手读取遥测或控制硬件

MCP 相关

nodrix 内置 MCP 服务,通过 Streamable HTTP 提供令牌和 OAuth 接入端点。启用后可使用读取工具;管理和硬件控制工具还要求开启写入设置。

配置

远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。

服务地址https://{host}/v1/mcp/oauth
一键复制安装命令
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。

全部服务地址
Streamable HTTPhttps://{host}/v1/mcp/oauth
Streamable HTTPhttps://{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)。
  • 📝 审计日志 — 记录所有特权操作,并在界面中分页显示。

快速开始

  1. 部署到你的 Cloudflare 账户 — 一键部署,或在克隆的仓库中运行 bun run deploy:platform。

  2. 创建所有者账户 — 首次访问时会显示“创建所有者账户”页面;第一个注册的用户将成为 owner。

  3. 创建项目,并从仪表板生成项目令牌。

  4. 发送遥测数据 — 数据一到达,就会创建相应变量:

    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. 读取数据:

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

AI 助手(MCP)

nodrix 内置了原生 Model Context Protocol 服务,因此助手可以读取项目的遥测数据,并在你允许后控制硬件。由于设备向你的部署环境报告数据,而不是向你的笔记本电脑报告,因此运行助手的设备不需要连接开发板;开发板可以位于另一栋楼里。

两个端点均使用 Streamable HTTP:

端点身份验证用途
/v1/mcpBearer 令牌CLI 和 IDE 客户端
/v1/mcp/oauthOAuthclaude.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

链接

许可证

MIT © Arjun Krishna

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。