# AutomateLab-tech/n8n-mcp [Health: Active]

**Category:** 💬 Communication  
**Repository:** https://github.com/AutomateLab-tech/n8n-mcp  
**GitHub Stars:** 14  
**npm Downloads (last month):** 369  
**Views:** 9  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/automatelab-tech-n8n-mcp

## Description
Nine-tool MCP server for n8n: generate workflow JSON from natural language, lint for deprecated node types, missing typeVersion, and broken connections, and debug per-node execution failures. Ships with a Claude Code skill. Install: npx @automatelab/n8n-mcp.

## Tools
Capabilities this server exposes over MCP:

- **node_scaffold** — Scaffold a TypeScript skeleton for an n8n custom node from a plain-English description. Returns a single TypeScript file implementing INodeType with description, credentials reference, and an execute method stub. Pure code generation — no network, no filesystem writes.
- **workflow_generate** — Generate a valid n8n workflow JSON from a plain-English description. Handles webhook/schedule/RSS triggers, common action nodes (Slack, Google Sheets, Discord, Gmail, Notion, HTTP), and AI Agent setups (LangChain root agent + chat model + memory + optional HTTP tool, wired with ai_languageModel / ai_memory / ai_tool connections). Returns workflow JSON with unique node IDs, connections, positions, and typeVersion on every node. Output is non-deterministic (random node IDs and webhook paths).
- **workflow_lint** — Lint an n8n workflow JSON. Returns concrete errors and warnings: missing credentials, deprecated node types (Function -> Code, spreadsheetFile -> convertToFile/extractFromFile), broken connections, missing or non-numeric typeVersion, duplicate node names or IDs, AI Agent missing ai_languageModel sub-node, Webhook missing webhookId, IF node still on v1 condition schema, rate-sensitive nodes without retries, Code-node sandbox violations, expression staleness (`$('NodeName')` referencing missing nodes), manualTrigger in active workflows, disabled-but-wired nodes, empty Set nodes, HTTP method/body mismatches, Schedule trigger DST risk, credential drift, webhook test paths in active workflows. Deterministic, rule-based.
- **workflow_diff** — Semantic diff between two workflows. Reports nodes added / removed / modified (with field-level deltas: type, typeVersion, parameters, credentials, disabled, position), connection topology changes, and settings drift. Ignores noise (small position deltas, createdAt/updatedAt). Pair with workflow_get to compare deployed vs local. Deterministic.
- **execution_explain** — Diagnose a failed or surprising n8n execution. Paste the execution JSON (from the n8n UI 'Show details' or `GET /executions/:id?includeData=true`); returns a per-node summary highlighting nodes that returned 0 items, unresolved `={{ ... }}` expressions, errors with hints, and LLM token usage. Hits the most common debugging pain point: items 'silently disappearing' between nodes. Deterministic, rule-based.
- **execution_replay** — Build a self-contained replay workflow that exercises a single node from a larger workflow. The replay workflow is Manual Trigger -> Replay Seed (Code node with pinned items) -> target node. Optional `inputItems` or an `execution` payload pins what the target sees. Useful for iterating on one stubborn node without re-running the whole pipeline. Returns workflow JSON ready to import or push via workflow_create.
- **execution_timeline** — Render an n8n execution as a per-node timeline: start offset, duration, items in/out, error flag. Complements execution_explain — that one surfaces *why*, this surfaces *when*. Output is a markdown table sorted by start time. Deterministic.
- **workflow_list** — List workflows from a live n8n instance (requires N8N_API_URL + N8N_API_KEY env vars). Returns id, name, active, nodeCount, updatedAt, tags. Filter by active, tags, name. Use this when the user asks 'what workflows do I have?' or before workflow_get.
- **workflow_get** — Fetch a single workflow JSON by id from a live n8n instance (requires N8N_API_URL + N8N_API_KEY). Returns the full nodes/connections payload — pair with workflow_lint to audit a deployed workflow.
- **workflow_create** — Create a workflow on a live n8n instance (requires N8N_API_URL + N8N_API_KEY). Strips read-only fields (id, active, createdAt, ...) before posting. Workflows are created inactive — call workflow_activate afterward. Pairs with workflow_generate for end-to-end 'describe -> deploy'.
- **workflow_activate** — Activate or deactivate a workflow on a live n8n instance (requires N8N_API_URL + N8N_API_KEY). Pass `active: false` to deactivate. Idempotent — re-activating an already-active workflow is a no-op on n8n's side.
- **execution_list** — List recent executions from a live n8n instance (requires N8N_API_URL + N8N_API_KEY). Filter by workflowId, status (success|error|waiting), limit. Pass `includeData: true` to get the full execution body (large) — pair with execution_explain to diagnose a specific failure.

## Claude Desktop Quick Installation
Install path detected from listing signals. Uses `npx` (confidence: high):

```json
"mcpServers": {
  "n8n-mcp": {
    "command": "npx",
    "args": ["-y","@automatelab/n8n-mcp"],
    "env": {
      "N8N_API_URL": "",
      "N8N_API_KEY": "",
      "N8N_MCP_READ_ONLY": "",
      "N8N_MCP_DISABLED_TOOLS": "",
      "N8N_MCP_ALLOWED_WORKFLOW_IDS": "",
      "N8N_MCP_ALLOWED_TAGS": ""
    }
  }
}
```

**Requires environment variables:** `N8N_API_URL`, `N8N_API_KEY`, `N8N_MCP_READ_ONLY`, `N8N_MCP_DISABLED_TOOLS`, `N8N_MCP_ALLOWED_WORKFLOW_IDS`, `N8N_MCP_ALLOWED_TAGS` — the values above are empty placeholders; fill in real credentials before running (see the repository for what each one is for).

## Documentation

## What AutomateLab-tech/n8n-mcp MCP server does

AutomateLab-tech/n8n-mcp MCP server exposes n8n-focused tools for both workflow authoring and operational debugging. The stateless tools work from JSON or plain-language descriptions without connecting to an n8n instance. They can generate workflows, scaffold custom nodes, lint configurations, compare workflow versions, explain failed executions, create single-node replay workflows, and render execution timelines.

The generator handles webhook, schedule, and RSS triggers; common actions such as Slack, Google Sheets, Discord, Gmail, Notion, and HTTP; and AI Agent arrangements using LangChain model, memory, and tool connections. Generated workflow JSON includes node IDs, positions, connections, and node type versions. The custom-node tool returns one TypeScript file containing an `INodeType` implementation skeleton.

## How it works

MCP clients call the exposed tools over the server's standard MCP interface. Rule-based analysis tools return structured findings rather than changing input data. `workflow_lint` checks issues such as deprecated node types, missing or invalid `typeVersion` values, broken connections, stale expressions, credential drift, unsafe Code-node patterns, and AI Agent wiring problems. `workflow_diff` compares nodes, fields, connections, and settings while ignoring small positional changes and timestamp noise.

For execution troubleshooting, `execution_explain` accepts execution data from the n8n interface or API and identifies empty outputs, unresolved expressions, node errors, hints, and token usage. `execution_timeline` presents timing and item counts in a markdown table. `execution_replay` builds a Manual Trigger to Code seed to target-node workflow, using supplied input items or execution data.

The live REST tools use `N8N_API_URL` and `N8N_API_KEY`. They list or fetch workflows, create inactive workflows, change activation state, and list executions with optional full execution data. A typical workflow is to generate or retrieve JSON, lint it, create it in n8n, and activate it separately.

## Setup and configuration

AutomateLab-tech/n8n-mcp MCP server requires Node.js 20 or later. Install it with `npx -y @automatelab/n8n-mcp` in an MCP host configuration, or install the package globally with npm. `N8N_API_URL` and `N8N_API_KEY` are optional for the stateless tools but required for live-instance operations. The API key is created in n8n under Settings, API, and Create API key.

Runtime policies can restrict access without changing the source. `N8N_MCP_READ_ONLY=1` disables workflow creation, activation, and node scaffolding. `N8N_MCP_DISABLED_TOOLS` prevents selected tools from registering, while `N8N_MCP_ALLOWED_WORKFLOW_IDS` and `N8N_MCP_ALLOWED_TAGS` constrain live workflow access. The repository also documents Docker, Render, Railway, Fly.io, Claude Desktop bundle, and GitHub Action deployment options.

## Tools and capabilities

- Generate workflow JSON from natural-language requirements.
- Scaffold an n8n custom node in TypeScript.
- Lint workflows with deterministic errors and warnings.
- Compare workflow structure and settings semantically.
- Explain failures and render execution timelines.
- Build isolated replay workflows for individual nodes.
- List, retrieve, create, activate, and inspect workflows and executions on a live n8n instance.

## Limitations and notes

The live tools need a reachable n8n API and valid credentials; the stateless tools do not. Workflow generation is non-deterministic because it creates random node IDs and webhook paths. Creating a workflow does not activate it, and `execution_list` can return a large payload when `includeData` is enabled. AutomateLab-tech/n8n-mcp is best suited to the Developer Tools category when an agent needs n8n-specific validation and debugging rather than a complete indexed catalog of every n8n node.

_Full upstream README: https://allmcps.com/mcp/automatelab-tech-n8n-mcp/readme_

