EVM MCP Server

by chulanpro5
Verified
#!/usr/bin/env node import { fileURLToPath } from "url"; import { dirname, resolve } from "path"; import { spawn } from "child_process"; import { createRequire } from "module"; const __filename = fileURLToPath(import.meta.url); const __dirname = dirname(__filename); const require = createRequire(import.meta.url); // Parse command line arguments const args = process.argv.slice(2); const httpMode = args.includes("--http") || args.includes("-h"); console.log( `Starting EVM MCP Server in ${httpMode ? "HTTP" : "stdio"} mode...`, ); // Determine which file to execute const scriptPath = resolve( __dirname, "../build", httpMode ? "http-server.js" : "index.js", ); try { // Check if the built files exist require.resolve(scriptPath); // Execute the server const server = spawn("node", [scriptPath], { stdio: "inherit", shell: false, }); server.on("error", (err) => { console.error("Failed to start server:", err); process.exit(1); }); // Handle clean shutdown const cleanup = () => { if (!server.killed) { server.kill(); } }; process.on("SIGINT", cleanup); process.on("SIGTERM", cleanup); process.on("exit", cleanup); } catch (error) { console.error( "Error: Server files not found. The package may not be built correctly.", ); console.error( "Please try reinstalling the package or contact the maintainers.", ); console.error(error); process.exit(1); }