Config is the same across clients — only the file and path differ.
{
"mcpServers": {
"nr-mcp": {
"env": {
"NR_URL": "http://localhost:1880",
"NR_PASS": "your-password",
"NR_USER": "admin"
},
"command": "nr-mcp"
}
}
}Are you the author?
Add this badge to your README to show your security score and help users find safe servers.
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.
Run this in your terminal to verify the server starts. Then let us know if it worked — your result helps other developers.
uvx 'nr-mcp' 2>&1 | head -1 && echo "✓ Server started successfully"
After testing, let us know if it worked:
Five weighted categories — click any category to see the underlying evidence.
No known CVEs.
Checked nr-mcp against OSV.dev.
Click any tool to inspect its schema.
Be the first to review
Have you used this server?
Share your experience — it helps other developers decide.
Sign in to write a review.
Others in devops / developer-tools
Copy/paste detector for programming source code, supports 223 formats. AI-ready with token-efficient reporter, skill and MCP server.
XcodeBuildMCP provides tools for Xcode project management, simulator management, and app utilities.
A Model Context Protocol (MCP) server and CLI that provides tools for agent use when working on iOS and macOS projects.
Manage Supabase projects — databases, auth, storage, and edge functions
MCP Security Weekly
Get CVE alerts and security updates for Nr MCP Server and similar servers.
Start a conversation
Ask a question, share a tip, or report an issue.
Sign in to join the discussion.
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.pip install nr-mcp
uv tool install nr-mcp
Or from source:
git clone https://github.com/Texan-NXTassist/nr-mcp.git
cd nr-mcp
uv tool install .
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:
{
"mcpServers": {
"nr-mcp": {
"command": "nr-mcp",
"env": {
"NR_URL": "http://localhost:1880",
"NR_USER": "admin",
"NR_PASS": "your-password"
}
}
}
}
Tip: If you get a "working directory" error, create a wrapper script:
#!/bin/bash cd /tmp exec nr-mcp "$@"Then point
commandto the wrapper path.
Add to your MCP settings (.cursor/mcp.json or VS Code equivalent):
{
"mcpServers": {
"nr-mcp": {
"command": "nr-mcp",
"env": {
"NR_URL": "http://localhost:1880",
"NR_TOKEN": "your-access-token"
}
}
}
}
Once connected, you can ask your AI assi