MCP server for Node-RED β safe deploy, optimistic locking, smart search, 13 tools
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
π‘ Paste into ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows)
A Model Context Protocol (MCP) server that lets AI assistants interact with Node-RED β read flows, search nodes, edit function code, deploy changes safely, and manage modules.
Built to solve real problems: the existing Node-RED MCP implementations use PUT /flow/:id which reorders your tabs. nr-mcp uses the correct GET β POST /flows pattern with optimistic locking, so your tab order is always preserved.
13 tools for complete Node-RED flow management:
| Tool | Description |
|---|---|
nr_get_flow_summary | Overview of all tabs with node counts and groups |
nr_get_flow | Get a single tab with all nodes β by name or ID |
nr_search_nodes | Search nodes by name, type, or JavaScript code content |
nr_get_function_code | Extract full JS code from function nodes (incl. init/finalize) |
nr_get_node_config | Full config with computed upstream/downstream connections |
nr_get_flow_context | Read flow-level context variables |
nr_safe_deploy | Deploy changes with optimistic locking β never reorders tabs |
nr_create_nodes | Batch-create nodes/groups in a single deploy |
nr_delete_nodes | Batch-delete with automatic wire and group cleanup |
nr_inject | Trigger inject nodes remotely to test flows |
nr_get_installed_modules | List installed modules and available node types |
nr_install_module | Install npm packages from the Node-RED registry |
nr_get_debug_output | Read debug/error data from flow context |
PUT /flow/:id which silently reorders your tabs in Node-RED. nr-mcp uses the correct GET β POST /flows full-deploy pattern.rev field. If someone else deployed between your read and write, you get a clear conflict error instead of silent data loss.Or from source:
This creates the nr-mcp command in ~/.local/bin/.
| Variable | Required | Description |
|---|---|---|
NR_URL | No | Node-RED URL (default: http://localhost:1880) |
NR_TOKEN | No* | Bearer token for token-based auth |
NR_USER | No* | Username for Basic Auth |
NR_PASS | No* | Password for Basic Auth |
* At least one auth method is recommended. Auth is checked in order: token β basic auth β no auth.
Add to your claude_desktop_config.json:
Tip: If you get a "working directory" error, create a wrapper script:
Then point
commandto the wrapper path.
Add to your MCP settings (.cursor/mcp.json or VS Code equivalent):
Once connected, you can ask your AI assistant things like:
nr-mcp is a Python MCP server that communicates with Node-RED via its Admin API. It uses stdio transport (standard for MCP) and makes HTTP calls to your Node-RED instance.
PUT /flow/:id which reorders tabs.rev field to detect concurrent modifications.For more details, see docs/ARCHITECTURE.md.
The Admin API must be enabled (it is by default). If you've restricted it, ensure these endpoints are accessible:
GET /flows and POST /flows β flow read/writeGET /context/flow/:id β flow contextPOST /inject/:id β inject triggerGET /nodes and POST /nodes β module managementSee Node-RED Admin API docs for auth configuration.
Contributions welcome! Please open an issue first to discuss what you'd like to change.
MIT β see LICENSE.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/nr-mcp)<a href="https://allmcps.com/mcp/nr-mcp"><img src="https://allmcps.com/api/badge/nr-mcp?style=directory" alt="Nr Mcp on AllMCPs" /></a>