n8n-mcp 2.24.1 โ 2.26.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +119 -163
- package/data/nodes.db +0 -0
- package/dist/mcp/handlers-n8n-manager.d.ts +0 -1
- package/dist/mcp/handlers-n8n-manager.d.ts.map +1 -1
- package/dist/mcp/handlers-n8n-manager.js +6 -61
- package/dist/mcp/handlers-n8n-manager.js.map +1 -1
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +105 -115
- package/dist/mcp/server.js.map +1 -1
- package/dist/mcp/tool-docs/system/tools-documentation.js +1 -1
- package/dist/mcp/tool-docs/system/tools-documentation.js.map +1 -1
- package/dist/mcp/tool-docs/templates/get-templates-for-task.js +1 -1
- package/dist/mcp/tool-docs/templates/get-templates-for-task.js.map +1 -1
- package/dist/mcp/tool-docs/workflow_management/n8n-validate-workflow.js +1 -1
- package/dist/mcp/tool-docs/workflow_management/n8n-validate-workflow.js.map +1 -1
- package/dist/mcp/tools-documentation.d.ts.map +1 -1
- package/dist/mcp/tools-documentation.js +6 -7
- package/dist/mcp/tools-documentation.js.map +1 -1
- package/dist/mcp/tools-n8n-manager.d.ts.map +1 -1
- package/dist/mcp/tools-n8n-manager.js +33 -107
- package/dist/mcp/tools-n8n-manager.js.map +1 -1
- package/dist/mcp/tools.d.ts.map +1 -1
- package/dist/mcp/tools.js +43 -382
- package/dist/mcp/tools.js.map +1 -1
- package/dist/services/n8n-validation.d.ts +2 -2
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -5,11 +5,11 @@
|
|
|
5
5
|
[](https://www.npmjs.com/package/n8n-mcp)
|
|
6
6
|
[](https://codecov.io/gh/czlonkowski/n8n-mcp)
|
|
7
7
|
[](https://github.com/czlonkowski/n8n-mcp/actions)
|
|
8
|
-
[](https://github.com/n8n-io/n8n)
|
|
9
9
|
[](https://github.com/czlonkowski/n8n-mcp/pkgs/container/n8n-mcp)
|
|
10
10
|
[](https://railway.com/deploy/n8n-mcp?referralCode=n8n-mcp)
|
|
11
11
|
|
|
12
|
-
A Model Context Protocol (MCP) server that provides AI assistants with comprehensive access to n8n node documentation, properties, and operations. Deploy in minutes to give Claude and other AI assistants deep knowledge about n8n's
|
|
12
|
+
A Model Context Protocol (MCP) server that provides AI assistants with comprehensive access to n8n node documentation, properties, and operations. Deploy in minutes to give Claude and other AI assistants deep knowledge about n8n's 545 workflow automation nodes.
|
|
13
13
|
|
|
14
14
|
## Overview
|
|
15
15
|
|
|
@@ -36,11 +36,44 @@ AI results can be unpredictable. Protect your work!
|
|
|
36
36
|
|
|
37
37
|
## ๐ Quick Start
|
|
38
38
|
|
|
39
|
-
Get n8n-MCP running in
|
|
39
|
+
Get n8n-MCP running in minutes:
|
|
40
40
|
|
|
41
41
|
[](https://youtu.be/5CccjiLLyaY?si=Z62SBGlw9G34IQnQ&t=343)
|
|
42
42
|
|
|
43
|
-
### Option 1:
|
|
43
|
+
### Option 1: Hosted Service (Easiest - No Setup!) โ๏ธ
|
|
44
|
+
|
|
45
|
+
**The fastest way to try n8n-MCP** - no installation, no configuration:
|
|
46
|
+
|
|
47
|
+
๐ **[dashboard.n8n-mcp.com](https://dashboard.n8n-mcp.com)**
|
|
48
|
+
|
|
49
|
+
- โ
**Free tier**: 100 tool calls/day
|
|
50
|
+
- โ
**Instant access**: Start building workflows immediately
|
|
51
|
+
- โ
**Always up-to-date**: Latest n8n nodes and templates
|
|
52
|
+
- โ
**No infrastructure**: We handle everything
|
|
53
|
+
|
|
54
|
+
Just sign up, get your API key, and add to Claude Desktop:
|
|
55
|
+
|
|
56
|
+
```json
|
|
57
|
+
{
|
|
58
|
+
"mcpServers": {
|
|
59
|
+
"n8n-mcp": {
|
|
60
|
+
"command": "npx",
|
|
61
|
+
"args": ["-y", "@anthropic-ai/mcp-remote@latest", "https://mcp.n8n-mcp.com/sse"],
|
|
62
|
+
"env": {
|
|
63
|
+
"API_KEY": "your-api-key-from-dashboard"
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
---
|
|
71
|
+
|
|
72
|
+
## ๐ Self-Hosting Options
|
|
73
|
+
|
|
74
|
+
Prefer to run n8n-MCP yourself? Choose your deployment method:
|
|
75
|
+
|
|
76
|
+
### Option A: npx (Quick Local Setup) ๐
|
|
44
77
|
|
|
45
78
|
**Prerequisites:** [Node.js](https://nodejs.org/) installed on your system
|
|
46
79
|
|
|
@@ -98,7 +131,7 @@ Add to Claude Desktop config:
|
|
|
98
131
|
|
|
99
132
|
**Restart Claude Desktop after updating configuration** - That's it! ๐
|
|
100
133
|
|
|
101
|
-
### Option
|
|
134
|
+
### Option B: Docker (Isolated & Reproducible) ๐ณ
|
|
102
135
|
|
|
103
136
|
**Prerequisites:** Docker installed on your system
|
|
104
137
|
|
|
@@ -345,27 +378,6 @@ environment:
|
|
|
345
378
|
SQLJS_SAVE_INTERVAL_MS: "10000"
|
|
346
379
|
```
|
|
347
380
|
|
|
348
|
-
### Memory Leak Fix (v2.20.2)
|
|
349
|
-
|
|
350
|
-
**Issue #330** identified a critical memory leak in long-running Docker/Kubernetes deployments:
|
|
351
|
-
- **Before:** 100 MB โ 2.2 GB over 72 hours (OOM kills)
|
|
352
|
-
- **After:** Stable at 100-200 MB indefinitely
|
|
353
|
-
|
|
354
|
-
**Fixes Applied:**
|
|
355
|
-
- โ
Docker images now use better-sqlite3 by default (eliminates leak entirely)
|
|
356
|
-
- โ
sql.js fallback optimized (98% reduction in save frequency)
|
|
357
|
-
- โ
Removed unnecessary memory allocations (50% reduction per save)
|
|
358
|
-
- โ
Configurable save interval via `SQLJS_SAVE_INTERVAL_MS`
|
|
359
|
-
|
|
360
|
-
For Kubernetes deployments with memory limits:
|
|
361
|
-
```yaml
|
|
362
|
-
resources:
|
|
363
|
-
requests:
|
|
364
|
-
memory: 256Mi
|
|
365
|
-
limits:
|
|
366
|
-
memory: 512Mi
|
|
367
|
-
```
|
|
368
|
-
|
|
369
381
|
## ๐ Support This Project
|
|
370
382
|
|
|
371
383
|
<div align="center">
|
|
@@ -386,7 +398,7 @@ Every sponsorship directly translates to hours invested in making n8n-mcp better
|
|
|
386
398
|
|
|
387
399
|
---
|
|
388
400
|
|
|
389
|
-
### Option
|
|
401
|
+
### Option C: Local Installation (For Development)
|
|
390
402
|
|
|
391
403
|
**Prerequisites:** [Node.js](https://nodejs.org/) installed on your system
|
|
392
404
|
|
|
@@ -444,7 +456,7 @@ Add to Claude Desktop config:
|
|
|
444
456
|
|
|
445
457
|
> ๐ก Tip: If youโre running n8n locally on the same machine (e.g., via Docker), use http://host.docker.internal:5678 as the N8N_API_URL.
|
|
446
458
|
|
|
447
|
-
### Option
|
|
459
|
+
### Option D: Railway Cloud Deployment (One-Click Deploy) โ๏ธ
|
|
448
460
|
|
|
449
461
|
**Prerequisites:** Railway account (free tier available)
|
|
450
462
|
|
|
@@ -524,7 +536,7 @@ You are an expert in n8n automation software using n8n-MCP tools. Your role is t
|
|
|
524
536
|
CRITICAL: Execute tools without commentary. Only respond AFTER all tools complete.
|
|
525
537
|
|
|
526
538
|
โ BAD: "Let me search for Slack nodes... Great! Now let me get details..."
|
|
527
|
-
โ
GOOD: [Execute search_nodes and
|
|
539
|
+
โ
GOOD: [Execute search_nodes and get_node in parallel, then respond]
|
|
528
540
|
|
|
529
541
|
### 2. Parallel Execution
|
|
530
542
|
When operations are independent, execute them in parallel for maximum performance.
|
|
@@ -536,7 +548,7 @@ When operations are independent, execute them in parallel for maximum performanc
|
|
|
536
548
|
ALWAYS check templates before building from scratch (2,709 available).
|
|
537
549
|
|
|
538
550
|
### 4. Multi-Level Validation
|
|
539
|
-
Use
|
|
551
|
+
Use validate_node(mode='minimal') โ validate_node(mode='full') โ validate_workflow pattern.
|
|
540
552
|
|
|
541
553
|
### 5. Never Trust Defaults
|
|
542
554
|
โ ๏ธ CRITICAL: Default parameter values are the #1 source of runtime failures.
|
|
@@ -547,10 +559,10 @@ ALWAYS explicitly configure ALL parameters that control node behavior.
|
|
|
547
559
|
1. **Start**: Call `tools_documentation()` for best practices
|
|
548
560
|
|
|
549
561
|
2. **Template Discovery Phase** (FIRST - parallel when searching multiple)
|
|
550
|
-
- `
|
|
551
|
-
- `
|
|
552
|
-
- `search_templates('slack notification')` - Text search
|
|
553
|
-
- `
|
|
562
|
+
- `search_templates({searchMode: 'by_metadata', complexity: 'simple'})` - Smart filtering
|
|
563
|
+
- `search_templates({searchMode: 'by_task', task: 'webhook_processing'})` - Curated by task
|
|
564
|
+
- `search_templates({query: 'slack notification'})` - Text search (default searchMode='keyword')
|
|
565
|
+
- `search_templates({searchMode: 'by_nodes', nodeTypes: ['n8n-nodes-base.slack']})` - By node type
|
|
554
566
|
|
|
555
567
|
**Filtering strategies**:
|
|
556
568
|
- Beginners: `complexity: "simple"` + `maxSetupMinutes: 30`
|
|
@@ -561,20 +573,20 @@ ALWAYS explicitly configure ALL parameters that control node behavior.
|
|
|
561
573
|
3. **Node Discovery** (if no suitable template - parallel execution)
|
|
562
574
|
- Think deeply about requirements. Ask clarifying questions if unclear.
|
|
563
575
|
- `search_nodes({query: 'keyword', includeExamples: true})` - Parallel for multiple nodes
|
|
564
|
-
- `
|
|
565
|
-
- `
|
|
576
|
+
- `search_nodes({query: 'trigger'})` - Browse triggers
|
|
577
|
+
- `search_nodes({query: 'AI agent langchain'})` - AI-capable nodes
|
|
566
578
|
|
|
567
579
|
4. **Configuration Phase** (parallel for multiple nodes)
|
|
568
|
-
- `get_node(nodeType,
|
|
569
|
-
- `get_node(nodeType,
|
|
570
|
-
- `get_node(nodeType,
|
|
571
|
-
- `
|
|
572
|
-
- `
|
|
580
|
+
- `get_node({nodeType, detail: 'standard', includeExamples: true})` - Essential properties (default)
|
|
581
|
+
- `get_node({nodeType, detail: 'minimal'})` - Basic metadata only (~200 tokens)
|
|
582
|
+
- `get_node({nodeType, detail: 'full'})` - Complete information (~3000-8000 tokens)
|
|
583
|
+
- `get_node({nodeType, mode: 'search_properties', propertyQuery: 'auth'})` - Find specific properties
|
|
584
|
+
- `get_node({nodeType, mode: 'docs'})` - Human-readable markdown documentation
|
|
573
585
|
- Show workflow architecture to user for approval before proceeding
|
|
574
586
|
|
|
575
587
|
5. **Validation Phase** (parallel for multiple nodes)
|
|
576
|
-
- `
|
|
577
|
-
- `
|
|
588
|
+
- `validate_node({nodeType, config, mode: 'minimal'})` - Quick required fields check
|
|
589
|
+
- `validate_node({nodeType, config, mode: 'full', profile: 'runtime'})` - Full validation with fixes
|
|
578
590
|
- Fix ALL errors before proceeding
|
|
579
591
|
|
|
580
592
|
6. **Building Phase**
|
|
@@ -614,15 +626,15 @@ Default values cause runtime failures. Example:
|
|
|
614
626
|
### โ ๏ธ Example Availability
|
|
615
627
|
`includeExamples: true` returns real configurations from workflow templates.
|
|
616
628
|
- Coverage varies by node popularity
|
|
617
|
-
- When no examples available, use `get_node` + `
|
|
629
|
+
- When no examples available, use `get_node` + `validate_node({mode: 'minimal'})`
|
|
618
630
|
|
|
619
631
|
## Validation Strategy
|
|
620
632
|
|
|
621
633
|
### Level 1 - Quick Check (before building)
|
|
622
|
-
`
|
|
634
|
+
`validate_node({nodeType, config, mode: 'minimal'})` - Required fields only (<100ms)
|
|
623
635
|
|
|
624
636
|
### Level 2 - Comprehensive (before building)
|
|
625
|
-
`
|
|
637
|
+
`validate_node({nodeType, config, mode: 'full', profile: 'runtime'})` - Full validation with fixes
|
|
626
638
|
|
|
627
639
|
### Level 3 - Complete (after building)
|
|
628
640
|
`validate_workflow(workflow)` - Connections, expressions, AI tools
|
|
@@ -630,7 +642,7 @@ Default values cause runtime failures. Example:
|
|
|
630
642
|
### Level 4 - Post-Deployment
|
|
631
643
|
1. `n8n_validate_workflow({id})` - Validate deployed workflow
|
|
632
644
|
2. `n8n_autofix_workflow({id})` - Auto-fix common errors
|
|
633
|
-
3. `
|
|
645
|
+
3. `n8n_executions({action: 'list'})` - Monitor execution status
|
|
634
646
|
|
|
635
647
|
## Response Format
|
|
636
648
|
|
|
@@ -776,12 +788,13 @@ Use the same four-parameter format:
|
|
|
776
788
|
```
|
|
777
789
|
// STEP 1: Template Discovery (parallel execution)
|
|
778
790
|
[Silent execution]
|
|
779
|
-
|
|
791
|
+
search_templates({
|
|
792
|
+
searchMode: 'by_metadata',
|
|
780
793
|
requiredService: 'slack',
|
|
781
794
|
complexity: 'simple',
|
|
782
795
|
targetAudience: 'marketers'
|
|
783
796
|
})
|
|
784
|
-
|
|
797
|
+
search_templates({searchMode: 'by_task', task: 'slack_integration'})
|
|
785
798
|
|
|
786
799
|
// STEP 2: Use template
|
|
787
800
|
get_template(templateId, {mode: 'full'})
|
|
@@ -800,17 +813,17 @@ Validation: โ
All checks passed"
|
|
|
800
813
|
// STEP 1: Discovery (parallel execution)
|
|
801
814
|
[Silent execution]
|
|
802
815
|
search_nodes({query: 'slack', includeExamples: true})
|
|
803
|
-
|
|
816
|
+
search_nodes({query: 'communication trigger'})
|
|
804
817
|
|
|
805
818
|
// STEP 2: Configuration (parallel execution)
|
|
806
819
|
[Silent execution]
|
|
807
|
-
get_node('n8n-nodes-base.slack',
|
|
808
|
-
get_node('n8n-nodes-base.webhook',
|
|
820
|
+
get_node({nodeType: 'n8n-nodes-base.slack', detail: 'standard', includeExamples: true})
|
|
821
|
+
get_node({nodeType: 'n8n-nodes-base.webhook', detail: 'standard', includeExamples: true})
|
|
809
822
|
|
|
810
823
|
// STEP 3: Validation (parallel execution)
|
|
811
824
|
[Silent execution]
|
|
812
|
-
|
|
813
|
-
|
|
825
|
+
validate_node({nodeType: 'n8n-nodes-base.slack', config, mode: 'minimal'})
|
|
826
|
+
validate_node({nodeType: 'n8n-nodes-base.slack', config: fullConfig, mode: 'full', profile: 'runtime'})
|
|
814
827
|
|
|
815
828
|
// STEP 4: Build
|
|
816
829
|
// Construct workflow with validated configs
|
|
@@ -936,73 +949,52 @@ When Claude, Anthropic's AI assistant, tested n8n-MCP, the results were transfor
|
|
|
936
949
|
|
|
937
950
|
Once connected, Claude can use these powerful tools:
|
|
938
951
|
|
|
939
|
-
### Core Tools
|
|
952
|
+
### Core Tools (7 tools)
|
|
940
953
|
- **`tools_documentation`** - Get documentation for any MCP tool (START HERE!)
|
|
941
|
-
- **`
|
|
942
|
-
- **`get_node`** - Unified node information tool with multiple
|
|
943
|
-
- `detail: 'minimal'`
|
|
944
|
-
- `
|
|
945
|
-
- `
|
|
946
|
-
- `
|
|
947
|
-
|
|
948
|
-
- `mode: '
|
|
949
|
-
- `
|
|
950
|
-
- **`
|
|
951
|
-
- **`
|
|
952
|
-
-
|
|
953
|
-
-
|
|
954
|
-
|
|
955
|
-
|
|
956
|
-
- **`
|
|
957
|
-
|
|
958
|
-
|
|
959
|
-
|
|
960
|
-
- **`get_template`** - Get complete workflow JSON for import
|
|
961
|
-
- **`get_templates_for_task`** - Curated templates for common automation tasks
|
|
962
|
-
|
|
963
|
-
### Validation Tools
|
|
964
|
-
- **`validate_workflow`** - Complete workflow validation including **AI Agent validation** (NEW in v2.17.0!)
|
|
965
|
-
- Detects missing language model connections
|
|
966
|
-
- Validates AI tool connections (no false warnings)
|
|
967
|
-
- Enforces streaming mode constraints
|
|
968
|
-
- Checks memory and output parser configurations
|
|
969
|
-
- **`validate_workflow_connections`** - Check workflow structure and AI tool connections
|
|
970
|
-
- **`validate_workflow_expressions`** - Validate n8n expressions including $fromAI()
|
|
971
|
-
- **`validate_node_operation`** - Validate node configurations (operation-aware, profiles support)
|
|
972
|
-
- **`validate_node_minimal`** - Quick validation for just required fields
|
|
973
|
-
|
|
974
|
-
### Advanced Tools
|
|
975
|
-
- **`get_property_dependencies`** - Analyze property visibility conditions
|
|
976
|
-
- **`get_node_documentation`** - Get parsed documentation from n8n-docs
|
|
977
|
-
- **`get_database_statistics`** - View database metrics and coverage
|
|
978
|
-
|
|
979
|
-
### n8n Management Tools (Optional - Requires API Configuration)
|
|
980
|
-
These powerful tools allow you to manage n8n workflows directly from Claude. They're only available when you provide `N8N_API_URL` and `N8N_API_KEY` in your configuration.
|
|
954
|
+
- **`search_nodes`** - Full-text search across all nodes. Use `includeExamples: true` for real-world configurations
|
|
955
|
+
- **`get_node`** - Unified node information tool with multiple modes (v2.26.0):
|
|
956
|
+
- **Info mode** (default): `detail: 'minimal'|'standard'|'full'`, `includeExamples: true`
|
|
957
|
+
- **Docs mode**: `mode: 'docs'` - Human-readable markdown documentation
|
|
958
|
+
- **Property search**: `mode: 'search_properties'`, `propertyQuery: 'auth'`
|
|
959
|
+
- **Versions**: `mode: 'versions'|'compare'|'breaking'|'migrations'`
|
|
960
|
+
- **`validate_node`** - Unified node validation (v2.26.0):
|
|
961
|
+
- `mode: 'minimal'` - Quick required fields check (<100ms)
|
|
962
|
+
- `mode: 'full'` - Comprehensive validation with profiles (minimal, runtime, ai-friendly, strict)
|
|
963
|
+
- **`validate_workflow`** - Complete workflow validation including AI Agent validation
|
|
964
|
+
- **`search_templates`** - Unified template search (v2.26.0):
|
|
965
|
+
- `searchMode: 'keyword'` (default) - Text search with `query` parameter
|
|
966
|
+
- `searchMode: 'by_nodes'` - Find templates using specific `nodeTypes`
|
|
967
|
+
- `searchMode: 'by_task'` - Curated templates for common `task` types
|
|
968
|
+
- `searchMode: 'by_metadata'` - Filter by `complexity`, `requiredService`, `targetAudience`
|
|
969
|
+
- **`get_template`** - Get complete workflow JSON (modes: nodes_only, structure, full)
|
|
970
|
+
|
|
971
|
+
### n8n Management Tools (12 tools - Requires API Configuration)
|
|
972
|
+
These tools require `N8N_API_URL` and `N8N_API_KEY` in your configuration.
|
|
981
973
|
|
|
982
974
|
#### Workflow Management
|
|
983
975
|
- **`n8n_create_workflow`** - Create new workflows with nodes and connections
|
|
984
|
-
- **`n8n_get_workflow`** -
|
|
985
|
-
-
|
|
986
|
-
-
|
|
987
|
-
-
|
|
976
|
+
- **`n8n_get_workflow`** - Unified workflow retrieval (v2.26.0):
|
|
977
|
+
- `mode: 'full'` (default) - Complete workflow JSON
|
|
978
|
+
- `mode: 'details'` - Include execution statistics
|
|
979
|
+
- `mode: 'structure'` - Nodes and connections topology only
|
|
980
|
+
- `mode: 'minimal'` - Just ID, name, active status
|
|
988
981
|
- **`n8n_update_full_workflow`** - Update entire workflow (complete replacement)
|
|
989
|
-
- **`n8n_update_partial_workflow`** - Update workflow using diff operations
|
|
982
|
+
- **`n8n_update_partial_workflow`** - Update workflow using diff operations
|
|
990
983
|
- **`n8n_delete_workflow`** - Delete workflows permanently
|
|
991
984
|
- **`n8n_list_workflows`** - List workflows with filtering and pagination
|
|
992
|
-
- **`n8n_validate_workflow`** - Validate workflows
|
|
993
|
-
- **`n8n_autofix_workflow`** - Automatically fix common workflow errors
|
|
994
|
-
- **`n8n_workflow_versions`** - Manage
|
|
985
|
+
- **`n8n_validate_workflow`** - Validate workflows in n8n by ID
|
|
986
|
+
- **`n8n_autofix_workflow`** - Automatically fix common workflow errors
|
|
987
|
+
- **`n8n_workflow_versions`** - Manage version history and rollback
|
|
995
988
|
|
|
996
989
|
#### Execution Management
|
|
997
990
|
- **`n8n_trigger_webhook_workflow`** - Trigger workflows via webhook URL
|
|
998
|
-
- **`
|
|
999
|
-
-
|
|
1000
|
-
-
|
|
991
|
+
- **`n8n_executions`** - Unified execution management (v2.26.0):
|
|
992
|
+
- `action: 'list'` - List executions with status filtering
|
|
993
|
+
- `action: 'get'` - Get execution details by ID
|
|
994
|
+
- `action: 'delete'` - Delete execution records
|
|
1001
995
|
|
|
1002
996
|
#### System Tools
|
|
1003
997
|
- **`n8n_health_check`** - Check n8n API connectivity and features
|
|
1004
|
-
- **`n8n_diagnostic`** - Troubleshoot management tools visibility and configuration issues
|
|
1005
|
-
- **`n8n_list_available_tools`** - List all available management tools
|
|
1006
998
|
|
|
1007
999
|
### Example Usage
|
|
1008
1000
|
|
|
@@ -1014,17 +1006,17 @@ get_node({
|
|
|
1014
1006
|
includeExamples: true // Include real-world examples from templates
|
|
1015
1007
|
})
|
|
1016
1008
|
|
|
1017
|
-
//
|
|
1009
|
+
// Get documentation
|
|
1018
1010
|
get_node({
|
|
1019
1011
|
nodeType: "nodes-base.slack",
|
|
1020
|
-
|
|
1012
|
+
mode: "docs" // Human-readable markdown documentation
|
|
1021
1013
|
})
|
|
1022
1014
|
|
|
1023
|
-
//
|
|
1015
|
+
// Search for specific properties
|
|
1024
1016
|
get_node({
|
|
1025
|
-
nodeType: "nodes-base.
|
|
1026
|
-
|
|
1027
|
-
|
|
1017
|
+
nodeType: "nodes-base.httpRequest",
|
|
1018
|
+
mode: "search_properties",
|
|
1019
|
+
propertyQuery: "authentication"
|
|
1028
1020
|
})
|
|
1029
1021
|
|
|
1030
1022
|
// Version history and breaking changes
|
|
@@ -1033,31 +1025,31 @@ get_node({
|
|
|
1033
1025
|
mode: "versions" // View all versions with summary
|
|
1034
1026
|
})
|
|
1035
1027
|
|
|
1036
|
-
// Compare versions
|
|
1037
|
-
get_node({
|
|
1038
|
-
nodeType: "nodes-base.slack",
|
|
1039
|
-
mode: "compare",
|
|
1040
|
-
fromVersion: "2.1",
|
|
1041
|
-
toVersion: "2.2"
|
|
1042
|
-
})
|
|
1043
|
-
|
|
1044
1028
|
// Search nodes with configuration examples
|
|
1045
1029
|
search_nodes({
|
|
1046
1030
|
query: "send email gmail",
|
|
1047
1031
|
includeExamples: true // Returns top 2 configs per node
|
|
1048
1032
|
})
|
|
1049
1033
|
|
|
1050
|
-
// Validate
|
|
1051
|
-
|
|
1034
|
+
// Validate node configuration
|
|
1035
|
+
validate_node({
|
|
1052
1036
|
nodeType: "nodes-base.httpRequest",
|
|
1053
1037
|
config: { method: "POST", url: "..." },
|
|
1038
|
+
mode: "full",
|
|
1054
1039
|
profile: "runtime" // or "minimal", "ai-friendly", "strict"
|
|
1055
1040
|
})
|
|
1056
1041
|
|
|
1057
1042
|
// Quick required field check
|
|
1058
|
-
|
|
1043
|
+
validate_node({
|
|
1059
1044
|
nodeType: "nodes-base.slack",
|
|
1060
|
-
config: { resource: "message", operation: "send" }
|
|
1045
|
+
config: { resource: "message", operation: "send" },
|
|
1046
|
+
mode: "minimal"
|
|
1047
|
+
})
|
|
1048
|
+
|
|
1049
|
+
// Search templates by task
|
|
1050
|
+
search_templates({
|
|
1051
|
+
searchMode: "by_task",
|
|
1052
|
+
task: "webhook_processing"
|
|
1061
1053
|
})
|
|
1062
1054
|
```
|
|
1063
1055
|
|
|
@@ -1150,43 +1142,7 @@ Current database coverage (n8n v1.117.2):
|
|
|
1150
1142
|
|
|
1151
1143
|
## ๐ Recent Updates
|
|
1152
1144
|
|
|
1153
|
-
|
|
1154
|
-
**Fixed:** Stack overflow in session removal (Issue #427)
|
|
1155
|
-
- Eliminated infinite recursion in HTTP server session cleanup
|
|
1156
|
-
- Transport resources now deleted before closing to prevent circular event handler chain
|
|
1157
|
-
- Production logs no longer show "RangeError: Maximum call stack size exceeded"
|
|
1158
|
-
- All session cleanup operations now complete successfully without crashes
|
|
1159
|
-
|
|
1160
|
-
See [CHANGELOG.md](./docs/CHANGELOG.md) for full version history and recent changes.
|
|
1161
|
-
|
|
1162
|
-
## โ ๏ธ Known Issues
|
|
1163
|
-
|
|
1164
|
-
### Claude Desktop Container Management
|
|
1165
|
-
|
|
1166
|
-
#### Container Accumulation (Fixed in v2.7.20+)
|
|
1167
|
-
Previous versions had an issue where containers would not properly clean up when Claude Desktop sessions ended. This has been fixed in v2.7.20+ with proper signal handling.
|
|
1168
|
-
|
|
1169
|
-
**For best container lifecycle management:**
|
|
1170
|
-
1. **Use the --init flag** (recommended) - Docker's init system ensures proper signal handling:
|
|
1171
|
-
```json
|
|
1172
|
-
{
|
|
1173
|
-
"mcpServers": {
|
|
1174
|
-
"n8n-mcp": {
|
|
1175
|
-
"command": "docker",
|
|
1176
|
-
"args": [
|
|
1177
|
-
"run", "-i", "--rm", "--init",
|
|
1178
|
-
"ghcr.io/czlonkowski/n8n-mcp:latest"
|
|
1179
|
-
]
|
|
1180
|
-
}
|
|
1181
|
-
}
|
|
1182
|
-
}
|
|
1183
|
-
```
|
|
1184
|
-
|
|
1185
|
-
2. **Ensure you're using v2.7.20 or later** - Check your version:
|
|
1186
|
-
```bash
|
|
1187
|
-
docker run --rm ghcr.io/czlonkowski/n8n-mcp:latest --version
|
|
1188
|
-
```
|
|
1189
|
-
|
|
1145
|
+
See [CHANGELOG.md](./CHANGELOG.md) for complete version history and recent changes.
|
|
1190
1146
|
|
|
1191
1147
|
## ๐งช Testing
|
|
1192
1148
|
|
package/data/nodes.db
CHANGED
|
Binary file
|
|
@@ -21,7 +21,6 @@ export declare function handleGetExecution(args: unknown, context?: InstanceCont
|
|
|
21
21
|
export declare function handleListExecutions(args: unknown, context?: InstanceContext): Promise<McpToolResponse>;
|
|
22
22
|
export declare function handleDeleteExecution(args: unknown, context?: InstanceContext): Promise<McpToolResponse>;
|
|
23
23
|
export declare function handleHealthCheck(context?: InstanceContext): Promise<McpToolResponse>;
|
|
24
|
-
export declare function handleListAvailableTools(context?: InstanceContext): Promise<McpToolResponse>;
|
|
25
24
|
export declare function handleDiagnostic(request: any, context?: InstanceContext): Promise<McpToolResponse>;
|
|
26
25
|
export declare function handleWorkflowVersions(args: unknown, repository: NodeRepository, context?: InstanceContext): Promise<McpToolResponse>;
|
|
27
26
|
//# sourceMappingURL=handlers-n8n-manager.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handlers-n8n-manager.d.ts","sourceRoot":"","sources":["../../src/mcp/handlers-n8n-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE1D,OAAO,EAML,eAAe,EAGhB,MAAM,kBAAkB,CAAC;AAiB1B,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,eAAe,EAA2B,MAAM,2BAA2B,CAAC;AAkMrF,wBAAgB,0BAA0B,IAAI,MAAM,CAEnD;AAMD,wBAAgB,uBAAuB,gDAEtC;AAKD,wBAAgB,kBAAkB,IAAI,IAAI,CAIzC;AAED,wBAAgB,eAAe,CAAC,OAAO,CAAC,EAAE,eAAe,GAAG,YAAY,GAAG,IAAI,CAgF9E;AA6GD,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC,CA8E7G;AAED,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC,CAiC1G;AAED,wBAAsB,wBAAwB,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC,CAoDjH;AAED,wBAAsB,0BAA0B,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC,CAmDnH;AAED,wBAAsB,wBAAwB,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC,CAyCjH;AAED,wBAAsB,oBAAoB,CACxC,IAAI,EAAE,OAAO,EACb,UAAU,EAAE,cAAc,EAC1B,OAAO,CAAC,EAAE,eAAe,GACxB,OAAO,CAAC,eAAe,CAAC,CAyH1B;AAeD,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC,CAkC7G;AAED,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC,CAiE5G;AAED,wBAAsB,sBAAsB,CAC1C,IAAI,EAAE,OAAO,EACb,UAAU,EAAE,cAAc,EAC1B,OAAO,CAAC,EAAE,eAAe,GACxB,OAAO,CAAC,eAAe,CAAC,CA0F1B;AAED,wBAAsB,qBAAqB,CACzC,IAAI,EAAE,OAAO,EACb,UAAU,EAAE,cAAc,EAC1B,OAAO,CAAC,EAAE,eAAe,GACxB,OAAO,CAAC,eAAe,CAAC,CAoK1B;AAID,wBAAsB,4BAA4B,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC,CAsErH;AAED,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC,CA4F3G;AAED,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC,CAgD7G;AAED,wBAAsB,qBAAqB,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC,CAiC9G;AAID,wBAAsB,iBAAiB,CAAC,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC,CAwG3F;
|
|
1
|
+
{"version":3,"file":"handlers-n8n-manager.d.ts","sourceRoot":"","sources":["../../src/mcp/handlers-n8n-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -52,7 +52,6 @@ exports.handleGetExecution = handleGetExecution;
|
|
|
52
52
|
exports.handleListExecutions = handleListExecutions;
|
|
53
53
|
exports.handleDeleteExecution = handleDeleteExecution;
|
|
54
54
|
exports.handleHealthCheck = handleHealthCheck;
|
|
55
|
-
exports.handleListAvailableTools = handleListAvailableTools;
|
|
56
55
|
exports.handleDiagnostic = handleDiagnostic;
|
|
57
56
|
exports.handleWorkflowVersions = handleWorkflowVersions;
|
|
58
57
|
const n8n_api_client_1 = require("../services/n8n-api-client");
|
|
@@ -1137,7 +1136,7 @@ async function handleHealthCheck(context) {
|
|
|
1137
1136
|
'1. Verify n8n instance is running',
|
|
1138
1137
|
'2. Check N8N_API_URL is correct',
|
|
1139
1138
|
'3. Verify N8N_API_KEY has proper permissions',
|
|
1140
|
-
'4. Run
|
|
1139
|
+
'4. Run n8n_health_check with mode="diagnostic" for detailed analysis'
|
|
1141
1140
|
]
|
|
1142
1141
|
}
|
|
1143
1142
|
};
|
|
@@ -1148,60 +1147,6 @@ async function handleHealthCheck(context) {
|
|
|
1148
1147
|
};
|
|
1149
1148
|
}
|
|
1150
1149
|
}
|
|
1151
|
-
async function handleListAvailableTools(context) {
|
|
1152
|
-
const tools = [
|
|
1153
|
-
{
|
|
1154
|
-
category: 'Workflow Management',
|
|
1155
|
-
tools: [
|
|
1156
|
-
{ name: 'n8n_create_workflow', description: 'Create new workflows' },
|
|
1157
|
-
{ name: 'n8n_get_workflow', description: 'Get workflow by ID' },
|
|
1158
|
-
{ name: 'n8n_get_workflow_details', description: 'Get detailed workflow info with stats' },
|
|
1159
|
-
{ name: 'n8n_get_workflow_structure', description: 'Get simplified workflow structure' },
|
|
1160
|
-
{ name: 'n8n_get_workflow_minimal', description: 'Get minimal workflow info' },
|
|
1161
|
-
{ name: 'n8n_update_workflow', description: 'Update existing workflows' },
|
|
1162
|
-
{ name: 'n8n_delete_workflow', description: 'Delete workflows' },
|
|
1163
|
-
{ name: 'n8n_list_workflows', description: 'List workflows with filters' },
|
|
1164
|
-
{ name: 'n8n_validate_workflow', description: 'Validate workflow from n8n instance' },
|
|
1165
|
-
{ name: 'n8n_autofix_workflow', description: 'Automatically fix common workflow errors' }
|
|
1166
|
-
]
|
|
1167
|
-
},
|
|
1168
|
-
{
|
|
1169
|
-
category: 'Execution Management',
|
|
1170
|
-
tools: [
|
|
1171
|
-
{ name: 'n8n_trigger_webhook_workflow', description: 'Trigger workflows via webhook' },
|
|
1172
|
-
{ name: 'n8n_get_execution', description: 'Get execution details' },
|
|
1173
|
-
{ name: 'n8n_list_executions', description: 'List executions with filters' },
|
|
1174
|
-
{ name: 'n8n_delete_execution', description: 'Delete execution records' }
|
|
1175
|
-
]
|
|
1176
|
-
},
|
|
1177
|
-
{
|
|
1178
|
-
category: 'System',
|
|
1179
|
-
tools: [
|
|
1180
|
-
{ name: 'n8n_health_check', description: 'Check API connectivity' },
|
|
1181
|
-
{ name: 'n8n_list_available_tools', description: 'List all available tools' }
|
|
1182
|
-
]
|
|
1183
|
-
}
|
|
1184
|
-
];
|
|
1185
|
-
const config = (0, n8n_api_1.getN8nApiConfig)();
|
|
1186
|
-
const apiConfigured = config !== null;
|
|
1187
|
-
return {
|
|
1188
|
-
success: true,
|
|
1189
|
-
data: {
|
|
1190
|
-
tools,
|
|
1191
|
-
apiConfigured,
|
|
1192
|
-
configuration: config ? {
|
|
1193
|
-
apiUrl: config.baseUrl,
|
|
1194
|
-
timeout: config.timeout,
|
|
1195
|
-
maxRetries: config.maxRetries
|
|
1196
|
-
} : null,
|
|
1197
|
-
limitations: [
|
|
1198
|
-
'Cannot execute workflows directly (must use webhooks)',
|
|
1199
|
-
'Cannot stop running executions',
|
|
1200
|
-
'Tags and credentials have limited API support'
|
|
1201
|
-
]
|
|
1202
|
-
}
|
|
1203
|
-
};
|
|
1204
|
-
}
|
|
1205
1150
|
function detectCloudPlatform() {
|
|
1206
1151
|
if (process.env.RAILWAY_ENVIRONMENT)
|
|
1207
1152
|
return 'railway';
|
|
@@ -1399,8 +1344,8 @@ async function handleDiagnostic(request, context) {
|
|
|
1399
1344
|
apiStatus.error = error instanceof Error ? error.message : 'Unknown error';
|
|
1400
1345
|
}
|
|
1401
1346
|
}
|
|
1402
|
-
const documentationTools =
|
|
1403
|
-
const managementTools = apiConfigured ?
|
|
1347
|
+
const documentationTools = 7;
|
|
1348
|
+
const managementTools = apiConfigured ? 12 : 0;
|
|
1404
1349
|
const totalTools = documentationTools + managementTools;
|
|
1405
1350
|
const versionCheck = await (0, npm_version_checker_1.checkNpmVersion)();
|
|
1406
1351
|
const cacheMetricsData = getInstanceCacheMetrics();
|
|
@@ -1527,7 +1472,7 @@ async function handleDiagnostic(request, context) {
|
|
|
1527
1472
|
example: 'validate_workflow({workflow: {...}})'
|
|
1528
1473
|
}
|
|
1529
1474
|
],
|
|
1530
|
-
note: '
|
|
1475
|
+
note: '14 documentation tools available without API configuration'
|
|
1531
1476
|
},
|
|
1532
1477
|
whatYouCannotDo: [
|
|
1533
1478
|
'โ Create/update workflows in n8n instance',
|
|
@@ -1542,8 +1487,8 @@ async function handleDiagnostic(request, context) {
|
|
|
1542
1487
|
' N8N_API_URL=https://your-n8n-instance.com',
|
|
1543
1488
|
' N8N_API_KEY=your_api_key_here',
|
|
1544
1489
|
'3. Restart the MCP server',
|
|
1545
|
-
'4. Run
|
|
1546
|
-
'5. All
|
|
1490
|
+
'4. Run n8n_health_check with mode="diagnostic" to verify',
|
|
1491
|
+
'5. All 19 tools will be available!'
|
|
1547
1492
|
],
|
|
1548
1493
|
documentation: 'https://github.com/czlonkowski/n8n-mcp?tab=readme-ov-file#n8n-management-tools-optional---requires-api-configuration'
|
|
1549
1494
|
}
|