msexchange-mcp
Version:
MCP server for Microsoft Exchange/Outlook email operations via Microsoft Graph API
47 lines • 1.62 kB
JavaScript
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