Files
2026-07-31 13:12:54 -04:00

29 lines
1.2 KiB
JavaScript

#!/usr/bin/env node
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
import { createServer } from '../server.js';
import { processManager } from '../lib/processManager.js';
import { browserManager } from '../tools/browser/index.js';
import { dockerManager } from '../tools/docker/index.js';
import { logger } from '../lib/logger.js';
import { config } from '../config.js';
async function main() {
logger.info(`web-dev-mcp starting over stdio (workspace: ${config.workspaceRoot})`);
const server = createServer();
const transport = new StdioServerTransport();
await server.connect(transport);
logger.info('web-dev-mcp connected');
}
async function shutdown(signal) {
logger.info(`received ${signal}, stopping tracked processes, closing browser, and cleaning up containers`);
processManager.stopAll();
await browserManager.close();
await dockerManager.cleanupAll();
process.exit(0);
}
process.on('SIGINT', () => void shutdown('SIGINT'));
process.on('SIGTERM', () => void shutdown('SIGTERM'));
main().catch((error) => {
logger.error('fatal error starting server', { error: error instanceof Error ? error.message : error });
process.exit(1);
});
//# sourceMappingURL=stdio.js.map