mirror of
https://github.com/czlonkowski/n8n-skills.git
synced 2026-03-16 23:43:08 +00:00
## Phase 1 Achievements ✅ Repository Structure: - Created complete directory structure (skills/, evaluations/) - Updated .gitignore (removed docs/, keep .mcp.json) ✅ MCP Testing: - Verified n8n API availability (https://n8n-test.n8n-mcp.com) - Tested MCP tools comprehensively - Created MCP_TESTING_LOG.md with real tool responses ✅ Documentation: - README.md: Comprehensive project overview with data-driven insights - INSTALLATION.md: Complete installation guide for all platforms - USAGE.md: Detailed usage examples and cross-skill composition - DEVELOPMENT.md: Development guidelines and contribution process ## Key Insights from MCP Testing - 537 nodes available (437 base + 100 langchain) - 2,653 templates with metadata - nodeType format differences documented - Webhook data structure clarified ($json.body) - Auto-sanitization behavior documented - All n8n_* tools require API; all others don't ## Next: Phase 2 - Skill #1 (n8n Expression Syntax) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> Conceived by Romuald Członkowski - https://www.aiadvisors.pl/en
172 lines
4.5 KiB
Markdown
172 lines
4.5 KiB
Markdown
# MCP Tool Testing Log
|
|
## Generated: 2025-10-20
|
|
## Purpose: Document actual tool responses for skill content creation
|
|
|
|
This log contains real responses from n8n-mcp tools to inform accurate skill content.
|
|
|
|
---
|
|
|
|
## n8n API Status
|
|
|
|
**Health Check Result**:
|
|
```json
|
|
{
|
|
"status": "ok",
|
|
"apiUrl": "https://n8n-test.n8n-mcp.com",
|
|
"mcpVersion": "2.20.3",
|
|
"versionCheck": "up to date",
|
|
"responseTime": 798ms
|
|
}
|
|
```
|
|
|
|
✅ **n8n API Tools Available**: All workflow creation/management tools functional
|
|
|
|
---
|
|
|
|
## Database Statistics
|
|
|
|
```json
|
|
{
|
|
"totalNodes": 537,
|
|
"totalTemplates": 2653,
|
|
"statistics": {
|
|
"aiTools": 270,
|
|
"triggers": 108,
|
|
"versionedNodes": 141,
|
|
"nodesWithDocumentation": 470,
|
|
"documentationCoverage": "88%"
|
|
},
|
|
"packageBreakdown": [
|
|
{"package": "@n8n/n8n-nodes-langchain", "nodeCount": 100},
|
|
{"package": "n8n-nodes-base", "nodeCount": 437}
|
|
]
|
|
}
|
|
```
|
|
|
|
**Key Insights**:
|
|
- 537 nodes total (437 base + 100 langchain)
|
|
- 270 AI-capable tools
|
|
- 108 trigger nodes
|
|
- 88% documentation coverage
|
|
- 2,653 templates with avg 4,115 views
|
|
|
|
---
|
|
|
|
## Search Tool Testing
|
|
|
|
### search_nodes - Common Queries
|
|
|
|
**Query: "webhook"** → Returns Webhook (trigger), Respond to Webhook (transform)
|
|
- nodeType format: `nodes-base.webhook`
|
|
- workflowNodeType format: `n8n-nodes-base.webhook`
|
|
- ⚠️ **Critical**: Use different formats for different tools!
|
|
|
|
**Query: "http"** → Returns HTTP Request, HTTP Request Tool (AI), Code Tool
|
|
- Regular: `nodes-base.httpRequest`
|
|
- AI Tool: `nodes-langchain.toolHttpRequest`
|
|
|
|
**Query: "database"** → Returns Firebase, Redis Vector Store, etc.
|
|
|
|
---
|
|
|
|
## Node Essentials Testing
|
|
|
|
### Webhook Node
|
|
|
|
**Key Properties**:
|
|
- `httpMethod`: GET, POST, PUT, DELETE, etc. (default: GET)
|
|
- `path`: Webhook URL path (e.g., "form-submit")
|
|
- `responseMode`: onReceived, lastNode, responseNode
|
|
- **CRITICAL**: Webhook data structure is `$json.body.*` not `$json.*`
|
|
|
|
**Output Structure**:
|
|
```javascript
|
|
{
|
|
"headers": {...},
|
|
"params": {...},
|
|
"query": {...},
|
|
"body": { // ⚠️ User data is HERE!
|
|
"name": "John",
|
|
"email": "john@example.com"
|
|
}
|
|
}
|
|
```
|
|
|
|
---
|
|
|
|
## Validation Testing
|
|
|
|
### Validation Profiles Comparison
|
|
|
|
**Test Config**: `{resource: "channel", operation: "create"}` on Slack node
|
|
|
|
**Result**: Missing required field "name"
|
|
- All profiles detected this error
|
|
- Fix provided: "Provide a channel name"
|
|
- Warning about rate limits (best practice)
|
|
|
|
---
|
|
|
|
## Template Analysis
|
|
|
|
**Total Templates**: 2,653
|
|
**Popular Templates** (webhook + slack):
|
|
- #2947: Weather via Slack (1,500 views) - Webhook → OpenStreetMap → NWS → Slack
|
|
- #4039: Download Slack Media (778 views) - SlackTrigger → HTTP Request
|
|
- #5529: Jamf Patch to Slack (147 views) - Complex multi-node
|
|
|
|
**Key Pattern**: Webhook → Transform → Action → Notify (5-7 nodes avg)
|
|
|
|
---
|
|
|
|
## Critical Findings for Skills
|
|
|
|
### 1. Expression Syntax (Skill #1)
|
|
- ✅ Webhook data under `.body` (not root)
|
|
- ✅ Code nodes use direct access ($json), NOT expressions ({{}})
|
|
- ✅ Node references: `$node["Node Name"].json.field`
|
|
|
|
### 2. MCP Tools Expert (Skill #2)
|
|
- ✅ nodeType formats differ: `nodes-base.*` vs `n8n-nodes-base.*`
|
|
- ✅ get_node_essentials preferred over get_node_info (5KB vs 100KB+)
|
|
- ✅ Validation profiles: minimal/runtime/ai-friendly/strict
|
|
- ✅ Smart parameters: branch="true"/"false" for IF, case=N for Switch
|
|
- ✅ Auto-sanitization runs on ALL nodes during any update
|
|
|
|
### 3. Workflow Patterns (Skill #3)
|
|
- ✅ 2,653 real templates available
|
|
- ✅ Template metadata includes complexity, setup time, services
|
|
- ✅ Common pattern: Trigger → Process → Act (5-7 nodes)
|
|
- ✅ Webhook workflows: 27.6% of all workflows
|
|
|
|
### 4. Validation Expert (Skill #4)
|
|
- ✅ Real validation errors documented
|
|
- ✅ Auto-sanitization fixes operator structures
|
|
- ✅ Binary operators (equals, contains) vs unary (isEmpty, isNotEmpty)
|
|
|
|
### 5. Node Configuration (Skill #5)
|
|
- ✅ Property dependencies documented (e.g., sendBody → contentType)
|
|
- ✅ Operation-specific requirements vary
|
|
- ✅ 8 AI connection types supported
|
|
|
|
---
|
|
|
|
## Tools Availability Summary
|
|
|
|
**Available WITHOUT n8n API**:
|
|
- search_nodes, list_nodes, get_node_essentials ✅
|
|
- validate_node_minimal, validate_node_operation ✅
|
|
- validate_workflow, get_property_dependencies ✅
|
|
- search_templates, get_template, list_tasks ✅
|
|
|
|
**Requires n8n API** (AVAILABLE at n8n-test.n8n-mcp.com):
|
|
- n8n_create_workflow ✅
|
|
- n8n_update_partial_workflow ✅
|
|
- n8n_validate_workflow (by ID) ✅
|
|
- n8n_list_workflows, n8n_get_workflow ✅
|
|
- n8n_trigger_webhook_workflow ✅
|
|
|
|
---
|
|
|
|
**Testing Complete**: Ready for skill implementation with real data!
|