UNPKG

evolution-api-mcp

Version:

MCP Server for Evolution API v2 - Integrate WhatsApp functionality with Claude Desktop and other MCP clients

59 lines (52 loc) 1.99 kB
#!/usr/bin/env node /** * Evolution API MCP Server - NPX Executable * This is the entry point when running via npx evolution-api-mcp */ // CRITICAL: MCP STDIO transport requires NOTHING on stdout except MCP messages // Redirect all console.log to stderr IMMEDIATELY before any imports const originalConsoleLog = console.log; console.log = (...args) => { console.error('[STDOUT-REDIRECT]', ...args); }; // Also ensure any process output goes to stderr during initialization const originalStdoutWrite = process.stdout.write; let mcpStarted = false; process.stdout.write = function(string, encoding, fd) { if (mcpStarted) { // MCP server is running, allow normal stdout for MCP messages return originalStdoutWrite.call(this, string, encoding, fd); } else { // During initialization, redirect to stderr return process.stderr.write(`[INIT-REDIRECT] ${string}`, encoding, fd); } }; // Function to restore stdout for MCP protocol global.enableMcpStdout = function() { mcpStarted = true; process.stdout.write = originalStdoutWrite; }; const path = require('path'); // Determine if we're running from source or built distribution const isBuilt = require('fs').existsSync(path.join(__dirname, '..', 'dist')); if (isBuilt) { // Running from built distribution require('../dist/cli/cli.js').runCli().catch(error => { console.error('Failed to start Evolution API MCP Server:', error); process.exit(1); }); } else { // Running from source (development) try { require('tsx/cjs').register(); require('../src/cli/cli.ts').runCli().catch(error => { console.error('Failed to start Evolution API MCP Server:', error); process.exit(1); }); } catch (error) { console.error('Development mode requires tsx to be installed.'); console.error('Please run: npm install tsx'); console.error('Or build the project first: npm run build'); process.exit(1); } }