UNPKG

qbo-mcp-ts

Version:

TypeScript QuickBooks Online MCP Server with enhanced features and dual transport support

62 lines 1.98 kB
"use strict"; /** * STDIO Transport implementation for MCP */ Object.defineProperty(exports, "__esModule", { value: true }); exports.StdioTransport = void 0; const stdio_js_1 = require("@modelcontextprotocol/sdk/server/stdio.js"); const logger_1 = require("../utils/logger"); /** * STDIO Transport for local development and CLI usage */ class StdioTransport { server; transport; constructor(server) { this.server = server; logger_1.logger.info('Initializing STDIO transport'); } /** * Start the STDIO transport */ async start() { try { logger_1.logger.info('Starting STDIO transport'); // Create STDIO transport this.transport = new stdio_js_1.StdioServerTransport(); // Connect server to transport await this.server.connect(this.transport); logger_1.logger.info('STDIO transport started successfully'); // Handle process termination process.on('SIGINT', () => this.shutdown()); process.on('SIGTERM', () => this.shutdown()); } catch (error) { logger_1.logger.error('Failed to start STDIO transport', error); throw error; } } /** * Shutdown the transport */ async shutdown() { logger_1.logger.info('Shutting down STDIO transport'); try { await this.server.close(); if (this.transport) { // Close stdio streams properly process.stdin.destroy(); process.stdout.end(); process.stderr.end(); } logger_1.logger.info('STDIO transport shutdown complete'); process.exit(0); } catch (error) { logger_1.logger.error('Error during STDIO transport shutdown', error); process.exit(1); } } } exports.StdioTransport = StdioTransport; //# sourceMappingURL=stdio.js.map