UNPKG

n8n-mcp-server

Version:

Model Context Protocol (MCP) server for n8n workflow automation

75 lines (65 loc) 1.78 kB
/** * Environment Configuration * * This module handles loading and validating environment variables * required for connecting to the n8n API. */ import dotenv from 'dotenv'; import { McpError } from '@modelcontextprotocol/sdk/types.js'; import { ErrorCode } from '../errors/error-codes.js'; // Environment variable names export const ENV_VARS = { N8N_API_URL: 'N8N_API_URL', N8N_API_KEY: 'N8N_API_KEY', DEBUG: 'DEBUG', }; // Interface for validated environment variables export interface EnvConfig { n8nApiUrl: string; n8nApiKey: string; debug: boolean; } /** * Load environment variables from .env file if present */ export function loadEnvironmentVariables(): void { dotenv.config(); } /** * Validate and retrieve required environment variables * * @returns Validated environment configuration * @throws {McpError} If required environment variables are missing */ export function getEnvConfig(): EnvConfig { const n8nApiUrl = process.env[ENV_VARS.N8N_API_URL]; const n8nApiKey = process.env[ENV_VARS.N8N_API_KEY]; const debug = process.env[ENV_VARS.DEBUG]?.toLowerCase() === 'true'; // Validate required environment variables if (!n8nApiUrl) { throw new McpError( ErrorCode.InitializationError, `Missing required environment variable: ${ENV_VARS.N8N_API_URL}` ); } if (!n8nApiKey) { throw new McpError( ErrorCode.InitializationError, `Missing required environment variable: ${ENV_VARS.N8N_API_KEY}` ); } // Validate URL format try { new URL(n8nApiUrl); } catch (error) { throw new McpError( ErrorCode.InitializationError, `Invalid URL format for ${ENV_VARS.N8N_API_URL}: ${n8nApiUrl}` ); } return { n8nApiUrl, n8nApiKey, debug, }; }