n8n MCP Tools Expert
Master guide for using n8n-mcp MCP server tools to build workflows.
Tool Categories
n8n-mcp provides tools organized into categories:
- Node Discovery β SEARCH_GUIDE.md
- Configuration Validation β VALIDATION_GUIDE.md
- Workflow Management β WORKFLOW_GUIDE.md
- Template Library - Search and deploy 2,700+ real workflows
- Data Tables - Manage n8n data tables and rows (
n8n_manage_datatable)
- Credential Management - Full credential CRUD + schema discovery (
n8n_manage_credentials)
- Security & Audit - Instance security auditing with custom deep scan (
n8n_audit_instance)
- Documentation & Guides - Tool docs, AI agent guide, Code node guides
Quick Reference
Most Used Tools (by success rate)
| Tool |
Use When |
Speed |
search_nodes |
Finding nodes by keyword |
<20ms |
get_node |
Understanding node operations (detail="standard") |
<10ms |
validate_node |
Checking configurations (mode="full") |
<100ms |
n8n_create_workflow |
Creating workflows |
100-500ms |
n8n_update_partial_workflow |
Editing workflows (MOST USED!) |
50-200ms |
validate_workflow |
Checking complete workflow |
100-500ms |
n8n_deploy_template |
Deploy template to n8n instance |
200-500ms |
n8n_manage_datatable |
Managing data tables and rows |
50-500ms |
n8n_manage_credentials |
Credential CRUD + schema discovery |
50-500ms |
n8n_audit_instance |
Security audit (built-in + custom scan) |
500-5000ms |
n8n_autofix_workflow |
Auto-fix validation errors |
200-1500ms |
Tool Selection Guide
Finding the Right Node
Workflow:
1. search_nodes({query: "keyword"})
2. get_node({nodeType: "nodes-base.name"})
3. [Optional] get_node({nodeType: "nodes-base.name", mode: "docs"})
Example:
search_nodes({query: "slack"})
get_node({nodeType: "nodes-base.slack"})
get_node({nodeType: "nodes-base.slack", mode: "docs"})
Common pattern: search β get_node (18s average)
Validating Configuration
Workflow:
1. validate_node({nodeType, config: {}, mode: "minimal"}) - Check required fields
2. validate_node({nodeType, config, profile: "runtime"}) - Full validation
3. [Repeat] Fix errors, validate again
Common pattern: validate β fix β validate (23s thinking, 58s fixing per cycle)
Managing Workflows
Workflow:
1. n8n_create_workflow({name, nodes, connections})
2. n8n_validate_workflow({id})
3. n8n_update_partial_workflow({id, operations: [...]})
4. n8n_validate_workflow({id}) again
5. n8n_update_partial_workflow({id, operations: [{type: "activateWorkflow"}]})
Common pattern: iterative updates (56s average between edits)
Critical: nodeType Formats
Two different formats for different tools!
Format 1: Search/Validate Tools
"nodes-base.slack"
"nodes-base.httpRequest"
"nodes-base.webhook"
"nodes-langchain.agent"
Tools that use this:
- search_nodes (returns this format)
- get_node
- validate_node
- validate_workflow
Format 2: Workflow Tools
"n8n-nodes-base.slack"
"n8n-nodes-base.httpRequest"
"n8n-nodes-base.webhook"
"@n8n/n8n-nodes-langchain.agent"
Tools that use this:
- n8n_create_workflow
- n8n_update_partial_workflow
Conversion
{
"nodeType": "nodes-base.slack",
"workflowNodeType": "n8n-nodes-base.slack"
}
Common Mistakes
Mistake 1: Wrong nodeType Format
Problem: "Node not found" error
get_node({nodeType: "slack"})
get_node({nodeType: "n8n-nodes-base.slack"})
get_node({nodeType: "nodes-base.slack"})
Mistake 2: Using detail="full" by Default
Problem: Huge payload, slower response, token waste
get_node({nodeType: "nodes-base.slack", detail: "full"})
get_node({nodeType: "nodes-base.slack"})
get_node({nodeType: "nodes-base.slack", detail: "standard"})
When to use detail="full":
- Debugging complex configuration issues
- Need complete property schema with all nested options
- Exploring advanced features
Better alternatives:
get_node({detail: "standard"}) - for operations list (default)
get_node({mode: "docs"}) - for readable documentation
get_node({mode: "search_properties", propertyQuery: "auth"}) - for specific property
Mistake 3: Not Using Validation Profiles
Problem: Too many false positives OR missing real errors
Profiles:
minimal - Only required fields (fast, permissive)
runtime - Values + types (recommended for pre-deployment)
ai-friendly - Reduce false positives (for AI configuration)
strict - Maximum validation (for production)
validate_node({nodeType, config})
validate_node({nodeType, config, profile: "runtime"})
Mistake 4: Ignoring Auto-Sanitization
What happens: ALL nodes sanitized on ANY workflow update
Auto-fixes:
- Binary operators (equals, contains) β removes singleValue
- Unary operators (isEmpty, isNotEmpty) β adds singleValue: true
- IF/Switch nodes β adds missing metadata
Cannot fix:
- Broken connections
- Branch count mismatches
- Paradoxical corrupt states
n8n_update_partial_workflow({id, operations: [...]})
Mistake 5: Not Using Smart Parameters
Problem: Complex sourceIndex calculations for multi-output nodes
Old way (manual):
{
type: "addConnection",
source: "IF",
target: "Handler",
sourceIndex: 0
}
New way (smart parameters):
{
type: "addConnection",
source: "IF",
target: "True Handler",
branch: "true"
}
{
type: "addConnection",
source: "IF",
target: "False Handler",
branch: "false"
}
{
type: "addConnection",
source: "Switch",
target: "Handler A",
case: 0
}
Mistake 6: Not Using intent Parameter
Problem: Less helpful tool responses
n8n_update_partial_workflow({
id: "abc",
operations: [{type: "addNode", node: {...}}]
})
n8n_update_partial_workflow({
id: "abc",
intent: "Add error handling for API failures",
operations: [{type: "addNode", node: {...}}]