GidsGratis

n8n-MCP zelf hosten (npx, Docker, lokale build)

Gebaseerd op czlonkowski/n8n-mcp @ f895e5e, licentie MIT

Bijgewerkt 30 augustus 2026

Dit bestand is door ToolBrain vertaald en inhoudelijk gewijzigd op 2026-08-30, op basis van "Self-Hosting Options" uit czlonkowski/n8n-mcp (MIT), zie https://github.com/czlonkowski/n8n-mcp/blob/f895e5ecc732aed31e2ca9748027034f5b19cccd/docs/SELF_HOSTING.md en ../LICENSES/n8n-mcp-MIT.txt.

Wil je n8n-MCP liever zelf draaien in plaats van via een cloud-deploy (zie het aparte item over Railway)? Er zijn drie manieren, oplopend in complexiteit: direct via npx, via Docker, of een lokale build vanuit de broncode.

Optie 1: npx (snelste lokale setup)

Vereist: Node.js op je systeem.

bash
npx n8n-mcp

Voeg toe aan de Claude Desktop-config:

json
{
  "mcpServers": {
    "n8n-mcp": {
      "command": "npx",
      "args": ["n8n-mcp"],
      "env": {
        "MCP_MODE": "stdio",
        "LOG_LEVEL": "error",
        "DISABLE_CONSOLE_OUTPUT": "true"
      }
    }
  }
}

Belangrijk: MCP_MODE: "stdio" is verplicht. Ontbreekt die, dan zie je in Claude Desktop foutmeldingen als "Unexpected token...", omdat debug-logs dan door elkaar lopen met het JSON-RPC-protocol op stdout.

Wil je ook workflowbeheer via n8n's eigen API, voeg dan toe:

json
"N8N_API_URL": "https://jouw-n8n-instantie.nl",
"N8N_API_KEY": "jouw-api-key"

npx haalt automatisch de nieuwste versie op, inclusief een kant-en-klare database met alle n8n-node-informatie.

Let op bij meerdere MCP-clients tegelijk (bijvoorbeeld Claude Desktop én Claude Code die allebei via npx starten): dat kan botsen op de npm-cachelock. Geef elke client een eigen, unieke npm_config_cache-map mee in de env:

json
"npm_config_cache": "/pad/naar/aparte/cache"

Configuratiebestand:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json
  • Linux: ~/.config/Claude/claude_desktop_config.json

Herstart Claude Desktop na het opslaan.

Optie 2: Docker (geïsoleerd en reproduceerbaar)

Vereist: Docker.

bash
docker pull ghcr.io/czlonkowski/n8n-mcp:latest

Deze image is fors kleiner dan een reguliere n8n-image (rond de 280MB, ongeveer 82% kleiner), omdat er geen n8n-afhankelijkheden in zitten — alleen de MCP-runtime met een kant-en-klare database.

Basisconfiguratie (alleen documentatietools):

json
{
  "mcpServers": {
    "n8n-mcp": {
      "command": "docker",
      "args": [
        "run", "-i", "--rm", "--init",
        "-e", "MCP_MODE=stdio",
        "-e", "LOG_LEVEL=error",
        "-e", "DISABLE_CONSOLE_OUTPUT=true",
        "ghcr.io/czlonkowski/n8n-mcp:latest"
      ]
    }
  }
}

Met n8n-workflowbeheer voeg je toe: -e N8N_API_URL=... en -e N8N_API_KEY=.... Draait je eigen n8n lokaal in Docker? Gebruik dan http://host.docker.internal:5678 als N8N_API_URL. De n8n-credentials zijn optioneel: zonder krijg je alle documentatie- en validatietools, mét krijg je er workflowbeheer (aanmaken, bijwerken, uitvoeren) bij.

Lokale n8n-instantie: SSRF-instelling aanpassen

Draai je n8n lokaal (http://localhost:5678 of via Docker), dan moet je localhost expliciet toestaan in de SSRF-bescherming. Dit geldt zowel voor webhook-triggers als voor de n8n-API-client (N8N_API_URL):

json
{
  "mcpServers": {
    "n8n-mcp": {
      "command": "docker",
      "args": [
        "run", "-i", "--rm", "--init",
        "-e", "MCP_MODE=stdio",
        "-e", "LOG_LEVEL=error",
        "-e", "DISABLE_CONSOLE_OUTPUT=true",
        "-e", "N8N_API_URL=http://host.docker.internal:5678",
        "-e", "N8N_API_KEY=jouw-api-key",
        "-e", "WEBHOOK_SECURITY_MODE=moderate",
        "ghcr.io/czlonkowski/n8n-mcp:latest"
      ]
    }
  }
}

Zet WEBHOOK_SECURITY_MODE=moderate altijd wanneer N8N_API_URL naar localhost of host.docker.internal wijst. Dezelfde SSRF-gate bewaakt zowel webhook-triggers als de n8n-API-client; de standaard strict-modus weigert loopback-adressen voor beide. moderate staat localhost toe, maar blokkeert nog steeds private (RFC1918) netwerken en cloud-metadata.

De -i-vlag is verplicht voor stdio-communicatie via MCP.

Configuratiebestand: zelfde locaties als bij de npx-variant hierboven. Herstart Claude Desktop na het opslaan.

Optie 3: lokale installatie vanaf broncode (voor ontwikkeling)

Vereist: Node.js.

bash
git clone https://github.com/czlonkowski/n8n-mcp.git
cd n8n-mcp
npm install
npm run build
npm run rebuild

# Testen:
npm start

Configuratie:

json
{
  "mcpServers": {
    "n8n-mcp": {
      "command": "node",
      "args": ["/absoluut/pad/naar/n8n-mcp/dist/mcp/index.js"],
      "env": {
        "MCP_MODE": "stdio",
        "LOG_LEVEL": "error",
        "DISABLE_CONSOLE_OUTPUT": "true"
      }
    }
  }
}

De n8n-API-credentials kun je zowel in een .env-bestand (op basis van .env.example) als rechtstreeks in de Claude-config zetten.

Optie 4: Railway (cloud, one-click)

Zie het aparte item over Railway-deployment voor de volledige stap-voor-stap-uitleg — dit is de snelste manier als je geen eigen server wilt beheren en overal toegang wilt vanaf elke Claude Desktop-installatie.

Praktijkvoorbeeld (NL)

Een eenmanszaak-consultant die kleine bedrijven helpt met procesautomatisering wil n8n-MCP uitproberen voordat hij het bij een klant inzet, zonder meteen geld uit te geven aan cloud- hosting. Hij kiest voor de npx-route op zijn eigen MacBook: één commando, geen installatie, en binnen een paar minuten werkend in Claude Desktop met alleen de documentatietools. Zodra hij tevreden is en het bij een klant met een eigen n8n-server wil inzetten, stapt hij over op de Docker-variant op de VPS van die klant, met N8N_API_URL en N8N_API_KEY erbij zodat hij namens de klant workflows kan aanmaken en testen. Omdat hij tegelijk ook Claude Code op dezelfde laptop gebruikt, geeft hij beide clients een eigen npm_config_cache-map mee — anders had hij tegen de npm-cachelock-conflicten uit deze handleiding aangelopen.