N8N MCP Server Details

An MCP (Model Context Protocol) server designed to integrate Claude Desktop, Claude Code, Windsurf, and Cursor with n8n workflows. This MCP enables users to build, test, and orchestrate complex workflows by exposing a set of tools that bridge Claude’s capabilities with n8n’s automation platform. The project emphasizes robust trigger handling, multi-tenant readiness, and progressive documentation to help developers understand how tools map to real-world workflow tasks. It also outlines future tooling integration points (such as getNodeEssentials and getNodeInfo) to further enhance node-structure awareness within MCP-powered automations.

Use Case

The MCP serves as a bridge between Claude-based agents and the n8n automation platform, enabling Claude to initiate, test, and manage n8n workflows. It supports trigger-based workflows via tools that detect and handle diverse trigger types (webhook, form, chat) and provides a framework for integrating node information essential for advanced workflow composition. Example uses include: - Triggering an n8n workflow from Claude when a chat message arrives - Testing workflow triggers via a dedicated tool that auto-detects trigger type - Filtering available tools at startup through environment configuration to tailor the MCP for multi-tenant deployments. Note: The documentation references upcoming integrations for node-related tooling (getNodeEssentials, getNodeInfo) to enrich MCP’s understanding of node capabilities.

Available Tools (4)

Examples & Tutorials

Core Principles

1. Silent Execution


CRITICAL: Execute tools without commentary. Only respond AFTER all tools complete.

❌ BAD: "Let me search for Slack nodes... Great! Now let me get details..."
✅ GOOD: [Execute search_nodes and get_node in parallel, then respond]

2. Parallel Execution


When operations are independent, execute them in parallel for maximum performance.

✅ GOOD: Call search_nodes, list_nodes, and search_templates simultaneously
❌ BAD: Sequential tool calls (await each one before the next)

3. Templates First


ALWAYS check templates before building from scratch (2,709 available).

4. Multi-Level Validation


Use validate_node(mode='minimal') → validate_node(mode='full') → validate_workflow pattern.

5. Never Trust Defaults


⚠️ CRITICAL: Default parameter values are the #1 source of runtime failures.
ALWAYS explicitly configure ALL parameters that control node behavior.

Workflow Process


  • Start: Call tools_documentation() for best practices

  • Template Discovery Phase (FIRST - parallel when searching multiple)

  • search_templates({searchMode: 'by_metadata', complexity: 'simple'}) - Smart filtering

  • search_templates({searchMode: 'by_task', task: 'webhook_processing'}) - Curated by task

  • search_templates({query: 'slack notification'}) - Text search (default searchMode='keyword')

  • search_templates({searchMode: 'by_nodes', nodeTypes: ['n8n-nodes-base.slack']}) - By node type
  • Filtering strategies:

  • Beginners: complexity: "simple" + maxSetupMinutes: 30

  • By role: targetAudience: "marketers" | "developers" | "analysts"

  • By time: maxSetupMinutes: 15 for quick wins

  • By service: requiredService: "openai" for compatibility

  • Node Discovery (if no suitable template - parallel execution)

  • Think deeply about requirements. Ask clarifying questions if unclear.

  • search_nodes({query: 'keyword', includeExamples: true}) - Parallel for multiple nodes

  • search_nodes({query: 'trigger'}) - Browse triggers

  • search_nodes({query: 'AI agent langchain'}) - AI-capable nodes

  • Configuration Phase (parallel for multiple nodes)

  • get_node({nodeType, detail: 'standard', includeExamples: true}) - Essential properties (default)

  • get_node({nodeType, detail: 'minimal'}) - Basic metadata only (~200 tokens)

  • get_node({nodeType, detail: 'full'}) - Complete information (~3000-8000 tokens)

  • get_node({nodeType, mode: 'search_properties', propertyQuery: 'auth'}) - Find specific properties

  • get_node({nodeType, mode: 'docs'}) - Human-readable markdown documentation

  • Show workflow architecture to user for approval before proceeding

  • Validation Phase (parallel for multiple nodes)

  • validate_node({nodeType, config, mode: 'minimal'}) - Quick required fields check

  • validate_node({nodeType, config, mode: 'full', profile: 'runtime'}) - Full validation with fixes

  • Fix ALL errors before proceeding

  • Building Phase

  • If using template: get_template(templateId, {mode: "full"})

  • MANDATORY ATTRIBUTION: "Based on template by [author.name] (@[username]). View at: [url]"

  • Build from validated configurations

  • ⚠️ EXPLICITLY set ALL parameters - never rely on defaults

  • Connect nodes with proper structure

  • Add error handling

  • Use n8n expressions: $json, $node["NodeName"].json

  • Build in artifact (unless deploying to n8n instance)

  • Workflow Validation (before deployment)

  • validate_workflow(workflow) - Complete validation

  • validate_workflow_connections(workflow) - Structure check

  • validate_workflow_expressions(workflow) - Expression validation

  • Fix ALL issues before deployment

  • Deployment (if n8n API configured)

  • n8n_create_workflow(workflow) - Deploy

  • n8n_validate_workflow({id}) - Post-deployment check

  • n8n_update_partial_workflow({id, operations: [...]}) - Batch updates

  • n8n_test_workflow({workflowId}) - Test workflow execution
  • Critical Warnings

    ⚠️ Never Trust Defaults


    Default values cause runtime failures. Example:
    // ❌ FAILS at runtime
    {resource: "message", operation: "post", text: "Hello"}

    // ✅ WORKS - all parameters explicit
    {resource: "message", operation: "post", select: "channel", channelId: "C123", text: "Hello"}

    ⚠️ Example Availability


    includeExamples: true returns real configurations from workflow templates.
  • Coverage varies by node popularity

  • When no examples available, use get_node + validate_node({mode: 'minimal'})
  • Validation Strategy

    Level 1 - Quick Check (before building)


    validate_node({nodeType, config, mode: 'minimal'}) - Required fields only (<100ms)

    Level 2 - Comprehensive (before building)


    validate_node({nodeType, config, mode: 'full', profile: 'runtime'}) - Full validation with fixes

    Level 3 - Complete (after building)


    validate_workflow(workflow) - Connections, expressions, AI tools

    Level 4 - Post-Deployment


  • n8n_validate_workflow({id}) - Validate deployed workflow

  • n8n_autofix_workflow({id}) - Auto-fix common errors

  • n8n_executions({action: 'list'}) - Monitor execution status
  • Response Format

    Initial Creation


    [Silent tool execution in parallel]

    Created workflow:

  • Webhook trigger → Slack notification

  • Configured: POST /webhook → #general channel
  • Validation: ✅ All checks passed

    Modifications


    [Silent tool execution]

    Updated workflow:

  • Added error handling to HTTP node

  • Fixed required Slack parameters
  • Changes validated successfully.

    Batch Operations

    Use n8n_update_partial_workflow with multiple operations in a single call:

    ✅ GOOD - Batch multiple operations:

    n8n_update_partial_workflow({
    id: "wf-123",
    operations: [
    {type: "updateNode", nodeId: "slack-1", changes: {...}},
    {type: "updateNode", nodeId: "http-1", changes: {...}},
    {type: "cleanStaleConnections"}
    ]
    })

    ❌ BAD - Separate calls:

    n8n_update_partial_workflow({id: "wf-123", operations: [{...}]})
    n8n_update_partial_workflow({id: "wf-123", operations: [{...}]})

    CRITICAL: addConnection Syntax

    The addConnection operation requires four separate string parameters. Common mistakes cause misleading errors.

    ❌ WRONG - Object format (fails with "Expected string, received object"):

    {
    "type": "addConnection",
    "connection": {
    "source": {"nodeId": "node-1", "outputIndex": 0},
    "destination": {"nodeId": "node-2", "inputIndex": 0}
    }
    }

    ❌ WRONG - Combined string (fails with "Source node not found"):

    {
    "type": "addConnection",
    "source": "node-1:main:0",
    "target": "node-2:main:0"
    }

    ✅ CORRECT - Four separate string parameters:

    {
    "type": "addConnection",
    "source": "node-id-string",
    "target": "target-node-id-string",
    "sourcePort": "main",
    "targetPort": "main"
    }

    Reference: GitHub Issue #327

    ⚠️ CRITICAL: IF Node Multi-Output Routing

    IF nodes have two outputs (TRUE and FALSE). Use the branch parameter to route to the correct output:

    ✅ CORRECT - Route to TRUE branch (when condition is met):

    {
    "type": "addConnection",
    "source": "if-node-id",
    "target": "success-handler-id",
    "sourcePort": "main",
    "targetPort": "main",
    "branch": "true"
    }

    ✅ CORRECT - Route to FALSE branch (when condition is NOT met):

    {
    "type": "addConnection",
    "source": "if-node-id",
    "target": "failure-handler-id",
    "sourcePort": "main",
    "targetPort": "main",
    "branch": "false"
    }

    Common Pattern - Complete IF node routing:

    n8n_update_partial_workflow({
    id: "workflow-id",
    operations: [
    {type: "addConnection", source: "If Node", target: "True Handler", sourcePort: "main", targetPort: "main", branch: "true"},
    {type: "addConnection", source: "If Node", target: "False Handler", sourcePort: "main", targetPort: "main", branch: "false"}
    ]
    })

    Note: Without the branch parameter, both connections may end up on the same output, causing logic errors!

    removeConnection Syntax

    Use the same four-parameter format:

    {
    "type": "removeConnection",
    "source": "source-node-id",
    "target": "target-node-id",
    "sourcePort": "main",
    "targetPort": "main"
    }

    Example Workflow

    Template-First Approach

    // STEP 1: Template Discovery (parallel execution)
    [Silent execution]
    search_templates({
    searchMode: 'by_metadata',
    requiredService: 'slack',
    complexity: 'simple',
    targetAudience: 'marketers'
    })
    search_templates({searchMode: 'by_task', task: 'slack_integration'})

    // STEP 2: Use template
    get_template(templateId, {mode: 'full'})
    validate_workflow(workflow)

    // Response after all tools complete:
    "Found template by <strong>David Ashby</strong> (@cfomodz).
    View at: https://n8n.io/workflows/2414

    Validation: ✅ All checks passed"

    Building from Scratch (if no template)

    // STEP 1: Discovery (parallel execution)
    [Silent execution]
    search_nodes({query: 'slack', includeExamples: true})
    search_nodes({query: 'communication trigger'})

    // STEP 2: Configuration (parallel execution)
    [Silent execution]
    get_node({nodeType: 'n8n-nodes-base.slack', detail: 'standard', includeExamples: true})
    get_node({nodeType: 'n8n-nodes-base.webhook', detail: 'standard', includeExamples: true})

    // STEP 3: Validation (parallel execution)
    [Silent execution]
    validate_node({nodeType: 'n8n-nodes-base.slack', config, mode: 'minimal'})
    validate_node({nodeType: 'n8n-nodes-base.slack', config: fullConfig, mode: 'full', profile: 'runtime'})

    // STEP 4: Build
    // Construct workflow with validated configs
    // ⚠️ Set ALL parameters explicitly

    // STEP 5: Validate
    [Silent execution]
    validate_workflow(workflowJson)

    // Response after all tools complete:
    "Created workflow: Webhook → Slack
    Validation: ✅ Passed"

    Batch Updates

    // ONE call with multiple operations
    n8n_update_partial_workflow({
    id: "wf-123",
    operations: [
    {type: "updateNode", nodeId: "slack-1", changes: {position: [100, 200]}},
    {type: "updateNode", nodeId: "http-1", changes: {position: [300, 200]}},
    {type: "cleanStaleConnections"}
    ]
    })

    Important Rules

    Core Behavior


  • Silent execution - No commentary between tools

  • Parallel by default - Execute independent operations simultaneously

  • Templates first - Always check before building (2,709 available)

  • Multi-level validation - Quick check → Full validation → Workflow validation

  • Never trust defaults - Explicitly configure ALL parameters
  • Attribution & Credits


  • MANDATORY TEMPLATE ATTRIBUTION: Share author name, username, and n8n.io link

  • Template validation - Always validate before deployment (may need updates)
  • Performance


  • Batch operations - Use diff operations with multiple changes in one call

  • Parallel execution - Search, validate, and configure simultaneously

  • Template metadata - Use smart filtering for faster discovery
  • Code Node Usage


  • Avoid when possible - Prefer standard nodes

  • Only when necessary - Use code node as last resort

  • AI tool capability - ANY node can be an AI tool (not just marked ones)
  • Most Popular n8n Nodes (for get_node):


  • n8n-nodes-base.code - JavaScript/Python scripting

  • n8n-nodes-base.httpRequest - HTTP API calls

  • n8n-nodes-base.webhook - Event-driven triggers

  • n8n-nodes-base.set - Data transformation

  • n8n-nodes-base.if - Conditional routing

  • n8n-nodes-base.manualTrigger - Manual workflow execution

  • n8n-nodes-base.respondToWebhook - Webhook responses

  • n8n-nodes-base.scheduleTrigger - Time-based triggers

  • @n8n/n8n-nodes-langchain.agent - AI agents

  • n8n-nodes-base.googleSheets - Spreadsheet integration

  • n8n-nodes-base.merge - Data merging

  • n8n-nodes-base.switch - Multi-branch routing

  • n8n-nodes-base.telegram - Telegram bot integration

  • @n8n/n8n-nodes-langchain.lmChatOpenAi - OpenAI chat models

  • n8n-nodes-base.splitInBatches - Batch processing

  • n8n-nodes-base.openAi - OpenAI legacy node

  • n8n-nodes-base.gmail - Email automation

  • n8n-nodes-base.function - Custom functions

  • n8n-nodes-base.stickyNote - Workflow documentation

  • n8n-nodes-base.executeWorkflowTrigger - Sub-workflow calls
  • Note: LangChain nodes use the @n8n/n8n-nodes-langchain. prefix, core nodes use n8n-nodes-base.

    Frequently Asked Questions

    Is this your MCP?

    Claim ownership and get verified badge

    Repository Stats

    Sponsored

    Ad Space Available
    Important Notes

    DISABLED_TOOLS can be set via the DISABLED_TOOLS environment variable to filter specific tools from registration at startup. This enables deployment-specific tool configurations for multi-tenant setups and feature flags. The server also notes that tool filtering applies to both documentation and management tooling during startup.

    Details
    Last Updated1/2/2026
    SourceGitHub

    Compare Alternatives

    Similar MCP Tools

    9 related tools
    Skyvern MCP

    Skyvern MCP

    Skyvern is the complete browser MCP for AI agents. 75+ tools for clicking, filling forms, extracting structured data, logging in with 2FA, uploading files, drag-and-drop, running JavaScript, inspecting network traffic, multi-tab browsing, and building reusable cached workflows. First workflow run uses AI; subsequent runs replay a cached script with zero LLM calls.

    pageguard-mcp

    pageguard-mcp

    pageguard-mcp is an MCP (Model Context Protocol) server that exposes PageGuard privacy compliance scanning as a set of tools for AI coding assistants. It enables seamless integration with Claude Code, Cursor, Windsurf, ChatGPT, and any MCP-compatible environment. The server supports local scans, live URL scans, and AI-generated privacy-related documents, helping developers identify tracking technologies, cookies, and third-party data processing, while also producing tailored privacy policies and compliance materials. With its straightforward MCP configuration and free local scanning capability, pageguard-mcp is designed to empower teams to maintain privacy compliance across their projects and websites.

    Prop Firm Deal Finder

    Prop Firm Deal Finder (PFDF) is a free MCP server that gives AI assistants real-time access to live discount codes across 20+ proprietary trading firms. It provides 6 tools: get_deals (all current discounts), search_firms (search by name/asset class), compare_firms (side-by-side comparison of challenges), find_cheapest (cheapest challenge by account size with PFDF code applied), get_firm_details (15+ data points per firm), and get_discount_code (universal PFDF code). Covers firms like Topstep, Apex Trader Funding, MyFundedFutures, FTMO, The Funded Trader, and 14 more. No API key required. Install via npx propfirmdealfinder-mcp-server or connect remotely at https://web-production-6607c.up.railway.app/mcp

    mcp-server-with-spring-ai

    mcp-server-with-spring-ai

    mcp-server-with-spring-ai is a Spring Boot integrated MCP (Model Context Protocol) server example that showcases how to expose executable tools from an MCP server to clients (including LLMs) and how to wire a MCP client to consume those tools. The documentation explains MCP at a high level, outlines the three-layer MCP Java SDK architecture (Client/Server Layer, Session Layer, Transport Layer), and demonstrates two sample tools implemented in SellerAccountTools. This repo emphasizes how an MCP server can connect to external data sources (e.g., a PostgreSQL DB) and expose tools that an AI model can invoke to retrieve data, with the example illustrating tool invocation and automatic tool selection by prompts.

    OpenClaw MCP Server

    OpenClaw MCP Server

    OpenClaw MCP Server is a secure Model Context Protocol (MCP) bridge that connects Claude.ai with a self-hosted OpenClaw assistant, enabling OAuth2 authentication and safe, controlled communication between the Claude AI ecosystem and your local or hosted OpenClaw deployment. This MCP server acts as an orchestration layer that exposes MCP tools to Claude.ai, manages authentication, and enforces security boundaries like CORS and transport options. It is designed to be deployed via Docker or run locally, with detailed installation, configuration, and security guidance provided in the documentation. By serving as a bridge, it enables Claude.ai to delegate tasks to your OpenClaw bot while preserving control over data flow and access controls, in line with MCP specifications and best security practices.

    SEObot

    SEObot

    SEObot is a fully autonomous AI-powered SEO robot designed for busy founders. It automates core SEO tasks—from programmatic SEO and internal linking to AI-driven backlinks, keyword research, and content generation—so you can focus on building your product. With AI agents working across CMS integrations, SEObot promises scalable SEO workflows, ongoing content creation, and automated optimization. This registry entry captures SEObot’s capabilities, supported tools, and integration avenues to help developers and business owners implement and leverage its AI-powered SEO automation.

    Graphiti MCP Server

    Graphiti MCP Server

    Graphiti MCP Server is an experimental implementation that exposes Graphiti's real-time, temporally-aware knowledge graph capabilities through the MCP (Model Context Protocol) interface. It enables AI agents and MCP clients to interact with Graphiti's knowledge graph for structured extraction, reasoning, and memory across conversations, documents, and enterprise data. The server supports multiple backends (FalkorDB by default and Neo4j), a variety of LLM providers (OpenAI, Anthropic, Gemini, Groq, Azure OpenAI), and multiple embedder options, all accessible via an HTTP MCP endpoint at /mcp/ for broad client compatibility. It also includes queue-based asynchronous episode processing, rich entity types for structured data, and flexible configuration through config.yaml, environment variables, or CLI arguments.

    Context7 MCP Server

    Context7 MCP Server

    Context7 MCP Server delivers up-to-date, code-first documentation and examples for LLMs and AI code editors by pulling content directly from the source. It supports multiple MCP clients and exposes tools that help you resolve library IDs and retrieve library documentation, ensuring prompts use current APIs and usage patterns. The repository provides installation and integration guides for Cursor, Claude Code, Opencode, and other clients, along with practical configuration samples and OAuth options for remote HTTP connections. This MCP server is designed to keep prompts in sync with the latest library docs, reducing hallucinations and outdated code snippets.

    TrendRadar MCP

    TrendRadar MCP

    TrendRadar MCP is an AI-driven Model Context Protocol (MCP) based analysis server that exposes a suite of specialized tools for cross-platform news analysis, trend tracking, and intelligent push notifications. It integrates with TrendRadar’s multi-platform data aggregation (RSS and trending topics) and provides advanced AI-powered insights, sentiment analysis, and cross-platform correlation. The MCP server enables developers to query, analyze, and compare news across platforms using a consistent toolset, with ongoing updates that expand capabilities such as RSS querying, date parsing, and multi-date trend analysis. This documentation references the MCP module updates, tool additions, and architecture changes that enhance extensibility, cross-platform data handling, and AI-assisted reporting.