UNPKG

@niledatabase/nile-mcp-server

Version:
36 lines (35 loc) 1.16 kB
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js'; import { NileMcpServer } from '../server.js'; import { log } from '../logger.js'; export class StdioHandler { constructor(options) { this.server = new NileMcpServer(options); this.transport = new StdioServerTransport(); } async start() { try { log.info('Starting STDIO server...'); await this.server.connect(this.transport); log.info('STDIO server started successfully'); // Handle process signals process.on('SIGINT', () => this.stop()); process.on('SIGTERM', () => this.stop()); } catch (error) { log.error('Failed to start STDIO server', error); throw error; } } async stop() { try { log.info('Stopping STDIO server...'); await this.server.close(); log.info('STDIO server stopped successfully'); process.exit(0); } catch (error) { log.error('Error stopping STDIO server', error); process.exit(1); } } }