Expert guide for using n8n-mcp MCP tools effectively. Use when searching for nodes, validating configurations, accessing templates, managing workflows, or using any n8n-mcp tool. Provides tool selection guidance, parameter formats, and common patterns.
Add this skill
npx mdskills install czlonkowski/n8n-mcp-tools-expertComprehensive guide for n8n-mcp tools with clear workflows, common patterns, and actionable troubleshooting
1---2name: n8n-mcp-tools-expert3description: Expert guide for using n8n-mcp MCP tools effectively. Use when searching for nodes, validating configurations, accessing templates, managing workflows, or using any n8n-mcp tool. Provides tool selection guidance, parameter formats, and common patterns.4---56# n8n MCP Tools Expert78Master guide for using n8n-mcp MCP server tools to build workflows.910---1112## Tool Categories1314n8n-mcp provides tools organized into categories:15161. **Node Discovery** → [SEARCH_GUIDE.md](SEARCH_GUIDE.md)172. **Configuration Validation** → [VALIDATION_GUIDE.md](VALIDATION_GUIDE.md)183. **Workflow Management** → [WORKFLOW_GUIDE.md](WORKFLOW_GUIDE.md)194. **Template Library** - Search and deploy 2,700+ real workflows205. **Documentation & Guides** - Tool docs, AI agent guide, Code node guides2122---2324## Quick Reference2526### Most Used Tools (by success rate)2728| Tool | Use When | Speed |29|------|----------|-------|30| `search_nodes` | Finding nodes by keyword | <20ms |31| `get_node` | Understanding node operations (detail="standard") | <10ms |32| `validate_node` | Checking configurations (mode="full") | <100ms |33| `n8n_create_workflow` | Creating workflows | 100-500ms |34| `n8n_update_partial_workflow` | Editing workflows (MOST USED!) | 50-200ms |35| `validate_workflow` | Checking complete workflow | 100-500ms |36| `n8n_deploy_template` | Deploy template to n8n instance | 200-500ms |3738---3940## Tool Selection Guide4142### Finding the Right Node4344**Workflow**:45```461. search_nodes({query: "keyword"})472. get_node({nodeType: "nodes-base.name"})483. [Optional] get_node({nodeType: "nodes-base.name", mode: "docs"})49```5051**Example**:52```javascript53// Step 1: Search54search_nodes({query: "slack"})55// Returns: nodes-base.slack5657// Step 2: Get details58get_node({nodeType: "nodes-base.slack"})59// Returns: operations, properties, examples (standard detail)6061// Step 3: Get readable documentation62get_node({nodeType: "nodes-base.slack", mode: "docs"})63// Returns: markdown documentation64```6566**Common pattern**: search → get_node (18s average)6768### Validating Configuration6970**Workflow**:71```721. validate_node({nodeType, config: {}, mode: "minimal"}) - Check required fields732. validate_node({nodeType, config, profile: "runtime"}) - Full validation743. [Repeat] Fix errors, validate again75```7677**Common pattern**: validate → fix → validate (23s thinking, 58s fixing per cycle)7879### Managing Workflows8081**Workflow**:82```831. n8n_create_workflow({name, nodes, connections})842. n8n_validate_workflow({id})853. n8n_update_partial_workflow({id, operations: [...]})864. n8n_validate_workflow({id}) again875. n8n_update_partial_workflow({id, operations: [{type: "activateWorkflow"}]})88```8990**Common pattern**: iterative updates (56s average between edits)9192---9394## Critical: nodeType Formats9596**Two different formats** for different tools!9798### Format 1: Search/Validate Tools99```javascript100// Use SHORT prefix101"nodes-base.slack"102"nodes-base.httpRequest"103"nodes-base.webhook"104"nodes-langchain.agent"105```106107**Tools that use this**:108- search_nodes (returns this format)109- get_node110- validate_node111- validate_workflow112113### Format 2: Workflow Tools114```javascript115// Use FULL prefix116"n8n-nodes-base.slack"117"n8n-nodes-base.httpRequest"118"n8n-nodes-base.webhook"119"@n8n/n8n-nodes-langchain.agent"120```121122**Tools that use this**:123- n8n_create_workflow124- n8n_update_partial_workflow125126### Conversion127128```javascript129// search_nodes returns BOTH formats130{131 "nodeType": "nodes-base.slack", // For search/validate tools132 "workflowNodeType": "n8n-nodes-base.slack" // For workflow tools133}134```135136---137138## Common Mistakes139140### Mistake 1: Wrong nodeType Format141142**Problem**: "Node not found" error143144```javascript145// WRONG146get_node({nodeType: "slack"}) // Missing prefix147get_node({nodeType: "n8n-nodes-base.slack"}) // Wrong prefix148149// CORRECT150get_node({nodeType: "nodes-base.slack"})151```152153### Mistake 2: Using detail="full" by Default154155**Problem**: Huge payload, slower response, token waste156157```javascript158// WRONG - Returns 3-8K tokens, use sparingly159get_node({nodeType: "nodes-base.slack", detail: "full"})160161// CORRECT - Returns 1-2K tokens, covers 95% of use cases162get_node({nodeType: "nodes-base.slack"}) // detail="standard" is default163get_node({nodeType: "nodes-base.slack", detail: "standard"})164```165166**When to use detail="full"**:167- Debugging complex configuration issues168- Need complete property schema with all nested options169- Exploring advanced features170171**Better alternatives**:1721. `get_node({detail: "standard"})` - for operations list (default)1732. `get_node({mode: "docs"})` - for readable documentation1743. `get_node({mode: "search_properties", propertyQuery: "auth"})` - for specific property175176### Mistake 3: Not Using Validation Profiles177178**Problem**: Too many false positives OR missing real errors179180**Profiles**:181- `minimal` - Only required fields (fast, permissive)182- `runtime` - Values + types (recommended for pre-deployment)183- `ai-friendly` - Reduce false positives (for AI configuration)184- `strict` - Maximum validation (for production)185186```javascript187// WRONG - Uses default profile188validate_node({nodeType, config})189190// CORRECT - Explicit profile191validate_node({nodeType, config, profile: "runtime"})192```193194### Mistake 4: Ignoring Auto-Sanitization195196**What happens**: ALL nodes sanitized on ANY workflow update197198**Auto-fixes**:199- Binary operators (equals, contains) → removes singleValue200- Unary operators (isEmpty, isNotEmpty) → adds singleValue: true201- IF/Switch nodes → adds missing metadata202203**Cannot fix**:204- Broken connections205- Branch count mismatches206- Paradoxical corrupt states207208```javascript209// After ANY update, auto-sanitization runs on ALL nodes210n8n_update_partial_workflow({id, operations: [...]})211// → Automatically fixes operator structures212```213214### Mistake 5: Not Using Smart Parameters215216**Problem**: Complex sourceIndex calculations for multi-output nodes217218**Old way** (manual):219```javascript220// IF node connection221{222 type: "addConnection",223 source: "IF",224 target: "Handler",225 sourceIndex: 0 // Which output? Hard to remember!226}227```228229**New way** (smart parameters):230```javascript231// IF node - semantic branch names232{233 type: "addConnection",234 source: "IF",235 target: "True Handler",236 branch: "true" // Clear and readable!237}238239{240 type: "addConnection",241 source: "IF",242 target: "False Handler",243 branch: "false"244}245246// Switch node - semantic case numbers247{248 type: "addConnection",249 source: "Switch",250 target: "Handler A",251 case: 0252}253```254255### Mistake 6: Not Using intent Parameter256257**Problem**: Less helpful tool responses258259```javascript260// WRONG - No context for response261n8n_update_partial_workflow({262 id: "abc",263 operations: [{type: "addNode", node: {...}}]264})265266// CORRECT - Better AI responses267n8n_update_partial_workflow({268 id: "abc",269 intent: "Add error handling for API failures",270 operations: [{type: "addNode", node: {...}}]271})272```273274---275276## Tool Usage Patterns277278### Pattern 1: Node Discovery (Most Common)279280**Common workflow**: 18s average between steps281282```javascript283// Step 1: Search (fast!)284const results = await search_nodes({285 query: "slack",286 mode: "OR", // Default: any word matches287 limit: 20288});289// → Returns: nodes-base.slack, nodes-base.slackTrigger290291// Step 2: Get details (~18s later, user reviewing results)292const details = await get_node({293 nodeType: "nodes-base.slack",294 includeExamples: true // Get real template configs295});296// → Returns: operations, properties, metadata297```298299### Pattern 2: Validation Loop300301**Typical cycle**: 23s thinking, 58s fixing302303```javascript304// Step 1: Validate305const result = await validate_node({306 nodeType: "nodes-base.slack",307 config: {308 resource: "channel",309 operation: "create"310 },311 profile: "runtime"312});313314// Step 2: Check errors (~23s thinking)315if (!result.valid) {316 console.log(result.errors); // "Missing required field: name"317}318319// Step 3: Fix config (~58s fixing)320config.name = "general";321322// Step 4: Validate again323await validate_node({...}); // Repeat until clean324```325326### Pattern 3: Workflow Editing327328**Most used update tool**: 99.0% success rate, 56s average between edits329330```javascript331// Iterative workflow building (NOT one-shot!)332// Edit 1333await n8n_update_partial_workflow({334 id: "workflow-id",335 intent: "Add webhook trigger",336 operations: [{type: "addNode", node: {...}}]337});338339// ~56s later...340341// Edit 2342await n8n_update_partial_workflow({343 id: "workflow-id",344 intent: "Connect webhook to processor",345 operations: [{type: "addConnection", source: "...", target: "..."}]346});347348// ~56s later...349350// Edit 3 (validation)351await n8n_validate_workflow({id: "workflow-id"});352353// Ready? Activate!354await n8n_update_partial_workflow({355 id: "workflow-id",356 intent: "Activate workflow for production",357 operations: [{type: "activateWorkflow"}]358});359```360361---362363## Detailed Guides364365### Node Discovery Tools366See [SEARCH_GUIDE.md](SEARCH_GUIDE.md) for:367- search_nodes368- get_node with detail levels (minimal, standard, full)369- get_node modes (info, docs, search_properties, versions)370371### Validation Tools372See [VALIDATION_GUIDE.md](VALIDATION_GUIDE.md) for:373- Validation profiles explained374- validate_node with modes (minimal, full)375- validate_workflow complete structure376- Auto-sanitization system377- Handling validation errors378379### Workflow Management380See [WORKFLOW_GUIDE.md](WORKFLOW_GUIDE.md) for:381- n8n_create_workflow382- n8n_update_partial_workflow (17 operation types!)383- Smart parameters (branch, case)384- AI connection types (8 types)385- Workflow activation (activateWorkflow/deactivateWorkflow)386- n8n_deploy_template387- n8n_workflow_versions388389---390391## Template Usage392393### Search Templates394395```javascript396// Search by keyword (default mode)397search_templates({398 query: "webhook slack",399 limit: 20400});401402// Search by node types403search_templates({404 searchMode: "by_nodes",405 nodeTypes: ["n8n-nodes-base.httpRequest", "n8n-nodes-base.slack"]406});407408// Search by task type409search_templates({410 searchMode: "by_task",411 task: "webhook_processing"412});413414// Search by metadata (complexity, setup time)415search_templates({416 searchMode: "by_metadata",417 complexity: "simple",418 maxSetupMinutes: 15419});420```421422### Get Template Details423424```javascript425get_template({426 templateId: 2947,427 mode: "structure" // nodes+connections only428});429430get_template({431 templateId: 2947,432 mode: "full" // complete workflow JSON433});434```435436### Deploy Template Directly437438```javascript439// Deploy template to your n8n instance440n8n_deploy_template({441 templateId: 2947,442 name: "My Weather to Slack", // Custom name (optional)443 autoFix: true, // Auto-fix common issues (default)444 autoUpgradeVersions: true // Upgrade node versions (default)445});446// Returns: workflow ID, required credentials, fixes applied447```448449---450451## Self-Help Tools452453### Get Tool Documentation454455```javascript456// Overview of all tools457tools_documentation()458459// Specific tool details460tools_documentation({461 topic: "search_nodes",462 depth: "full"463})464465// Code node guides466tools_documentation({topic: "javascript_code_node_guide", depth: "full"})467tools_documentation({topic: "python_code_node_guide", depth: "full"})468```469470### AI Agent Guide471472```javascript473// Comprehensive AI workflow guide474ai_agents_guide()475// Returns: Architecture, connections, tools, validation, best practices476```477478### Health Check479480```javascript481// Quick health check482n8n_health_check()483484// Detailed diagnostics485n8n_health_check({mode: "diagnostic"})486// → Returns: status, env vars, tool status, API connectivity487```488489---490491## Tool Availability492493**Always Available** (no n8n API needed):494- search_nodes, get_node495- validate_node, validate_workflow496- search_templates, get_template497- tools_documentation, ai_agents_guide498499**Requires n8n API** (N8N_API_URL + N8N_API_KEY):500- n8n_create_workflow501- n8n_update_partial_workflow502- n8n_validate_workflow (by ID)503- n8n_list_workflows, n8n_get_workflow504- n8n_test_workflow505- n8n_executions506- n8n_deploy_template507- n8n_workflow_versions508- n8n_autofix_workflow509510If API tools unavailable, use templates and validation-only workflows.511512---513514## Unified Tool Reference515516### get_node (Unified Node Information)517518**Detail Levels** (mode="info", default):519- `minimal` (~200 tokens) - Basic metadata only520- `standard` (~1-2K tokens) - Essential properties + operations (RECOMMENDED)521- `full` (~3-8K tokens) - Complete schema (use sparingly)522523**Operation Modes**:524- `info` (default) - Node schema with detail level525- `docs` - Readable markdown documentation526- `search_properties` - Find specific properties (use with propertyQuery)527- `versions` - List all versions with breaking changes528- `compare` - Compare two versions529- `breaking` - Show only breaking changes530- `migrations` - Show auto-migratable changes531532```javascript533// Standard (recommended)534get_node({nodeType: "nodes-base.httpRequest"})535536// Get documentation537get_node({nodeType: "nodes-base.webhook", mode: "docs"})538539// Search for properties540get_node({nodeType: "nodes-base.httpRequest", mode: "search_properties", propertyQuery: "auth"})541542// Check versions543get_node({nodeType: "nodes-base.executeWorkflow", mode: "versions"})544```545546### validate_node (Unified Validation)547548**Modes**:549- `full` (default) - Comprehensive validation with errors/warnings/suggestions550- `minimal` - Quick required fields check only551552**Profiles** (for mode="full"):553- `minimal` - Very lenient554- `runtime` - Standard (default, recommended)555- `ai-friendly` - Balanced for AI workflows556- `strict` - Most thorough (production)557558```javascript559// Full validation with runtime profile560validate_node({nodeType: "nodes-base.slack", config: {...}, profile: "runtime"})561562// Quick required fields check563validate_node({nodeType: "nodes-base.webhook", config: {}, mode: "minimal"})564```565566---567568## Performance Characteristics569570| Tool | Response Time | Payload Size |571|------|---------------|--------------|572| search_nodes | <20ms | Small |573| get_node (standard) | <10ms | ~1-2KB |574| get_node (full) | <100ms | 3-8KB |575| validate_node (minimal) | <50ms | Small |576| validate_node (full) | <100ms | Medium |577| validate_workflow | 100-500ms | Medium |578| n8n_create_workflow | 100-500ms | Medium |579| n8n_update_partial_workflow | 50-200ms | Small |580| n8n_deploy_template | 200-500ms | Medium |581582---583584## Best Practices585586### Do587- Use `get_node({detail: "standard"})` for most use cases588- Specify validation profile explicitly (`profile: "runtime"`)589- Use smart parameters (`branch`, `case`) for clarity590- Include `intent` parameter in workflow updates591- Follow search → get_node → validate workflow592- Iterate workflows (avg 56s between edits)593- Validate after every significant change594- Use `includeExamples: true` for real configs595- Use `n8n_deploy_template` for quick starts596597### Don't598- Use `detail: "full"` unless necessary (wastes tokens)599- Forget nodeType prefix (`nodes-base.*`)600- Skip validation profiles601- Try to build workflows in one shot (iterate!)602- Ignore auto-sanitization behavior603- Use full prefix (`n8n-nodes-base.*`) with search/validate tools604- Forget to activate workflows after building605606---607608## Summary609610**Most Important**:6111. Use **get_node** with `detail: "standard"` (default) - covers 95% of use cases6122. nodeType formats differ: `nodes-base.*` (search/validate) vs `n8n-nodes-base.*` (workflows)6133. Specify **validation profiles** (`runtime` recommended)6144. Use **smart parameters** (`branch="true"`, `case=0`)6155. Include **intent parameter** in workflow updates6166. **Auto-sanitization** runs on ALL nodes during updates6177. Workflows can be **activated via API** (`activateWorkflow` operation)6188. Workflows are built **iteratively** (56s avg between edits)619620**Common Workflow**:6211. search_nodes → find node6222. get_node → understand config6233. validate_node → check config6244. n8n_create_workflow → build6255. n8n_validate_workflow → verify6266. n8n_update_partial_workflow → iterate6277. activateWorkflow → go live!628629For details, see:630- [SEARCH_GUIDE.md](SEARCH_GUIDE.md) - Node discovery631- [VALIDATION_GUIDE.md](VALIDATION_GUIDE.md) - Configuration validation632- [WORKFLOW_GUIDE.md](WORKFLOW_GUIDE.md) - Workflow management633634---635636**Related Skills**:637- n8n Expression Syntax - Write expressions in workflow fields638- n8n Workflow Patterns - Architectural patterns from templates639- n8n Validation Expert - Interpret validation errors640- n8n Node Configuration - Operation-specific requirements641- n8n Code JavaScript - Write JavaScript in Code nodes642- n8n Code Python - Write Python in Code nodes643
Full transparency — inspect the skill content before installing.