Bundle Pluginsource linked

automatelab-n8n-mcpv0.5.5

MCP server for n8n with tools for generating workflows, linting, diagnosing failed executions, and driving live n8n instances. Built for AI agents.

@automatelab/n8n-mcp·runtime @automatelab/n8n-mcp·by @automatelab
openclaw bundles install clawhub:@automatelab/n8n-mcp
Latest release: v0.5.5Download zip

Capabilities

Bundle format
claude
Runtime ID
@automatelab/n8n-mcp

Compatibility

Built With Open Claw Version
0.5.5
Security Scan
VirusTotalVirusTotal
Benign
View report →
OpenClawOpenClaw
Suspicious
high confidence
Purpose & Capability
The advertised purpose matches the artifacts: an MCP server and agent skill for generating, linting, debugging, and optionally driving n8n workflows through the REST API.
!
Instruction Scope
SKILL.md and GEMINI.md recommend default chains that can create and activate workflows when credentials are configured, and recommend full execution retrieval with includeData, without requiring an explicit user approval step or warning about sensitive execution payloads.
Install Mechanism
Installation is conventional for a Node/MCP package through npm, npx, Docker, DXT, or hosted worker configs. No hidden install persistence or unusual startup mechanism was found.
!
Credentials
Live-instance use requires N8N_API_URL and N8N_API_KEY and can read workflow/execution data or change active automations. This is expected for the product, but high-impact enough that the default agent guidance is under-scoped.
Persistence & Privilege
The server does not appear to store user data or create OS-level persistence, and it includes runtime policy env vars such as read-only mode, disabled tools, allowed workflow IDs, and allowed tags. Those controls are optional rather than the default.
Scan Findings in Context
[SDI-1] expected: The live n8n workflow commands are consistent with the package purpose and are disclosed in README/SKILL.md. The GitHub Action documentation also lists live commands, but src/action.ts only implements lint, explain, generate, and scaffold, so this is mainly a documentation mismatch rather than evidence of hidden live writes in the action wrapper.
[SDI-4] unexpected: The action inputs describe only the narrower action command set while later action docs mention live commands. Artifact review supports a mismatch, but the implementation rejects unsupported action commands, reducing direct security impact.
[SDI-1] expected: PR commenting is implemented and documented through action.yml/ACTION.md. The concern is disclosure risk because formatted output may be posted to pull requests by default on pull_request events.
[SQP-2] expected: Live workflow creation, activation, and full execution retrieval are central features, but the agent-facing instructions do not require confirmation before state-changing operations or warn that execution bodies may contain sensitive data.
[SQP-1] unexpected: The timezone example is an evaluation fixture for lint behavior, not package runtime behavior. It does not materially affect the install verdict.
[SQP-2] expected: The Stripe-to-Slack example intentionally demonstrates a billing workflow, but it forwards customer email and payment fields into Slack and Google Sheets. This is a privacy/compliance caution for users importing examples, not evidence of malicious behavior.
What to consider before installing
Install only if you intend to let the agent interact with n8n. Prefer starting without N8N_API_URL/N8N_API_KEY or set N8N_MCP_READ_ONLY=1, disable workflow.create and workflow.activate unless needed, use a non-production n8n instance or narrow API key, and require manual approval before creating, activating, or retrieving full execution data.
src/tools/rest-api.ts:26
Environment variable access combined with network send.
smithery.yaml:33
File appears to expose a hardcoded API secret or token.
Patterns worth reviewing
These patterns may indicate risky behavior. Check the VirusTotal and OpenClaw results above for context-aware analysis before installing.

Verification

Tier
source linked
Scope
artifact only
Summary
Validated package structure and linked the release to source metadata.
Commit
dcc820f6b94b
Tag
main
Provenance
No
Scan status
suspicious

Tags

latest
0.5.5

n8n-mcp

An MCP server for n8n that gives Claude, Cursor, and other AI agents tools for generating workflows, linting, diagnosing failed executions, and driving live n8n instances.

npm License CI

Why we built this

We use n8n daily inside AutomateLab and kept hitting the same LLM failures: workflow JSON that imports but fails at runtime, AI Agent clusters wired with the wrong connection types, executions that silently drop items with no clue where to look. Dumping the whole n8n catalog into context doesn't fix it - the failure modes are too subtle (typeVersion mismatches, IF v1 schema, credentials that don't survive import).

So we built a small, focused server: encode the failure modes the lint can catch, the cluster topology the generator must respect, and the diagnosis the agent can't do alone. For a walkthrough of the nine tools with example output, see the launch post on automatelab.tech.

Why it's different

Other n8n MCP servers (notably czlonkowski/n8n-mcp) compete on breadth - 20+ tools and an indexed corpus of every n8n node. They own that niche.

This server is the debugging-and-first-run-correctness MCP for n8n:

  • execution.explain is the wedge. Paste the execution JSON; get back per-node findings: which nodes returned 0 items, which had unresolved ={{ ... }} expressions, error messages with concrete hints. No other MCP server does this well, and it hits the n8n community's #1 debugging pain point (silent data loss between nodes).
  • workflow.generate is opinionated about AI Agent topology - emits proper LangChain clusters with ai_languageModel / ai_memory / ai_tool connections (sub-nodes connect upward to the agent, not via main). Imports cleanly on n8n 1.x.
  • workflow.lint catches the silent failures: deprecated node types (Function → Code, spreadsheetFile → convertToFile), AI Agent missing language model, IF v1 schema, Webhook missing webhookId, broken connections across all connection types (not just main).
  • 5 REST tools (gated on N8N_API_URL + N8N_API_KEY) let you list, fetch, create, activate workflows and pull executions - so the lint and explain tools can run against your live workflows, not just JSON pasted in chat.

Plus: a paired Agent Skill that teaches the model when to use which tool and where to load deeper context (split into references/ so it doesn't bloat the prompt).

Tools

Tool names follow dot-notation and form a navigable tree: node.*, workflow.*, execution.*. Every tool declares an outputSchema (so callers can type-check responses) and MCP annotations (read-only / destructive / idempotent / open-world hints).

Stateless (work without a live n8n instance):

ToolPurpose
workflow.generatePlain-English description → workflow JSON. Detects AI-agent intent.
node.scaffoldDescription → single INodeType TypeScript file for a custom n8n package.
workflow.lintWorkflow JSON → list of errors and warnings (20+ rules).
workflow.diffTwo workflows → semantic diff (nodes added/removed/modified, connections, settings).
execution.explainFailed execution JSON → per-node diagnosis with hints.
execution.replayWorkflow + node → self-contained replay workflow that exercises just that node.
execution.timelineExecution JSON → per-node timeline table (start, duration, items in/out, errors).

Live-instance (require N8N_API_URL + N8N_API_KEY env vars):

ToolPurpose
workflow.listPaginate workflows; filter by active/tags/name.
workflow.getFetch a workflow by id.
workflow.createPOST a workflow. Strips read-only fields.
workflow.activateFlip active on/off.
execution.listBrowse executions; pass includeData: true for the full body.

v0.5.0 changes. Three new tools: workflow.diff, execution.replay, execution.timeline. Lint expanded with 10 new rules (rate-limit, credential drift, expression staleness, code sandbox, webhook test path, manualTrigger-in-active, DST schedule risk, disabled-but-wired, empty Set, HTTP method/body mismatch). New runtime policy env vars: N8N_MCP_READ_ONLY, N8N_MCP_DISABLED_TOOLS, N8N_MCP_ALLOWED_WORKFLOW_IDS, N8N_MCP_ALLOWED_TAGS. DXT bundle + Dockerfile + Render/Railway/Fly deploy configs.

v0.4.0 breaking change. Tools were renamed from n8n_* (snake_case) to dot-notation. Update any prompts, agent skills, or scripts that referenced the old names.

Runtime policy (v0.5+)

Constrain the server without forking. Set these env vars before launching:

Env varEffect
N8N_MCP_READ_ONLY=1Disables workflow.create, workflow.activate, node.scaffold.
N8N_MCP_DISABLED_TOOLS=workflow.create,workflow.activateSkip those tool registrations entirely.
N8N_MCP_ALLOWED_WORKFLOW_IDS=abc,defREST tools refuse to touch any workflow outside the list.
N8N_MCP_ALLOWED_TAGS=prod,stagingworkflow.list filters to workflows carrying at least one tag.

Useful when handing the MCP to a junior agent or wiring it behind a customer-facing assistant.

Deploy

  • Claude Desktop one-click: build the .dxt bundle from dxt/manifest.json (see dxt/README.md).
  • Docker: docker build -t n8n-mcp . && docker run --rm -i -e N8N_API_URL=... -e N8N_API_KEY=... n8n-mcp.
  • Render: drop in render.yaml and click "New from Blueprint".
  • Railway: railway.tomlrailway up in the repo root.
  • Fly.io: fly.tomlfly launch --copy-config.

Install

Requires Node 20 or later.

As a CLI tool

npm install -g @automatelab/n8n-mcp

As a GitHub Action

Use the n8n MCP GitHub Action to lint workflows, diagnose executions, and generate workflow JSON in your CI/CD pipeline:

- uses: ratamaha-git/n8n-mcp@v1
  with:
    command: 'lint'
    workflow-json: ${{ env.WORKFLOW_JSON }}

See ACTION.md and GITHUB-ACTION-SETUP.md for examples and publication details.

Configure your MCP host

Cursor (~/.cursor/mcp.json) or Claude Desktop (claude_desktop_config.json):

{
  "mcpServers": {
    "n8n": {
      "command": "npx",
      "args": ["-y", "@automatelab/n8n-mcp"],
      "env": {
        "N8N_API_URL": "https://your-n8n.example.com",
        "N8N_API_KEY": "n8n_..."
      }
    }
  }
}

The env block is optional - the 4 stateless tools work without it. Get an API key from n8n: Settings → API → Create API key.

Restart your MCP host. The 12 dot-notation tools (workflow.*, node.*, execution.*) appear in the MCP panel.

Tool examples

workflow.generate

Use workflow.generate to build: Stripe webhook → Slack message + new row in Google Sheets.

Returns workflow JSON ready for n8n's "Import from File" dialog.

execution.explain

Here's a failed execution from n8n. Why is the Slack node not firing? [paste JSON]

Returns:

WARNING [Filter] Returned 0 items. Downstream nodes will not execute.
  hint: Common causes: (1) IF/Switch routed to the other branch — check `parameters.conditions`. (2) Filter/Set node dropped everything — inspect its output explicitly.

INFO [Last node executed was "Filter". If the workflow stopped here unexpectedly, check its output items below.]

workflow.lint

Lint this workflow JSON. [paste JSON]

Returns:

ERROR [AI Agent] AI Agent has no `ai_languageModel` sub-node connected. Attach a chat model (e.g. lmChatOpenAi).
WARNING [Webhook] Webhook node has no `webhookId`. n8n auto-generates one on import, so the production URL will change.
WARNING [LegacyFunction] Node type "n8n-nodes-base.function" is deprecated. Use "n8n-nodes-base.code".

Or no issues found.

Examples

The examples/ directory ships with two ready-to-import workflows:

  • workflow-stripe-to-slack.json - Stripe webhook fans out to Slack and Google Sheets.
  • workflow-rss-to-discord.json - RSS feed trigger posts new items to a Discord channel.

Import either via n8n's Import from File dialog.

Development

git clone https://github.com/ratamaha-git/n8n-mcp
cd n8n-mcp
npm install
npm run build
npm run smoke

npm run smoke boots the server with a --smoke flag that lists registered tools and exits without binding stdio. Useful for CI or first-run sanity checks.

License

MIT. See LICENSE.


Developed by AutomateLab.