UNPKG

wyreup-mcp

Version:

Production-ready MCP server that transforms automation platform webhooks into reliable, agent-callable tools

66 lines (58 loc) 2.05 kB
import minimist from 'minimist'; import chalk from 'chalk'; const argv = minimist(process.argv.slice(2), { string: ['host', 'config', 'transport'], // Ensure host, config, and transport are treated as strings alias: { p: 'port' }, // Add alias for port boolean: ['debug'] // Add debug flag }); // Determine HOST let HOST = 'localhost'; let hostConfigSource = 'default'; if (argv.host) { HOST = argv.host; hostConfigSource = 'CLI flag (--host)'; } else if (process.env.HOST) { HOST = process.env.HOST; hostConfigSource = 'environment variable (HOST)'; } // Determine PORT let PORT = 3333; let portConfigSource = 'default'; if (argv.port) { const cliPort = parseInt(argv.port, 10); if (!isNaN(cliPort)) { PORT = cliPort; portConfigSource = 'CLI flag (--port)'; } else { console.warn(chalk.yellow(`Invalid --port value "${argv.port}". Using default or environment variable.`)); } } if (portConfigSource === 'default' && process.env.PORT) { // Check env only if CLI port wasn't valid or used const envPort = parseInt(process.env.PORT, 10); if (!isNaN(envPort)) { PORT = envPort; portConfigSource = 'environment variable (PORT)'; } else { console.warn(chalk.yellow(`Invalid PORT environment variable "${process.env.PORT}". Using default.`)); } } // Determine TRANSPORT const TRANSPORT = argv.transport || 'stdio'; // Default to stdio for MCP compatibility const VALID_TRANSPORTS = ['stdio', 'sse']; if (!VALID_TRANSPORTS.includes(TRANSPORT)) { console.error(chalk.red(`Invalid transport "${TRANSPORT}". Must be one of: ${VALID_TRANSPORTS.join(', ')}`)); process.exit(1); } const BASE_URL = `http://${HOST}:${PORT}`; const CONFIG_PATH = argv.config || 'wyreup.json'; // Use --config or default const DEBUG = argv.debug || false; // Export determined values export { PORT, HOST, BASE_URL, CONFIG_PATH, DEBUG, TRANSPORT, argv // Exporting argv as it's used for other flags like --init, --validate, --help, --serve };