ratamaha-git avatar

N8n Mcp

ratamaha-git/n8n-mcp

Connects Claude to n8n workflow automation with a sharp focus on debugging and correctness. Exposes twelve tools split between stateless operations (generate workflows from plain English, lint for schema errors and deprecated nodes, explain failed executions with per-node diagnosis) and live REST calls (list, fetch, create, activate workflows and pull execution data when you supply N8N_API_URL and N8N_API_KEY). The execution.explain tool is the standout: paste a failed execution JSON and get back concrete findings on nodes that returned zero items, unresolved expressions, and broken AI Agent topology. Built by AutomateLab after hitting repeated import-time and runtime failures with LLM-generated n8n JSON. If you're building or debugging n8n workflows with AI, this catches the silent data loss and connection mismatches before you import.

GitHub stars
7
tools
12
transport
STDIO
last updated
May 10, 2026

Tools

12 tools

Public tool metadata for what this MCP can expose to an agent.

node.scaffoldScaffold 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.2 params

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.

Parameters* required
descriptionstring
Plain-English description of what the node should do (1+ chars).
nodeNamestring
Optional PascalCase class name, e.g. 'DiscordRateLimited'. Derived from the description if omitted.
workflow.generateGenerate 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 wit...2 params

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 wit...

Parameters* required
descriptionstring
Plain-English workflow description, e.g. 'Stripe webhook -> Slack message + Google Sheets row'.
namestring
Optional workflow name. Derived from the first sentence of the description if omitted.
workflow.lintLint 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 missi...1 params

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 missi...

Parameters* required
workflowvalue
n8n workflow as either a parsed object or a JSON string (will be parsed).
workflow.diffSemantic 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)....2 params

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)....

Parameters* required
aftervalue
The 'after' workflow JSON.
beforevalue
The 'before' workflow JSON.
execution.explainDiagnose 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...1 params

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...

Parameters* required
executionvalue
n8n execution payload (REST `?includeData=true` shape or raw UI export). Object or JSON string.
execution.replayBuild 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...4 params

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...

Parameters* required
executionvalue
Optional execution payload — pulls real input the target saw last time.
inputItemsarray
Optional explicit input items (each becomes `{ json: ... }`).
nodestring
Name of the node to replay.
workflowvalue
Original workflow JSON.
execution.timelineRender 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.1 params

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.

Parameters* required
executionvalue
n8n execution payload (must include `data.resultData.runData`).
workflow.listList 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.4 params

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.

Parameters* required
activeboolean
Filter by active status. Omit to return both.
limitinteger
Page size (n8n default: 100, max: 250).
namestring
Filter by exact workflow name.
tagsstring
Comma-separated tag names to filter by.
workflow.getFetch 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.1 params

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.

Parameters* required
idstring
Workflow ID.
workflow.createCreate 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'.1 params

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'.

Parameters* required
workflowvalue
Workflow JSON to create (typically the output of workflow.generate). Either a parsed object or a JSON string.
workflow.activateActivate 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.2 params

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.

Parameters* required
activeboolean
Defaults to true (activate). Set false to deactivate.
idstring
Workflow ID.
execution.listList 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.4 params

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.

Parameters* required
includeDataboolean
Include full execution data (large). Default false — pair with execution.explain.
limitinteger
Page size (n8n default: 100, max: 250).
statusstring
Filter by status: success | error | waiting.one of success · error · waiting
workflowIdstring
Filter by workflow ID.

Sponsors

Readme

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).


View the full README on GitHub

Details

Repository
github.com/ratamaha-git/n8n-mcp
Categories
Developer Tools, Automation & Workflows
Package
@automatelab/n8n-mcp
Transport
STDIO
Registry
MCP registry, active

Related Developer Tools MCP servers

View all
1snyk avatarSnyk API & Web MCP Serversnyk/saw-mcpMCP server for Snyk API & Web — DAST scanning, findings management, and vulnerability triage7stars
2vish288 avatarGitLabvish288/mcp-gitlabGitLab MCP server (MCP 2026-07-28): projects, MRs, pipelines, CI/CD, issues; writes or read-only7stars
3fabianschurig avatarBitbucket MCPfabianschurig/bitbucket-cliBitbucket Cloud MCP in Go: complete API auto-generated from spec, customizable prompts.0stars
4domdomegg avatarShell Execdomdomegg/shell-exec-mcpExecute bash commands with background job support.5stars
5oncorporation avatarFileSystem MCP Serveroncorporation/filesystem_serverSecure filesystem access for AI agents with configurable directory and file type restrictions5stars
6crypto-ninja avatarGithub Mcp Servercrypto-ninja/mcp-server-for-githubAI-optimized GitHub MCP server: 112 tools, 98% token reduction, compact responses.0stars