Nr Mcp

io.github.Texan-NXTassist由 GitHub 账号 Texan-NXTassist 发布v1.2.2更新于 Oct 25, 2026

MCP server for Node-RED — safe deploy, optimistic locking, smart search, 13 tools

已验证STDIO仅桌面效率与工作流开发者工具

概览

AI 生成的概览

本地 MCP 服务器,让 AI 助手读取、搜索、编辑并安全部署 Node-RED 流程,触发 inject 节点并管理已安装模块。

可以做什么
读取流程概览、单个标签页、含上下游连接的节点配置、函数代码和流程级上下文变量,并读取流程上下文中的调试输出。按名称、类型或 JavaScript 代码内容搜索节点。批量创建和删除节点与组,并自动清理连线和分组。通过完整的 GET 到 POST 流程写入并基于 rev 字段做乐观锁来部署更改,从而保留标签页顺序。远程触发 inject 节点以测试流程。列出已安装模块和可用节点类型,并从 Node-RED 注册表安装 npm 包。
适用场景
适合管理 Node-RED 安装(如家庭自动化、物联网或能源管理)时使用,让助手检查流程、修改函数代码、增删节点、测试流程和安装模块,而无需手动编辑编辑器。当其他人也可能同时部署时,安全部署与冲突检测尤为重要。
运行要求
以 Python 包(nr-mcp)通过 pip 或 uv 在本地运行,需要 Python 3.11+ 以及启用 Admin API 的 Node-RED 实例。配置 NR_URL(默认 NR_TOKEN 用于 Bearer 认证,或 NR_USER 与 NR_PASS 用于 Basic Auth;按此顺序尝试认证。需要能访问 Node-RED Admin API 的网络。
安装前请注意
该服务器持有 Node-RED 管理凭据(NR_TOKEN 或 NR_USER 与 NR_PASS),并能改动实例:创建和删除节点、部署流程、触发 inject 节点、安装 npm 包。部署会写入整套流程,出错会影响整个实例;乐观锁只能发现并发修改。NR_URL 只应指向你有权修改的 Node-RED 实例。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Nr Mcp,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

nr-mcp

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.

Features

13 tools for complete Node-RED flow management:

ToolDescription
nr_get_flow_summaryOverview of all tabs with node counts and groups
nr_get_flowGet a single tab with all nodes — by name or ID
nr_search_nodesSearch nodes by name, type, or JavaScript code content
nr_get_function_codeExtract full JS code from function nodes (incl. init/finalize)
nr_get_node_configFull config with computed upstream/downstream connections
nr_get_flow_contextRead flow-level context variables
nr_safe_deployDeploy changes with optimistic locking — never reorders tabs
nr_create_nodesBatch-create nodes/groups in a single deploy
nr_delete_nodesBatch-delete with automatic wire and group cleanup
nr_injectTrigger inject nodes remotely to test flows
nr_get_installed_modulesList installed modules and available node types
nr_install_moduleInstall npm packages from the Node-RED registry
nr_get_debug_outputRead debug/error data from flow context

Why not just use the existing MCP servers?

  • Tab reorder bug: Other implementations use PUT /flow/:id which silently reorders your tabs in Node-RED. nr-mcp uses the correct GET → POST /flows full-deploy pattern.
  • Optimistic locking: Every deploy checks the rev field. If someone else deployed between your read and write, you get a clear conflict error instead of silent data loss.
  • Smart search: Search across node names, types, function code, templates, and actions in one call.
  • Production-tested: Built and used daily for managing complex Node-RED installations (home automation, IoT, energy management).

Installation

Prerequisites

  • Python 3.11+
  • uv (recommended) or pip
  • Node-RED instance with Admin API enabled

Install from PyPI

bash
pip install nr-mcp

Install with uv (recommended)

bash
uv tool install nr-mcp

Or from source:

bash
git clone https://github.com/Texan-NXTassist/nr-mcp.gitcd nr-mcpuv tool install .

This creates the nr-mcp command in ~/.local/bin/.

Configuration

Environment variables

VariableRequiredDescription
NR_URLNoNode-RED URL (default: http://localhost:1880)
NR_TOKENNo*Bearer token for token-based auth
NR_USERNo*Username for Basic Auth
NR_PASSNo*Password for Basic Auth

* At least one auth method is recommended. Auth is checked in order: token → basic auth → no auth.

Claude Desktop

Add to your claude_desktop_config.json:

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:

bash
#!/bin/bashcd /tmpexec nr-mcp "$@"

Then point command to the wrapper path.

Cursor / VS Code

Add to your MCP settings (.cursor/mcp.json or VS Code equivalent):

json
{  "mcpServers": {    "nr-mcp": {      "command": "nr-mcp",      "env": {        "NR_URL": "http://localhost:1880",        "NR_TOKEN": "your-access-token"      }    }  }}

Usage examples

Once connected, you can ask your AI assistant things like:

  • "Show me all Node-RED tabs and their node counts"
  • "Search for nodes that contain 'mqtt' in their code"
  • "Show me the function code for node abc123"
  • "Update the function code in node xyz to add error handling"
  • "Create an inject node and an HTTP request node on the Weather tab"
  • "What modules are installed? Is node-red-dashboard available?"
  • "Install node-red-contrib-influxdb"
  • "Trigger the 'Test' inject node and check for errors"

Architecture

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.

AI Assistant ↔ MCP (stdio) ↔ nr-mcp ↔ HTTP ↔ Node-RED Admin API

Key design decisions

  • GET→POST pattern: All deploys fetch full flows, modify in-place, then POST back. Never uses PUT /flow/:id which reorders tabs.
  • Optimistic locking: Uses the Node-RED rev field to detect concurrent modifications.
  • No caching: Every tool call fetches fresh data. Slightly slower, but always correct.
  • Single retry on conflict: Deploy operations retry once on 409 Conflict.

For more details, see docs/ARCHITECTURE.md.

Node-RED setup

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/write
  • GET /context/flow/:id — flow context
  • POST /inject/:id — inject trigger
  • GET /nodes and POST /nodes — module management

See Node-RED Admin API docs for auth configuration.

Contributing

Contributions welcome! Please open an issue first to discuss what you'd like to change.

bash
git clone https://github.com/Texan-NXTassist/nr-mcp.gitcd nr-mcpuv venv && source .venv/bin/activateuv pip install -e .

License

MIT — see LICENSE.

来源:README.md,提交 3580418

工具

0
SourceWeft 尚未在沙箱中启动过该软件包,因此其工具未知。

版本历史

1
  1. v1.2.2最新Sep 16, 2026

评分

已满足适用检查项的 50%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分

    请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。

  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分