Repository navigation
Troubleshooting
Diagnosis:
wp_test_connection("site-name")Fixes:
- Verify hostname and port are correct
- Test manually:
ssh -p PORT user@host - Check if SSH is running: contact hosting provider
- Check firewall allows your IP address
- Some hosts block SSH after failed attempts - wait 15 minutes or contact support
SSH key is not accepted by the server.
- Check key permissions:
chmod 600 ~/.ssh/id_rsa - Verify the key is added to the server's
~/.ssh/authorized_keys - Check
key_pathin your site config:wp_get_site("site-name") - Try:
ssh -i ~/.ssh/your_key -v user@hostfor detailed error output
Only needed for password authentication.
# macOS
brew install sshpass
# Ubuntu/Debian
sudo apt install sshpassBetter solution: Switch to SSH key auth to avoid this dependency entirely.
The server's SSH fingerprint changed or hasn't been accepted yet.
# Accept the host key manually first
ssh user@host
# Type "yes" when promptedWP-CLI is not installed on the server.
# Install on the server
ssh user@host
curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
chmod +x wp-cli.phar
sudo mv wp-cli.phar /usr/local/bin/wp
wp --infoThe wp_path in your site config points to the wrong directory.
# Check current config
wp_get_site("site-name")
# Update the path
wp_update_site("site-name", wp_path="/correct/path/to/wordpress")Find the correct path: ssh user@host "find / -name wp-config.php 2>/dev/null"
Large sites may need more time for operations like database exports or full scans.
- Run scans during low-traffic hours
- Use individual scan tools instead of
wp_full_scanfor targeted checks - Check server resources (CPU, memory, disk I/O)
Some malware hides in the database, not files:
# Check database specifically
wp_check_db_injections("site-name")
# Check for DB campaign markers
wp_delete_malware_options("site-name", dry_run=True)
# Check for self-hiding plugins (invisible to wp plugin list)
wp_scan_hidden_plugins("site-name")Known false positives:
-
BuddyBoss:
.htaccessfiles inbb_videos,bb_medias,bb_documentsupload dirs - BBPress/WbcomTeam: Plugin names match suspicious name patterns
- Image plugins: Base64 encoding for image data handling
- Build artifacts: Minified JS files
Use wp_read_file() to inspect flagged files before acting.
- Network latency: Check
ping server-host - Server load: Run during off-peak hours
- Large site: Use targeted scans (
wp_verify_core,wp_scan_hidden_admins) instead ofwp_full_scan
The malware recreates itself after deletion. Look for self-healing plugins:
# Detect hidden plugins FIRST
wp_scan_hidden_plugins("site-name")Critical: Delete the self-healing plugin directory BEFORE deleting users or DB markers. The plugin recreates them on every page load.
Old sessions may still be valid. Regenerate salts to invalidate all sessions:
wp_regenerate_salts("site-name")- Check if a legitimate plugin was accidentally removed
- Restore from the database backup created in Step 1 of cleanup
- Check the quarantine directory for files that may need restoration
- Review the cleanup log:
~/.wp-malware-cleanup/logs/site-name.log
The database module isn't loading properly.
- Check that
database_v2.pyexists in the MCP server directory - Restart the MCP server (restart Claude Code)
- Check for Python import errors in the MCP server output
The auto-learning pipeline isn't recording. Check:
-
THREAT_DB_AVAILABLEis True (database module loaded successfully) - The threat database file exists at
~/.wp-malware-cleanup/threat_intel.db - Run a scan on a site with known issues - records should appear
- Check file permissions on the database file
wp_threat_db_sync() requires internet access to reach GitHub.
- Check internet connectivity
- Check if GitHub is accessible from your network
- Try again later (GitHub may have rate limiting)
- Verify registration:
claude mcp list - Restart Claude Code completely (close and reopen)
- Check the MCP config in
~/.claude.json - Verify the Python venv path is correct
Check the server logs:
# Run server directly to see errors
~/.claude/wp-malware-cleanup-mcp/.venv/bin/python ~/.claude/wp-malware-cleanup-mcp/server.pyCommon causes:
- Missing Python dependencies:
uv pip install -r requirements.txt - Python version mismatch: Needs Python 3.12+
- Corrupted
sites.json: Delete and re-add sites
Getting Started
Running as a Service
Threat Intelligence
Reference
Project
- GitHub Repo
- WP Vanguard (threat research)
- Wbcom Designs
- License: GPL-2.0-or-later