nodered-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tasks | {
"list": {},
"cancel": {},
"requests": {
"tools": {
"call": {}
},
"prompts": {
"get": {}
},
"resources": {
"read": {}
}
}
} |
| tools | {
"listChanged": true
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_flowsA | Get all flows with summary statistics. Returns: FlowList with flows grouped into tabs/nodes/subflows and summary stats. |
| update_flowsA | Update all flows with deployment type. Args: flows_json: Flow configuration as JSON string deployment_type: Deployment type - valid values: full, nodes, flows, reload (default: full) Returns: Confirmation message. |
| get_flowA | Get a single flow by ID. Args: flow_id: Flow ID Returns: Flow with nodes, configs, and subflows. |
| update_flowC | Update a single flow. Args: flow_id: Flow ID flow_json: Flow configuration as JSON string Returns: Confirmation message. |
| list_tabsB | List all flow tabs. Returns: List of FlowTab objects (workspaces). |
| create_flowB | Create a new flow. Args: flow_json: Flow configuration as JSON string Returns: FlowCreateResult with the new flow ID. |
| delete_flowC | Delete a flow. Args: flow_id: Flow ID to delete Returns: Confirmation message. |
| get_flows_stateA | Get the current flows runtime state. Returns: FlowState with current state (start/stop). |
| set_flows_stateA | Set the flows runtime state. Args: state: Target state - valid values: start, stop Returns: FlowState with new state. |
| get_flows_formattedA | Get flows with formatted summary and grouped data. Returns: FlowSummary with tabs/nodes/subflows grouped and counted. |
| visualize_flowsA | Visualize flow structure as markdown with per-tab breakdown. Returns: Markdown-formatted flow structure showing node counts and types per tab. |
| patch_flowA | Apply incremental patch operations to a flow. Fetches the current flow, applies operations, and updates it. Much more efficient than update_flow for small changes. Args: flow_id: Flow ID to patch operations: JSON array of patch operations. Supported ops: - {"op": "remove_nodes", "ids": ["nodeId1", ...]} - {"op": "add_nodes", "nodes": [{node}, ...]} - {"op": "update_node", "id": "nodeId", "set": {"name": "New", ...}} - {"op": "rewire", "id": "nodeId", "output": 0, "targets": ["id1", ...], "mode": "replace|append"} - {"op": "set_label", "label": "New Name"} - {"op": "set_info", "info": "Description text"} - {"op": "set_disabled", "disabled": true} Returns: Summary of changes applied. |
| injectB | Trigger an inject node. Args: node_id: Inject node ID to trigger Returns: Confirmation message. |
| get_nodesA | Get list of installed node modules. Returns: List of NodeSet objects with node types and versions. |
| get_node_infoA | Get information about a specific node module. Args: module: Node module name Returns: NodeModule with version and node sets. |
| toggle_node_moduleA | Enable or disable a node module. Args: module: Node module name enabled: True to enable, False to disable Returns: Updated NodeModule object. |
| find_nodes_by_typeB | Find all nodes of a specific type. Args: node_type: Node type to search for Returns: List of matching Node objects. |
| search_nodesA | Search for nodes by name or properties. Args: query: String to search for in node properties property: Specific property to search (optional, searches all properties if not specified) Returns: List of matching Node objects. |
| get_settingsB | Get Node-RED runtime settings. Returns: Settings with runtime configuration. |
| get_diagnosticsA | Get Node-RED diagnostics information. Returns: DiagnosticsResult with system diagnostics data. |
| api_helpA | Get Node-RED API endpoint reference with implementation status. Returns: Markdown table of API endpoints and their MCP implementation status. |
| lint_flowA | Lint a flow's node layout for overlaps, spacing, and wire crossings. Args: flow_id: Flow ID to lint. node_ids: Optional JSON array of node IDs to scope the check. Returns: LayoutReport with issues, nodes checked count, and summary. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 22 tools
Most tools have clearly distinct purposes, but there is some overlap among get_flows, get_flows_formatted, and visualize_flows, which all retrieve flow data in different formats. Similarly, find_nodes_by_type and search_nodes both search for nodes but with different scopes. These are not major conflicts but enough to introduce slight ambiguity.
The majority of tools follow a consistent verb_noun pattern (e.g., get_flow, create_flow, update_flow, delete_flow). However, 'inject' is a bare verb and 'api_help' is noun_noun, deviating from the established pattern. Overall, the convention is strong and predictable.
With 22 tools, the server is on the heavier side, falling into the 16-25 range that feels somewhat dense. While the tools cover a comprehensive set of Node-RED operations, the count is slightly beyond what might be considered lean, though it is defensible given the breadth of the domain.
The tool surface provides solid coverage for managing flows (create, read, update, patch, delete), runtime state, node modules, and node search. Missing operations include flow import/export and credential management, but these are not critical gaps for typical workflows. Overall, the surface is well-rounded with only minor omissions.