> ## Documentation Index
> Fetch the complete documentation index at: https://mcp-docs.synta.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Agent Tools

> Comprehensive guide to all Synta MCP tools and recommended workflow-building flow

Synta MCP provides 23 active tools for searching nodes, shortlisting recommended nodes, configuring them, finding templates, building workflows, validating them, and testing them against a live n8n instance. The recommended flow is to discover first, shortlist likely nodes second, configure with exact node definitions third, and only then create or update workflows.

## Getting Started with Agent Tools

<Tabs>
  <Tab title="Building Workflows">
    **Phase 1: Discovery & Assessment**

    <Steps>
      <Step title="Discover Templates & Best Practices">
        For AI workflows, get patterns first. For standard workflows, search templates directly.

        ```
        // AI Workflows: Get patterns FIRST
        get_ai_workflow_patterns({mode: "list"})

        // Standard Workflows: Search templates
        search_templates({searchMode: "keyword", query: "slack notification"})
        get_best_practices({mode: "list"})
        ```
      </Step>

      <Step title="Find Nodes">
        Search for specific nodes you need in your workflow.

        ```
        // First pass: lightweight discovery
        search_nodes({queries: ["webhook"]})
        search_nodes({queries: ["slack"], source: "core"})

        // Second pass: only when you need resource/operation/mode details
        search_nodes({queries: ["slack"], includeOperations: true})
        ```
      </Step>
    </Steps>

    **Phase 2: Planning**

    <Steps>
      <Step title="Reference Patterns & Templates">
        Get detailed examples and best practices for your workflow type.

        ```
        // Get template details
        get_template({templateId: 123, mode: "full", includeMermaid: true})

        // Get best practices for techniques
        get_best_practices({mode: "detail", technique: "universal"})
        get_best_practices({mode: "detail", technique: "notification"})

        // Get curated node suggestions for the workflow category
        get_suggested_nodes({categories: ["notification"]})

        // Get node configuration examples
        get_node({nodeIds: [{nodeId: "n8n-nodes-base.slack"}], view: "standard", includeConfigExamples: "json"})
        ```
      </Step>
    </Steps>

    **Phase 3: Implementation**

    <Steps>
      <Step title="Create Workflow">
        Deploy your workflow directly to n8n.

        ```
        n8n_create_workflow({
          name: "My Workflow",
          nodes: [...],
          connections: {...}
        })
        ```
      </Step>
    </Steps>

    **Phase 4: Validation & Testing**

    <Steps>
      <Step title="Validate & Add Credentials">
        Check workflow structure and configure credentials.

        ```
        n8n_validate_workflow({id: "wf-id"})
        n8n_manage_credentials({mode: "check_workflow", workflowId: "wf-id"})
        ```
      </Step>

      <Step title="Test & Self-Heal">
        Execute and automatically fix runtime errors.

        ```
        n8n_trigger_execution({id: "wf-id"})
        // Analyzes errors, modifies config, re-executes until successful
        ```
      </Step>
    </Steps>
  </Tab>

  <Tab title="Editing Workflows">
    **Phase 1: Discovery & Assessment**

    <Steps>
      <Step title="Find & Analyze Workflow">
        Locate the workflow and understand its current structure.

        ```
        // Find workflow by name
        n8n_list_workflows({searchTerm: "slack", searchMode: "fuzzy"})

        // Get workflow structure
        n8n_get_workflow({id: "wf-id", mode: "structure"})

        // Search within workflow
        n8n_search_workflow({id: "wf-id", scope: "nodes", match_strategy: "regex", query: "HTTP"})
        ```
      </Step>
    </Steps>

    **Phase 2: Planning**

    <Steps>
      <Step title="Reference Templates & Best Practices">
        Find examples similar to your intended changes.

        ```
        search_templates({searchMode: "by_nodes", nodeTypes: ["n8n-nodes-base.slack"]})
        get_best_practices({mode: "detail", technique: "data_transformation"})
        get_suggested_nodes({categories: ["data_transformation"]})
        ```
      </Step>
    </Steps>

    **Phase 3: Implementation**

    <Steps>
      <Step title="Modify Workflow">
        Make incremental updates using diff operations.

        ```
        n8n_update_partial_workflow({id: "wf-id", operations: [
          {type: "addNode", node: {...}},
          {type: "updateNode", nodeName: "Transform", updates: {"parameters.keepOnlySet": true}},
          {type: "addConnection", source: "Webhook", target: "New Node"},
          {type: "rewireConnection", source: "IF", from: "OldNode", to: "NewNode", branch: "true"}
        ]})
        ```
      </Step>
    </Steps>

    **Phase 4: Validation & Testing**

    <Steps>
      <Step title="Validate Changes">
        Verify your modifications are structurally correct.

        ```
        n8n_validate_workflow({id: "wf-id", options: {validateConnections: true}})
        n8n_autofix_workflow({id: "wf-id", applyFixes: true})
        ```
      </Step>

      <Step title="Test & Self-Heal">
        Execute the updated workflow and fix runtime issues.

        ```
        n8n_trigger_execution({id: "wf-id"})
        // If errors occur, analyzes and fixes automatically
        ```
      </Step>
    </Steps>
  </Tab>
</Tabs>

<div class="callout mint-my-4 mint-px-4 mint-py-3 mint-overflow-hidden mint-rounded-xl mint-flex mint-gap-3 mint-border mint-border-[#c15f3c]/30 mint-bg-[#c15f3c]/10">
  <div class="mint-mt-0.5 mint-w-4 mint-flex-shrink-0">
    <svg class="mint-w-4 mint-h-4 mint-text-[#c15f3c]" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2">
      <path stroke-linecap="round" stroke-linejoin="round" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z" />
    </svg>
  </div>

  <div class="mint-text-sm mint-text-[#c15f3c]">
    <strong class="mint-text-[#c15f3c]">Self-Healing:</strong> Synta MCP automatically tests workflows, detects runtime errors, and modifies configurations until successful execution. Requires N8N login credentials. See <a href="/installation" class="mint-text-[#c15f3c]">Installation</a> for setup.
  </div>
</div>

## Tool Categories

<CardGroup cols="3">
  <Card title="Node Discovery (3)" icon="magnifying-glass">
    `search_nodes` - Full-text search across nodes

    `get_suggested_nodes` - Curated node shortlists by workflow category

    `get_node` - Exact node definitions in `standard`, `summary`, or `raw` view
  </Card>

  <Card title="Templates (3)" icon="layer-group">
    `search_templates` - Search 10,000+ templates

    `get_template` - Get workflow JSON by ID

    `n8n_deploy_template` - Deploy from n8n.io
  </Card>

  <Card title="AI Workflow Guides (2)" icon="brain">
    `get_ai_workflow_patterns` - AI architectural patterns

    `get_best_practices` - Technique guidance
  </Card>

  <Card title="Workflow Authoring (4)" icon="sitemap">
    `n8n_create_workflow` - Create workflows

    `n8n_get_workflow` - Retrieve workflows by ID

    `n8n_update_full_workflow` - Replace full workflow definitions

    `n8n_update_partial_workflow` - Diff-based updates with typeVersion support
  </Card>

  <Card title="Workflow Operations (3)" icon="sitemap">
    `n8n_list_workflows` - List all workflows

    `n8n_validate_workflow` - Validate configs, connections, and expressions

    `n8n_delete_workflow` - Permanently delete workflows
  </Card>

  <Card title="Execution & Testing (5)" icon="play">
    `n8n_trigger_execution` - Self-healing testing

    `n8n_test_workflow` - External testing

    `n8n_manage_executions` - Execution management

    `n8n_manage_pindata` - Mock data for testing

    `n8n_inspect_node_io` - Inspect node inputs and outputs
  </Card>

  <Card title="Workflow Analysis (2)" icon="magnifying-glass-chart">
    `n8n_search_workflow` - AST-based search

    `n8n_autofix_workflow` - Auto-fix errors
  </Card>

  <Card title="Credentials (1)" icon="key">
    `n8n_manage_credentials` - Manage credentials
  </Card>
</CardGroup>

## Complete Tool Reference

<AccordionGroup>
  <Accordion title="Node Discovery & Configuration (3 tools)" icon="magnifying-glass">
    <ResponseField name="search_nodes" type="tool">
      Search for n8n nodes by name or service. Use it in two passes: first for lightweight discovery, then again with `includeOperations=true` when you need discriminator details.

      <Expandable title="parameters">
        <ResponseField name="queries" type="string[]" required>
          Array of search terms like `["slack"]`, `["gmail"]`, or `["openai embeddings"]`.
        </ResponseField>

        <ResponseField name="includeOperations" type="boolean" default="false">
          When `true`, includes resource / operation / mode discriminator details and ready-to-copy follow-up guidance for `get_node`.
        </ResponseField>

        <ResponseField name="source" type="string" default="all">
          Filter: all, core, community, verified
        </ResponseField>
      </Expandable>

      <Expandable title="recommended flow">
        * First call `search_nodes({queries: ["slack"]})`
        * Then call `search_nodes({queries: ["slack"], includeOperations: true})` only after you have found the node you want
        * Then call `get_node(...)` with the exact discriminator values you selected
      </Expandable>
    </ResponseField>

    <ResponseField name="get_suggested_nodes" type="tool">
      Get curated node recommendations for workflow technique categories like `chatbot`, `notification`, `document_processing`, or `scraping_and_research`.

      <Expandable title="parameters">
        <ResponseField name="categories" type="string[]" required>
          Array of workflow categories to get suggestions for, for example `["chatbot"]` or `["notification", "triage"]`.
        </ResponseField>
      </Expandable>

      <Expandable title="recommended flow">
        * Use this after identifying the workflow technique categories from the user request
        * Treat the returned `patternHint` as a shortlist, not a complete workflow design
        * Then call `search_nodes(...)` and `get_node(...)` for the exact nodes you plan to configure
      </Expandable>
    </ResponseField>

    <ResponseField name="get_node" type="tool">
      Get exact node definitions for one or more nodes. Use `view="standard"` for the recommended authoring view, `view="summary"` for a quick JSON overview, and `view="raw"` for the complete raw schema.

      <Expandable title="parameters">
        <ResponseField name="nodeIds" type="object[]" required>
          Array of node request objects like `{nodeId: "nodes-base.httpRequest"}` or `{nodeId: "nodes-base.gmail", resource: "message", operation: "send"}`.
        </ResponseField>

        <ResponseField name="view" type="string" default="standard">
          `standard`, `summary`, or `raw`
        </ResponseField>

        <ResponseField name="includeConfigExamples" type="string">
          Include configuration examples: json, mermaid, or both
        </ResponseField>

        <ResponseField name="includeMarkdownDocs" type="boolean" default="false">
          Append readable markdown docs for the requested node(s)
        </ResponseField>
      </Expandable>

      <Expandable title="recommended flow">
        * Use `view="summary"` when you want a quick JSON overview of required fields, resources, and operations
        * Use `view="standard"` before editing configuration
        * For discriminator-based nodes, pass the exact `resource` / `operation` / `mode` from `search_nodes(..., includeOperations: true)`
      </Expandable>
    </ResponseField>
  </Accordion>

  <Accordion title="Template Tools (3 tools)" icon="layer-group">
    <ResponseField name="search_templates" type="tool">
      Search through 10,000+ workflow templates with multiple search modes.

      <Expandable title="parameters">
        <ResponseField name="searchMode" type="string" default="keyword">
          keyword, by\_nodes, by\_task, by\_metadata, patterns
        </ResponseField>

        <ResponseField name="query" type="string">
          For keyword mode: search text
        </ResponseField>

        <ResponseField name="fields" type="string[]">
          For keyword mode: fields to include (id, name, description, author, nodes, views, created, url, metadata)
        </ResponseField>

        <ResponseField name="nodeTypes" type="string[]">
          For by\_nodes mode: array of node types
        </ResponseField>

        <ResponseField name="task" type="string">
          For by\_task mode: ai\_automation, data\_sync, webhook\_processing, email\_automation, slack\_integration, data\_transformation, file\_processing, scheduling, api\_integration, database\_operations
        </ResponseField>

        <ResponseField name="complexity" type="string">
          For by\_metadata: simple, medium, complex
        </ResponseField>

        <ResponseField name="targetAudience" type="string">
          For by\_metadata: developers, marketers, analysts
        </ResponseField>

        <ResponseField name="requiredService" type="string">
          For by\_metadata: filter by required service (e.g., "openai", "slack")
        </ResponseField>

        <ResponseField name="category" type="string">
          For by\_metadata: filter by category (e.g., "automation", "integration")
        </ResponseField>

        <ResponseField name="minSetupMinutes" type="number">
          For by\_metadata: minimum setup time in minutes (5-480)
        </ResponseField>

        <ResponseField name="maxSetupMinutes" type="number">
          For by\_metadata: maximum setup time in minutes (5-480)
        </ResponseField>

        <ResponseField name="limit" type="number" default="20">
          Max results (1-100)
        </ResponseField>

        <ResponseField name="offset" type="number" default="0">
          Pagination offset
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="get_template" type="tool">
      Get complete workflow JSON for a specific template by ID.

      <Expandable title="parameters">
        <ResponseField name="templateId" type="number" required>
          Template ID from n8n.io
        </ResponseField>

        <ResponseField name="mode" type="string" default="full">
          nodes\_only, structure, full
        </ResponseField>

        <ResponseField name="includeMermaid" type="boolean" default="false">
          Include a mermaid flowchart diagram of the workflow
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="n8n_deploy_template" type="tool">
      Deploy a workflow template from n8n.io directly to your n8n instance with auto-fix.

      <Expandable title="parameters">
        <ResponseField name="templateId" type="number" required>
          Template ID from n8n.io
        </ResponseField>

        <ResponseField name="name" type="string">
          Custom workflow name (default: template name)
        </ResponseField>

        <ResponseField name="stripCredentials" type="boolean" default="true">
          Remove credential references from nodes
        </ResponseField>

        <ResponseField name="autoFix" type="boolean" default="true">
          Auto-apply fixes after deployment
        </ResponseField>

        <ResponseField name="autoUpgradeVersions" type="boolean" default="true">
          Upgrade node typeVersions to latest supported
        </ResponseField>
      </Expandable>
    </ResponseField>
  </Accordion>

  <Accordion title="AI Workflow Guides (2 tools)" icon="brain">
    <ResponseField name="get_ai_workflow_patterns" type="tool">
      Get architectural patterns for workflows containing AI elements. Mandatory for workflows with AI components (agents, RAG, LLMs, vector stores, AI APIs). These patterns are authoritative blueprints that must be followed strictly.

      <Expandable title="parameters">
        <ResponseField name="mode" type="string" required>
          list (browse all patterns), detail (get full documentation for specific pattern)
        </ResponseField>

        <ResponseField name="patternId" type="string">
          Pattern ID for detail mode (get IDs from list mode)
        </ResponseField>
      </Expandable>

      <Expandable title="usage notes">
        * **Primary source for AI workflows:** Call FIRST to establish topology before templates
        * **Mandatory for:** Any workflow with AI Agent nodes, RAG systems, LLM processing, AI API calls
        * **Pattern types:** ai\_simple, ai\_tools, rag\_ingest, rag\_query, multi\_agent, hybrid\_memory
        * **After patterns:** Use search\_templates + get\_template for proven implementations
        * Deviating from these patterns will result in broken AI workflows
      </Expandable>
    </ResponseField>

    <ResponseField name="get_best_practices" type="tool">
      Get best practices and implementation guidance for workflow techniques. Use alongside templates for complete workflow planning.

      <Expandable title="parameters">
        <ResponseField name="mode" type="string" required>
          list (browse all techniques), detail (get full documentation for one technique)
        </ResponseField>

        <ResponseField name="technique" type="string">
          For detail mode: one technique per call. Make multiple calls in parallel, always including `universal` plus the workflow-specific techniques you need.
        </ResponseField>
      </Expandable>

      <Expandable title="usage notes">
        * **Mandatory flow:** Call mode="list" FIRST, then make multiple mode="detail" calls
        * **Always include:** `universal`
        * **Provides:** Node selection rules, configuration tips, common pitfalls, recommended nodes
        * **Use early:** Call during planning before building workflows
      </Expandable>
    </ResponseField>
  </Accordion>

  <Accordion title="Workflow Management (8 tools)" icon="sitemap">
    <ResponseField name="n8n_create_workflow" type="tool">
      Create a new workflow in your N8N instance using adaptive validation and automatic sanitization. Workflows are created inactive by default.

      <Expandable title="parameters">
        <ResponseField name="name" type="string" required>
          Workflow name
        </ResponseField>

        <ResponseField name="nodes" type="object[]" required>
          Array of workflow nodes with id, name, type, typeVersion, position, parameters. Use full node type prefixes (`n8n-nodes-base.*` and `@n8n/n8n-nodes-langchain.*`).
        </ResponseField>

        <ResponseField name="connections" type="object" required>
          Connections object. Keys are source node names
        </ResponseField>

        <ResponseField name="settings" type="object">
          Optional workflow settings (execution order, timezone, error handling)
        </ResponseField>
      </Expandable>

      <Expandable title="behavior notes">
        * Adaptive create mode is always used (validationMode is not exposed).
        * Node parameters and metadata are auto-sanitized during create to prevent UI-breaking structures.
        * If IDs are missing/duplicated, IDs can be auto-generated/de-duplicated and reported in the response.
        * Creation can return partial success guidance (fix with `n8n_update_partial_workflow`, then re-run `n8n_validate_workflow`).
      </Expandable>
    </ResponseField>

    <ResponseField name="n8n_get_workflow" type="tool">
      Retrieve a workflow by ID with different detail levels.

      <Expandable title="parameters">
        <ResponseField name="id" type="string" required>
          Workflow ID
        </ResponseField>

        <ResponseField name="mode" type="string" default="full">
          full, details (with execution stats), structure, minimal
        </ResponseField>

        <ResponseField name="excludePinnedData" type="boolean" default="false">
          Exclude pinned data from response
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="n8n_list_workflows" type="tool">
      List workflows with filtering and pagination. Returns minimal metadata (id/name/active/dates/tags). Check hasMore/nextCursor for pagination.

      <Expandable title="parameters">
        <ResponseField name="limit" type="number" default="100">
          Number of workflows to return (1-100)
        </ResponseField>

        <ResponseField name="cursor" type="string">
          Pagination cursor from previous response
        </ResponseField>

        <ResponseField name="active" type="boolean">
          Filter by active/published status
        </ResponseField>

        <ResponseField name="tags" type="string[]">
          Filter by tags (exact match)
        </ResponseField>

        <ResponseField name="projectId" type="string">
          Filter by project ID (enterprise feature)
        </ResponseField>

        <ResponseField name="excludePinnedData" type="boolean" default="true">
          Exclude pinned data from response
        </ResponseField>

        <ResponseField name="searchTerm" type="string">
          Filter workflows by name within current page. Increase limit or use cursor for more results.
        </ResponseField>

        <ResponseField name="searchMode" type="string" default="fuzzy">
          Search mode: fuzzy=typo-tolerant (default), fulltext=prefix/token matching
        </ResponseField>

        <ResponseField name="excludeArchived" type="boolean" default="true">
          Exclude archived workflows from results
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="n8n_update_partial_workflow" type="tool">
      Update workflows incrementally with diff operations. Supports 17 operation types: addNode, removeNode, updateNode, moveNode, enable/disableNode, addConnection, removeConnection, rewireConnection, cleanStaleConnections, replaceConnections, updateSettings, updateName, add/removeTag, publishWorkflow, deactivateWorkflow. TypeVersion changes via updateNode are automatically validated with guidance. Supports smart parameters (branch='true'/'false' for IF nodes, case=N for Switch nodes) and AI connections.

      <Expandable title="parameters">
        <ResponseField name="id" type="string" required>
          Workflow ID to update
        </ResponseField>

        <ResponseField name="operations" type="object[]" required>
          Array of diff operations to apply sequentially
        </ResponseField>

        <ResponseField name="validateOnly" type="boolean" default="false">
          Only validate operations without applying
        </ResponseField>

        <ResponseField name="createBackup" type="boolean">
          Optional: create a backup/snapshot before applying operations.
        </ResponseField>

        <ResponseField name="executionMode" type="string" default="best_effort">
          Execution strategy: `best_effort` (recommended/default), `atomic`, or `auto`.
        </ResponseField>

        <ResponseField name="continueOnError" type="boolean">
          Deprecated legacy flag. Use `executionMode` instead.
        </ResponseField>

        <ResponseField name="intent" type="string">
          Optional intent text used to improve guidance and auto-mode behavior.
        </ResponseField>
      </Expandable>

      <Expandable title="operation types">
        * addNode, removeNode, updateNode, moveNode
        * enableNode, disableNode
        * addConnection, removeConnection, rewireConnection
        * cleanStaleConnections, replaceConnections
        * updateSettings, updateName
        * addTag, removeTag
        * publishWorkflow, deactivateWorkflow
      </Expandable>

      <Expandable title="connection parameters">
        For connections, use sourceOutput/targetInput for connection TYPE names (e.g., "main", "ai\_tool"), NOT numeric indices. For multi-output nodes (IF, Switch), use branch/case or sourceIndex.

        * **sourceOutput**: Connection type (default: "main"). AI types: ai\_languageModel, ai\_tool, ai\_memory, etc.
        * **targetInput**: Target input type (default: "main")
        * **branch**: For IF nodes: "true" or "false" instead of sourceIndex
        * **case**: For Switch nodes: case number (0-based) instead of sourceIndex
        * **sourceIndex/targetIndex**: Explicit indices (override branch/case)
      </Expandable>
    </ResponseField>

    <ResponseField name="n8n_update_full_workflow" type="tool">
      Replace an entire workflow with new configuration. For incremental updates, use `n8n_update_partial_workflow` instead.

      <Expandable title="parameters">
        <ResponseField name="id" type="string" required>
          Workflow ID to update
        </ResponseField>

        <ResponseField name="name" type="string">
          New workflow name
        </ResponseField>

        <ResponseField name="nodes" type="object[]">
          Complete array of workflow nodes
        </ResponseField>

        <ResponseField name="connections" type="object">
          Complete connections object
        </ResponseField>

        <ResponseField name="settings" type="object">
          Workflow settings to update
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="n8n_delete_workflow" type="tool">
      Permanently delete a workflow. This action cannot be undone.

      <Expandable title="parameters">
        <ResponseField name="id" type="string" required>
          Workflow ID to delete
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="n8n_validate_workflow" type="tool">
      Validate workflow configuration, connections, and expressions. When execution data exists, also performs runtime expression checks and reports actionable fixes.

      <Expandable title="parameters">
        <ResponseField name="id" type="string" required>
          Workflow ID to validate
        </ResponseField>

        <ResponseField name="options" type="object">
          <Expandable title="properties">
            <ResponseField name="validateNodes" type="boolean" default="true">
              Validate node configurations
            </ResponseField>

            <ResponseField name="validateConnections" type="boolean" default="true">
              Validate workflow connections
            </ResponseField>

            <ResponseField name="validateExpressions" type="boolean" default="true">
              Validate n8n expressions
            </ResponseField>

            <ResponseField name="profile" type="string" default="runtime">
              minimal, runtime, ai-friendly, strict
            </ResponseField>
          </Expandable>
        </ResponseField>
      </Expandable>
    </ResponseField>
  </Accordion>

  <Accordion title="Workflow Analysis & Utilities (2 tools)" icon="magnifying-glass-chart">
    <ResponseField name="n8n_search_workflow" type="tool">
      Search within a workflow to find nodes, connections, flow patterns, or text. Use regex matching by default for flexible substring search, exact for strict equality, or fuzzy for typo tolerance. Returns matching nodes with configurable detail levels.

      <Expandable title="parameters">
        <ResponseField name="id" type="string" required>
          Workflow ID to search within
        </ResponseField>

        <ResponseField name="scope" type="string" required>
          What to search: nodes, connections, flow, text, comprehensive
        </ResponseField>

        <ResponseField name="match_strategy" type="string" required>
          regex (default - flexible substring matching), exact (strict equality), fuzzy (typo-tolerant)
        </ResponseField>

        <ResponseField name="query" type="string or object">
          Search term. String or object with name/type/path/value. Flow patterns: "A->B->C" (use .\* for any node)
        </ResponseField>

        <ResponseField name="options" type="object">
          <Expandable title="properties">
            <ResponseField name="type" type="string or string[]">
              Filter by node type
            </ResponseField>

            <ResponseField name="target" type="string">
              Target node name (connections scope)
            </ResponseField>

            <ResponseField name="disabled" type="boolean">
              Filter by disabled status
            </ResponseField>

            <ResponseField name="parameter" type="object">
              Parameter filter: path, value, exists properties
            </ResponseField>

            <ResponseField name="fields" type="string[]">
              Limit text search to specific fields (text scope only)
            </ResponseField>

            <ResponseField name="detail_level" type="string">
              Output verbosity: minimal, standard, full
            </ResponseField>
          </Expandable>
        </ResponseField>
      </Expandable>

      <Expandable title="search strategies">
        * **regex** (RECOMMENDED): Grep-like substring matching, case-insensitive. Finds "set" in "offset" or "reset"
        * **exact**: Strict equality only. Use when "set" should NOT match "reset"
        * **fuzzy**: Typo-tolerant for user errors. "slak" matches "Slack"
      </Expandable>

      <Expandable title="search scopes">
        * **nodes**: Search by node name or type
        * **connections**: Find links between nodes
        * **flow**: Search execution paths (e.g., "Webhook->Code->Slack")
        * **text**: Ripgrep-like regex search across all node data
        * **comprehensive**: Multi-criteria search with filters
      </Expandable>
    </ResponseField>

    <ResponseField name="n8n_autofix_workflow" type="tool">
      Automatically fix common workflow validation errors. Preview fixes before applying. Handles expression format, typeVersion corrections, error output config, node types, webhook paths, version migrations, and parameter locations.

      <Expandable title="parameters">
        <ResponseField name="id" type="string" required>
          Workflow ID to fix
        </ResponseField>

        <ResponseField name="applyFixes" type="boolean" default="false">
          Apply fixes to workflow (default: false - preview mode)
        </ResponseField>

        <ResponseField name="fixTypes" type="string[]">
          Types of fixes: expression-format, typeversion-correction, error-output-config, node-type-correction, webhook-missing-path, typeversion-upgrade, version-migration, parameter-location (default: all)
        </ResponseField>

        <ResponseField name="confidenceThreshold" type="string" default="medium">
          Minimum confidence level: high, medium (default), low
        </ResponseField>

        <ResponseField name="maxFixes" type="number" default="50">
          Maximum number of fixes to apply
        </ResponseField>
      </Expandable>

      <Expandable title="fix types explained">
        * **expression-format**: Fix n8n expression syntax issues
        * **typeversion-correction**: Correct node typeVersion mismatches
        * **error-output-config**: Fix error workflow configurations
        * **node-type-correction**: Update deprecated node types
        * **webhook-missing-path**: Add missing webhook paths
        * **typeversion-upgrade**: Upgrade nodes to latest supported versions
        * **version-migration**: Handle parameter migrations between versions
        * **parameter-location**: Fix misplaced parameters in node structure
      </Expandable>
    </ResponseField>
  </Accordion>

  <Accordion title="Workflow Execution & Testing (5 tools)" icon="play">
    <ResponseField name="n8n_trigger_execution" type="tool" post={["Self-Healing"]}>
      The most powerful tool in Synta MCP. Triggers workflows and enables true AI self-healing by automatically testing, detecting errors, analyzing root causes, and modifying configurations to fix issues. Works with n8n\_manage\_pindata for comprehensive testing.

      <Expandable title="parameters">
        <ResponseField name="id" type="string" required>
          Workflow ID to execute
        </ResponseField>

        <ResponseField name="triggerNode" type="string">
          Specific trigger node name to use (optional). If not specified, uses the first trigger node in the workflow.
        </ResponseField>

        <ResponseField name="chatMessage" type="string" default="Hello world">
          Message for Chat Trigger nodes
        </ResponseField>

        <ResponseField name="sessionId" type="string">
          Session ID for chat triggers only (optional, auto-generated if not provided)
        </ResponseField>

        <ResponseField name="formData" type="object">
          Form field values for Form Trigger nodes (e.g., field-0: value, field-1: 2003-05-21)
        </ResponseField>

        <ResponseField name="webhookData" type="object">
          JSON payload for webhook triggers (request body)
        </ResponseField>

        <ResponseField name="headers" type="object">
          Custom HTTP headers for webhook/form requests
        </ResponseField>

        <ResponseField name="timeout" type="number" default="60">
          Max seconds to wait for completion
        </ResponseField>

        <ResponseField name="includeData" type="boolean" default="true">
          Include execution output data
        </ResponseField>

        <ResponseField name="includeErrorStack" type="boolean" default="false">
          Include full error stack trace in error details
        </ResponseField>

        <ResponseField name="destinationNode" type="object">
          Partial execution target. Use `mode: "exclusive"` to run upstream nodes without running the destination (like n8n's "Execute previous nodes"), or `mode: "inclusive"` (default) to run the destination too.

          <Expandable title="properties">
            <ResponseField name="nodeName" type="string" required>
              Target node name in the workflow
            </ResponseField>

            <ResponseField name="mode" type="string" default="inclusive">
              exclusive (run previous nodes only) or inclusive (run destination too)
            </ResponseField>
          </Expandable>
        </ResponseField>
      </Expandable>

      <Expandable title="self-healing capabilities">
        * **Auto-detection**: Identifies Manual, Chat, Webhook, and Form triggers automatically
        * **Error analysis**: AI analyzes execution results to identify root causes
        * **Self-correction**: Modifies workflow configurations to fix detected issues
        * **Full debugging**: Complete execution data including all node outputs
        * **Webhook handling**: Automatically polls and calls webhook URLs when needed
        * **Mock data integration**: Works with n8n\_manage\_pindata to test workflows using saved mock data instead of live API calls
      </Expandable>
    </ResponseField>

    <ResponseField name="n8n_test_workflow" type="tool">
      External workflow testing without login credentials. Test workflows with webhook, form, or chat triggers. Workflow must be active.

      <Expandable title="parameters">
        <ResponseField name="workflowId" type="string" required>
          Workflow ID to execute
        </ResponseField>

        <ResponseField name="triggerType" type="string">
          webhook, form, chat (auto-detected if not specified)
        </ResponseField>

        <ResponseField name="httpMethod" type="string">
          GET, POST, PUT, DELETE (default: auto-detected from webhook config)
        </ResponseField>

        <ResponseField name="webhookPath" type="string">
          Override the webhook path
        </ResponseField>

        <ResponseField name="webhookData" type="object">
          JSON payload for webhook triggers (request body)
        </ResponseField>

        <ResponseField name="formData" type="object">
          Form field values for form triggers. Keys: field-0, field-1, etc.
        </ResponseField>

        <ResponseField name="message" type="string">
          Message for chat triggers
        </ResponseField>

        <ResponseField name="sessionId" type="string">
          Session ID for chat triggers only (optional, auto-generated if not provided)
        </ResponseField>

        <ResponseField name="headers" type="object">
          Custom HTTP headers for webhook/form requests
        </ResponseField>

        <ResponseField name="timeout" type="number" default="120000">
          Timeout in milliseconds
        </ResponseField>

        <ResponseField name="waitForResponse" type="boolean" default="true">
          Wait for workflow completion
        </ResponseField>

        <ResponseField name="returnExecution" type="boolean" default="false">
          Auto-fetch and return the latest execution after trigger (recommended — avoids a separate n8n\_manage\_executions call)
        </ResponseField>

        <ResponseField name="returnExecutionMode" type="string" default="summary">
          Detail level when returnExecution=true: summary (token-efficient) or full (complete payload)
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="n8n_manage_executions" type="tool">
      Comprehensive execution management with advanced correlation to trace execution chains. Use `action: "get"` with `workflowId` (no id) to fetch the latest execution for a workflow.

      <Expandable title="parameters">
        <ResponseField name="action" type="string" required>
          get, list, delete, retry, correlate
        </ResponseField>

        <ResponseField name="id" type="string">
          Execution ID (for get, delete, retry). Omit with action=get + workflowId to get the latest execution.
        </ResponseField>

        <ResponseField name="mode" type="string" default="summary">
          For get: preview, summary, filtered, full, error
        </ResponseField>

        <ResponseField name="includeInputData" type="boolean" default="false">
          For get: include input data in addition to output
        </ResponseField>

        <ResponseField name="itemsLimit" type="number">
          For get with mode=filtered: items per node (0=structure, 2=default, -1=unlimited)
        </ResponseField>

        <ResponseField name="nodeNames" type="string[]">
          For get with mode=filtered: filter to specific nodes by name
        </ResponseField>

        <ResponseField name="includeStackTrace" type="boolean" default="false">
          For get with mode=error: include full stack trace
        </ResponseField>

        <ResponseField name="includeExecutionPath" type="boolean" default="true">
          For get with mode=error: include execution path leading to error
        </ResponseField>

        <ResponseField name="errorItemsLimit" type="number" default="2">
          For get with mode=error: sample items from upstream node (max: 100)
        </ResponseField>

        <ResponseField name="fetchWorkflow" type="boolean" default="true">
          For get with mode=error: fetch workflow for accurate upstream detection
        </ResponseField>

        <ResponseField name="workflowId" type="string">
          For list: filter by workflow
        </ResponseField>

        <ResponseField name="status" type="string">
          For list: success, error, waiting
        </ResponseField>

        <ResponseField name="limit" type="number" default="100">
          For list: number of executions (1-100)
        </ResponseField>

        <ResponseField name="cursor" type="string">
          For list: pagination cursor from previous response
        </ResponseField>

        <ResponseField name="projectId" type="string">
          For list: filter by project ID (enterprise feature)
        </ResponseField>

        <ResponseField name="includeData" type="boolean" default="false">
          For list: include execution data
        </ResponseField>

        <ResponseField name="loadWorkflow" type="boolean" default="true">
          For retry: whether to load the workflow definition
        </ResponseField>

        <ResponseField name="executionId" type="string">
          For correlate: starting execution ID
        </ResponseField>

        <ResponseField name="timeWindowMs" type="number" default="30000">
          For correlate: time window in milliseconds
        </ResponseField>
      </Expandable>

      <Expandable title="correlation features">
        * **Webhook path matching**: Find executions triggered by HTTP calls
        * **User context matching**: Correlate by user\_id, chat\_id, correlation\_id
        * **Timing analysis**: Find executions within configurable time window
        * **Sub-workflow detection**: Identify executeWorkflowTrigger patterns
      </Expandable>
    </ResponseField>

    <ResponseField name="n8n_manage_pindata" type="tool">
      Save and reuse mock data for testing workflows. Instead of calling real APIs or waiting for webhooks, save sample output from any node and reuse it in future test runs. Especially useful for triggers (webhooks, forms) but works with any node for consistent testing without external dependencies.

      **Authentication:** `analyzePinDataRequirement` works with API key/OAuth only. CRUD operations (add/update/remove/clear/read) require login credentials.

      <Expandable title="parameters">
        <ResponseField name="mode" type="string" required>
          analyzePinDataRequirement, addPinData, updatePinData, removePinData, clearPinData, readPinData
        </ResponseField>

        <ResponseField name="id" type="string" required>
          Workflow ID
        </ResponseField>

        <ResponseField name="nodeName" type="string">
          Node name to save mock data for (required for add/update/remove modes)
        </ResponseField>

        <ResponseField name="pinData" type="array">
          Array of mock data items to save (for add/update modes)
        </ResponseField>

        <ResponseField name="expectedChecksum" type="string">
          Optional checksum for conflict detection
        </ResponseField>

        <ResponseField name="autosaved" type="boolean">
          Mark update as autosaved (optional)
        </ResponseField>

        <ResponseField name="aiBuilderAssisted" type="boolean">
          Flag to mark AI-assisted updates (optional)
        </ResponseField>

        <ResponseField name="forceSave" type="boolean">
          Bypass checksum mismatch (optional)
        </ResponseField>
      </Expandable>

      <Expandable title="use cases">
        * Test webhook/form triggers without sending real HTTP requests
        * Avoid hitting API rate limits during development
        * Use the same test data every time for consistent results
        * Skip slow external API calls while building your workflow
        * Test error scenarios with custom mock data
      </Expandable>
    </ResponseField>

    <ResponseField name="n8n_inspect_node_io" type="tool">
      Inspect post-execution node input/output data. Use after any execution to debug expression errors, verify data shapes, or understand branch routing (IF/Switch outputs). Defaults to schema-style output (field/type shape) to keep context small.

      <Expandable title="parameters">
        <ResponseField name="executionId" type="string">
          Execution ID to inspect. Omit to use workflowId instead.
        </ResponseField>

        <ResponseField name="workflowId" type="string">
          Workflow ID shortcut — auto-resolves the latest execution for this workflow.
        </ResponseField>

        <ResponseField name="nodeName" type="string">
          Single node name to inspect (exact workflow node name)
        </ResponseField>

        <ResponseField name="nodeNames" type="string[]">
          Multiple node names to inspect. Omit to inspect all executed nodes.
        </ResponseField>

        <ResponseField name="runMode" type="string" default="latest">
          Run selection: `latest`, `latestN`, `all`, or `indices`
        </ResponseField>

        <ResponseField name="runIndices" type="number[]">
          For `runMode="indices"`: specific 0-based run indices to inspect
        </ResponseField>

        <ResponseField name="runLimit" type="number">
          For `runMode="latestN"`: how many recent runs to include
        </ResponseField>

        <ResponseField name="outputIndex" type="number">
          Single 0-based output index filter, useful for IF/Switch branches
        </ResponseField>

        <ResponseField name="valueMode" type="string" default="schema">
          schema (compact field/type shape) or full (raw item values)
        </ResponseField>

        <ResponseField name="detailMode" type="string" default="summary">
          summary (counts/structure) or detail (full item payloads)
        </ResponseField>

        <ResponseField name="outputIndices" type="number[]">
          Filter IF/Switch branches by 0-based output index
        </ResponseField>

        <ResponseField name="connectionTypes" type="string[]">
          Filter by connection type (main, ai\_tool, ai\_memory, ai\_languageModel, etc.)
        </ResponseField>

        <ResponseField name="includeInput" type="boolean" default="true">
          Include input analysis (source lineage and/or inputOverride)
        </ResponseField>

        <ResponseField name="includeOutput" type="boolean" default="true">
          Include node outputs
        </ResponseField>

        <ResponseField name="inputMode" type="string" default="both">
          Input analysis mode: `source`, `inputOverride`, or `both`
        </ResponseField>

        <ResponseField name="itemsMode" type="string" default="firstN">
          How items are sampled from each input/output collection: `firstN`, `lastN`, `all`, or `range`
        </ResponseField>

        <ResponseField name="itemsLimit" type="number" default="5">
          For `firstN` and `lastN`: number of items to include (max 1000)
        </ResponseField>

        <ResponseField name="rangeStart" type="number">
          For `itemsMode="range"`: inclusive start index
        </ResponseField>

        <ResponseField name="rangeEnd" type="number">
          For `itemsMode="range"`: exclusive end index
        </ResponseField>

        <ResponseField name="includeBinary" type="boolean" default="false">
          Include binary payload metadata and content references
        </ResponseField>

        <ResponseField name="includePairedItem" type="boolean" default="true">
          Include paired item lineage metadata for each item
        </ResponseField>

        <ResponseField name="includeMetadata" type="boolean" default="true">
          Include run metadata such as status, execution time, and errors
        </ResponseField>

        <ResponseField name="nodePage" type="number">
          0-based node pagination page for large executions
        </ResponseField>

        <ResponseField name="nodePageSize" type="number">
          Number of nodes per page (1-200)
        </ResponseField>

        <ResponseField name="runPage" type="number">
          0-based run pagination page within each selected node
        </ResponseField>

        <ResponseField name="runPageSize" type="number">
          Number of runs per page (1-200)
        </ResponseField>

        <ResponseField name="itemPage" type="number">
          0-based item pagination page inside each inspected collection
        </ResponseField>

        <ResponseField name="itemPageSize" type="number">
          Items per page inside each inspected collection (1-1000)
        </ResponseField>

        <ResponseField name="includePaginationMeta" type="boolean">
          Include pagination metadata in the response. Defaults to `true` when pagination is used.
        </ResponseField>

        <ResponseField name="fetchWorkflow" type="boolean" default="true">
          Fetch workflow metadata to enrich node type and typeVersion when execution payloads are incomplete
        </ResponseField>

        <ResponseField name="includeContext" type="boolean" default="false">
          Append lightweight node context such as parents, children, counts, classification, and execution-presence flags
        </ResponseField>

        <ResponseField name="includeContextParameters" type="boolean">
          When `includeContext=true`, include workflow node parameters for inspected nodes
        </ResponseField>

        <ResponseField name="includeContextRunData" type="boolean">
          When `includeContext=true`, include the latest normalized runData entry for each inspected node
        </ResponseField>

        <ResponseField name="staticPreview" type="boolean" default="false">
          Mirror n8n NDV input preview using static upstream schemas without execution data. Requires `workflowId` and only works for previewable contexts.
        </ResponseField>
      </Expandable>

      <Expandable title="usage notes">
        * Use `workflowId` as a shortcut when you want the latest execution for a workflow.
        * Use `n8n_trigger_execution` with `destinationNode` first if you need missing input data populated for downstream nodes.
        * Start with `valueMode="schema"` and switch to `full` only when raw values are necessary.
        * `staticPreview` mirrors n8n’s editor preview and is best for Gmail -> Set, Telegram -> Switch, and similar previewable paths.
        * `includeContextParameters` and `includeContextRunData` only apply when `includeContext=true`.
      </Expandable>
    </ResponseField>
  </Accordion>

  <Accordion title="Credentials (1 tool)" icon="key">
    <ResponseField name="n8n_manage_credentials" type="tool">
      Manage n8n credentials with five modes: get\_credential\_docs, create, delete, get\_schema, check\_workflow.

      <Expandable title="parameters">
        <ResponseField name="mode" type="string" required>
          get\_credential\_docs, create, delete, get\_schema, check\_workflow
        </ResponseField>

        <ResponseField name="name" type="string">
          Credential name (for create)
        </ResponseField>

        <ResponseField name="type" type="string">
          Credential type e.g., "httpBasicAuth", "gmailOAuth2Api" (for create)
        </ResponseField>

        <ResponseField name="data" type="object">
          Credential data with type-specific fields (for create)
        </ResponseField>

        <ResponseField name="id" type="string">
          Credential ID (for delete)
        </ResponseField>

        <ResponseField name="credentialTypeName" type="string">
          Credential type name (for get\_schema or get\_credential\_docs)
        </ResponseField>

        <ResponseField name="nodeType" type="string">
          Node type to fetch credential docs for (for get\_credential\_docs when credentialTypeName not provided)
        </ResponseField>

        <ResponseField name="workflowId" type="string">
          Workflow ID to analyze (for check\_workflow)
        </ResponseField>
      </Expandable>
    </ResponseField>
  </Accordion>
</AccordionGroup>

## Next Steps

<CardGroup cols="2">
  <Card title="Best Practices" icon="lightbulb" href="/best-practices">
    Learn tips and tricks for building better workflows with AI
  </Card>

  <Card title="Configure Agent Rules" icon="sliders" href="/rules">
    Set up client-specific rules for optimal workflow building
  </Card>
</CardGroup>

<div class="callout mint-my-4 mint-px-4 mint-py-3 mint-overflow-hidden mint-rounded-xl mint-flex mint-gap-3 mint-border mint-border-[#c15f3c]/30 mint-bg-[#c15f3c]/10">
  <div class="mint-mt-0.5 mint-w-4 mint-flex-shrink-0">
    <svg class="mint-w-4 mint-h-4 mint-text-[#c15f3c]" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2">
      <path stroke-linecap="round" stroke-linejoin="round" d="M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z" />
    </svg>
  </div>

  <div class="mint-text-sm mint-text-[#c15f3c]">
    <strong class="mint-text-[#c15f3c]">Production Safety:</strong> Always test workflows in a development environment before deploying to production. Never edit production workflows directly without backups.
  </div>
</div>
