UNPKG

pms-analysis-reports-mcp-server

Version:

PMS analysis reports server handling maintenance reports, equipment analysis, compliance tracking, and performance metrics with ERP access for data extraction

145 lines 7.84 kB
import dotenv from 'dotenv'; import path from 'path'; // Load environment variables from .env file dotenv.config({ path: path.resolve(process.cwd(), '.env') }); function parseArgs() { const args = process.argv.slice(2); const config = {}; for (let i = 0; i < args.length; i++) { const arg = args[i]; if (arg === '--mongo-uri' && i + 1 < args.length) { config.mongoUri = args[++i]; } else if (arg === '--db-name' && i + 1 < args.length) { config.dbName = args[++i]; } else if (arg === '--mongodb-uri-syia-etl' && i + 1 < args.length) { config.secondaryDbUri = args[++i]; } else if (arg === '--db-name-syia-etl' && i + 1 < args.length) { config.secondaryDbName = args[++i]; } else if (arg === '--mongodb-uri-engine-data' && i + 1 < args.length) { config.thirdDbUri = args[++i]; } else if (arg === '--db-name-engine-data' && i + 1 < args.length) { config.thirdDbName = args[++i]; } else if (arg === '--company-db-uri' && i + 1 < args.length) { config.companyDbUri = args[++i]; } else if (arg === '--company-db-name' && i + 1 < args.length) { config.companyDbName = args[++i]; } else if (arg === '--company-name' && i + 1 < args.length) { config.companyName = args[++i]; } else if (arg === '--typesense-host' && i + 1 < args.length) { config.typesenseHost = args[++i]; } else if (arg === '--typesense-port' && i + 1 < args.length) { config.typesensePort = args[++i]; } else if (arg === '--typesense-protocol' && i + 1 < args.length) { config.typesenseProtocol = args[++i]; } else if (arg === '--typesense-api-key' && i + 1 < args.length) { config.typesenseApiKey = args[++i]; } else if (arg === '--cohere-api-key' && i + 1 < args.length) { config.cohereApiKey = args[++i]; } else if (arg === '--openai-api-key' && i + 1 < args.length) { config.openaiApiKey = args[++i]; } else if (arg === '--s3-api-token' && i + 1 < args.length) { config.s3ApiToken = args[++i]; } else if (arg === '--perplexity-api-key' && i + 1 < args.length) { config.perplexityApiKey = args[++i]; } else if (arg === '--llama-api-key' && i + 1 < args.length) { config.llamaApiKey = args[++i]; } else if (arg === '--vendor-model' && i + 1 < args.length) { config.vendorModel = args[++i]; } else if (arg === '--google-client-id' && i + 1 < args.length) { config.googleClientId = args[++i]; } else if (arg === '--google-client-secret' && i + 1 < args.length) { config.googleClientSecret = args[++i]; } else if (arg === '--google-redirect-uri' && i + 1 < args.length) { config.googleRedirectUri = args[++i]; } else if (arg === '--s3-generate-html-url' && i + 1 < args.length) { config.s3GenerateHtmlUrl = args[++i]; } else if (arg === '--llama-parse-url' && i + 1 < args.length) { config.llamaParseUrl = args[++i]; } else if (arg === '--google-api-key' && i + 1 < args.length) { config.googleApiKey = args[++i]; } else if (arg === '--google-search-engine-id' && i + 1 < args.length) { config.googleSearchEngineId = args[++i]; } else if (arg === '--mongo-max-pool-size' && i + 1 < args.length) { config.mongoMaxPoolSize = parseInt(args[++i]); } else if (arg === '--mongo-min-pool-size' && i + 1 < args.length) { config.mongoMinPoolSize = parseInt(args[++i]); } else if (arg === '--mongo-connection-timeout' && i + 1 < args.length) { config.mongoConnectionTimeout = parseInt(args[++i]); } else if (arg === '--mongo-socket-timeout' && i + 1 < args.length) { config.mongoSocketTimeout = parseInt(args[++i]); } else if (arg === '--typesense-connection-timeout' && i + 1 < args.length) { config.typesenseConnectionTimeout = parseInt(args[++i]); } else if (arg === '--typesense-retries' && i + 1 < args.length) { config.typesenseRetries = parseInt(args[++i]); } } return { mongoUri: config.mongoUri || process.env.MONGO_URI || 'mongodb://localhost:27017', dbName: config.dbName || process.env.DB_NAME || 'mcp_pms_analysis', secondaryDbUri: config.secondaryDbUri || process.env.MONGODB_URI_SYIA_ETL || 'mongodb://localhost:27017', secondaryDbName: config.secondaryDbName || process.env.DB_NAME_SYIA_ETL || 'syia-etl-dev', thirdDbUri: config.thirdDbUri || process.env.MONGODB_URI_ENGINE_DATA || 'mongodb://localhost:27017', thirdDbName: config.thirdDbName || process.env.DB_NAME_ENGINE_DATA || 'syia-etl-dev', // Company database configuration for IMO filtering companyDbUri: config.companyDbUri || process.env.COMPANY_DB_URI || process.env.MONGODB_URI_SYIA_ETL || 'mongodb://localhost:27017', companyDbName: config.companyDbName || process.env.COMPANY_DB_NAME || process.env.DB_NAME_SYIA_ETL || 'syia-etl-dev', companyName: config.companyName || process.env.COMPANY_NAME, typesenseHost: config.typesenseHost || process.env.TYPESENSE_HOST || 'localhost', typesensePort: config.typesensePort || process.env.TYPESENSE_PORT || '8108', typesenseProtocol: config.typesenseProtocol || process.env.TYPESENSE_PROTOCOL || 'http', typesenseApiKey: config.typesenseApiKey || process.env.TYPESENSE_API_KEY || '', cohereApiKey: config.cohereApiKey || process.env.COHERE_API_KEY || '', openaiApiKey: config.openaiApiKey || process.env.OPENAI_API_KEY || '', s3ApiToken: config.s3ApiToken || process.env.S3_API_TOKEN || '', perplexityApiKey: config.perplexityApiKey || process.env.PERPLEXITY_API_KEY || '', llamaApiKey: config.llamaApiKey || process.env.LLAMA_API_KEY || '', vendorModel: config.vendorModel || process.env.VENDOR_MODEL || 'gpt-4', googleClientId: config.googleClientId || process.env.GOOGLE_CLIENT_ID || '', googleClientSecret: config.googleClientSecret || process.env.GOOGLE_CLIENT_SECRET || '', googleRedirectUri: config.googleRedirectUri || process.env.GOOGLE_REDIRECT_URI || '', s3GenerateHtmlUrl: config.s3GenerateHtmlUrl || process.env.S3_GENERATE_HTML_URL || '', llamaParseUrl: config.llamaParseUrl || process.env.LLAMA_PARSE_URL || '', googleApiKey: config.googleApiKey || process.env.GOOGLE_API_KEY || '', googleSearchEngineId: config.googleSearchEngineId || process.env.GOOGLE_SEARCH_ENGINE_ID || '', // Connection pool configuration with defaults mongoMaxPoolSize: config.mongoMaxPoolSize || parseInt(process.env.MONGO_MAX_POOL_SIZE || '') || 20, mongoMinPoolSize: config.mongoMinPoolSize || parseInt(process.env.MONGO_MIN_POOL_SIZE || '') || 2, mongoConnectionTimeout: config.mongoConnectionTimeout || parseInt(process.env.MONGO_CONNECTION_TIMEOUT || '') || 10000, mongoSocketTimeout: config.mongoSocketTimeout || parseInt(process.env.MONGO_SOCKET_TIMEOUT || '') || 45000, typesenseConnectionTimeout: config.typesenseConnectionTimeout || parseInt(process.env.TYPESENSE_CONNECTION_TIMEOUT || '') || 10, typesenseRetries: config.typesenseRetries || parseInt(process.env.TYPESENSE_RETRIES || '') || 3 }; } export const config = parseArgs(); //# sourceMappingURL=config.js.map