import { join } from 'path';
import { homedir } from 'os';
export interface Config {
apifyToken: string;
openaiApiKey: string;
dataDir: string;
port: number;
}
function getEnvOrThrow(key: string): string {
const value = process.env[key];
if (!value) {
throw new Error(`Missing required environment variable: ${key}. Set it before running the server.`);
}
return value;
}
function getEnvOrDefault(key: string, defaultValue: string): string {
return process.env[key] || defaultValue;
}
let _config: Config | null = null;
export function getConfig(): Config {
if (_config) return _config;
_config = {
apifyToken: getEnvOrThrow('APIFY_TOKEN'),
openaiApiKey: getEnvOrDefault('OPENAI_API_KEY', ''),
dataDir: getEnvOrDefault('SOCIAL_RESEARCH_DATA_DIR', join(homedir(), '.social-research-mcp', 'data')),
port: parseInt(getEnvOrDefault('SOCIAL_RESEARCH_PORT', '3847'), 10),
};
return _config;
}
export function hasOpenAI(): boolean {
return !!process.env['OPENAI_API_KEY'];
}