N8n Manager MCP README

The full upstream README, mirrored for reference. Install config, tool schemas, adoption signals and our own overview live on the N8n Manager MCP listing page.

n8n Manager MCP Server Banner

n8n Manager MCP Server

🇬🇧 English | 🇩🇪 Deutsch | 🇪🇸 Español | 🇯🇵 日本語 | 🇷🇺 Русский | 🇫🇷 Français | 🇨🇳 简体中文 | 🇮🇳 हिन्दी | العربية | বাংলা | Português

Part of the ellmos-ai family and the open-bricks umbrella.

npm Tests MCP Tools Node.js Safety Security Third-Party Dependency Inventory: Plain Text Attribution: NOTICE Verified Last-Checked License: MIT LLM Ready Ecosystem: ellmos--ai Umbrella: open--bricks

[!NOTE] For AI Assistants & LLMs: An llms.txt index file is available in the root directory for fast context ingestion, tool catalog references, and directory listings.

MCP (Model Context Protocol) server for managing n8n workflows via AI assistants like Claude, Cursor, and Windsurf.

Quick Navigation

NrSectionHighlights
01📐 System Architecture & Topology (#system-architecture)Local stdio transport, multi-server routing, and safety middleware
02📊 Dual Mermaid Diagrams (#dual-mermaid-diagrams)Component Architecture flowchart TD & Safe Mutation Lifecycle sequence diagram
03🌐 Directory Status & Registries (#directory-status)Official listings on npm, Glama, PulseMCP, and Enterprise DNA
04🎯 Target Personas & Discoverability (#target-personas--discoverability)Persona mapping [PERSONA-01] to [PERSONA-04] and High-Intent SEO queries
05📋 Project Capabilities & Boundaries (#comparative-matrix--alternatives)10 implementation areas and their documented limits
06🛡️ Capabilities & Implementation Boundaries (#core-capabilities--safety-invariants)Read-only mode, optional local backups and audit logging, input checks, and scope notes
07✨ Key Features (#features)Direct REST integration, multi-server routing, backup snapshots, node catalog
08⚙️ Client Installation (#installation)One-command setup for Claude Code, Claude Desktop, Cursor, and Windsurf
09🚀 Quick Start (#quick-start)Step-by-step workflow creation, execution inspection, and server switching
10🛠️ Available Tools (19 Tools) (#available-tools)Complete MCP tool reference across CRUD, executions, backups, and nodes
11🔗 Optional: n8n-workflow-manager Seam (#optional-n8n-workflow-manager-seam)Decision tracking and change history integration with paired manager service
12🔒 Configuration & Safety Defaults (#configuration)Environment variables, local backup root, and strict monotonic constraints
13🧪 Development & Testing (#development)Test suite, smoke runner, and current CI platform scope
14🧱 ellmos-ai Ecosystem (#ellmos-ai-ecosystem)Sibling MCP servers, BACH agent OS, and open-bricks desktop software suites
15📜 Third-Party Licenses & Transparency (#third-party-licenses--transparency)Project license and dependency license inventory
16📈 Marketing & Personas Log (#marketing--personas-log)Comprehensive positioning log, keyword matrix, and 3-phase roadmap
17📝 Changelog (#changelog)Complete release notes, security hardenings, and discoverability history
18⚖️ Liability / Haftung (#haftung--liability)Statutory open-source donation notice under §§ 516 ff. BGB, MIT disclaimer, 48h SLA

System Architecture

The n8n Manager MCP Server operates as a local-first, stdio-connected bridge between AI development environments (Claude Code, Claude Desktop, Cursor, Windsurf) and local or remote n8n instances.

  • Process Model: Runs as a Node.js process communicating with its MCP client over standard input/output (stdio) using JSON-RPC 2.0. It inherits the privileges of the process that launches it.
  • Mutation Checks: Workflow mutation handlers load local configuration and check read-only mode before making an n8n mutation request. A blocked attempt can still append to the local audit log; configuration loading also uses the filesystem.
  • Multi-Instance Router: Routes calls to configured n8n instances using local server profiles. API keys in servers.json are plaintext; config updates use a temporary file and rename.
  • Offline Node Catalog: Lists common n8n node types and short descriptions by category (n8n_describe_nodes) without a network call. It does not expose full node schemas or required properties.

Architectural Topology Projection (4-View Model)

text
+========================================================================================================+
| [VIEW 1: CALLER RUNTIMES & AGENT ECOSYSTEM]                                                           |
| Claude Code CLI      | Claude Desktop      | Cursor IDE / Windsurf | Antigravity / Gemini / Codex     |
| (JSON-RPC 2.0 Stdio) | (stdio MCP Client)  | (Dev Environments)    | (Autonomous Orchestrator Swarms) |
+===================================================+====================================================+
                                                    |
                                                    v
+========================================================================================================+
| [VIEW 2: N8N-MANAGER-MCP CORE ENGINE & MUTATION CHECKS]                                                 |
| +----------------------------------------------------------------------------------------------------+ |
| | Tool Dispatcher (19 Registered MCP Tools: CRUD, Execution Inspect, Backup/Restore, Node Catalog)   | |
| +----------------------------------------------------------------------------------------------------+ |
| | Read-Only Check: persisted setting or N8N_MANAGER_READ_ONLY=1 process ceiling                       | |
| | Input Bounds and Backup-Path Checks (scope limited to the implemented handlers)                     | |
| | Multi-Instance Routing: configured profiles and endpoints                                           | |
| | Bundled Offline Node Catalog: Common Node Types & Descriptions (INV-NODE-09)                         | |
| +----------------------------------------------------------------------------------------------------+ |
+===================================================+====================================================+
                                                    |
                                                    v
+========================================================================================================+
| [VIEW 3: RUNTIME PERSISTENCE, BACKUP SNAPSHOTS & LOCAL AUDIT LOG]                                      |
| +------------------------------------+----------------------------------+----------------------------+ |
| | Conditional Workflow Snapshots    | Local Append-Only Audit Log     | Multi-Server Config Store  | |
| | ~/.n8n-manager-mcp/backups/        | ~/.n8n-manager-mcp/audit.log     | ~/.n8n-manager-mcp/        | |
| | ({server}/{id}-{timestamp}-{reason}.json) | (Timestamped JSON entries) | (servers.json; POSIX 0600 requested) | |
| +------------------------------------+----------------------------------+----------------------------+ |
+===================================================+====================================================+
                                                    |
                                                    v
+========================================================================================================+
| [VIEW 4: STDIO TRANSPORT, CONFIGURED ENDPOINTS & LAUNCHER PRIVILEGES]                                  |
| Inherits launcher process privileges | Configured n8n/manager requests; interactive update check may run |
| No MCP listening port (stdio transport)                    | Published security policy and reporting contacts   |
+========================================================================================================+

Dual Mermaid Diagrams

Component Architecture

mermaid
flowchart TD
    Client["AI Client (Claude Code / Desktop / Cursor / Windsurf)"] -->|"MCP Stdio Protocol (JSON-RPC 2.0)"| Router["Tool Router (19 Tools)"]
    subgraph MCPServer["n8n Manager MCP Server (Local Stdio Process)"]
        Router --> Safety["Mutation Checks (Read-Only Gate & Backup-Path Checks)"]
        Safety --> Backup["Conditional Pre-Mutation Snapshot"]
        Safety --> MultiServer["Multi-Server Manager"]
        Safety --> Catalog["Offline Node Catalog (n8n_describe_nodes)"]
        Router --> Audit["Local Audit Append"]
    end
    MultiServer -->|"REST API (API Key / Auth Header)"| LocalInst["Configured n8n Instance (local or remote URL)"]
    MultiServer -->|"REST API (HTTPS / Token)"| CloudInst["Remote / Cloud n8n Instance"]
    Backup --> BackupFS[("Backups (~/.n8n-manager-mcp/backups/)")]
    Audit --> AuditFS[("Audit Log (~/.n8n-manager-mcp/audit.log)")]

Safe Workflow Mutation Lifecycle

These diagrams show the intended operation order. Snapshots are attempted only when backup_before_mutations is enabled (default: true); if that attempt fails, the following n8n mutation request is not sent. Audit append errors propagate and can follow a successful remote mutation.

mermaid
sequenceDiagram
    autonumber
    actor AI as AI Assistant (Claude / Cursor)
    participant MCP as n8n-manager-mcp Router
    participant Safety as Safety & Read-Only Gate
    participant Snapshot as Backup Engine
    participant Store as Local Storage (~/.n8n-manager-mcp)
    participant N8N as n8n REST API Instance
    participant Audit as Local Audit Logger

    AI->>MCP: Call n8n_update_workflow or n8n_delete_workflow
    MCP->>Safety: Check read-only enforcement
    alt Read-only active (INV-READ-02)
        opt audit_log enabled (default true)
            Safety->>Audit: Append blocked mutation attempt
        end
        Safety-->>AI: Return text explaining that the mutation is blocked (or an error if audit append fails)
    else Mutation permitted
        opt backup_before_mutations enabled (default true)
            Safety->>Snapshot: Trigger pre-mutation snapshot (INV-BACK-03)
            Snapshot->>N8N: GET /workflows/{id}
            N8N-->>Snapshot: Current workflow JSON
            Snapshot->>Store: Save ~/.n8n-manager-mcp/backups/{server}/{id}-{timestamp}-{reason}.json
            Snapshot-->>Safety: Backup path
        end
        Safety->>N8N: PUT /workflows/{id} or DELETE /workflows/{id}
        N8N-->>Safety: Mutation result
        opt audit_log enabled (default true)
            Safety->>Audit: Append structured outcome to audit log (INV-AUDIT-04)
        end
        Safety-->>AI: Return text; include backup path when a backup was saved
    end

Multi-Server Workflow Migration & Staging Synchronization Lifecycle

The import step creates a new workflow. It does not create a pre-import backup or return a rollback handle.

server.ts
sequenceDiagram
    autonumber
    actor AI as AI Assistant (Claude / Cursor)
    participant MCP as n8n-manager-mcp Router
    participant Staging as Staging n8n Instance
    participant Prod as Production n8n Instance
    participant Audit as Local Audit Logger

    Note over AI,MCP: Phase 1: Export from staging
    AI->>MCP: n8n_export_workflow(workflow_id=42, server_name=staging)
    MCP->>Staging: GET /workflows/42
    Staging-->>MCP: Workflow JSON
    MCP-->>AI: Cleaned workflow JSON as text

    Note over AI,MCP: Phase 2: Offline node-type catalog
    AI->>MCP: n8n_describe_nodes(category=action)
    MCP-->>AI: Text list of node types and descriptions

    Note over AI,MCP: Phase 3: Import a new inactive copy
    AI->>MCP: n8n_import_workflow(workflow_json=serialized export, server_name=production, activate=false)
    MCP->>Prod: POST /workflows
    Prod-->>MCP: Created workflow JSON with a new ID; inactive
    opt audit_log enabled (default true)
        MCP->>Audit: Append import outcome (INV-AUDIT-04)
    end
    MCP-->>AI: Text response with the new workflow ID; no rollback handle

Directory Status

  • npm package: published as n8n-manager-mcp
  • Glama listing: public directory page for the ellmos-ai repo
  • Enterprise DNA directory: additional public directory entry for ellmos-ai/n8n-manager-mcp
  • PulseMCP listing: indexed as ellmos-ai-n8n-manager
  • MCP namespace status: this repo contains server.json and mcpName metadata for io.github.ellmos-ai/n8n-manager-mcp; some ecosystem directories still expose the legacy io.github.lukisch/n8n-manager-mcp name until their indexes refresh.
  • Search context: best matched by n8n MCP server, n8n workflow management MCP, AI assistant n8n workflows, and ellmos-ai n8n-manager-mcp.

Target Personas & Discoverability

PersonaTypical needsExample task and boundaryTarget discovery terms
[PERSONA-01] Autonomous AI Agents & SwarmsMCP workflow tools, clear operation results, and an offline list of common node namesInspect or manage a workflow on a selected server; a backup precedes supported mutations only when backups are enabled.n8n mcp server, ai agent n8n workflow management, claude code n8n automation
[PERSONA-02] DevOps & Multi-Environment EngineersSeparate profiles and workflow export/import across configured n8n instancesMove a workflow between configured servers; import creates a new workflow and does not create a pre-import backup.n8n multi-server mcp, sync n8n workflows staging prod, n8n workflow export import mcp
[PERSONA-03] SecOps, Compliance & Risk TeamsRead-only controls, optional local audit logging, and local backup filesConfigure a read-only ceiling or inspect local records; configured n8n/manager endpoints still receive requests, and local files may contain workflow data or API keys.safe n8n mcp server, read-only n8n automation, audit log n8n ai integration
[PERSONA-04] Ecosystem Builders & Tool IntegratorsMCP tool schemas, manifests, TypeScript source, and test/smoke commandsIntegrate the registered tools and validate changes with the repository test and smoke commands; CI currently runs on Ubuntu.modelcontextprotocol n8n, glama n8n-manager-mcp, smithery n8n workflow

High-Intent Search Queries

  • n8n mcp server claude code
  • ai assistant n8n workflow management
  • local-first n8n mcp stdio
  • safe n8n automated workflow mutation
  • n8n multi-server workflow sync mcp
  • n8n describe nodes offline catalog
  • n8n MCP stdio with configured server endpoints
  • modelcontextprotocol n8n typescript

Project Capabilities & Boundaries

AreaImplemented behaviorScope and boundary
MCP transport and networkThe server communicates with its MCP client over stdio and opens no MCP listening port.Runtime API requests go to configured n8n URLs and, when configured, the manager URL. The update notifier may check for updates during an interactive TTY start; the regular non-TTY stdio path skips that check.
Workflow tools19 MCP tools list, create, update, delete, activate/deactivate, export/import workflows, inspect executions, and manage backups and servers.Mutations act on the selected configured n8n instance. Import creates a new workflow and has no pre-import backup or rollback handle.
Server profilesMultiple n8n profiles are stored locally in servers.json; URL and API-key inputs are validated.API keys are stored as plaintext. New config files request POSIX mode 0600; Windows access follows directory ACLs.
Read-only modePersisted read-only mode blocks workflow mutation tools. N8N_MANAGER_READ_ONLY=1 adds a process-level ceiling that the tool cannot turn off.Configuration is loaded before the mutation gate. A blocked attempt may append to the local audit log, so this is not a filesystem read-only mode.
Pre-mutation backupsWhen enabled (default: true), JSON snapshots precede update, delete, activate/deactivate, and overwrite-restore operations.Create and import do not get a pre-mutation snapshot. If an enabled snapshot fetch or save fails, the following n8n mutation request is not sent. Backup JSON is local plaintext.
Audit logConfigurable local JSON append log, enabled by default, records supported operation outcomes and blocked mutation attempts.It is not tamper-proof. Append errors propagate; an error can occur after an upstream mutation has already succeeded.
Input and backup pathsNumeric fields have explicit bounds; backup path segments are sanitized and real-path/symlink checks are used by backup, listing, and restore operations.These checks are scoped to those inputs and file operations. They do not establish immunity to all traversal, prototype-pollution, or malformed-payload failures.
Optional manager historyn8n_manager_history reads from the configured manager when N8N_MCP_MANAGER_URL is set and does not fall back to a direct n8n query if that manager is unreachable.This option makes a request to the configured manager endpoint.
Offline node catalogn8n_describe_nodes lists common node types and short descriptions without an API request.It does not provide complete node schemas or required properties.
Verification and security policyGitHub Actions runs build, test, smoke/package checks on Ubuntu with Node.js 20 and 22. SECURITY.md publishes response, triage, and remediation commitments.This CI configuration is not cross-platform assurance. The security timings are policy commitments, not a record of observed response performance.

Capabilities & Implementation Boundaries

These reference IDs group implementation areas; they are not external certifications or guarantees.

ReferenceImplemented behaviorScope and limits
INV-LOCAL-01MCP client communication uses local stdio.n8n API calls go to configured endpoints; the optional manager and interactive-terminal update check can also make network requests.
INV-READ-02N8N_MANAGER_READ_ONLY=1 is an environment-level ceiling that the tool cannot disable. Persisted read-only mode can be changed when the environment ceiling is absent.The server loads configuration before checking the mutation gate; a blocked attempt may append to the audit file, and an append failure can make the tool call return an error. This is not an OS-level filesystem restriction.
INV-BACK-03With backup_before_mutations enabled (default: true), JSON snapshots are attempted before update, delete, activate/deactivate, and overwrite-restore.Create/import are not pre-backed up. A failed enabled snapshot stops the subsequent n8n mutation request. Backups are local plaintext.
INV-AUDIT-04audit_log is configurable and enabled by default; entries are appended to the local audit file.The log is not tamper-proof. Append failures propagate and may happen after an upstream mutation succeeds.
INV-SRV-05Multiple server profiles are stored locally and selected for requests.API keys in servers.json are plaintext. New config files request POSIX 0600; Windows access follows directory ACLs.
INV-TRAV-06Numeric input bounds are validated; backup path segments are sanitized and checked against the configured root in relevant file operations.Real-path and symlink checks apply to backup/list/restore handling. This does not establish immunity to all traversal, prototype-pollution, or malformed-payload failures.
INV-PRIV-07The server does not request privilege elevation.The Node process inherits its launcher's privileges; no privilege-dropping or RunAsInvoker enforcement is implemented.
INV-SEAM-08n8n_manager_history uses the optional N8N_MCP_MANAGER_URL integration and does not fall back to a direct n8n query when the manager is unreachable.When enabled, it makes a request to the configured manager endpoint.
INV-NODE-09The bundled catalog describes common node types by category.It does not return full schemas or required properties.
INV-SLA-10GitHub Actions runs build, test, smoke, and package checks on Ubuntu with Node.js 20 and 22. SECURITY.md publishes response, triage, and remediation commitments.This CI configuration is not cross-platform assurance. The security timings are policy commitments, not proof of actual response performance.

Features

  • 19 Tools for complete n8n workflow management
  • List, create, update, delete, and activate/deactivate workflows
  • Safety controls: read-only mode, configurable backups for supported mutations (enabled by default), local restore, and configurable audit logging (enabled by default)
  • Multi-server support (connect to multiple n8n instances)
  • Export/Import workflows between servers
  • View execution history and status
  • Built-in node catalog with descriptions
  • Zero dependencies on Python -- connects directly to n8n REST API

Installation

Claude Desktop

Add to claude_desktop_config.json:

config.json
{
  "mcpServers": {
    "n8n-manager": {
      "command": "npx",
      "args": ["-y", "n8n-manager-mcp"]
    }
  }
}

Claude Code

Terminal
claude mcp add --scope user n8n-manager npx -y n8n-manager-mcp

Manual

Terminal
npm install -g n8n-manager-mcp

Quick Start

Natural Language Prompts

After installation, use these prompts in your AI assistant. Before registering a server, securely configure N8N_MANAGER_API_KEY and the matching N8N_MANAGER_SERVER_URL in the MCP host environment. Do not include the API key in a prompt or tool argument:

  1. Add your n8n server:

    "Add an n8n server profile named production at http://localhost:5678 using the already configured host credentials"

  2. List workflows:

    "Show me all workflows on my n8n server"

  3. Inspect nodes offline:

    "Show the action node types and descriptions from the bundled offline catalog"

  4. Create a workflow:

    "Create an n8n workflow that triggers on a webhook, fetches data from an API, and sends a Slack message"

  5. Check executions:

    "Show me the last 10 workflow executions on production"

  6. Import a copy across environments:

    "Export workflow 42 from staging and import a new inactive copy into production"

    Note: n8n_import_workflow creates a new workflow; it does not create a pre-import backup or return a rollback handle. The copy stays inactive unless activation is requested.

End-to-End Developer & Agent Execution Showcase

Below is a step-by-step walkthrough of server configuration, offline catalog lookup, workflow mutation with backup, restore, and read-only behavior. Examples show tool-argument shapes and illustrative MCP text responses.

1. Multi-Server Registration & Health Check

Before registering a new server, configure N8N_MANAGER_API_KEY and a matching N8N_MANAGER_SERVER_URL in the MCP host environment using the client's sensitive settings or an OS secret facility. Never pass the API key in a chat prompt or tool argument. The local server profile stores the key as plaintext; new files request mode 0600 on POSIX, while Windows access follows the directory ACL.

Call n8n_add_server:

config.json
{
  "name": "staging",
  "url": "http://127.0.0.1:5678",
  "is_default": true
}

Illustrative MCP text response (the server name and URL follow the request):

text
Server "staging" added (http://127.0.0.1:5678). Set as default.

Call n8n_ping_server:

config.json
{
  "server_name": "staging"
}

Illustrative MCP text response (response time varies):

text
Server "staging" (http://127.0.0.1:5678) is reachable. Response time: <N>ms

2. Offline Node Catalog

n8n_describe_nodes filters the bundled catalog by category. It returns text descriptions, not full node schemas or a selected list of node names.

Call n8n_describe_nodes:

config.json
{
  "category": "action"
}

Illustrative response text:

text
n8n Node Types (action):

  [ACTION] n8n-nodes-base.httpRequest
    Name: HTTP Request
    Make HTTP requests. Params: url, method, headers, body

  [ACTION] n8n-nodes-base.emailSend
    Name: Send Email
    Send emails via SMTP. Params: fromEmail, toEmail, subject, text

  [ACTION] n8n-nodes-base.slack
    Name: Slack
    Send messages to Slack channels

  [ACTION] n8n-nodes-base.telegram
    Name: Telegram
    Send messages via Telegram bot

  [ACTION] n8n-nodes-base.googleSheets
    Name: Google Sheets
    Read/write Google Sheets data

3. Safe Workflow Update with Automated Snapshot

When backup_before_mutations is enabled (default: true), n8n_update_workflow saves a timestamped snapshot before sending the update to n8n. This example shows the argument shape only: replace the placeholder with the complete, JSON-serialized updated workflow.

Call n8n_update_workflow:

config.json
{
  "workflow_id": "42",
  "server_name": "staging",
  "workflow_json": "<complete JSON-serialized updated workflow>"
}

Illustrative MCP text response when the default backup is enabled:

text
Workflow 42 updated successfully on staging. Backup saved: <backup path>

4. Restore from a Local Backup

To overwrite workflow 42, pass its backup path and target_workflow_id. With backup_before_mutations enabled, the current target is backed up before it is overwritten. Omitting target_workflow_id creates a new workflow instead.

Call n8n_restore_workflow:

config.json
{
  "backup_path": "<path returned by n8n_list_backups or a mutation response>",
  "server_name": "staging",
  "target_workflow_id": "42"
}

Illustrative MCP text response when the pre-restore backup is enabled:

text
Workflow restored (overwritten) on staging: "Customer Webhook Ingest [v2]" (ID: 42). Pre-restore backup saved: <backup path>

5. Fail-Closed Read-Only Protection

If audit_log is enabled (default: true), a blocked mutation is appended to the audit log; an append error can make the tool call fail. If N8N_MANAGER_READ_ONLY=1 is set in the MCP host environment, it is a monotonic ceiling: n8n_set_safety_mode cannot disable it. Remove the environment variable and restart the MCP server to lift that ceiling. The runtime's generic text below still mentions n8n_set_safety_mode; that suggestion does not apply while the environment ceiling is active.

Call n8n_delete_workflow:

config.json
{
  "workflow_id": "42",
  "server_name": "staging"
}

Illustrative runtime text response when read-only mode is active:

text
Blocked: n8n Manager is in read-only mode. Disable read_only via n8n_set_safety_mode before delete_workflow.

Available Tools

ToolDescription
n8n_list_workflowsList all workflows on a server
n8n_get_workflowGet workflow details (nodes, connections)
n8n_create_workflowCreate a new workflow from nodes + connections
n8n_update_workflowUpdate an existing workflow
n8n_delete_workflowDelete a workflow
n8n_activate_workflowActivate or deactivate a workflow
n8n_list_executionsList recent executions with status
n8n_export_workflowExport workflow as importable JSON
n8n_import_workflowImport workflow JSON onto a server
n8n_safety_statusShow local safety settings, backup directory, and audit log path
n8n_set_safety_modeToggle read-only mode, backup-before-mutation, and audit logging
n8n_list_backupsList local workflow backups created before mutations
n8n_restore_workflowRestore a workflow from a local backup
n8n_add_serverAdd/update n8n server connection
n8n_list_serversList configured servers
n8n_ping_serverTest server connection
n8n_remove_serverRemove a server
n8n_describe_nodesBrowse available n8n node types
n8n_manager_historyRead version history, recorded decisions, and sync history from an optional n8n-workflow-manager (opt-in, read-only)

Optional: n8n-workflow-manager seam

n8n itself keeps no record of why a workflow changed. The sibling project n8n-workflow-manager does: it stores versions, a mandatory decision per mutation, and a sync history in a local database. n8n_manager_history makes that record readable from this MCP server.

The seam is opt-in and read-only:

  • Without N8N_MCP_MANAGER_URL, nothing changes — every tool talks to n8n directly, as before.
  • With it set (for example http://127.0.0.1:8100), n8n_manager_history reads from the running manager. Omit workflow_id to list the manager's workflows, pass it for full history.
  • IDs are manager IDs, not n8n instance IDs. The manager stores that mapping but exposes no route to resolve it, so this server does not guess a translation.
  • If the manager is configured but unreachable, the tool fails with an explicit message instead of quietly answering from the n8n instance — that store has no decision history, so a substituted answer would be a different answer.
  • n8n_safety_status reports the measured state of the seam (configured, reachable, manager version), not just the environment variable.

Setup: pip install n8n-workflow-manager, then n8n-manager serve (binds 127.0.0.1:8100). The manager API is unauthenticated and binds to loopback by default; its host is configurable. A non-loopback URL is flagged in n8n_safety_status.

Numeric guardrails are part of the MCP schemas: workflow, execution, and backup list limits are finite positive integers from 1 to 1000 (the existing defaults remain 100, 20, and 20), and workflow connection from_output/ to_input indices are finite non-negative integers from 0 to 1000. Invalid values are rejected by the MCP input schemas or workflow validation before the corresponding operation proceeds. Configuration loading may access the local filesystem before a mutation check.


Configuration

Server connections and safety settings are stored in ~/.n8n-manager-mcp/servers.json.

API key data flow

Set N8N_MANAGER_API_KEY and N8N_MANAGER_SERVER_URL in the MCP host process environment before starting the server. Use your client's sensitive user configuration or an OS secret facility when available; check whether your client writes environment values to a plaintext configuration file. N8N_MANAGER_SERVER_URL must match the URL passed to n8n_add_server (trailing slashes are normalized). Do not include an API key in a chat prompt or tool argument.

n8n_add_server reads the key from the host environment, validates it, and saves it with the server profile in local servers.json. The file is plaintext, not encrypted; new files request mode 0600 on POSIX, while Windows access follows the directory ACL. The MCP tool schema, outgoing tool results, and server list contain no configured key value. API calls send the key in the X-N8N-API-KEY header to the configured n8n URL; redirects are not followed. Use HTTPS for remote n8n servers. Echoed keys in successful and failed upstream responses are redacted at the MCP output and audit boundaries, including JSON object keys and workflow IDs.

Existing servers.json profiles keep working. Updating a profile at the same URL preserves its stored key even when an environment key is present. To rotate a key or change a profile URL, set the new key and matching URL in the host environment, restart the MCP server, then call n8n_add_server with rotate_key: true. A URL change without rotation is refused. For multiple servers, configure and add each server with its own environment key/URL pair, restarting the MCP process between pairs; already stored keys are not silently replaced. After onboarding, the environment pair can be removed on restart because the key remains in the local profile. Remove any old prompts or client calls that supplied api_key as a tool argument.

Safety defaults:

  • backup_before_mutations: true saves workflow JSON before update, delete, activate/deactivate, and overwrite-restore operations.
  • audit_log: true appends mutation outcomes to ~/.n8n-manager-mcp/audit.log.
  • read_only: false can be enabled with n8n_set_safety_mode or N8N_MANAGER_READ_ONLY=1. The environment flag is an enforcement ceiling: while it is enabled, persisted settings and n8n_set_safety_mode cannot turn read-only mode off.
  • Backups are stored under ~/.n8n-manager-mcp/backups/ and can be listed/restored with the backup tools. Backup path segments are sanitized and real-path/symlink checks are used in backup, listing, and restore handling. Listing exposes regular .json backups. These checks are scoped to those operations, not a general filesystem guarantee.
  • n8n_add_server validates server connection input before saving: URLs must be http or https base URLs without embedded credentials, query strings, or fragments, and API keys must not contain whitespace.
  • n8n_add_server default semantics are explicit: the first server becomes default; an update without is_default preserves the existing flag; true promotes the server; false intentionally removes its flag, after which default lookup falls back to the first configured server.

Development

Terminal
npm install
npm run build    # One-time build
npm run dev      # Watch mode
npm start        # Start server
npm test         # Run test suite (vitest)
npm run smoke    # Start the built MCP server and verify tool discovery

Testing

The test suite covers URL building, server input validation, server management, safety settings, backup path handling, workflow JSON construction, export/import validation, i18n language packs, repository hygiene, and error handling. The manager seam is tested against a local stub HTTP server, including its refusal to fall back to a direct n8n query.

Terminal
npm test              # Run all tests
npx vitest run        # Same as above
npx vitest --watch    # Watch mode
npm run smoke         # Manual stdio MCP smoke test (requires npm run build first)

The recorded verification covers Windows locally and Ubuntu Linux in GitHub Actions; GitHub Actions runs build, test, and npm package checks on Node.js 20 and 22. The commit-specific local record is kept in CHANGELOG.md. The smoke runner starts dist/index.js through the MCP SDK client, verifies all 19 tool registrations and secret-free server setup with synthetic credentials, and uses loopback stubs to test key redaction and redirect refusal. It does not contact a real n8n server.

Contributing & Development Workflow

Contributions are welcome! Please review CONTRIBUTING.md and our CODE_OF_CONDUCT.md for full guidelines, including:

  • Implementation areas (INV-LOCAL-01 to INV-SLA-10): stdio transport, read-only mode, configurable backups and audit logging, validation, and the published security policy; see the documented scope and limits above.
  • Process privileges: the process inherits the privileges of its launcher and does not request elevation.
  • Plan D Workflow: Development strictly against canonical local clones and GitHub origin/main.
  • Published security policy: Response, triage, and remediation commitments are listed in SECURITY.md; coordinated disclosure contacts include security@ellmos.ai and security@open-bricks.org.

Related

  • n8n-workflow-manager — the state & history layer for humans (Web UI + REST API, Python): per-workflow change history and decision log, visual graph viewer, multi-server sync. Designed as a pair with this MCP server — the MCP is the AI action layer (create/update/delete/activate), the manager is where you review, document, and roll back. Memory & context (roadmap): an MCP server alone can't guarantee an agent checks prior context before a destructive change — that enforcement belongs in the manager (client-agnostic), with conversational context optionally from a pull-based history index like ctx (Apache-2.0). Planned: a shared history/decision store + a check-history-before-mutating guard.
  • n8n -- The workflow automation platform

License

MIT


ellmos-ai Ecosystem

This MCP server is part of the ellmos-ai ecosystem — AI infrastructure, MCP servers, and intelligent tools.

MCP Server Family

ServerToolsFocusnpm
FileCommander46Filesystem, process management, interactive sessions, cloud-lock-safe operationsellmos-filecommander-mcp
CodeCommander22Code analysis, JSON repair, imports, diffs, regexellmos-codecommander-mcp
Clatcher12File repair, format conversion, batch operationsellmos-clatcher-mcp
n8n Manager19n8n workflow management via AI assistantsn8n-manager-mcp
ControlCenter20MCP stack discovery, profile management, control planeellmos-controlcenter-mcp
Homebase45Local-first LLM memory, knowledge, state, routing, swarm orchestrationellmos-homebase-mcp (alpha)
ServerCommander8Server operations: health checks, log analysis, deploy dry-runs, mail diagnosticsellmos-servercommander-mcp (alpha)
Blender Use3Headless Blender asset QA and FBX reimport verificationellmos-blender-use-mcp (alpha)
Open Compute10Model-agnostic computer use: capture, safety-gated actions, Windows UIAopen-compute-mcp (alpha)

AI Infrastructure

ProjectDescription
BACHLocal-first text-based OS for LLM agents — 113+ handlers, 550+ tools, SQLite memory
open-computeModel-agnostic computer-use core powering Open Compute MCP
clutchProvider-neutral LLM orchestration with auto-routing and budget tracking
rinnsalLightweight agent memory, connectors, and automation infrastructure
ellmos-stackSelf-hosted AI research stack (Ollama + n8n + Rinnsal + KnowledgeDigest)
MarbleRunAutonomous agent chain framework for Claude Code
gardenerMinimalist database-driven LLM OS prototype (4 functions, 1 table)
ellmos-testsTesting framework for LLM operating systems (7 dimensions)

Desktop Software & Sibling Tools

Our partner organization open-bricks and sister suites bundle AI-native desktop applications and developer utilities:

RepositoryOrg / SuiteFocus & Functionality
ProFilerfile-bricksAdvanced file and asset management workbench with duplicate detection
ExplorerProfile-bricksTabbed, filterable file manager with smart batch processing
WinStorePackagerfile-bricksMSIX packaging and Windows Store release preparation
DokuZendoc-bricksOffline Markdown editor, live preview, and document structuring workbench
PDFtoPDFocrdoc-bricksOffline OCR pipeline converting scanned PDF documents to searchable PDFs
USR_PDFunlockdoc-bricksBirthday/date password recovery tool for protected PDF archives
UniversalInvoiceMaildoc-bricksAutomated invoice extraction and email processing
CleanMarkdowndoc-bricksLossless formatting and typography cleanup for technical markdown
safe-start-for-codexdev-bricksFast, reliable agent bootstrap and environment check runner
automation-masterdev-bricksCentral multi-host automation orchestrator and task monitor
DevCenterdev-bricksUnified developer workspace dashboard for local tool chains
CodeBoxdev-bricksDesktop code editor / IDE for multi-language development
githubbotdev-bricksAutomated multi-org repository maintenance and discoverability engine
swarm-aiellmos-aiDistributed multi-agent swarming framework with stigmergic coordination
ellmos-coreellmos-aiEnterprise AI agent backend, hybrid RAG, and multi-tenant security
open-bricksopen-bricksUmbrella portal and catalog across all local-first AI software products
Zombie Killer Traydev-bricksOptional Windows tool for checking orphaned MCP processes. n8n Manager is a configured candidate when launched through the supported node_modules/n8n-manager-mcp/dist/index.js entrypoint; all additional process and apply checks still apply

Third-Party Licenses & Transparency

This project is licensed under the MIT License with attribution declared in NOTICE. The dependency table below lists selected direct and development dependencies declared for this project. License details are provided in the repository inventory; this table does not claim continuous auditing or certify supply-chain security:

DependencyTypeVersionLicenseInventory Status
@modelcontextprotocol/sdkRuntime (Direct)^1.29.0MITLicense listed
zodRuntime (Direct)^4.6.7MITLicense listed
update-notifierRuntime (Direct)^7.3.1BSD-2-ClauseLicense listed
typescriptDev / Compiler^5.3.3Apache-2.0License listed
vitestDev / Test Runner^4.1.11MITLicense listed
@types/nodeDev / Type Definitions^20.11.0MITLicense listed
  • Network scope: The server sends requests to configured n8n endpoints and, when enabled, the configured manager endpoint. The update notifier may check for updates on interactive TTY startup; the regular non-TTY stdio path skips it. The reviewed application source contains no product-analytics sender.
  • Detailed Open-Source Inventory: Complete attribution notices, license texts, and transitive dependency analyses are available in THIRD_PARTY_LICENSES.md.
  • Plain-text dependency companion: A text dependency/license inventory is available in THIRD_PARTY_LICENSES.txt; it is not a runtime audit trail or privilege certification.

Marketing & Personas Log

For marketing positioning, target persona definitions, governance invariant mappings, and the 3-phase discoverability roadmap, see MARKETING-LOG.txt.


Changelog

See CHANGELOG.md for detailed version history, release notes, and past migration milestones.


Haftung / Liability

Statutory Notice & Liability Disclaimer (§ 521 BGB)

Dieses Projekt ist eine unentgeltliche Open-Source-Schenkung im Sinne der §§ 516 ff. BGB. Die Haftung des Urhebers ist gemäß § 521 BGB auf Vorsatz und grobe Fahrlässigkeit beschränkt. Ergänzend gilt der Haftungsausschluss der MIT-Lizenz.

Nutzung auf eigenes Risiko. Keine Wartungszusage, keine Verfügbarkeitsgarantie, keine Gewähr für Fehlerfreiheit oder Eignung für einen bestimmten Zweck.

This project is an unpaid open-source donation under the MIT License. Liability is limited to intent and gross negligence (§ 521 German Civil Code). Use at your own risk. No warranty, no maintenance guarantee, no fitness-for-purpose assumed.

Security Response SLA & Vulnerability Reporting

As stated in SECURITY.md, the published security policy makes these response, triage, and remediation commitments:

  • Initial Response Commitment: The published policy sets an initial response within 48 hours (INV-SLA-10).
  • Triage Commitment: The published policy sets vulnerability assessment within 5 business days.
  • Remediation Commitment: The published policy sets coordinated security remediation within 30 calendar days after confirmation of a reported vulnerability.
  • Direct Contact Endpoints:
    • security@open-bricks.org
    • security@ellmos.ai
    • lukas@open-bricks.org

These are policy commitments; this document does not report measured response performance.