n8n-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| N8N_API_KEY | No | Your n8n API key from Settings > API. Required for live-instance tools. | |
| N8N_API_URL | No | The base URL of your n8n instance (e.g., https://your-n8n.example.com). Required for live-instance tools. | |
| N8N_MCP_READ_ONLY | No | Set to '1' to disable write tools (workflow_create, workflow_activate, node_scaffold). | |
| N8N_MCP_ALLOWED_TAGS | No | Comma-separated list of tag names; workflow_list will filter to workflows with at least one of these tags. | |
| N8N_MCP_DISABLED_TOOLS | No | Comma-separated list of tool names to skip registration (e.g., 'workflow_create,workflow_activate'). | |
| N8N_MCP_ALLOWED_WORKFLOW_IDS | No | Comma-separated list of workflow IDs that the REST tools are allowed to access. |
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 |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| node_scaffoldA | 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_generateA | 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_lintA | 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 ( |
| workflow_diffA | 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_explainA | Diagnose a failed or surprising n8n execution. Paste the execution JSON (from the n8n UI 'Show details' or |
| execution_replayA | 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 |
| execution_timelineA | 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_listA | 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_getA | 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_createA | 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_activateA | Activate or deactivate a workflow on a live n8n instance (requires N8N_API_URL + N8N_API_KEY). Pass |
| execution_listA | List recent executions from a live n8n instance (requires N8N_API_URL + N8N_API_KEY). Filter by workflowId, status (success|error|waiting), limit. Pass |
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 12 tools
Each tool has a clearly distinct purpose: execution_* tools cover debugging (explain, timeline), listing, and replay, while workflow_* tools cover CRUD, diff, generate, lint, and activation. node_scaffold is separate. No overlapping functionality that would cause confusion.
Tools mostly follow verb_noun snake_case (execution_explain, workflow_create). One minor inconsistency: node_scaffold uses noun_verb instead of scaffold_node. Otherwise consistent and predictable.
12 tools is well-scoped for the n8n domain. It covers execution debugging, workflow lifecycle, and node generation without being overwhelming or sparse.
Covers core execution and workflow operations comprehensively (list, get, create, activate, diff, lint, generate, explain, replay, timeline). Missing workflow delete/update and execution cancel, but these are secondary and often handled via the UI.