UNPKG

evolution-api-mcp

Version:

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

603 lines (456 loc) 12.9 kB
# Troubleshooting Guide This guide helps you resolve common issues when using the Evolution API MCP Server. ## Table of Contents - [Installation Issues](#installation-issues) - [Configuration Problems](#configuration-problems) - [Connection Issues](#connection-issues) - [Authentication Errors](#authentication-errors) - [Instance Management Issues](#instance-management-issues) - [Message Sending Problems](#message-sending-problems) - [Claude Desktop Integration](#claude-desktop-integration) - [Performance Issues](#performance-issues) - [Debugging Tips](#debugging-tips) ## Installation Issues ### NPX Command Not Found **Error:** ``` npx: command not found ``` **Solution:** 1. Install Node.js 18+ from [nodejs.org](https://nodejs.org/) 2. Verify installation: `node --version && npm --version` 3. Update npm: `npm install -g npm@latest` ### Package Download Fails **Error:** ``` npm ERR! network request failed ``` **Solutions:** 1. Check internet connection 2. Clear npm cache: `npm cache clean --force` 3. Try different registry: `npm config set registry https://registry.npmjs.org/` 4. Use VPN if behind corporate firewall ### Permission Errors (Linux/macOS) **Error:** ``` EACCES: permission denied ``` **Solutions:** 1. Don't use sudo with npx 2. Fix npm permissions: `npm config set prefix ~/.npm-global` 3. Add to PATH: `export PATH=~/.npm-global/bin:$PATH` ## Configuration Problems ### Environment Variables Not Loading **Problem:** Server starts but can't connect to Evolution API **Solutions:** 1. Check variable names (case-sensitive): ```bash echo $EVOLUTION_URL echo $EVOLUTION_API_KEY ``` 2. For Windows Command Prompt: ```cmd echo %EVOLUTION_URL% echo %EVOLUTION_API_KEY% ``` 3. Create `.env` file in working directory: ```env EVOLUTION_URL=https://your-api.com EVOLUTION_API_KEY=your-key ``` ### Invalid Configuration File **Error:** ``` Configuration validation failed ``` **Solutions:** 1. Validate JSON syntax using [jsonlint.com](https://jsonlint.com/) 2. Check required fields: ```json { "evolutionUrl": "https://your-api.com", "evolutionApiKey": "your-key" } ``` 3. Verify file encoding is UTF-8 4. Check file permissions (readable) ### Configuration Priority Issues **Problem:** Wrong configuration being used **Priority Order (highest to lowest):** 1. Command line arguments 2. Environment variables 3. Configuration file 4. Default values **Solution:** Use environment variables to override file settings. ## Connection Issues ### Evolution API Unreachable **Error:** ``` Error: Connection to Evolution API failed ECONNREFUSED 127.0.0.1:8080 ``` **Diagnostic Steps:** 1. Test API directly: ```bash curl -I https://your-evolution-api.com ``` 2. Check if Evolution API is running: ```bash # For Docker docker ps | grep evolution # For PM2 pm2 list ``` 3. Verify URL format: -`https://api.example.com` -`http://localhost:8080` -`api.example.com` (missing protocol) -`https://api.example.com/` (trailing slash) ### SSL/TLS Certificate Issues **Error:** ``` Error: certificate verify failed ``` **Solutions:** 1. For development only (not recommended for production): ```bash export NODE_TLS_REJECT_UNAUTHORIZED=0 ``` 2. Update certificates: ```bash # Ubuntu/Debian sudo apt-get update && sudo apt-get install ca-certificates # CentOS/RHEL sudo yum update ca-certificates ``` 3. Use HTTP for local development: ```env EVOLUTION_URL=http://localhost:8080 ``` ### Network Timeout Issues **Error:** ``` Error: timeout of 30000ms exceeded ``` **Solutions:** 1. Increase timeout: ```env HTTP_TIMEOUT=60000 ``` 2. Check network latency: ```bash ping your-evolution-api.com ``` 3. Test with curl: ```bash curl -w "@curl-format.txt" -o /dev/null -s "https://your-api.com" ``` ## Authentication Errors ### Invalid API Key **Error:** ``` Error: Authentication failed (401) ``` **Solutions:** 1. Verify API key format (no spaces, correct length) 2. Check Evolution API logs for authentication attempts 3. Test API key directly: ```bash curl -H "apikey: YOUR_KEY" "https://your-api.com/instance/fetchInstances" ``` 4. Regenerate API key in Evolution API admin panel ### API Key Permissions **Error:** ``` Error: Forbidden (403) ``` **Solutions:** 1. Check API key permissions in Evolution API 2. Ensure global API key is used (not instance-specific) 3. Verify API key hasn't expired ### Missing Authentication Header **Error:** ``` Error: apikey header is required ``` **Solution:** This indicates a bug in the MCP server. Please report it with: - Your configuration (without sensitive data) - Steps to reproduce - Full error message ## Instance Management Issues ### Instance Creation Fails **Error:** ``` Error: Instance creation failed ``` **Common Causes:** 1. **Duplicate instance name:** ``` Instance 'my-bot' already exists ``` Solution: Use a different name or delete existing instance 2. **Invalid instance name:** ``` Instance name contains invalid characters ``` Solution: Use only letters, numbers, hyphens, and underscores 3. **Resource limits:** ``` Maximum instances reached ``` Solution: Delete unused instances or upgrade your plan ### QR Code Not Generating **Problem:** Instance created but no QR code appears **Solutions:** 1. Ensure `qrcode: true` in creation request 2. Check instance status: should be "connecting" 3. Wait 30-60 seconds for QR code generation 4. Restart instance if stuck ### Instance Connection Timeout **Problem:** QR code generated but instance won't connect **Solutions:** 1. Ensure QR code is scanned within 60 seconds 2. Check WhatsApp app is updated 3. Try restarting WhatsApp app 4. Delete and recreate instance if persistent ### Instance Status Issues **Problem:** Instance shows wrong status **Status Meanings:** - `created`: Just created, not connected - `connecting`: Waiting for QR code scan - `open`: Connected and ready - `close`: Disconnected - `error`: Error state **Solutions:** 1. Restart instance: `restart-instance` 2. Check Evolution API logs 3. Recreate instance if in error state ## Message Sending Problems ### Invalid Phone Number Format **Error:** ``` Error: Invalid phone number format ``` **Solutions:** 1. Use international format without '+': -`5511999999999` -`+55 11 99999-9999` -`11999999999` 2. Validate number exists: ```json { "instance": "my-bot", "numbers": ["5511999999999"] } ``` ### Message Delivery Failures **Error:** ``` Error: Message not delivered ``` **Common Causes:** 1. **Number not on WhatsApp:** Solution: Use `check-is-whatsapp` first 2. **Instance disconnected:** Solution: Check instance status and reconnect 3. **Rate limiting:** Solution: Add delays between messages 4. **Blocked by recipient:** Solution: No technical solution, contact recipient ### Media Upload Issues **Error:** ``` Error: Failed to upload media ``` **Solutions:** 1. **Check file size limits:** - Images: 16MB max - Videos: 64MB max - Documents: 100MB max 2. **Verify media URL accessibility:** ```bash curl -I https://your-media-url.com/image.jpg ``` 3. **Check media format support:** - Images: JPG, PNG, GIF, WebP - Videos: MP4, AVI, MOV - Audio: MP3, AAC, OGG, WAV 4. **Use base64 for small files:** ```json { "media": "data:image/jpeg;base64,/9j/4AAQSkZJRg..." } ``` ## Claude Desktop Integration ### MCP Server Not Appearing **Problem:** Evolution API server doesn't show in Claude Desktop **Solutions:** 1. **Check mcp.json syntax:** ```bash # Validate JSON python -m json.tool ~/.claude/mcp.json ``` 2. **Verify file location:** - macOS: `~/.claude/mcp.json` - Windows: `%APPDATA%\Claude\mcp.json` - Linux: `~/.config/claude/mcp.json` 3. **Check file permissions:** ```bash ls -la ~/.claude/mcp.json chmod 644 ~/.claude/mcp.json ``` 4. **Restart Claude Desktop completely** ### MCP Server Connection Failed **Error in Claude Desktop:** ``` MCP server 'evolution-api' failed to start ``` **Solutions:** 1. **Test npx command manually:** ```bash EVOLUTION_URL=your-url EVOLUTION_API_KEY=your-key npx evolution-api-mcp ``` 2. **Check Claude Desktop logs:** - macOS: `~/Library/Logs/Claude/` - Windows: `%APPDATA%\Claude\logs\` 3. **Use absolute paths:** ```json { "command": "/usr/local/bin/npx", "args": ["evolution-api-mcp"] } ``` ### Environment Variables Not Working **Problem:** Variables in mcp.json not being used **Solutions:** 1. **Check variable syntax:** ```json { "env": { "EVOLUTION_URL": "https://api.example.com", "EVOLUTION_API_KEY": "your-key" } } ``` 2. **Use configuration file instead:** ```json { "args": ["evolution-api-mcp", "--config", "/path/to/config.json"] } ``` ## Performance Issues ### Slow Response Times **Problem:** Commands take too long to execute **Solutions:** 1. **Check network latency to Evolution API** 2. **Increase timeout values:** ```env HTTP_TIMEOUT=60000 ``` 3. **Use local Evolution API instance** 4. **Check Evolution API server resources** ### Memory Usage Issues **Problem:** High memory consumption **Solutions:** 1. **Restart MCP server periodically** 2. **Limit concurrent operations** 3. **Check for memory leaks in Evolution API** ### Rate Limiting **Problem:** Too many requests error **Solutions:** 1. **Add delays between operations:** ```json { "delay": 1000 } ``` 2. **Implement exponential backoff** 3. **Use batch operations when available** ## Debugging Tips ### Enable Debug Logging Set environment variable: ```bash export DEBUG=evolution-api-mcp:* ``` ### Check Evolution API Logs **Docker:** ```bash docker logs evolution-api-container ``` **PM2:** ```bash pm2 logs evolution-api ``` ### Test API Endpoints Directly ```bash # Test authentication curl -H "apikey: YOUR_KEY" "https://your-api.com/instance/fetchInstances" # Test instance creation curl -X POST \ -H "apikey: YOUR_KEY" \ -H "Content-Type: application/json" \ -d '{"instanceName":"test"}' \ "https://your-api.com/instance/create" ``` ### Validate Configuration ```bash # Test configuration loading npx evolution-api-mcp --validate-config # Test connection npx evolution-api-mcp --test-connection ``` ### Common Debug Commands ```bash # Check Node.js version node --version # Check npm configuration npm config list # Clear npm cache npm cache clean --force # Check network connectivity ping your-evolution-api.com nslookup your-evolution-api.com # Test SSL certificate openssl s_client -connect your-api.com:443 -servername your-api.com ``` ## Getting Help If you can't resolve the issue: 1. **Gather information:** - Error messages (full text) - Configuration (remove sensitive data) - Steps to reproduce - Environment details (OS, Node.js version) 2. **Check existing issues:** - [GitHub Issues](https://github.com/your-repo/evolution-api-mcp/issues) - [Evolution API Issues](https://github.com/EvolutionAPI/evolution-api/issues) 3. **Create detailed bug report:** - Include all gathered information - Use issue templates - Add relevant logs 4. **Community support:** - Discord server - Stack Overflow (tag: evolution-api-mcp) - Reddit communities ## Preventive Measures ### Regular Maintenance 1. **Update dependencies regularly:** ```bash npm update -g evolution-api-mcp ``` 2. **Monitor Evolution API health:** ```bash curl -H "apikey: YOUR_KEY" "https://your-api.com/get-information" ``` 3. **Backup configurations:** ```bash cp ~/.claude/mcp.json ~/.claude/mcp.json.backup ``` ### Best Practices 1. **Use environment variables for sensitive data** 2. **Implement proper error handling in your applications** 3. **Monitor API usage and limits** 4. **Keep Evolution API updated** 5. **Use HTTPS in production** 6. **Implement logging and monitoring** --- **Still having issues?** Don't hesitate to reach out for help. The community is here to support you!