Skip to main content
Glama

n8n-MCP

by 88-888
fixtures.tsβ€’7.96 kB
/** * Workflow Fixtures for Integration Tests * * Provides reusable workflow templates for testing. * All fixtures use FULL node type format (n8n-nodes-base.*) * as required by the n8n API. */ import { Workflow, WorkflowNode } from '../../../../src/types/n8n-api'; /** * Simple webhook workflow with a single Webhook node * * Use this for basic workflow creation tests. */ export const SIMPLE_WEBHOOK_WORKFLOW: Partial<Workflow> = { nodes: [ { id: 'webhook-1', name: 'Webhook', type: 'n8n-nodes-base.webhook', typeVersion: 2, position: [250, 300], parameters: { httpMethod: 'GET', path: 'test-webhook' } } ], connections: {}, settings: { executionOrder: 'v1' } }; /** * Simple HTTP request workflow * * Contains a Webhook trigger and an HTTP Request node. * Tests basic workflow connections. */ export const SIMPLE_HTTP_WORKFLOW: Partial<Workflow> = { nodes: [ { id: 'webhook-1', name: 'Webhook', type: 'n8n-nodes-base.webhook', typeVersion: 2, position: [250, 300], parameters: { httpMethod: 'GET', path: 'trigger' } }, { id: 'http-1', name: 'HTTP Request', type: 'n8n-nodes-base.httpRequest', typeVersion: 4.2, position: [450, 300], parameters: { url: 'https://httpbin.org/get', method: 'GET' } } ], connections: { Webhook: { main: [[{ node: 'HTTP Request', type: 'main', index: 0 }]] } }, settings: { executionOrder: 'v1' } }; /** * Multi-node workflow with branching * * Tests complex connections and multiple execution paths. */ export const MULTI_NODE_WORKFLOW: Partial<Workflow> = { nodes: [ { id: 'webhook-1', name: 'Webhook', type: 'n8n-nodes-base.webhook', typeVersion: 2, position: [250, 300], parameters: { httpMethod: 'POST', path: 'multi-node' } }, { id: 'set-1', name: 'Set 1', type: 'n8n-nodes-base.set', typeVersion: 3.4, position: [450, 200], parameters: { assignments: { assignments: [ { id: 'assign-1', name: 'branch', value: 'top', type: 'string' } ] }, options: {} } }, { id: 'set-2', name: 'Set 2', type: 'n8n-nodes-base.set', typeVersion: 3.4, position: [450, 400], parameters: { assignments: { assignments: [ { id: 'assign-2', name: 'branch', value: 'bottom', type: 'string' } ] }, options: {} } }, { id: 'merge-1', name: 'Merge', type: 'n8n-nodes-base.merge', typeVersion: 3, position: [650, 300], parameters: { mode: 'append', options: {} } } ], connections: { Webhook: { main: [ [ { node: 'Set 1', type: 'main', index: 0 }, { node: 'Set 2', type: 'main', index: 0 } ] ] }, 'Set 1': { main: [[{ node: 'Merge', type: 'main', index: 0 }]] }, 'Set 2': { main: [[{ node: 'Merge', type: 'main', index: 1 }]] } }, settings: { executionOrder: 'v1' } }; /** * Workflow with error handling * * Tests error output configuration and error workflows. */ export const ERROR_HANDLING_WORKFLOW: Partial<Workflow> = { nodes: [ { id: 'webhook-1', name: 'Webhook', type: 'n8n-nodes-base.webhook', typeVersion: 2, position: [250, 300], parameters: { httpMethod: 'GET', path: 'error-test' } }, { id: 'http-1', name: 'HTTP Request', type: 'n8n-nodes-base.httpRequest', typeVersion: 4.2, position: [450, 300], parameters: { url: 'https://httpbin.org/status/500', method: 'GET' }, continueOnFail: true, onError: 'continueErrorOutput' }, { id: 'set-error', name: 'Handle Error', type: 'n8n-nodes-base.set', typeVersion: 3.4, position: [650, 400], parameters: { assignments: { assignments: [ { id: 'error-assign', name: 'error_handled', value: 'true', type: 'boolean' } ] }, options: {} } } ], connections: { Webhook: { main: [[{ node: 'HTTP Request', type: 'main', index: 0 }]] }, 'HTTP Request': { main: [[{ node: 'Handle Error', type: 'main', index: 0 }]], error: [[{ node: 'Handle Error', type: 'main', index: 0 }]] } }, settings: { executionOrder: 'v1' } }; /** * AI Agent workflow (langchain nodes) * * Tests langchain node support. */ export const AI_AGENT_WORKFLOW: Partial<Workflow> = { nodes: [ { id: 'manual-1', name: 'When clicking "Test workflow"', type: 'n8n-nodes-base.manualTrigger', typeVersion: 1, position: [250, 300], parameters: {} }, { id: 'agent-1', name: 'AI Agent', type: '@n8n/n8n-nodes-langchain.agent', typeVersion: 1.7, position: [450, 300], parameters: { promptType: 'define', text: '={{ $json.input }}', options: {} } } ], connections: { 'When clicking "Test workflow"': { main: [[{ node: 'AI Agent', type: 'main', index: 0 }]] } }, settings: { executionOrder: 'v1' } }; /** * Workflow with n8n expressions * * Tests expression validation. */ export const EXPRESSION_WORKFLOW: Partial<Workflow> = { nodes: [ { id: 'manual-1', name: 'Manual Trigger', type: 'n8n-nodes-base.manualTrigger', typeVersion: 1, position: [250, 300], parameters: {} }, { id: 'set-1', name: 'Set Variables', type: 'n8n-nodes-base.set', typeVersion: 3.4, position: [450, 300], parameters: { assignments: { assignments: [ { id: 'expr-1', name: 'timestamp', value: '={{ $now }}', type: 'string' }, { id: 'expr-2', name: 'item_count', value: '={{ $json.items.length }}', type: 'number' }, { id: 'expr-3', name: 'first_item', value: '={{ $node["Manual Trigger"].json }}', type: 'object' } ] }, options: {} } } ], connections: { 'Manual Trigger': { main: [[{ node: 'Set Variables', type: 'main', index: 0 }]] } }, settings: { executionOrder: 'v1' } }; /** * Get a fixture by name * * @param name - Fixture name * @returns Workflow fixture */ export function getFixture( name: | 'simple-webhook' | 'simple-http' | 'multi-node' | 'error-handling' | 'ai-agent' | 'expression' ): Partial<Workflow> { const fixtures = { 'simple-webhook': SIMPLE_WEBHOOK_WORKFLOW, 'simple-http': SIMPLE_HTTP_WORKFLOW, 'multi-node': MULTI_NODE_WORKFLOW, 'error-handling': ERROR_HANDLING_WORKFLOW, 'ai-agent': AI_AGENT_WORKFLOW, expression: EXPRESSION_WORKFLOW }; return JSON.parse(JSON.stringify(fixtures[name])); // Deep clone } /** * Create a minimal workflow with custom nodes * * @param nodes - Array of workflow nodes * @param connections - Optional connections object * @returns Workflow fixture */ export function createCustomWorkflow( nodes: WorkflowNode[], connections: Record<string, any> = {} ): Partial<Workflow> { return { nodes, connections, settings: { executionOrder: 'v1' } }; }

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/88-888/n8n-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server