Gives Claude, Cursor and other agents n8n node docs, parameters and validation so they can build and check n8n workflows.
Setup
Choose your client, copy the config, then fill in any required environment variables.
claude mcp add n8n --env DISABLE_CONSOLE_OUTPUT='<DISABLE_CONSOLE_OUTPUT>' --env LOG_LEVEL='<LOG_LEVEL>' --env MCP_MODE='<MCP_MODE>' --env N8N_API_KEY='<N8N_API_KEY>' --env N8N_API_URL='<N8N_API_URL>' -- docker run --rm -i -e MCP_MODE=stdio -v n8n-mcp-data:/app/data ghcr.io/czlonkowski/n8n-mcp:latest~/.codex/config.toml
[mcp_servers.n8n]
command = "docker"
args = ["run", "--rm", "-i", "-e", "MCP_MODE=stdio", "-v", "n8n-mcp-data:/app/data", "ghcr.io/czlonkowski/n8n-mcp:latest"]
env = { DISABLE_CONSOLE_OUTPUT = "<DISABLE_CONSOLE_OUTPUT>", LOG_LEVEL = "<LOG_LEVEL>", MCP_MODE = "<MCP_MODE>", N8N_API_KEY = "<N8N_API_KEY>", N8N_API_URL = "<N8N_API_URL>" }
# codex mcp add n8n --env DISABLE_CONSOLE_OUTPUT='<DISABLE_CONSOLE_OUTPUT>' --env LOG_LEVEL='<LOG_LEVEL>' --env MCP_MODE='<MCP_MODE>' --env N8N_API_KEY='<N8N_API_KEY>' --env N8N_API_URL='<N8N_API_URL>' -- docker run --rm -i -e MCP_MODE=stdio -v n8n-mcp-data:/app/data ghcr.io/czlonkowski/n8n-mcp:latest~/.cursor/mcp.json
{
"mcpServers": {
"n8n": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"-e",
"MCP_MODE=stdio",
"-v",
"n8n-mcp-data:/app/data",
"ghcr.io/czlonkowski/n8n-mcp:latest"
],
"env": {
"DISABLE_CONSOLE_OUTPUT": "<DISABLE_CONSOLE_OUTPUT>",
"LOG_LEVEL": "<LOG_LEVEL>",
"MCP_MODE": "<MCP_MODE>",
"N8N_API_KEY": "<N8N_API_KEY>",
"N8N_API_URL": "<N8N_API_URL>"
}
}
}
}.vscode/mcp.json
{
"servers": {
"n8n": {
"type": "stdio",
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"-e",
"MCP_MODE=stdio",
"-v",
"n8n-mcp-data:/app/data",
"ghcr.io/czlonkowski/n8n-mcp:latest"
],
"env": {
"DISABLE_CONSOLE_OUTPUT": "<DISABLE_CONSOLE_OUTPUT>",
"LOG_LEVEL": "<LOG_LEVEL>",
"MCP_MODE": "<MCP_MODE>",
"N8N_API_KEY": "<N8N_API_KEY>",
"N8N_API_URL": "<N8N_API_URL>"
}
}
}
}~/.gemini/settings.json
{
"mcpServers": {
"n8n": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"-e",
"MCP_MODE=stdio",
"-v",
"n8n-mcp-data:/app/data",
"ghcr.io/czlonkowski/n8n-mcp:latest"
],
"env": {
"DISABLE_CONSOLE_OUTPUT": "<DISABLE_CONSOLE_OUTPUT>",
"LOG_LEVEL": "<LOG_LEVEL>",
"MCP_MODE": "<MCP_MODE>",
"N8N_API_KEY": "<N8N_API_KEY>",
"N8N_API_URL": "<N8N_API_URL>"
}
}
}
}claude_desktop_config.json
{
"mcpServers": {
"n8n": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"-e",
"MCP_MODE=stdio",
"-v",
"n8n-mcp-data:/app/data",
"ghcr.io/czlonkowski/n8n-mcp:latest"
],
"env": {
"DISABLE_CONSOLE_OUTPUT": "<DISABLE_CONSOLE_OUTPUT>",
"LOG_LEVEL": "<LOG_LEVEL>",
"MCP_MODE": "<MCP_MODE>",
"N8N_API_KEY": "<N8N_API_KEY>",
"N8N_API_URL": "<N8N_API_URL>"
}
}
}
}.trae/mcp.json
{
"mcpServers": {
"n8n": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"-e",
"MCP_MODE=stdio",
"-v",
"n8n-mcp-data:/app/data",
"ghcr.io/czlonkowski/n8n-mcp:latest"
],
"env": {
"DISABLE_CONSOLE_OUTPUT": "<DISABLE_CONSOLE_OUTPUT>",
"LOG_LEVEL": "<LOG_LEVEL>",
"MCP_MODE": "<MCP_MODE>",
"N8N_API_KEY": "<N8N_API_KEY>",
"N8N_API_URL": "<N8N_API_URL>"
}
}
}
}Environment variables
DISABLE_CONSOLE_OUTPUTLOG_LEVELMCP_MODEN8N_API_KEYN8N_API_URL
Replace the placeholders with your own credentials and keep them out of version control.