@niledatabase/nile-mcp-server
Version:
Nile MCP Server Implementation
36 lines (35 loc) • 1.16 kB
JavaScript
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);
}
}
}