nodrix MCP server
Commit Nov 12, 2026Allows an AI assistant to read IoT telemetry and control hardware like ESP32 or Arduino via a self-hosted Cloudflare-based platform.
Also known as decoded-cipher/nodrix
- Stars
- 46
- Tools
- —
- Downloads, 30 days
- —
- Latest version
- 1.0.1
- Last commit
- Nov 12, 2026
- License
- MIT
What is nodrix MCP?
nodrix allows an AI assistant to read IoT telemetry and control hardware like ESP32 or Arduino via a self-hosted Cloudflare-based platform.
Summary generated from the project's README
About nodrix MCP server
nodrix provides a self-hosted IoT platform that runs entirely within your own Cloudflare account using Workers, Durable Objects, D1, and R2. It allows hardware like Arduino or ESP32 to send telemetry via HTTPS or WebSockets without requiring a predefined schema or a managed MQTT broker. Once data arrives, variables are automatically created, and you can view them through real-time drag-and-drop dashboards or via a clean read API.
The native MCP server enables AI assistants to interact with your hardware remotely. Because the devices connect to your Cloudflare deployment rather than a local machine, the hardware can be located anywhere. Users can enable read-only access or full control by toggling specific settings in the dashboard. The system includes 12 read tools for inspecting projects, variables, and automations, alongside 16 write tools for managing configurations and controlling hardware through commands like set_variable.
Security is managed through owner-gated permissions and project tokens. The platform supports multi-user roles including owner, admin, and member, with an audit log to track privileged actions. To prevent accidental data loss, the toolset is designed without any delete tools.
What you can do with it
- 1Monitor remote sensor dataAsk an AI assistant to retrieve the current temperature and humidity readings from a specific IoT project.
- 2Control hardware componentsInstruct an AI to turn on a relay or adjust a setting by sending a command to the hardware.
- 3Manage IoT configurationsUse an AI client to create new projects, dashboards, or automation rules within your infrastructure.
- 4Analyze historical telemetryRequest a time-series report of variable changes to understand device behavior over time.
Written from the project's README. Every use case is checked against a quote from it.
How to install nodrix MCP
Formats verified 10 Nov 2026Install nodrix MCP in Claude Code
$ claude mcp add --transport http nodrix https://{host}/v1/mcp/oauthInstall nodrix MCP in Cursor
~/.cursor/mcp.json
{
"mcpServers": {
"nodrix": {
"url": "https://{host}/v1/mcp/oauth"
}
}
}Install nodrix MCP in VS Code
.vscode/mcp.json
{
"servers": {
"nodrix": {
"type": "http",
"url": "https://{host}/v1/mcp/oauth"
}
}
}Install nodrix MCP in Codex
~/.codex/config.toml
[mcp_servers.nodrix]
url = "https://{host}/v1/mcp/oauth"Install nodrix MCP in Gemini CLI
~/.gemini/settings.json
{
"mcpServers": {
"nodrix": {
"httpUrl": "https://{host}/v1/mcp/oauth"
}
}
}Automated checks
Ran Nov 14, 2026Full report →Not verified yet. A server needs a score of 80, no serious finding, and enough data for us to check. How checks work
- Source repository linked and reachabledecoded-cipher/nodrix is public and reachablegithub.com/decoded-cipher/nodrix ↗Pass
- Package names this repository as its sourceNot checked
- Build provenance (Sigstore attestation)Not checked
- Open source license (OSI)MITspdx.org/licenses/MIT.html ↗Pass
- Commit or release in the last yearLast commit or release 2026-11-12github.com/decoded-cipher/nodrix ↗Pass
- OpenSSF ScorecardNot checked
- Package name not close to a popular packageNot checked
- No critical advisory in the package or its dependenciesNot checked
- No hidden instructions to the model0 tool descriptions and the README read; no override phrases, credential paths or hidden charactersPass
- Destructive tools are labelledNot checked
- Remote endpoint answers the MCP handshakeEndpoint did not answer initialize: unreachableFinding
README
View on GitHubnodrix
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
-
Deploy to your Cloudflare account — one click, or
bun run deploy:platformfrom a clone. -
Create the owner account — the first visit prompts a "Create owner account" page; the first signup becomes
owner. -
Create a project and mint a project token from the dashboard.
-
Send telemetry — variables are created the moment data arrives:
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}}' -
Read it back:
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:
| Endpoint | Auth | For |
|---|---|---|
/v1/mcp |
Bearer token | CLI and IDE clients |
/v1/mcp/oauth |
OAuth | claude.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/mcpreturns 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, 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
Storage
| Store | Holds |
|---|---|
| Project DO (SQLite) | Latest variable state, recent ring buffer, pending control writes, flush cursor |
| R2 | Cold telemetry history (NDJSON, partitioned by project + hour) |
| D1 | Users, sessions, accounts, projects, variables, dashboards, tokens, automations, integrations, audit log, OAuth provider config (metadata only — never any telemetry point) |
| KV | Cached /state responses and JWKS |
| Dashboard DO | Per-dashboard subscriptions + hibernated WebSockets |
| Scheduler DO | One 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.
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
Links
- Site — https://nodrix.live
- Changelog — https://nodrix.live/changelog
- Roadmap — https://nodrix.live/roadmap
License
MIT © Arjun Krishna
nodrix MCP questions
How do I add nodrix MCP to Claude Code?
Run claude mcp add --transport http nodrix https://{host}/v1/mcp/oauth in your terminal. Add --scope user to make it available in every project.
How do I add nodrix MCP to Cursor?
Open ~/.cursor/mcp.json and add the server under mcpServers, using the Cursor config shown in the install section above.
Can an AI assistant control my hardware?
Yes, once you enable the write tools in settings, an assistant can use tools like set_variable to command hardware.
Does my hardware need to be connected to my computer for the AI to work?
No, because devices report to your deployment rather than your local machine, the hardware can be in a different location.
Is the MCP server enabled by default?
No, the MCP server is off by default and must be enabled by the owner in the settings.