UNPKG

msexchange-mcp

Version:

MCP server for Microsoft Exchange/Outlook email operations via Microsoft Graph API

47 lines 1.62 kB
import { z } from 'zod'; import { config as loadDotenv } from 'dotenv'; // Load environment variables from .env file loadDotenv(); // Also load Key Vault config if available loadDotenv({ path: '.env.keyvault' }); const ConfigSchema = z.object({ clientId: z.string(), tenantId: z.string(), tokenRefresh: z.object({ bufferMinutes: z.number().default(10), checkIntervalMinutes: z.number().default(5), autoRefreshEnabled: z.boolean().default(true), }).default({ bufferMinutes: 10, checkIntervalMinutes: 5, autoRefreshEnabled: true, }), keyVault: z.object({ vaultUri: z.string().optional(), enabled: z.boolean().default(true), }).default({ enabled: true, }), }); export function loadConfig() { const config = { clientId: process.env.AZURE_AD_CLIENT_ID || '', tenantId: process.env.AZURE_AD_TENANT_ID || '', tokenRefresh: { bufferMinutes: parseInt(process.env.TOKEN_REFRESH_BUFFER_MINUTES || '10'), checkIntervalMinutes: parseInt(process.env.TOKEN_REFRESH_CHECK_INTERVAL_MINUTES || '5'), autoRefreshEnabled: process.env.AUTO_REFRESH_ENABLED !== 'false', }, keyVault: { vaultUri: process.env.AZURE_KEY_VAULT_URI, enabled: process.env.KEY_VAULT_ENABLED !== 'false', }, }; try { return ConfigSchema.parse(config); } catch (error) { throw new Error('Missing Azure AD configuration. Please set AZURE_AD_CLIENT_ID and AZURE_AD_TENANT_ID'); } } //# sourceMappingURL=config.js.map