survey-mcp-server
Version:
Survey management server handling survey creation, response collection, analysis, and reporting with database access for data management
387 lines • 14.2 kB
JavaScript
import dotenv from 'dotenv';
import path from 'path';
// Default .env loading - this will be called again if needed
dotenv.config({ path: path.resolve(process.cwd(), '.env') });
// Function to create config from current environment variables
function createConfig() {
return {
// Company name for IMO filtering
companyName: process.env.COMPANY_NAME,
// MongoDB configurations
mongodb: {
uri: process.env.MONGODB_URI || 'mongodb://localhost:27017',
dbName: process.env.MONGODB_DB_NAME || 'survey-mcp-server'
},
// Additional MongoDB connections
devSyiaApi: {
uri: process.env.MONGO_URI_DEV_SYIA_API || 'mongodb://sabareesh:1ji9CYfkS6rD@db.syia.ai/?authSource=syia-etl-dev',
dbName: process.env.DB_NAME_DEV_SYIA_API || 'syia-etl-dev'
},
syiaEtlDev: {
uri: process.env.MONGODB_URI_SYIA_ETL || 'mongodb://syia-etl-dev:SVWvsnr6wAqKG1l@db-etl.prod.syia.ai:27017/?authSource=syia-etl-dev',
dbName: process.env.DB_NAME_SYIA_ETL || 'syia-etl-dev'
},
// Typesense configuration
typesense: {
nodes: [
{
host: process.env.TYPESENSE_HOST || 'localhost',
port: parseInt(process.env.TYPESENSE_PORT || '8108'),
protocol: process.env.TYPESENSE_PROTOCOL || 'http',
path: process.env.TYPESENSE_PATH || ''
}
],
apiKey: process.env.TYPESENSE_API_KEY || 'xyz',
connectionTimeoutSeconds: parseInt(process.env.TYPESENSE_TIMEOUT || '10')
},
// API Keys
openai: {
apiKey: process.env.OPENAI_API_KEY || ''
},
perplexity: {
apiKey: process.env.PERPLEXITY_API_KEY || ''
},
llama: {
apiKey: process.env.LLAMA_API_KEY || ''
},
// API endpoints
api: {
baseUrl: process.env.API_BASE_URL || 'https://app-api.siya.com',
token: process.env.API_TOKEN || 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJkYXRhIjp7ImlkIjoiNjRkMzdhMDM1Mjk5YjFlMDQxOTFmOTJhIiwiZmlyc3ROYW1lIjoiU3lpYSIsImxhc3ROYW1lIjoiRGV2IiwiZW1haWwiOiJkZXZAc3lpYS5haSIsInJvbGUiOiJhZG1pbiIsInJvbGVJZCI6IjVmNGUyODFkZDE4MjM0MzY4NDE1ZjViZiIsImlhdCI6MTc0MDgwODg2OH0sImlhdCI6MTc0MDgwODg2OCwiZXhwIjoxNzcyMzQ0ODY4fQ.1grxEO0aO7wfkSNDzpLMHXFYuXjaA1bBguw2SJS9r2M',
vesselInfoEndpoint: 'https://ranking.syia.ai/search',
s3GenerateHtmlUrl: 'https://app-api.siya.com/v1.0/s3bucket/generate-html'
},
// Classification Society Credentials
class: {
ccs: {
"SMPL": {
"username": "Synergy Maritime",
"password": "Pra92981"
},
"SMSL": {
"username": "Synergy Marine",
"password": "Synergy12345"
},
"SDK": {
"username": "Synergy",
"password": "rjJ0Mxj6nN"
}
},
nk: {
"SMPL": {
"username": "sy0069",
"password": "NKKchennai1"
},
"SPPL": {
"username": "SY0184",
"password": "LAVFCG7g"
},
"SMID": {
"username": "PT0814",
"password": "V6pyTRLL"
},
"DSSM": {
"username": "DS0174",
"password": "KSQJU66x"
},
"SNPL": {
"username": "SY0111",
"password": "Synergy@2025"
},
"SMG": {
"username": "SY0147",
"password": "SMGShips@4567"
},
"SOMI": {
"username": "SY0124",
"password": "SYnergy^123"
},
"SOPL": {
"username": "SY0108",
"password": "Oceanic@123"
},
"SMSH": {
"username": "SY0168",
"password": "6955sLAM"
},
"WSSM": {
"username": "WI0215",
"password": "993Tudzb"
},
"SMBL": {
"username": "SY0176",
"password": "at44HLRG"
},
"SMSL": {
"username": "sy0083",
"password": "SMSL@12345"
},
"SOMP": {
"username": "SY0166",
"password": "ONYX@12345"
},
"SSTC": {
"username": "SY0175",
"password": "ibKAG252+"
},
"SMC": {
"username": "NO0249",
"password": "Nssm@123"
}
},
kr: {
"SMPL": {
"username": "synergy",
"password": "KRchennai1",
"uid": "sp_vg@synergyship.com",
"uid_password": "Synergy@123"
},
"SMC": {
"username": "0048009",
"password": "norsy123@@",
"uid": "kumaran@synergyship.com",
"uid_password": "Synergy@123"
},
"SMG": {
"username": "0046907",
"password": "synergy7@",
"uid": "chandru.r@samudhramarine.co.in",
"uid_password": "Synergy@123"
},
"SMCL": {
"username": "0049172",
"password": "syner123@@",
"uid": "rohankumar.v@synergyship.com",
"uid_password": "Synergy@123"
},
"DSSM": {
"username": "0050667",
"password": "dsship123@@",
"uid": "prasanna.p@synergyship.com",
"uid_password": "Synergy@123"
},
"SMID": {
"username": "prabhu.d@synergyship.com",
"password": "Synergy@123",
"uid": "prabhu.d@synergyship.com",
"uid_password": "Synergy@123"
}
},
dnv: {
"SMPL": {
"username": "SYNERGY1",
"password": "Marine123"
},
"SPPL": {
"username": "techsupers@synergypacificship.com",
"password": "Synergypacific@123"
},
"SMSL": {
"username": "Mail@synergymarine.sg",
"password": "Sumec@12345"
},
"SOMI": {
"username": "SYNERGY9",
"password": "somi@123#%HPQ"
},
"SDK": {
"username": "krishnasundari.c@synergyship.com",
"password": "Nandhu&03"
},
"SOPL": {
"username": "vivek@synergyoceanic.in",
"password": "Welcome@123"
},
"SMEC": {
"username": "survey@synergymideast.com",
"password": "Synerg@123"
},
"SNPL": {
"username": "SYNERGYN",
"password": "Olymuqo1"
},
"WSSM": {
"username": "survey@wssm.sg",
"password": "Wisdom@1234"
},
"SMBL": {
"username": "girishbabu.p@synergyship.com",
"password": "Synergy@123"
},
"SMG": {
"username": "qhse@synergygermany.com",
"password": "Synergy@456"
},
"GSSM": {
"username": "snc@gsshipmanagement.com",
"password": "!@#Welcome@123"
},
"SMC": {
"username": "nordensynergy",
"password": "sn301221"
}
},
lr: {
"SDK": {
"username": "rohan.p@synergyship.com",
"password": "Synergy123$"
},
"SMPL": {
"username": "ramesh.ta@synergyship.com",
"password": "Syn@#0004"
},
"SMG": {
"username": "tata@synergygermany.com",
"password": "Synergy@123"
},
"GSSM": {
"username": "snc@gsshipmanagement.com",
"password": "GSpl@1234"
},
"SMSL": {
"username": "snc@synergymarine.sg",
"password": "Smsl@1234"
},
"SMC": {
"username": "sm-survey@synergyship.com",
"password": "SMC@#123"
},
"SNPL": {
"username": "madan.l@synergynavis.com",
"password": "Synergy@123"
},
"SOPL": {
"username": "vivek@synergyoceanic.in",
"password": "Synergy@123"
},
"SMBL": {
"username": "mail@synergymarine.sg",
"password": "Synergy@123"
},
"FMPL": {
"username": "saeesh.r@fluyt.in",
"password": "Tag7395807705"
}
},
bv: {
"SMPL": {
"username": "survey@synergyship.com",
"password": "BVchennai1"
},
"SMC": {
"username": "operations@norden-synergy.com",
"password": "Nssm@123"
},
"SMSL": {
"username": "snc@synergymarine.sg",
"password": "BVsmsl@1234"
},
"SNPL": {
"username": "mail@synergynavis.com",
"password": "Synergy@123"
},
"CSMI": {
"username": "mail@columbusmarine.ph",
"password": "i4CRXxwn"
},
"SMSH": {
"username": "ems_shanghai@synergymarine.sg",
"password": "Qs0NR9Dn"
},
"SOMP": {
"username": "mail@synergyonyx.com",
"password": "Xwc7aaCJ"
},
"SMG": {
"username": "ashutosh.agarwal@synergygermany.com",
"password": "TrMaPTEu"
}
},
abs: {
"CSMI": {
"username": "columbus487",
"password": "sn691486"
},
"SMPL": {
"username": "synergyship",
"password": "abschennai1"
},
"SMSL": {
"username": "synergy439",
"password": "sn623422"
},
"GSSM": {
"username": "GSSHIPMANAGEMENT",
"password": "sn277115"
},
"SMC": {
"username": "nordensynergy",
"password": "sn301221"
},
"SMG": {
"username": "Smgermany",
"password": "Synergy123"
},
"SOPL": {
"username": "synergyosi",
"password": "sn376235"
},
"FMPL": {
"username": "FLUYTMARI",
"password": "sn206360"
},
"SNPL": {
"username": "synergy01",
"password": "sn189082"
},
"SDK": {
"username": "SYIA01",
"password": "sn732961"
},
"SMSH": {
"username": "synergyMS",
"password": "sn933071"
},
"WSSM": {
"username": "wssm488",
"password": "Wisdom@1234"
},
"SMBL": {
"username": "synergy439",
"password": "sn623422"
},
"GSSM1": {
"username": "GENCOSY01",
"password": "sn330989"
},
"SSTV": {
"username": "synergyturkiye01",
"password": "sn504042"
}
}
},
// Other configurations
vendor: {
model: process.env.VENDOR_MODEL || 'gpt-4o',
temperature: parseFloat(process.env.VENDOR_TEMPERATURE || '0.1')
},
downloads: {
baseDir: process.env.DOWNLOADS_DIR || './downloads'
}
};
}
// Initialize config
let configInstance = createConfig();
// Export the config getter and reinitialization function
export const config = configInstance;
export function reloadConfig() {
configInstance = createConfig();
// Update the exported config object properties
Object.assign(config, configInstance);
}
// Function to load custom .env file and reload config
export function loadEnvFile(envFilePath) {
dotenv.config({ path: envFilePath });
reloadConfig();
}
//# sourceMappingURL=config.js.map