A MCP for Claude Desktop / Claude Code / Windsurf / Cursor to build n8n workflows for you
A MCP for Claude Desktop / Claude Code / Windsurf / Cursor to build n8n workflows for you
A Model Context Protocol (MCP) server that provides AI assistants with comprehensive access to n8n node documentation, properties, and operations. Deploy in minutes to give Claude and other AI assistants deep knowledge about n8n's 2,691 workflow automation nodes (832 core + 1,859 community).
n8n-MCP serves as a bridge between n8n's workflow automation platform and AI models, enabling them to understand and work with n8n nodes effectively. It provides structured access to:
source filtern8n-mcp started as a personal tool but now helps tens of thousands of developers automate their workflows efficiently. Maintaining and developing this project competes with my paid work. Your sponsorship helps me dedicate focused time to new features, respond quickly to issues, keep documentation up-to-date, and ensure compatibility with latest n8n releases. Become a sponsor
💼 Need it built for you? Work with AiAdvisors — n8n automation audits, builds, and operations, run by the author of n8n-mcp and n8n-skills.
NEVER edit your production workflows directly with AI! Always:
AI results can be unpredictable. Protect your work!
The fastest way to try n8n-MCP - no installation, no configuration:
Just sign up, get your API key, and connect your MCP client.
Want to self-host? See the Self-Hosting Guide for npx, Docker, Railway, and local installation options.
Want to use n8n-MCP with your n8n instance? Check out our comprehensive n8n Deployment Guide for:
If your n8n instance sits behind Cloudflare Access (Zero Trust), provide your service token so n8n-MCP can authenticate:
N8N_CF_CLIENT_ID - Cloudflare Access Client IDN8N_CF_CLIENT_SECRET - Cloudflare Access Client SecretWhen set, these are sent as CF-Access-Client-Id / CF-Access-Client-Secret headers on n8n API requests, version/health probes, and webhook executions. The token is confined to the N8N_API_URL origin — webhook calls to a different host (e.g. a split WEBHOOK_URL origin) do not receive it, to avoid leaking the token.
To use n8n_manage_agents, n8n_explore_node_resources, and the project fallback in n8n_list_catalog, set:
N8N_MCP_ACCESS_TOKEN - MCP API key from n8n Settings → Instance-level MCP → set MCP status to Enabled. This is a separate secret from N8N_API_KEY and should be stored the same way. The MCP endpoint is derived from N8N_API_URL; instances that serve MCP from a split host (N8N_MCP_BASE_URL) are not supported.See Connecting n8n-mcp to n8n's instance-level MCP server for the full setup walkthrough, including how to get the token from the n8n UI, prerequisites, and troubleshooting.
n8n-MCP works with multiple AI-powered IDEs and tools:
Supercharge your n8n workflow building with specialized skills that teach AI how to build production-ready workflows! Learn more: n8n-skills repository
For the best results when using n8n-MCP with Claude Projects, use these enhanced system instructions:
…
json // FAILS at runtime {resource: "message", operation: "post", text: "Hello"}
// WORKS - all parameters explicit {resource: "message", operation: "post", select: "channel", channelId: "C123", text: "Hello"}
…
[Silent tool execution in parallel]
Created workflow:
Validation: All checks passed
### Modifications
[Silent tool execution]
Updated workflow:
Changes validated successfully.
## Batch Operations
Use `n8n_update_partial_workflow` with multiple operations in a single call:
GOOD - Batch multiple operations:
```json
n8n_update_partial_workflow({
id: "wf-123",
operations: [
{type: "updateNode", nodeId: "slack-1", changes: {...}},
{type: "updateNode", nodeId: "http-1", changes: {...}},
{type: "cleanStaleConnections"}
]
})
BAD - Separate calls:
n8n_update_partial_workflow({id: "wf-123", operations: [{...}]})
n8n_update_partial_workflow({id: "wf-123", operations: [{...}]})
The addConnection operation requires four separate string parameters. Common mistakes cause misleading errors.
CORRECT - Four separate string parameters:
{
"type": "addConnection",
"source": "node-id-string",
"target": "target-node-id-string",
"sourcePort": "main",
"targetPort": "main"
}
Reference: GitHub Issue #327
IF nodes have two outputs (TRUE and FALSE). Use the branch parameter to route to the correct output:
n8n_update_partial_workflow({
id: "workflow-id",
operations: [
{type: "addConnection", source: "If Node", target: "True Handler", sourcePort: "main", targetPort: "main", branch: "true"},
{type: "addConnection", source: "If Node", target: "False Handler", sourcePort: "main", targetPort: "main", branch: "false"}
]
})
Note: Without the branch parameter, both connections may end up on the same output, causing logic errors!
Use the same four-parameter format:
{
"type": "removeConnection",
"source": "source-node-id",
"target": "target-node-id",
"sourcePort": "main",
"targetPort": "main"
}
…
`
Save these instructions in your Claude Project for optimal n8n workflow assistance with intelligent template discovery.
## Available MCP Tools
### Core Tools (7 tools)
- **`tools_documentation`** - Get documentation for any MCP tool (START HERE!)
- **`search_nodes`** - Full-text search across all nodes. Use `source: 'community'|'verified'` for community nodes, `includeExamples: true` for configs
- **`get_node`** - Unified node information tool with multiple modes:
- **Info mode** (default): `detail: 'minimal'|'standard'|'full'`, `includeExamples: true`
- **Docs mode**: `mode: 'docs'` - Human-readable markdown documentation
- **Property search**: `mode: 'search_properties'`, `propertyQuery: 'auth'`
- **Versions**: `mode: 'versions'|'compare'|'breaking'|'migrations'`
- **`validate_node`** - Unified node validation:
- `mode: 'minimal'` - Quick required fields check (<100ms)
- `mode: 'full'` - Comprehensive validation with profiles (minimal, runtime, ai-friendly, strict)
- **`validate_workflow`** - Complete workflow validation including AI Agent validation
- **`search_templates`** - Unified template search:
- `searchMode: 'keyword'` (default) - Text search with `query` parameter
- `searchMode: 'by_nodes'` - Find templates using specific `nodeTypes`
- `searchMode: 'by_task'` - Curated templates for common `task` types
- `searchMode: 'by_metadata'` - Filter by `complexity`, `requiredService`, `targetAudience`
- **`get_template`** - Get complete workflow JSON (modes: nodes_only, structure, full)
### n8n Management Tools (21 tools - Requires API Configuration)
These tools require `N8N_API_URL` and `N8N_API_KEY` in your configuration.
#### Workflow Management
- **`n8n_create_workflow`** - Create new workflows with nodes and connections
- **`n8n_get_workflow`** - Unified workflow retrieval (modes: full, details, structure, minimal)
- **`n8n_update_full_workflow`** - Update entire workflow (complete replacement)
- **`n8n_update_partial_workflow`** - Update workflow using diff operations
- **`n8n_delete_workflow`** - Delete workflows permanently
- **`n8n_list_workflows`** - List workflows with filtering and pagination
- **`n8n_validate_workflow`** - Validate workflows in n8n by ID
- **`n8n_autofix_workflow`** - Automatically fix common workflow errors
- **`n8n_workflow_versions`** - Version history, diff and rollback over two histories: `source: 'local'` (the snapshots n8n-mcp takes before it changes a workflow, the default) and `source: 'native'` (n8n's own workflow history, including UI edits — needs `N8N_MCP_ACCESS_TOKEN` and the workflow's "Available in MCP" setting)
- **`n8n_deploy_template`** - Deploy templates from n8n.io directly to your instance with auto-fix
#### Node Resource Discovery
- **`n8n_explore_node_resources`** - Resolve a node's dynamic dropdown (loadOptions) or resource-locator search (listSearch) values — Slack channels, Google Sheets tabs, model lists — using a real credential, so workflow configs use existing IDs instead of invented ones. Requires `N8N_MCP_ACCESS_TOKEN` (see [Official MCP Setup](./docs/OFFICIAL_MCP_SETUP.md))
#### Execution Management
- **`n8n_test_workflow`** - Run a workflow. `method: 'auto'` (default) triggers it over HTTP through its webhook/form/chat trigger; `method: 'prepare'`/`'pinned'`/`'direct'` run workflows that have no such trigger through n8n's own MCP server (needs `N8N_MCP_ACCESS_TOKEN` and the workflow's "Available in MCP" setting)
- **`n8n_executions`** - Unified execution management (list, get, delete)
- **`n8n_evaluations`** - Run and read evaluation test runs (list runs, aggregated metrics, per-case results on n8n 2.30+; trigger and cancel on 2.32+)
#### Folder Management
- **`n8n_manage_folders`** - Manage workflow folders (create, list, get, rename, move, delete; n8n 2.19+). Place workflows into folders via `n8n_create_workflow`'s `parentFolderId` or `n8n_update_partial_workflow`'s `moveToFolder` operation (n8n 2.32+)
#### Data Table Management
- **`n8n_manage_datatable`** - Manage n8n data tables, rows and columns (list, get, create, update, delete; `addColumn`/`deleteColumn`/`renameColumn` change an existing table's columns through n8n's own MCP server and need `N8N_MCP_ACCESS_TOKEN`)
#### Credential Management
- **`n8n_manage_credentials`** - Manage n8n credentials (list, get, create, update, delete, getSchema)
#### Security & Audit
- **`n8n_audit_instance`** - Security audit combining n8n's built-in aud