feat: Complete Skill #2 - n8n MCP Tools Expert

Implements comprehensive guidance for using n8n-mcp MCP tools effectively.
This is the HIGHEST PRIORITY skill that addresses the 20% MCP tool failure rate.

Files created:
- 5 evaluations testing tool selection, nodeType formats, validation, and smart parameters
- SKILL.md (505 lines) - Core tool usage guide with telemetry insights
- SEARCH_GUIDE.md (243 lines) - Node discovery tools (search, essentials vs info)
- VALIDATION_GUIDE.md (377 lines) - Configuration validation and auto-sanitization
- WORKFLOW_GUIDE.md (385 lines) - Workflow management with 15 operation types
- README.md - Skill metadata emphasizing highest priority

Key features:
- Tool selection guide with success rates (search_nodes 99.9%, get_node_essentials 91.7%)
- nodeType format distinction (nodes-base.* vs n8n-nodes-base.*)
- Validation profiles explained (minimal/runtime/ai-friendly/strict)
- Smart parameters for IF/Switch nodes (branch="true", case=0)
- Auto-sanitization system for operator structures
- Telemetry insights (56s between edits, 18s search→essentials, 23s+58s validate→fix)
- AI connection types (8 types documented)

Total: ~1,650 lines across 10 files

Based on analysis of 447,557 real MCP tool usage events.

🤖 Conceived by Romuald Członkowski - https://www.aiadvisors.pl/en
This commit is contained in:
czlonkowski
2025-10-20 10:26:40 +02:00
parent 9a5e0c0b89
commit f7d34f2b8e
10 changed files with 1737 additions and 0 deletions

View File

@@ -0,0 +1,24 @@
{
"id": "mcp-001",
"skills": ["n8n-mcp-tools-expert"],
"query": "I need to find a node that can send messages to Slack. Which n8n-mcp tool should I use and how?",
"expected_behavior": [
"Recommends search_nodes as the starting tool",
"Provides correct syntax: search_nodes({query: 'slack'})",
"Explains the nodeType format returned (nodes-base.slack)",
"Suggests following up with get_node_essentials for configuration details",
"References the search → essentials workflow pattern",
"Mentions the tool is <20ms fast"
],
"baseline_without_skill": {
"likely_response": "May suggest searching documentation or using generic search, unlikely to know specific MCP tool names and syntax",
"expected_quality": "Low - would not know n8n-mcp specific tools"
},
"with_skill_expected": {
"response_quality": "High - precise tool recommendation with syntax",
"uses_skill_content": true,
"provides_correct_tool": true,
"shows_proper_workflow": true,
"explains_nodeType_format": true
}
}

View File

@@ -0,0 +1,24 @@
{
"id": "mcp-002",
"skills": ["n8n-mcp-tools-expert"],
"query": "I'm getting 'node not found' errors when calling get_node_essentials. I'm using 'slack' as the nodeType. What's wrong?",
"expected_behavior": [
"Identifies incorrect nodeType format",
"Explains need for prefix: 'nodes-base.slack' not just 'slack'",
"Distinguishes between nodeType (nodes-base.*) and workflowNodeType (n8n-nodes-base.*)",
"Provides correct syntax: get_node_essentials({nodeType: 'nodes-base.slack'})",
"References nodeType format documentation from SKILL.md",
"Warns about common format confusion"
],
"baseline_without_skill": {
"likely_response": "May suggest checking spelling or tool availability, unlikely to know specific prefix requirements",
"expected_quality": "Low - would not understand nodeType format nuances"
},
"with_skill_expected": {
"response_quality": "High - immediately identifies format issue",
"uses_skill_content": true,
"provides_correct_format": true,
"explains_prefix_difference": true,
"gives_working_example": true
}
}

View File

@@ -0,0 +1,25 @@
{
"id": "mcp-003",
"skills": ["n8n-mcp-tools-expert"],
"query": "I've created a Slack node configuration and want to make sure it's valid before deploying. Walk me through the validation process using n8n-mcp tools.",
"expected_behavior": [
"Recommends validate_node_operation tool",
"Explains validation profiles (minimal, runtime, ai-friendly, strict)",
"Recommends 'runtime' profile for pre-deployment",
"Shows complete validation syntax with all parameters",
"Explains validation loop pattern (validate → fix → validate again)",
"References VALIDATION_GUIDE.md",
"Mentions 23s avg thinking time, 58s avg fixing time from telemetry"
],
"baseline_without_skill": {
"likely_response": "May suggest testing the workflow or checking documentation, unlikely to know validation tools and profiles",
"expected_quality": "Medium - might guess at validation but miss profile options"
},
"with_skill_expected": {
"response_quality": "High - complete validation workflow with profiles",
"uses_skill_content": true,
"recommends_correct_profile": true,
"shows_validation_loop": true,
"explains_error_handling": true
}
}

View File

@@ -0,0 +1,25 @@
{
"id": "mcp-004",
"skills": ["n8n-mcp-tools-expert"],
"query": "Should I use get_node_info or get_node_essentials to understand how to configure a node? What's the difference?",
"expected_behavior": [
"Strongly recommends get_node_essentials for most cases",
"Explains size difference (5KB vs 100KB+)",
"Explains success rate difference (91.7% vs 80%)",
"Lists when to use get_node_info (debugging complex issues, need full schema)",
"Provides performance comparison (<10ms vs slower)",
"References the 20% failure rate for get_node_info",
"Shows examples of both tool calls"
],
"baseline_without_skill": {
"likely_response": "May assume more data is better, unlikely to know performance and reliability differences",
"expected_quality": "Low - would not understand the critical difference"
},
"with_skill_expected": {
"response_quality": "High - clear recommendation with data-driven reasoning",
"uses_skill_content": true,
"recommends_essentials": true,
"explains_trade_offs": true,
"provides_both_examples": true
}
}

View File

@@ -0,0 +1,25 @@
{
"id": "mcp-005",
"skills": ["n8n-mcp-tools-expert"],
"query": "I'm using n8n_update_partial_workflow to connect an IF node to two different handlers. How do I specify which branch (true or false) each connection should use?",
"expected_behavior": [
"Explains smart parameters for multi-output nodes",
"Shows branch parameter: branch='true' or branch='false'",
"Provides complete example with addConnection operation",
"Explains this is simpler than using sourceIndex manually",
"Mentions Switch nodes use case=N parameter",
"References WORKFLOW_GUIDE.md for more details",
"Shows both true and false branch connections"
],
"baseline_without_skill": {
"likely_response": "May suggest using output indices without knowing semantic parameters exist",
"expected_quality": "Medium - might work but miss the easier smart parameter approach"
},
"with_skill_expected": {
"response_quality": "High - teaches smart parameters for cleaner code",
"uses_skill_content": true,
"shows_branch_parameter": true,
"provides_working_example": true,
"mentions_switch_equivalent": true
}
}