{
  "markdown": "<div align=\"center\">\n\n# mcp-n8n\n\n**The most complete MCP server for [n8n](https://n8n.io)**\n\n43 tools · Workflows · Data Tables · Tags · Credentials · Users · Webhooks · Audit\n\n[![npm](https://img.shields.io/npm/v/@nextoolsolutions/mcp-n8n.svg)](https://www.npmjs.com/package/@nextoolsolutions/mcp-n8n)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n[![Node.js](https://img.shields.io/badge/Node.js-≥18-green.svg)](https://nodejs.org/)\n[![TypeScript](https://img.shields.io/badge/TypeScript-Strict-blue.svg)](https://www.typescriptlang.org/)\n[![MCP SDK](https://img.shields.io/badge/MCP_SDK-1.25-purple.svg)](https://modelcontextprotocol.io/)\n\n[Quick Start](#-quick-start) · [All 43 Tools](#-tools) · [Configuration](#%EF%B8%8F-configuration) · [Contributing](#-contributing)\n\n</div>\n\n---\n\n## Why mcp-n8n?\n\nOther n8n MCPs cover workflows and executions. **mcp-n8n covers everything** — including Data Tables, the only MCP to do so.\n\n| Feature | mcp-n8n | leonardsellem | illuminare | czlonkowski |\n|---|:---:|:---:|:---:|:---:|\n| Workflows (CRUD + execute) | **10** | 7 | 8 | 4 |\n| Executions | **3** | 5 | 3 | 2 |\n| **Data Tables** | **8** | — | — | — |\n| Tags + Workflow Tags | **7** | — | 5 | — |\n| Credentials | **4** | — | 3 | — |\n| Users | **3** | — | 4 | — |\n| Variables | **3** | — | 3 | — |\n| Projects (Enterprise) | **4** | — | 4 | — |\n| Security Audit | **1** | — | 1 | — |\n| Webhooks | **1** | 1 | — | 1 |\n| Health Check | **1** | — | — | 1 |\n| **Total** | **43** | **12** | **33** | **20** |\n\n> **Data Tables** — full CRUD with filters, search, upsert and dry-run. No other MCP has this.\n\n---\n\n## 🚀 Quick Start\n\n<details open>\n<summary><strong>Claude Code</strong></summary>\n\n```bash\nclaude mcp add --scope user \\\n  -e N8N_BASE_URL=http://localhost:5678 \\\n  -e N8N_API_KEY=your-api-key \\\n  -- n8n npx -y @nextoolsolutions/mcp-n8n\n```\n\n</details>\n\n<details>\n<summary><strong>Cursor</strong></summary>\n\nAdd to `~/.cursor/mcp.json`:\n\n```json\n{\n  \"mcpServers\": {\n    \"n8n\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"mcp-n8n\"],\n      \"env\": {\n        \"N8N_BASE_URL\": \"http://localhost:5678\",\n        \"N8N_API_KEY\": \"your-api-key\"\n      }\n    }\n  }\n}\n```\n\n</details>\n\n<details>\n<summary><strong>Claude Desktop</strong></summary>\n\nAdd to `claude_desktop_config.json`:\n\n```json\n{\n  \"mcpServers\": {\n    \"n8n\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"mcp-n8n\"],\n      \"env\": {\n        \"N8N_BASE_URL\": \"http://localhost:5678\",\n        \"N8N_API_KEY\": \"your-api-key\"\n      }\n    }\n  }\n}\n```\n\nConfig file location:\n- macOS: `~/Library/Application Support/Claude/claude_desktop_config.json`\n- Windows: `%APPDATA%\\Claude\\claude_desktop_config.json`\n\n</details>\n\n<details>\n<summary><strong>Windsurf</strong></summary>\n\nAdd to your Windsurf MCP config:\n\n```json\n{\n  \"mcpServers\": {\n    \"n8n\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"mcp-n8n\"],\n      \"env\": {\n        \"N8N_BASE_URL\": \"http://localhost:5678\",\n        \"N8N_API_KEY\": \"your-api-key\"\n      }\n    }\n  }\n}\n```\n\n</details>\n\n<details>\n<summary><strong>VS Code (Copilot)</strong></summary>\n\nAdd to your VS Code `settings.json`:\n\n```json\n{\n  \"mcp\": {\n    \"servers\": {\n      \"n8n\": {\n        \"command\": \"npx\",\n        \"args\": [\"-y\", \"mcp-n8n\"],\n        \"env\": {\n          \"N8N_BASE_URL\": \"http://localhost:5678\",\n          \"N8N_API_KEY\": \"your-api-key\"\n        }\n      }\n    }\n  }\n}\n```\n\n</details>\n\n### Getting your API key\n\n1. Open your n8n instance\n2. Go to **Settings → n8n API**\n3. Create a new API key\n4. Copy it into the `N8N_API_KEY` environment variable\n\n---\n\n## 🛠 Tools\n\n### Workflows (10)\n\n| Tool | Description |\n|---|---|\n| `n8n_list_workflows` | List all workflows with optional filters |\n| `n8n_get_workflow` | Get a workflow by ID (includes nodes, connections, settings) |\n| `n8n_create_workflow` | Create a new workflow from JSON |\n| `n8n_update_workflow` | Update an existing workflow (full replacement) |\n| `n8n_delete_workflow` | Permanently delete a workflow |\n| `n8n_activate_workflow` | Activate a workflow for production |\n| `n8n_deactivate_workflow` | Deactivate a workflow |\n| `n8n_execute_workflow` | Trigger execution with optional input data |\n| `n8n_get_workflow_tags` | List tags associated with a workflow |\n| `n8n_update_workflow_tags` | Replace all tags on a workflow |\n\n### Executions (3)\n\n| Tool | Description |\n|---|---|\n| `n8n_list_executions` | List executions with filters (workflow, status, cursor) |\n| `n8n_get_execution` | Get execution status, result data and timing |\n| `n8n_delete_execution` | Delete an execution record |\n\n### Data Tables (8)\n\n> Only available in n8n v1.64+. This is the **only MCP server with Data Tables support**.\n\n| Tool | Description |\n|---|---|\n| `n8n_list_datatables` | List all data tables with filtering and sorting |\n| `n8n_create_datatable` | Create a table with typed columns (string, number, boolean, date, json) |\n| `n8n_get_datatable` | Get table metadata (columns, name, ID) |\n| `n8n_get_datatable_rows` | Query rows with filter, full-text search, sorting and pagination |\n| `n8n_insert_datatable_rows` | Insert one or more rows |\n| `n8n_update_datatable_rows` | Update rows matching a filter (supports dry-run) |\n| `n8n_upsert_datatable_row` | Update if exists, insert if not |\n| `n8n_delete_datatable_rows` | Delete rows matching a filter (supports dry-run) |\n\n### Tags (5)\n\n| Tool | Description |\n|---|---|\n| `n8n_list_tags` | List all tags |\n| `n8n_get_tag` | Get a tag by ID |\n| `n8n_create_tag` | Create a new tag |\n| `n8n_update_tag` | Rename a tag |\n| `n8n_delete_tag` | Delete a tag |\n\n### Credentials (4)\n\n| Tool | Description |\n|---|---|\n| `n8n_list_credentials` | List credentials (names and types only — data is redacted) |\n| `n8n_create_credential` | Create a credential (use `get_credential_schema` first) |\n| `n8n_delete_credential` | Delete a credential |\n| `n8n_get_credential_schema` | Get the JSON schema for a credential type |\n\n### Users (3)\n\n| Tool | Description |\n|---|---|\n| `n8n_list_users` | List all users (requires instance owner role) |\n| `n8n_get_user` | Get a user by ID or email |\n| `n8n_delete_user` | Delete a user |\n\n### Variables (3)\n\n| Tool | Description |\n|---|---|\n| `n8n_list_variables` | List all environment variables |\n| `n8n_create_variable` | Create a key-value variable |\n| `n8n_delete_variable` | Delete a variable |\n\n### Projects (4) — Enterprise\n\n| Tool | Description |\n|---|---|\n| `n8n_list_projects` | List all projects |\n| `n8n_create_project` | Create a project |\n| `n8n_update_project` | Rename a project |\n| `n8n_delete_project` | Delete a project |\n\n### Audit (1)\n\n| Tool | Description |\n|---|---|\n| `n8n_generate_audit` | Generate a security audit (credentials, database, filesystem, nodes) |\n\n### System (1)\n\n| Tool | Description |\n|---|---|\n| `n8n_health_check` | Verify n8n API connectivity |\n\n### Webhooks (1)\n\n| Tool | Description |\n|---|---|\n| `n8n_trigger_webhook` | Trigger a workflow via its webhook URL (production or test) |\n\n---\n\n## ⚙️ Configuration\n\n| Variable | Default | Description |\n|---|---|---|\n| `N8N_BASE_URL` | `http://localhost:5678` | Your n8n instance URL |\n| `N8N_API_KEY` | — | API key (**required**) |\n| `N8N_MAX_RETRIES` | `3` | Retry attempts on 429 / 5xx errors |\n| `N8N_TIMEOUT` | `30000` | Request timeout in milliseconds |\n\n---\n\n## ✨ Features\n\n- **43 tools** — the most comprehensive n8n MCP available\n- **Data Tables** — full CRUD, the only MCP with this support\n- **Automatic retry** — exponential backoff on rate limits (429) and server errors (5xx)\n- **Configurable timeout** — prevent hung requests (default 30s)\n- **Zero external dependencies** — only MCP SDK + Zod\n- **TypeScript strict mode** — fully typed, safe, and maintainable\n- **Node 16+ compatible** — native fetch with http/https fallback\n\n---\n\n## 🔒 Security\n\n- API keys are **never hardcoded** — loaded exclusively from environment variables\n- Credential data is **redacted** in list responses (n8n API behavior)\n- All IDs are sanitized with `encodeURIComponent` to prevent path traversal\n- No sensitive data is logged or exposed in error messages\n\n---\n\n## 🏗 Development\n\n```bash\ngit clone https://github.com/RPGMais/mcp-n8n.git\ncd mcp-n8n\nnpm install\n```\n\n| Command | Description |\n|---|---|\n| `npm run dev` | Run with tsx (no build step) |\n| `npm run build` | Compile TypeScript to `dist/` |\n| `npm start` | Run compiled version |\n\n### Project structure\n\n```\nmcp-n8n/\n├── src/\n│   ├── index.ts          # MCP server — tool registration and handlers\n│   └── n8n-client.ts     # HTTP client — API calls, retry, timeout\n├── dist/                  # Compiled output\n├── package.json\n├── tsconfig.json\n└── README.md\n```\n\n---\n\n## 🤝 Contributing\n\nContributions are welcome! Please:\n\n1. Fork the repository\n2. Create a feature branch (`git checkout -b feat/my-feature`)\n3. Commit your changes\n4. Push and open a Pull Request\n\n---\n\n## 📄 License\n\n[MIT](LICENSE) — free for personal and commercial use.\n\n---\n\n<div align=\"center\">\n\nBuilt by [NexTool Solutions](https://github.com/RPGMais)\n\nIf this project helps you, consider giving it a ⭐\n\n</div>\n",
  "bytes": 9115,
  "sha": "b4028f904024ae78af6c2ef556fe8c82bad5a3ac643df661f50c72fe7cdfc890",
  "repo_slug": "rpgmais/mcp-n8n",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_rpgmais_mcp_n8n_d0c836d5/readme"
}