n8n MCP Server
by andhit-r
README.md
# n8n MCP Server
MCP Server untuk [n8n](https://n8n.io) REST API, dibangun dengan [FastMCP](https://gofastmcp.com).
Ekspos tool untuk mengelola **workflows**, **executions**, **credentials**, **tags**, dan **variables**
langsung dari MCP client (Claude Desktop, Claude Code, Claude Web).
Dipakai lewat tiga kanal: **stdio**, **Claude Code**, dan **Claude Web (claude.ai)**.
Otentikasi memakai **Authentik** sebagai identity provider (untuk Claude Web).
## Tools yang tersedia
| Kategori | Tool | Deskripsi |
|---|---|---|
| Workflow | `list_workflows` | Daftar semua workflow |
| Workflow | `get_workflow` | Ambil detail satu workflow |
| Workflow | `create_workflow` | Buat workflow baru |
| Workflow | `update_workflow` | Perbarui workflow |
| Workflow | `delete_workflow` | Hapus workflow |
| Workflow | `activate_workflow` | Aktifkan workflow |
| Workflow | `deactivate_workflow` | Nonaktifkan workflow |
| Execution | `list_executions` | Daftar eksekusi (dengan filter) |
| Execution | `get_execution` | Ambil detail satu eksekusi |
| Execution | `delete_execution` | Hapus eksekusi |
| Credential | `list_credentials` | Daftar credentials |
| Credential | `get_credential` | Ambil detail credential |
| Credential | `create_credential` | Buat credential baru |
| Credential | `delete_credential` | Hapus credential |
| Tag | `list_tags` | Daftar semua tag |
| Tag | `create_tag` | Buat tag baru |
| Tag | `update_tag` | Perbarui nama tag |
| Tag | `delete_tag` | Hapus tag |
| Variable | `list_variables` | Daftar semua variable |
| Variable | `create_variable` | Buat variable baru |
| Variable | `delete_variable` | Hapus variable |
| Audit | `get_audit_log` | Ambil audit log n8n |
## Cara pakai per kanal
### 1. stdio — Claude Desktop / Claude Code lokal
Tidak perlu auth jaringan; client men-spawn proses langsung.
```json
{
"mcpServers": {
"n8n-mcp": {
"command": "uvx",
"args": ["--from", "git+https://github.com/andhit-r/n8n-mcp@v0.1.0", "n8n-mcp"],
"env": {
"N8N_API_BASE_URL": "http://localhost:5678/api/v1",
"N8N_API_KEY": "your-n8n-api-key"
}
}
}
}
```
Atau via Docker (stdio):
```json
{
"mcpServers": {
"n8n-mcp": {
"command": "docker",
"args": [
"run", "--rm", "-i",
"-e", "MCP_TRANSPORT=stdio",
"-e", "N8N_API_BASE_URL=http://host.docker.internal:5678/api/v1",
"-e", "N8N_API_KEY=your-n8n-api-key",
"ghcr.io/andhit-r/n8n-mcp:latest"
]
}
}
}
```
### 2. Claude Code
```bash
# stdio (langsung, tanpa server terpisah)
claude mcp add n8n-mcp -- uvx --from "git+https://github.com/andhit-r/n8n-mcp@v0.1.0" n8n-mcp
# remote (server HTTP yang sudah berjalan)
claude mcp add --transport http n8n-mcp https://n8n-mcp.example.com/mcp
```
### 3. Claude Web (claude.ai) — remote, WAJIB OAuth Authentik
Jalankan server sebagai service HTTP di URL publik HTTPS, daftarkan sebagai **Custom Connector** di claude.ai.
```bash
docker run -d -p 8000:8000 \
-e N8N_API_BASE_URL=https://your-n8n.example.com/api/v1 \
-e N8N_API_KEY=your-n8n-api-key \
-e MCP_BASE_URL=https://n8n-mcp.example.com \
-e AUTHENTIK_BASE_URL=https://auth.example.com \
-e AUTHENTIK_APP_SLUG=n8n-mcp \
-e AUTHENTIK_CLIENT_ID=... \
-e AUTHENTIK_CLIENT_SECRET=... \
ghcr.io/andhit-r/n8n-mcp:latest
```
> Dirilis via GitHub (GitHub Release + image GHCR). Tidak tersedia di PyPI.
> Install dari sumber: `pip install "git+https://github.com/andhit-r/n8n-mcp@v0.1.0"`.
## Konfigurasi n8n API
Aktifkan Public REST API di n8n: **Settings → n8n API → Create an API key**.
Pastikan akun memiliki izin yang sesuai (admin direkomendasikan).
| Variabel | Wajib | Contoh |
|---|---|---|
| `N8N_API_BASE_URL` | Ya | `http://localhost:5678/api/v1` |
| `N8N_API_KEY` | Ya | `n8n_api_xxx...` |
| `N8N_TIMEOUT` | Tidak | `30` (detik, default) |
## Otentikasi (Authentik)
Server memilih auth otomatis dari environment:
| Mekanisme | Untuk | Aktif jika |
|---|---|---|
| **OAuth Authentik** | Claude Web / browser | `AUTHENTIK_*` + `MCP_BASE_URL` diisi |
| **API Key statis** | VS Code / CLI | `MCP_API_KEY` diisi |
| (tanpa auth) | stdio / jaringan lokal | tidak ada yang diisi |
Buat OAuth2/OIDC Provider + Application di Authentik (Redirect URI
`https://<MCP_BASE_URL>/auth/callback`, scope `openid profile email`).
## Transport (environment)
| Variabel | Default | Keterangan |
|---|---|---|
| `MCP_TRANSPORT` | `stdio` | `stdio`, `http`, atau `sse` |
| `MCP_HOST` / `MCP_PORT` | `127.0.0.1` / `8000` | bind saat http/sse |
| `MCP_BASE_URL` | — | URL publik (wajib untuk OAuth Authentik) |
Deployment cloud: `uvicorn n8n_mcp.asgi:app --host 0.0.0.0 --port 8000`.
## Pengembangan
```bash
pip install -e .
cp .env.example .env # isi N8N_API_BASE_URL dan N8N_API_KEY
python -m n8n_mcp # jalankan lokal (stdio)
make test # gate test (lint + unit)
```
## Lisensi
[MIT](LICENSE).
TDQS
A4/5.0
Scored across 22 tools
Disambiguation5/5
Every tool targets a distinct entity and action, with clear names like activate_workflow, create_credential, list_tags. No two tools have overlapping purposes.
Naming Consistency5/5
All tool names follow the verb_noun pattern with snake_case, e.g., activate_workflow, delete_credential. The naming is perfectly consistent across all 22 tools.
Tool Count5/5
22 tools cover multiple entity types (workflows, credentials, tags, variables, executions, audit logs) with CRUD and lifecycle operations. The count is well-scoped for a workflow automation server.
Completeness4/5
The tool set covers most core operations, but lacks update endpoints for credentials and variables (although these may be limited by n8n API design). Minor gap; overall surface is complete.
Maintenance
ActivityInactive
ResponsivenessNo issues