UNPKG

@edicarlos.lds/businessmap-mcp

Version:

Model Context Protocol server for BusinessMap (Kanbanize) integration

60 lines 2.11 kB
import dotenv from 'dotenv'; // Load environment variables dotenv.config(); function getRequiredEnvVar(name) { const value = process.env[name]; if (!value) { throw new Error(`Required environment variable ${name} is not set`); } return value; } function getBooleanEnvVar(name, defaultValue = false) { const value = process.env[name]; if (value === undefined) return defaultValue; return value.toLowerCase() === 'true'; } function getNumberEnvVar(name, defaultValue) { const value = process.env[name]; if (value === undefined) return defaultValue; const parsed = parseInt(value, 10); if (isNaN(parsed)) { throw new Error(`Environment variable ${name} must be a valid number`); } return parsed; } export const config = { businessMap: { apiUrl: getRequiredEnvVar('BUSINESSMAP_API_URL'), apiToken: getRequiredEnvVar('BUSINESSMAP_API_TOKEN'), defaultWorkspaceId: getNumberEnvVar('BUSINESSMAP_DEFAULT_WORKSPACE_ID'), readOnlyMode: getBooleanEnvVar('BUSINESSMAP_READ_ONLY_MODE', false), }, server: { name: process.env.MCP_SERVER_NAME || 'businessmap-mcp', version: process.env.MCP_SERVER_VERSION || '1.0.0', port: getNumberEnvVar('PORT'), }, transport: { sse: getBooleanEnvVar('SSE', false), streamableHttp: getBooleanEnvVar('STREAMABLE_HTTP', true), }, }; export function validateConfig() { // Validate API URL format try { new URL(config.businessMap.apiUrl); } catch { throw new Error('BUSINESSMAP_API_URL must be a valid URL'); } // Validate API token is not empty if (!config.businessMap.apiToken.trim()) { throw new Error('BUSINESSMAP_API_TOKEN cannot be empty'); } console.log(`✅ Configuration validated for ${config.server.name} v${config.server.version}`); console.log(`📡 BusinessMap API: ${config.businessMap.apiUrl}`); console.log(`🔒 Read-only mode: ${config.businessMap.readOnlyMode ? 'enabled' : 'disabled'}`); } //# sourceMappingURL=environment.js.map