Skip to main content
Glama

n8n MCP Server

MIT License
133
1,377
  • Apple
  • Linux
handler.ts2.17 kB
/** * Workflow Tools Handler * * This module handles calls to workflow-related tools. */ import { ToolCallResult } from '../../types/index.js'; import { N8nApiError } from '../../errors/index.js'; import { ListWorkflowsHandler, GetWorkflowHandler, CreateWorkflowHandler, UpdateWorkflowHandler, DeleteWorkflowHandler, ActivateWorkflowHandler, DeactivateWorkflowHandler, } from './index.js'; /** * Handle workflow tool calls * * @param toolName Name of the tool being called * @param args Arguments passed to the tool * @returns Tool call result */ export default async function workflowHandler( toolName: string, args: Record<string, any> ): Promise<ToolCallResult> { try { // Route to the appropriate handler based on the tool name switch (toolName) { case 'list_workflows': return await new ListWorkflowsHandler().execute(args); case 'get_workflow': return await new GetWorkflowHandler().execute(args); case 'create_workflow': return await new CreateWorkflowHandler().execute(args); case 'update_workflow': return await new UpdateWorkflowHandler().execute(args); case 'delete_workflow': return await new DeleteWorkflowHandler().execute(args); case 'activate_workflow': return await new ActivateWorkflowHandler().execute(args); case 'deactivate_workflow': return await new DeactivateWorkflowHandler().execute(args); default: throw new N8nApiError(`Unknown workflow tool: ${toolName}`); } } catch (error) { if (error instanceof N8nApiError) { return { content: [ { type: 'text', text: error.message, }, ], isError: true, }; } // Handle unexpected errors const errorMessage = error instanceof Error ? error.message : 'Unknown error occurred'; return { content: [ { type: 'text', text: `Error executing workflow tool: ${errorMessage}`, }, ], isError: true, }; } }

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/leonardsellem/n8n-mcp-server'

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