n8n-mcp-server
Version:
Model Context Protocol (MCP) server for n8n workflow automation
52 lines • 1.66 kB
JavaScript
/**
* 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',
};
/**
* Load environment variables from .env file if present
*/
export function loadEnvironmentVariables() {
dotenv.config();
}
/**
* Validate and retrieve required environment variables
*
* @returns Validated environment configuration
* @throws {McpError} If required environment variables are missing
*/
export function getEnvConfig() {
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,
};
}
//# sourceMappingURL=environment.js.map