selenium-webdriver-mcp
Version:
Selenium Tools for MCP
51 lines • 1.83 kB
JavaScript
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
import { createSeleniumMcpServer } from './server.js';
import { Logger } from './utils/logger.js';
async function main() {
try {
Logger.info('🚀 Starting Selenium MCP Server...');
// Create the server
const server = createSeleniumMcpServer();
if (!server.isReady()) {
throw new Error('Server is not ready');
}
Logger.debug('🔧 Creating STDIO transport...');
// Create transport
const transport = new StdioServerTransport();
Logger.debug('🔗 Connecting server to transport...');
// Connect server to transport
await server.getServer().connect(transport);
Logger.info('✅ Selenium MCP Server connected and ready');
}
catch (error) {
Logger.error('❌ Failed to start MCP server:', error);
if (process.env.DEBUG && error instanceof Error) {
Logger.debug('Stack trace:', error.stack);
}
process.exit(1);
}
}
// Add uncaught exception handler
process.on('uncaughtException', error => {
Logger.error('💥 Uncaught exception in main process:', error.message);
if (process.env.DEBUG) {
Logger.debug('Exception stack:', error.stack);
}
process.exit(1);
});
process.on('unhandledRejection', (reason, promise) => {
Logger.error('🚫 Unhandled rejection in main process:', reason);
if (process.env.DEBUG) {
Logger.debug('Promise:', promise);
}
process.exit(1);
});
main().catch(error => {
Logger.error('❌ Fatal error in main:', error);
if (process.env.DEBUG && error instanceof Error) {
Logger.debug('Fatal error stack:', error.stack);
}
process.exit(1);
});
//# sourceMappingURL=index.js.map