Skip to main content
Glama
WOOWTECH

Woow n8n MCP Server

by WOOWTECH

Overview

Woow n8n MCP Server is a complete, production-ready admin bundle for managing the n8n-mcp server -- the Model Context Protocol (MCP) bridge that lets AI assistants (Claude, ChatGPT, Gemini) interact with your n8n workflow automation instance.

This project packages everything you need into a single container:

  • A React-based admin dashboard for visual configuration

  • A FastAPI backend with JWT authentication and REST APIs

  • An MCP reverse proxy with token-based access control

  • The n8n-mcp Node.js server as a managed subprocess

Why This Bundle?

Challenge

Solution

n8n-mcp requires manual CLI configuration

Web GUI with forms for API URL, API key, and tool management

No built-in access control for MCP endpoints

Token-authenticated reverse proxy with rotation and history

Difficult to monitor MCP server health

Real-time dashboard with n8n version, workflow count, and process status

Tool management requires editing env vars

Visual toggle for 24 tools across 3 categories

No centralized logging

Real-time SSE log streaming with search

Complex multi-service deployment

Single container with Podman, Docker, or Kubernetes support

Comparison: Before vs. After

Aspect

Without This Bundle

With This Bundle

Configuration

Edit environment variables manually

Web GUI with validation

Authentication

None (open MCP endpoint)

JWT admin + token-protected proxy

Monitoring

Check process manually

Dashboard with health indicators

Tool Control

Set DISABLED_TOOLS env var

Visual toggle per tool

Token Rotation

Manual token management

One-click generation and rotation

Logging

Grep through container logs

Real-time streaming with search

Deployment

Multiple containers + nginx

Single container, one port


Related MCP server: n8n-manager-mcp

Features

Dashboard

The dashboard provides an at-a-glance view of your entire MCP stack:

  • n8n Connection Status -- Whether the n8n REST API is reachable, along with the detected n8n version

  • MCP Server Status -- Process ID, running state, and restart count

  • MCP Proxy Status -- Built-in reverse proxy health

  • Workflow Count -- Total workflows on the connected n8n instance

  • Overall Health -- Aggregated status indicator (OK / Degraded / Error)

Connection Configuration

Configure how the MCP admin connects to your n8n instance:

  • n8n API URL -- The base URL of your n8n instance (e.g., http://n8n:5678)

  • n8n API Key -- API key for n8n REST API authentication

  • MCP Session Timeout -- Session timeout for MCP connections (60s - 86400s)

  • MCP Max Sessions -- Maximum concurrent MCP sessions (1-100)

  • Connectivity Test -- One-click test that verifies the n8n REST API is reachable and returns the n8n version

  • Auto-restart -- Optionally restart the MCP server after configuration changes

Tool Manager

The n8n-mcp server provides 24 tools organized into 3 categories:

Core Reference (7 tools) -- Read-only documentation and node lookup

Tool

Description

tools_documentation

Get documentation for all available n8n MCP tools

search_nodes

Search for n8n nodes by name, description, or category

get_node

Get detailed information about a specific n8n node type

validate_node

Validate a node configuration against its schema

validate_workflow

Validate workflow JSON structure without creating it

search_templates

Search n8n community workflow templates by keyword

get_template

Get a specific workflow template by ID with full details

Instance Management (13 tools) -- CRUD workflows, executions, health

Tool

Description

Operations

n8n_create_workflow

Create a new workflow on the n8n instance

create

n8n_get_workflow

Get a workflow by ID with full details

read

n8n_update_full_workflow

Fully replace a workflow definition

update

n8n_update_partial_workflow

Partially update a workflow

update

n8n_delete_workflow

Delete a workflow by ID permanently

delete

n8n_list_workflows

List all workflows with filtering options

read

n8n_validate_workflow

Validate a workflow against the live instance

read

n8n_autofix_workflow

Auto-fix common workflow issues

update

n8n_test_workflow

Execute a workflow in test mode

execute

n8n_executions

List, get, or delete execution history

read, delete

n8n_health_check

Check n8n instance health and version

read

n8n_workflow_versions

List and restore workflow version history

read, update

n8n_deploy_template

Deploy a community template as a workflow

create

Advanced (4 tools) -- Data tables, credentials, generation, audit

Tool

Description

Operations

n8n_manage_datatable

CRUD operations on n8n data tables

create, read, update, delete

n8n_manage_credentials

Manage n8n credentials

create, read, update, delete

n8n_generate_workflow

Generate a workflow from natural language

create

n8n_audit_instance

Run a comprehensive instance audit

read

The Tool Manager GUI allows you to:

  • Toggle individual tools on/off with a single click

  • See tool counts per category (enabled vs. total)

  • Identify dangerous tools marked with a warning indicator

  • Disable specific operations on per-tool basis

  • Auto-restart the MCP server when tool configuration changes

Token Manager

Manage MCP proxy authentication tokens:

  • Generate -- Create a new random hex token (32-256 characters)

  • Rotate -- Generate, apply, and restart the proxy in one step

  • Set -- Apply a specific token value

  • History -- View the last 5 token rotations with timestamps and masked previous tokens

  • Masked Display -- Current token shown with only the first and last 4 characters visible

Log Viewer

Real-time MCP server log monitoring:

  • SSE Streaming -- Live log updates via Server-Sent Events

  • Tail on Connect -- Configurable number of initial log lines (1-1000)

  • Search -- Full-text or regex search across the 5000-line in-memory buffer

  • Auto-scroll -- Automatically scroll to the latest log entry

  • Source Filtering -- Filter by log source (mcp-server)

Settings

Full configuration management:

  • Config Editor -- View and edit the complete config.json structure

  • Section Editor -- Update individual config sections (connection, mcp_server, proxy, tools)

  • MCP Process Control -- Start, stop, and restart the MCP server subprocess

  • Process Status -- View PID, running state, restart count, and exit code

  • Admin Password -- Change the admin login password

MCP Proxy

Built-in token-authenticated reverse proxy:

  • URL Path Token -- Access via /private_{token}/sse and /private_{token}/messages

  • SSE Streaming -- Full support for MCP protocol SSE connections

  • Bearer Token Forwarding -- Optionally forward a Bearer token to the upstream MCP server

  • Configurable Timeout -- Up to 86400 seconds (24 hours) for long-running MCP sessions

  • Hop-by-hop Header Stripping -- Clean header forwarding for proxied requests


Architecture

┌─────────────────────────────────────────────────────────────────────┐
│                   Woow n8n MCP Admin Bundle                        │
│                        (Single Container)                           │
├─────────────────────────────────────────────────────────────────────┤
│                                                                     │
│  ┌───────────────────────────────────────────────────────────────┐  │
│  │              React SPA (Vite + Tailwind CSS)                  │  │
│  │                                                               │  │
│  │  Dashboard │ Connection │ Tools │ Tokens │ Logs │ Settings    │  │
│  └──────────────────────────┬────────────────────────────────────┘  │
│                             │ HTTP                                  │
│  ┌──────────────────────────▼────────────────────────────────────┐  │
│  │                  FastAPI Backend (:8080)                       │  │
│  │                                                               │  │
│  │  ┌──────────┐  ┌──────────┐  ┌──────────┐  ┌──────────────┐ │  │
│  │  │   Auth   │  │  Config  │  │  Process  │  │  MCP Proxy   │ │  │
│  │  │Middleware│  │  Store   │  │  Manager  │  │  /private_*  │ │  │
│  │  └──────────┘  └──────────┘  └──────────┘  └──────┬───────┘ │  │
│  └───────────────────────────────────────────────────│──────────┘  │
│                                                      │             │
│  ┌───────────────────────────────────────────────────▼──────────┐  │
│  │              n8n-mcp Server (Node.js subprocess)             │  │
│  │                                                               │  │
│  │  24 MCP Tools │ SSE Transport │ JSON-RPC Messages            │  │
│  └──────────────────────────┬────────────────────────────────────┘  │
│                             │                                      │
├─────────────────────────────┼──────────────────────────────────────┤
│                             ▼                                      │
│  ┌───────────────────────────────────────────────────────────────┐  │
│  │                   n8n REST API (:5678)                        │  │
│  │        Workflows │ Executions │ Credentials │ Health          │  │
│  └───────────────────────────────────────────────────────────────┘  │
└─────────────────────────────────────────────────────────────────────┘

Module Dependency Graph

┌─────────────────────────────────────────────────────────────────┐
│  n8n_mcp_admin (n8n-specific admin)                             │
│                                                                  │
│  main.py ── create_app(extra_routers=[...])                     │
│                │                                                 │
│                ├── routers/config.py    (n8n connection)         │
│                ├── routers/tools.py     (24-tool registry)      │
│                ├── routers/tokens.py    (proxy token mgmt)      │
│                ├── routers/health.py    (dashboard data)         │
│                └── routers/logs.py      (SSE log streaming)     │
│                                                                  │
│         depends on                                               │
│                │                                                 │
│                ▼                                                 │
│  ┌──────────────────────────────────────────────────────────┐   │
│  │  mcp_admin_core (shared library)                         │   │
│  │                                                          │   │
│  │  app.py          ── FastAPI factory + SPA serving         │   │
│  │  config/store.py ── File-backed JSON config              │   │
│  │  process.py      ── asyncio subprocess manager            │   │
│  │  proxy.py        ── MCP reverse proxy                     │   │
│  │  auth/           ── JWT middleware + login                 │   │
│  │  routers/        ── Settings CRUD                         │   │
│  └──────────────────────────────────────────────────────────┘   │
│                                                                  │
│  ┌──────────────────────────────────────────────────────────┐   │
│  │  n8n-mcp (npm package, Node.js)                          │   │
│  │                                                          │   │
│  │  24 MCP tools ── n8n REST API bridge                      │   │
│  │  HTTP transport ── SSE + JSON-RPC                         │   │
│  └──────────────────────────────────────────────────────────┘   │
└─────────────────────────────────────────────────────────────────┘

Data Flow: AI Assistant to n8n

sequenceDiagram
    participant AI as AI Assistant (Claude/ChatGPT)
    participant Proxy as MCP Proxy (/private_{token}/)
    participant MCP as n8n-mcp (Node.js)
    participant N8N as n8n REST API

    AI->>Proxy: GET /private_{token}/sse
    Proxy->>MCP: Forward to localhost:3000/sse
    MCP-->>Proxy: SSE stream established
    Proxy-->>AI: SSE stream forwarded

    AI->>Proxy: POST /private_{token}/messages (JSON-RPC)
    Proxy->>MCP: Forward JSON-RPC request
    MCP->>N8N: GET /api/v1/workflows
    N8N-->>MCP: Workflow data (JSON)
    MCP-->>Proxy: Tool result (JSON-RPC response)
    Proxy-->>AI: Forward response to AI

Quick Start

One-liner with Podman

podman run -d \
  --name n8n-mcp-admin \
  -p 8080:8080 \
  -v ./data:/data \
  ghcr.io/woowtech/n8n-mcp-admin:latest

Then open http://localhost:8080 and log in with the default password admin.

One-liner with Docker

docker run -d \
  --name n8n-mcp-admin \
  -p 8080:8080 \
  -v ./data:/data \
  ghcr.io/woowtech/n8n-mcp-admin:latest

Full Stack with Docker Compose

Start PostgreSQL + n8n + MCP Admin Bundle:

git clone https://github.com/WOOWTECH/woow_n8n_mcp_server.git
cd woow_n8n_mcp_server
docker compose up -d

This starts:

  • PostgreSQL on port 5432 (internal)

  • n8n on port 5678

  • MCP Admin Bundle on port 8080


Installation

Build and run locally:

# Clone the repository
git clone https://github.com/WOOWTECH/woow_n8n_mcp_server.git
cd woow_n8n_mcp_server

# Build the container image
podman build -t n8n-mcp-admin .

# Run with persistent data
podman run -d \
  --name n8n-mcp-admin \
  -p 8080:8080 \
  -v ./data:/data \
  n8n-mcp-admin

Option 2: Docker

# Clone and build
git clone https://github.com/WOOWTECH/woow_n8n_mcp_server.git
cd woow_n8n_mcp_server

docker build -t n8n-mcp-admin .

docker run -d \
  --name n8n-mcp-admin \
  -p 8080:8080 \
  -v ./data:/data \
  n8n-mcp-admin

Option 3: Docker Compose (Full Stack)

git clone https://github.com/WOOWTECH/woow_n8n_mcp_server.git
cd woow_n8n_mcp_server

# Start all services
docker compose up -d

# View logs
docker compose logs -f mcp-admin

Option 4: Kubernetes (Helm chart)

Kubernetes deployment is a Helm chart: charts/n8n-mcp (繁體中文). One release per instance.

# The upstream MCP server behind the nginx path-secret proxy (what runs on woow-k3s)
helm install my-n8n-mcp charts/n8n-mcp -n my-ns --create-namespace \
  --set mcp.n8nApiUrl=http://n8n.my-ns.svc.cluster.local:5678 \
  --set secrets.create=true --set secrets.n8nApiKey="$N8N_API_KEY" \
  --set secrets.mcpAuthToken="$TOKEN" \
  --set proxy.config.create=true \
  --set proxy.config.pathSecret="$(openssl rand -hex 10)" \
  --set proxy.config.authToken="$TOKEN"

# This bundle image instead of the upstream server (experimental, see the chart README)
helm install my-n8n-mcp charts/n8n-mcp -n my-ns --set mode=bundle \
  --set mcp.n8nApiUrl=http://n8n.my-ns.svc.cluster.local:5678

helm test my-n8n-mcp -n my-ns --logs

The chart covers: the upstream n8n-mcp server, the nginx path-secret proxy (sidecar or its own Deployment), secret material referenced rather than templated, helm.sh/resource-policy: keep so uninstall keeps data, a read-only helm test smoke pod, and per-instance values for woow-k3s in deploy/woow-k3s/.

The old k8s-deploy.yaml (hardcoded to the kasim-odoo namespace, with a private-registry image and a Role over every Secret in that namespace) has been removed - see "Migrating from k8s-deploy.yaml" in the chart README.

Option 5: Development Mode

For local development without containers:

# Clone the repository
git clone https://github.com/WOOWTECH/woow_n8n_mcp_server.git
cd woow_n8n_mcp_server

# Install Python packages
pip install -e .
pip install n8n-mcp-admin  # or install from local n8n_pyproject.toml

# Install frontend dependencies
cd frontend && npm install && cd ..

# Install n8n-mcp globally
npm install -g n8n-mcp

# Start backend
uvicorn n8n_mcp_admin.main:app --reload --port 8080

# Start frontend (separate terminal)
cd frontend && npm run dev

Configuration

Initial Setup via Web GUI

After starting the container, open http://localhost:8080 in your browser:

  1. Login -- Enter the admin password (default: admin)

  1. Connection -- Configure your n8n API URL and API Key, then click "Test Connection"

  1. Tools -- Enable or disable the 24 MCP tools as needed

  1. Tokens -- Generate an MCP proxy token for AI assistant access

Configuration File

All settings are stored in /data/config.json:

{
  "admin_password": "your-secure-password",
  "mcp_auth_token": "your-64-char-hex-token",
  "connection": {
    "n8n_api_url": "http://n8n:5678",
    "n8n_api_key": "your-n8n-api-key",
    "mcp_session_timeout": "3600",
    "mcp_max_sessions": "10"
  },
  "tools": {
    "disabled": [],
    "disabled_operations": {}
  },
  "mcp_server": {
    "command": "n8n-mcp",
    "args": ["--transport", "http", "--port", "3000"],
    "port": 3000,
    "env": {
      "N8N_API_URL": "http://n8n:5678",
      "N8N_API_KEY": "your-n8n-api-key"
    }
  },
  "proxy": {
    "timeout": 86400
  },
  "token_history": []
}

Environment Variables

Variable

Default

Description

MCP_ADMIN_CONFIG

/data/config.json

Path to configuration file

JWT_SECRET

(random)

JWT signing secret (auto-generated if not set)

JWT_EXPIRY_HOURS

24

JWT token expiration in hours

Connecting AI Assistants

After configuring the bundle, connect your AI assistant using the MCP proxy URL:

http://your-server:8080/private_{your-token}/sse

Claude Desktop Configuration

Add to your claude_desktop_config.json:

{
  "mcpServers": {
    "n8n": {
      "url": "http://your-server:8080/private_your-token-here/sse"
    }
  }
}

Cursor / VS Code

Add to your MCP settings:

{
  "n8n": {
    "url": "http://your-server:8080/private_your-token-here/sse"
  }
}

Screenshots

Login Page

Secure JWT-based authentication with session persistence.

Dashboard

Real-time health monitoring of n8n, MCP server, and proxy components.

Connection Configuration

Configure and test your n8n API connection with masked key display.

Tool Manager

Visual toggle for 24 MCP tools across 3 categories with dangerous tool indicators.

Token Manager

Generate, rotate, and track MCP proxy authentication tokens.

Log Viewer

Real-time SSE log streaming with search and auto-scroll.

Settings

Full configuration editor with MCP process control panel.


API Reference

Authentication

Method

Endpoint

Description

POST

/api/auth/login

Authenticate with admin password, returns JWT

Dashboard

Method

Endpoint

Description

GET

/api/health

Dashboard health data (n8n, MCP, proxy status)

Connection

Method

Endpoint

Description

GET

/api/config

Current n8n connection settings (masked)

PUT

/api/config/connection

Update n8n API URL, API key, session settings

POST

/api/config/test

Test n8n REST API connectivity

Tools

Method

Endpoint

Description

GET

/api/tools

List all 24 tools with categories and enabled status

PUT

/api/tools

Update disabled tools list

PUT

/api/tools/operations

Update disabled tool operations

Tokens

Method

Endpoint

Description

GET

/api/tokens

Current token (masked) + rotation history

POST

/api/tokens/generate

Generate a new random token (preview only)

POST

/api/tokens/rotate

Generate + apply + restart proxy

PUT

/api/tokens

Set a specific token value

Logs

Method

Endpoint

Description

GET

/api/logs/stream

SSE log streaming with configurable tail

GET

/api/logs/search

Search in-memory log buffer (text or regex)

Settings

Method

Endpoint

Description

GET

/api/settings

Full config (passwords masked)

PUT

/api/settings

Replace full config

GET

/api/settings/{section}

Get one config section

PUT

/api/settings/{section}

Replace one config section

GET

/api/settings/mcp/status

MCP server process status

POST

/api/settings/mcp/restart

Restart MCP server process

System

Method

Endpoint

Description

GET

/healthz

Kubernetes-compatible health check


Security

Authentication Model

The bundle implements a two-layer authentication model:

┌─────────────────────────────────────────────────────┐
│                Authentication Layers                 │
│                                                     │
│  Layer 1: Admin GUI (JWT)                           │
│  ┌─────────────────────────────────────────────┐    │
│  │  POST /api/auth/login                       │    │
│  │    → password → JWT token (HS256, 24h)      │    │
│  │    → stored in httpOnly cookie              │    │
│  │                                             │    │
│  │  All /api/* routes require valid JWT        │    │
│  │  Except: /api/auth/login, /healthz          │    │
│  └─────────────────────────────────────────────┘    │
│                                                     │
│  Layer 2: MCP Proxy (URL Path Token)                │
│  ┌─────────────────────────────────────────────┐    │
│  │  /private_{token}/sse                       │    │
│  │  /private_{token}/messages                  │    │
│  │                                             │    │
│  │  Token validated against config store       │    │
│  │  Invalid/missing token → 403 Forbidden      │    │
│  └─────────────────────────────────────────────┘    │
│                                                     │
│  MCP Server: Not directly exposed                   │
│  Only accessible via authenticated proxy            │
└─────────────────────────────────────────────────────┘

Security Features

  • JWT Authentication -- Admin GUI protected by HS256 JWT tokens with configurable expiration

  • httpOnly Cookies -- JWT tokens stored in secure httpOnly cookies (SameSite=Strict)

  • Password Comparison -- Admin password compared with constant-time comparison (secrets.compare_digest)

  • Token Masking -- API keys and tokens always displayed masked (first 4 + last 4 characters)

  • MCP Proxy Isolation -- The n8n-mcp server is only accessible through the token-authenticated reverse proxy

  • CORS Configuration -- Configurable CORS origins (defaults to * for development)

  • Hop-by-hop Header Stripping -- Proxy strips connection-related headers before forwarding

  • No Direct Node.js Exposure -- The n8n-mcp process listens only on localhost

Security Best Practices

  1. Change the default admin password immediately after first login

  2. Set JWT_SECRET environment variable in production (auto-generated tokens do not persist across restarts)

  3. Generate a strong MCP token (64+ hex characters) and share only with authorized AI assistants

  4. Use HTTPS in production via a reverse proxy (nginx, Cloudflare Tunnel, etc.)

  5. Restrict network access to port 8080 using firewall rules or Kubernetes NetworkPolicy


Testing

Test Summary

Test Area

Tests

Passed

Rate

Config Store (CRUD)

4

4

100%

Process Manager (lifecycle)

3

3

100%

Auth Middleware (JWT)

3

3

100%

Connection Router

2

2

100%

Tool Router (24 tools)

2

2

100%

Token Router

2

2

100%

Log Router (SSE + search)

1

1

100%

Settings Router

1

1

100%

MCP Proxy

1

1

100%

Total

19

19

100%

Running Tests

# Backend tests
pip install -e ".[dev]"
pytest -v

# Frontend tests (if applicable)
cd frontend && npm test

Changelog

v1.0.0 (2026-06)

  • Initial Release -- Full n8n MCP Admin Bundle

  • Dashboard -- Real-time health monitoring with n8n version detection and workflow count

  • Connection Configuration -- n8n API URL + API Key management with one-click connectivity testing

  • Tool Manager -- Visual toggle for 24 MCP tools across 3 categories (Core Reference, Instance Management, Advanced)

  • Token Manager -- MCP proxy token generation, rotation, and history tracking

  • Log Viewer -- Real-time SSE streaming with in-memory ring buffer and search (text + regex)

  • Settings -- Full config.json CRUD with MCP process control (start/stop/restart)

  • MCP Proxy -- Token-authenticated reverse proxy with SSE streaming support

  • Auth -- JWT-based admin authentication with httpOnly cookies

  • Docker -- Multi-stage Dockerfile with Node.js 20 + Python 3.12

  • Docker Compose -- Full stack configuration (PostgreSQL + n8n + MCP Admin)

  • Kubernetes -- Production deployment manifests with RBAC, health probes, and resource limits

  • Testing -- 19/19 backend tests passing


Tech Stack

Component

Technology

Version

Frontend

React + Tailwind CSS + Vite

React 19, Tailwind 3.4, Vite 6

Backend

FastAPI + Uvicorn

FastAPI 0.115+, Python 3.12

MCP Server

n8n-mcp (Node.js)

v2.60.0, Node.js 20

Automation

n8n

2.60+

Authentication

PyJWT

2.9+

HTTP Client

httpx

Latest

Container

Podman / Docker

Multi-stage build

Orchestration

Kubernetes / K3s

v1.31+

Protocol

MCP (Model Context Protocol)

SSE + JSON-RPC


Project Structure

woow_n8n_mcp_server/
├── mcp_admin_core/              # Shared core library
│   ├── __init__.py
│   ├── app.py                   # FastAPI app factory
│   ├── process.py               # MCP subprocess manager
│   ├── proxy.py                 # MCP reverse proxy
│   ├── mcp_sse_wrapper.py       # SSE protocol wrapper
│   ├── auth/
│   │   ├── __init__.py
│   │   └── middleware.py        # JWT auth middleware + login router
│   ├── config/
│   │   ├── __init__.py
│   │   └── store.py             # File-backed config store
│   ├── k8s/
│   │   ├── __init__.py
│   │   └── client.py            # K8s API client (optional)
│   └── routers/
│       ├── __init__.py
│       └── settings.py          # Settings CRUD router
│
├── n8n_mcp_admin/               # n8n-specific admin package
│   ├── __init__.py
│   ├── main.py                  # FastAPI entry point
│   ├── tool_registry.py         # 24-tool registry with categories
│   └── routers/
│       ├── __init__.py
│       ├── config.py            # n8n connection config
│       ├── health.py            # Dashboard health data
│       ├── logs.py              # SSE log streaming
│       ├── tokens.py            # Proxy token management
│       └── tools.py             # Tool enable/disable
│
├── frontend/                    # React SPA
│   ├── index.html
│   ├── package.json
│   ├── vite.config.js
│   └── src/
│       ├── main.jsx
│       ├── App.jsx
│       ├── api.js
│       ├── index.css
│       ├── components/
│       │   ├── Sidebar.jsx
│       │   └── StatusCard.jsx
│       └── pages/
│           ├── LoginPage.jsx
│           ├── Dashboard.jsx
│           ├── ConnectionConfig.jsx
│           ├── ToolManager.jsx
│           ├── TokenManager.jsx
│           ├── LogViewer.jsx
│           ├── SettingsPage.jsx
│           └── PermissionEditor.jsx
│
├── docs/
│   ├── architecture.md          # Architecture documentation
│   └── screenshots/             # 7 GUI screenshots
│       ├── dashboard.png
│       ├── connection.png
│       ├── tools.png
│       ├── tokens.png
│       ├── logs.png
│       ├── settings.png
│       └── login.png
│
├── Dockerfile                   # Multi-stage container build
├── docker-compose.yml           # Full stack (PostgreSQL + n8n + Admin)
├── charts/n8n-mcp/              # Helm chart (upstream + bundle modes)
├── deploy/woow-k3s/             # per-instance values, no secrets
├── scripts/check-drift.sh       # repo vs release vs cluster
├── pyproject.toml               # Core Python package config
├── n8n_pyproject.toml           # n8n admin Python package config
├── LICENSE                      # MIT License
├── CONTRIBUTING.md              # Contribution guide
├── README.md                    # English documentation
└── README_zh-TW.md              # Traditional Chinese documentation

Support


License

This project is licensed under the MIT License. See LICENSE for details.


Available Tools

7 tools
get_nodeB
Read-onlyIdempotent

Get node info with progressive detail levels and multiple modes. Detail: minimal (~200 tokens), standard (~1-2K, default), full (~3-8K). Modes: info (default), docs (markdown documentation), search_properties (find properties), versions/compare/breaking/migrations (version info). Use format='docs' for readable documentation, mode='search_properties' with propertyQuery for finding specific fields.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNoOperation mode. info=node schema, docs=readable markdown documentation, search_properties=find specific properties, versions/compare/breaking/migrations=version infoinfo
detailNoInformation detail level. standard=essential properties (recommended), full=everythingstandard
nodeTypeYesFull node type: "nodes-base.httpRequest" or "nodes-langchain.agent"
toVersionNoTarget version for compare mode (e.g., "2.0"). Defaults to latest if omitted.
fromVersionNoSource version for compare/breaking/migrations modes (e.g., "1.0")
propertyQueryNoFor mode=search_properties: search term to find properties (e.g., "auth", "header", "body")
includeExamplesNoInclude real-world configuration examples from templates. Only applies to mode=info with detail=standard. Adds ~200-400 tokens per example.
includeTypeInfoNoInclude type structure metadata (type category, JS type, validation rules). Only applies to mode=info. Adds ~80-120 tokens per property.
maxPropertyResultsNoFor mode=search_properties: max results (default 20)

TDQS

B3.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds value beyond the annotations (readOnlyHint, idempotentHint) by disclosing token estimates for each detail level (minimal ~200 tokens, standard ~1-2K, full ~3-8K) and stating that modes return different content (e.g., docs = markdown documentation). No contradiction with annotations is present, and the extra context helps an agent anticipate response size and content.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise with two sentences, front-loading the main purpose and then listing details. Every sentence contributes useful information. The minor error ('format' vs 'mode') detracts slightly but the structure is efficient overall.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (9 parameters, multiple modes), the description covers the main modes and detail levels but omits explanations of version-related modes (versions, compare, breaking, migrations) and parameters like includeExamples, includeTypeInfo, maxPropertyResults, toVersion, fromVersion. The schema covers these, but the description could provide more high-level guidance for a complex tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and includes detailed parameter descriptions. The description adds token counts for detail levels and groups modes concisely, but also repeats information already in the schema. The confusing 'format' reference slightly reduces clarity. Overall, the description provides marginal extra value over the schema, meeting the baseline for high coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool gets node info with progressive detail levels and multiple modes, making the purpose well-defined. However, it introduces an inconsistency by saying 'Use format='docs'' when the parameter is actually named 'mode', which could confuse an agent. Still, the overall purpose is distinct from siblings like search_nodes or tools_documentation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description fails to provide explicit guidance on when to use this tool versus sibling tools (e.g., tools_documentation, search_nodes). It does not mention when-not to use it or suggest alternatives. The information on modes and detail levels helps with intra-tool choices but not tool selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_templateA
Read-onlyIdempotent

Get template by ID. Use mode to control response size: nodes_only (minimal), structure (nodes+connections), full (complete workflow).

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNoResponse detail level. nodes_only: just node list, structure: nodes+connections, full: complete workflow JSON.full
templateIdYesThe template ID to retrieve

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds value beyond the annotations by explaining the mode parameter's effect on response size, which the annotations (readOnlyHint and idempotentHint) do not cover. It does not contradict the annotations; rather, it complements them. The behavior of controlling output detail is clearly described.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise: two short sentences that front-load the purpose and then explain the mode parameter. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (2 parameters, no output schema, no nested objects), the description is sufficiently complete. It covers the core retrieval purpose and the key parameter. However, it could optionally mention that the output is a workflow template JSON, but since mode 'full' implies 'complete workflow', it is adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description adds minimal extra meaning beyond the schema—it only summarizes the mode options briefly ('nodes_only (minimal), structure (nodes+connections), full (complete workflow)') but does not provide additional context about templateId beyond what the schema already states.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Get' and the resource 'template by ID'. It succinctly distinguishes the tool from siblings like search_templates by specifying retrieval via ID, and it also describes the mode parameter that tailors the response size, which is a key differentiator from other retrieval tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit context for when to use this tool (when you have a template ID) and how to adjust the response size using mode. However, it does not explicitly state when not to use it or provide alternatives, though the sibling tool names (e.g., search_templates) imply that this is for direct ID lookup, not searching.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_nodesA
Read-onlyIdempotent

Search n8n nodes by keyword with optional real-world examples. Pass query as string. Example: query="webhook" or query="database". Returns max 20 results. Use includeExamples=true to get top 2 template configs per node.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNoOR=any word, AND=all words, FUZZY=typo-tolerantOR
limitNoMax results (default 20)
queryYesSearch terms. Use quotes for exact phrase.
sourceNoFilter by node source: all=everything (default), core=n8n base nodes, community=community nodes, verified=verified community nodes onlyall
includeExamplesNoInclude top 2 real-world configuration examples from popular templates (default: false)
includeOperationsNoInclude resource/operation tree per node. Adds ~100-300 tokens per result but saves a get_node round-trip.

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and idempotentHint=true, so the safety profile is clear. The description adds behavioral context: max 20 results, default limit, behavior of includeExamples and includeOperations (token cost per result). This exceeds the burden given the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise: three sentences that front-load the purpose and immediately provide actionable examples and constraints. Every sentence earns its place without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite having no output schema and 6 parameters, the description is complete: it covers query usage, results limit, and the two boolean options. The context signals show high schema coverage and no nested objects, so the description needs to do little else. The sibling differentiation is implicit but sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so parameters are already well-documented. The description adds value by explaining the query parameter further (use quotes for exact phrase) and clarifying includeExamples and includeOperations behaviors beyond their schema descriptions. A small lift above baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool searches n8n nodes by keyword with optional real-world examples. It distinguishes itself from siblings like search_templates or get_node by focusing on node search with template config examples, and from get_node by offering operations inclusion to save round-trips.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implicitly guides usage via example queries and mentions the trade-off of includeOperations (saves a round-trip to get_node). However, it does not explicitly state when to use this tool over siblings like search_templates or get_node, nor when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_templatesA
Read-onlyIdempotent

Search templates with multiple modes. Use searchMode='keyword' for text search, 'by_nodes' to find templates using specific nodes, 'by_task' for curated task-based templates, 'by_metadata' for filtering by complexity/setup time/services, 'patterns' for lightweight workflow pattern summaries mined from 2700+ templates.

ParametersJSON Schema
NameRequiredDescriptionDefault
taskNoFor searchMode=by_task: the type of task. For searchMode=patterns: optional category filter (omit for overview of all categories).
limitNoMaximum number of results. Default 20.
queryNoFor searchMode=keyword: search keyword (e.g., "chatbot")
fieldsNoFor searchMode=keyword: fields to include in response. Default: all fields.
offsetNoPagination offset. Default 0.
categoryNoFor searchMode=by_metadata: filter by category (e.g., "automation", "integration")
nodeTypesNoFor searchMode=by_nodes: array of node types (e.g., ["n8n-nodes-base.httpRequest", "n8n-nodes-base.slack"])
complexityNoFor searchMode=by_metadata: filter by complexity level
searchModeNoSearch mode. keyword=text search (default), by_nodes=find by node types, by_task=curated task templates, by_metadata=filter by complexity/services, patterns=lightweight workflow pattern summarieskeyword
targetAudienceNoFor searchMode=by_metadata: filter by target audience (e.g., "developers", "marketers")
maxSetupMinutesNoFor searchMode=by_metadata: maximum setup time in minutes
minSetupMinutesNoFor searchMode=by_metadata: minimum setup time in minutes
requiredServiceNoFor searchMode=by_metadata: filter by required service (e.g., "openai", "slack")

TDQS

A4.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and idempotentHint=true, so the tool is safe and idempotent. The description adds behavioral clarity by detailing the five distinct search modes and their parameters (e.g., 'patterns' mode uses 2700+ templates for summaries), without contradicting annotations. The explanation of 'patterns' as lightweight summaries is extra context beyond annotations, but it lacks details on pagination behavior or result format, keeping it from a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, well-structured sentence that efficiently enumerates all five modes and their purposes without redundancy. Every clause adds value (e.g., 'lightweight workflow pattern summaries mined from 2700+ templates'), and it's front-loaded with the main action ('Search templates with multiple modes').

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 13 parameters, no output schema, and rich sibling context, the description is remarkably complete. It covers the core behavior (five search modes), when to use each, and hints at return differences (e.g., 'patterns' yields summaries). With readOnlyHint and idempotentHint annotations, no additional safety info is needed. The only minor gap is no explicit mention of result pagination, but the schema's offset/limit parameters suffice.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all parameters. The description adds value by grouping parameters by search mode (e.g., 'query' for keyword, 'nodeTypes' for by_nodes), providing context not in the schema. However, for parameters like 'category' and 'targetAudience', the description only restates what the schema says, offering no deeper semantics, so it doesn't fully reach a 5.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool searches templates with multiple modes, enumerates each mode with its specific use case (e.g., 'searchMode=keyword' for text search, 'by_nodes' to find templates using specific nodes), and distinguishes itself from siblings like search_nodes (which likely searches for nodes, not templates). The explicit listing of five search modes provides a precise scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly tells when to use each mode (e.g., 'Use searchMode=keyword for text search, by_nodes to find templates using specific nodes'), which directly guides the AI agent in selecting the right approach. It implies that for template-related searches this tool is appropriate, while siblings like search_nodes are for node-level searches, providing clear separation of concerns.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

tools_documentationA
Read-onlyIdempotent

Get documentation for n8n MCP tools. Call without parameters for quick start guide. Use topic parameter to get documentation for specific tools. Use depth='full' for comprehensive documentation.

ParametersJSON Schema
NameRequiredDescriptionDefault
depthNoLevel of detail. "essentials" (default) for quick reference, "full" for comprehensive docs.essentials
topicNoTool name (e.g., "search_nodes") or "overview" for general guide. Leave empty for quick reference.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and idempotentHint=true, so the agent knows this is a safe, read-only operation. The description adds behavioral context beyond annotations: it explains that calling without parameters returns a 'quick start guide,' and that depth='full' provides 'comprehensive documentation.' This clarifies the different response modes. No contradictions with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences, each adding value: first sentence states the core purpose, second gives the default behavior, third explains the two optional parameters. It is front-loaded and contains no unnecessary words. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (2 optional params, no output schema), the description covers the main use cases well. It explains all invocation modes. However, it does not describe the format of the returned documentation (e.g., markdown, text), which would be helpful for an agent. Still, it is largely complete for a straightforward documentation tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description mentions using the 'topic' parameter and 'depth="full"', but this mostly restates the schema's own descriptions. It adds minimal new meaning beyond what the schema already provides. Therefore, a score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Get documentation for n8n MCP tools.' It distinguishes itself from siblings (which deal with templates, nodes, validation) by explicitly focusing on tool documentation. The different invocation modes (no params, topic, depth) are also outlined, making the purpose very specific.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit usage guidance: 'Call without parameters for quick start guide. Use topic parameter to get documentation for specific tools. Use depth="full" for comprehensive documentation.' This tells the agent exactly when to use each parameter combination. It does not mention when not to use the tool or alternatives, but the sibling tools are sufficiently different that no further exclusion is needed.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

validate_nodeA
Read-onlyIdempotent

Validate n8n node configuration. Use mode='full' for comprehensive validation with errors/warnings/suggestions, mode='minimal' for quick required fields check. Example: nodeType="nodes-base.slack", config={resource:"channel",operation:"create"}

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNoValidation mode. full=comprehensive validation with errors/warnings/suggestions, minimal=quick required fields check only. Default is "full"full
configYesConfiguration as object. For simple nodes use {}. For complex nodes include fields like {resource:"channel",operation:"create"}
profileNoProfile for mode=full: "minimal", "runtime", "ai-friendly", or "strict". Default is "ai-friendly"ai-friendly
nodeTypeYesNode type as string. Example: "nodes-base.slack"

Output Schema

ParametersJSON Schema
NameRequiredDescription
validYes
errorsNo
summaryNo
nodeTypeYes
warningsNo
displayNameYes
suggestionsNo
workflowNodeTypeNo
missingRequiredFieldsNoOnly present in mode=minimal

TDQS

A4.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark it as readOnlyHint true and idempotentHint true, so the description has less burden. It adds mode parameters and example usage but does not detail return format or success/failure behavior, which is partially covered by the output schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with a clear example, no fluff. Could be slightly more compact by integrating the example into the main statement, but it is efficient and front-loaded with purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (4 params, nested objects, output schema) and 100% schema coverage, the description covers the key behavior. The output schema handles return details, so no further explanation needed. The example adds practical context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline is 3. The description provides an example for nodeType and config that goes beyond the schema by showing a practical use case. This adds value, earning a 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states it validates n8n node configuration with a specific verb and resource. Provides examples of nodeType and config to distinguish it from sibling tools like 'search_nodes' or 'get_node'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly describes two validation modes ('full' for comprehensive, 'minimal' for quick checks) and gives usage example. Context suggests siblings like 'validate_workflow' exist but no direct 'when not to use' is stated, though mode distinction sufficiently guides selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

validate_workflowA
Read-onlyIdempotent

Full workflow validation: structure, connections, expressions, AI tools. Returns errors/warnings/fixes. Essential before deploy.

ParametersJSON Schema
NameRequiredDescriptionDefault
optionsNoOptional validation settings
workflowYesThe complete workflow JSON to validate. Must include nodes array and connections object.

Output Schema

ParametersJSON Schema
NameRequiredDescription
validYes
errorsNo
summaryYes
warningsNo
suggestionsNo

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide readOnlyHint and idempotentHint, so the safety profile is clear. The description adds that it returns errors/warnings/fixes, which is useful but not extensive. Since annotations carry the behavioral burden, the description adds moderate value.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with purpose and scope. Every word adds value. No redundancy or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the tool's purpose and return type. An output schema exists, so return details are documented elsewhere. Slightly missing mention of the optional 'options' parameter, but the schema covers it. Overall adequate for a validation tool with rich structured data.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with detailed descriptions for each parameter. The description mentions the validation categories (structure, connections, expressions) which map to options, but does not add new meaning beyond what the schema already provides. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clear verb+resource: 'Full workflow validation' specifies the action and scope. Lists what is validated (structure, connections, expressions, AI tools) and what is returned (errors/warnings/fixes). Distinguishes from sibling 'validate_node' by being for the entire workflow.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

States 'Essential before deploy' which implies when to use it, but does not explicitly mention when not to use it or alternatives like validate_node for single nodes. The context is clear but lacks exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 7 tool updatesv0.1.0
    • First observedget_node
    • First observedget_template
    • First observedsearch_nodes
    • First observedsearch_templates
    • First observedtools_documentation
    • First observedvalidate_node
    • First observedvalidate_workflow

TDQS

A4.2/5.0

Scored across 7 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: node info vs node search, node validation vs workflow validation, template retrieval vs template search, and meta documentation. No two tools overlap in function.

Naming Consistency4/5

Most tools follow a consistent verb_noun pattern (get_node, search_nodes, validate_node, etc.), but 'tools_documentation' deviates as a noun pair. The inconsistency is minor and does not significantly impact readability.

Tool Count5/5

With 7 tools, the server is well-scoped for its n8n-focused purpose. Each tool serves a necessary function, covering node exploration, validation, and template access without bloat.

Completeness4/5

The tool set covers the core lifecycle of node discovery, detailed info, validation, and template search/retrieval. Minor gaps exist, such as no tool for listing or creating workflows, but for an assistant-style server, the coverage is strong.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    D
    maintenance
    A comprehensive MCP server that provides full control over n8n automation workflows through natural language. It offers 43 tools for managing workflows, executions, credentials, and data tables, with safety features like write-mode protection and double-validated workflow creation.
    43
    1
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    MCP server for n8n workflow automation, enabling management of workflows, executions, credentials, tags, users, and webhooks via an MCP-compatible client.
    MIT
  • F
    license
    B
    quality
    C
    maintenance
    A full-power MCP server for n8n that enables AI agents to create, read, update, delete, and test workflows and credentials, including webhook testing, validation, and backup/versioning.
    31
    9
    -