UNPKG

@equidam/mcp-server

Version:

Equidam MCP Server - Bridge between AI assistants and Equidam's company valuation API

94 lines (78 loc) 2.31 kB
#!/usr/bin/env node /** * Equidam MCP Server * CLI entry point for the Equidam Model Context Protocol server */ const { Command } = require('commander'); const { McpServer } = require('./src/server'); const { version } = require('./package.json'); // Create CLI program const program = new Command(); program .name('@equidam/mcp-server') .description('Equidam MCP Server - Bridge between AI assistants and Equidam API') .version(version) .requiredOption('--api-key <key>', 'Equidam API token (required)') .option('--base-url <url>', 'API base URL', 'https://app.equidam.com/api/v3') .option('--debug', 'Enable debug logging to stderr', false) .parse(); const options = program.opts(); // Validate required options if (!options.apiKey) { console.error('Error: --api-key is required'); process.exit(1); } // Debug logging function - only to stderr const debugLog = (...args) => { if (options.debug) { console.error('[DEBUG]', ...args); } }; // Initialize and start MCP server async function main() { try { debugLog('Starting Equidam MCP Server...'); debugLog('Configuration:', { baseUrl: options.baseUrl, debug: options.debug, apiKeyProvided: !!options.apiKey }); const server = new McpServer({ apiKey: options.apiKey, baseUrl: options.baseUrl, debug: options.debug, debugLog }); await server.start(); debugLog('MCP Server started successfully'); } catch (error) { console.error('Failed to start MCP server:', error.message); if (options.debug) { console.error('Stack trace:', error.stack); } process.exit(1); } } // Handle graceful shutdown process.on('SIGINT', () => { debugLog('Received SIGINT, shutting down gracefully...'); process.exit(0); }); process.on('SIGTERM', () => { debugLog('Received SIGTERM, shutting down gracefully...'); process.exit(0); }); // Handle uncaught exceptions process.on('uncaughtException', (error) => { console.error('Uncaught exception:', error.message); if (options.debug) { console.error('Stack trace:', error.stack); } process.exit(1); }); process.on('unhandledRejection', (reason, promise) => { console.error('Unhandled rejection at:', promise, 'reason:', reason); process.exit(1); }); // Start the server main();