A Windows-first PyQt desktop scanner for discovering Minecraft Java and Bedrock servers on networks you own or have permission to test.
- Tabbed desktop workspace for Scan, Results, History, Profiles, and Settings
- Real Java and Bedrock status checks through
mcstatus - Target inputs for single hosts, IP ranges, CIDR blocks, and imported target files
- SQLite-backed scan history, saved profiles, favorites, and notes
- Bounded concurrent scanning with cancellation, retries, progress, and validation
- CSV and JSON exports with richer result fields
- Live Monitor for repeated profile scans and in-app change alerts
- MCScans search/import and dataset metadata browsing
- Python 3.10 or higher
- Windows OS recommended
- Create a virtual environment:
python -m venv .venv - Activate it:
.\.venv\Scripts\Activate.ps1
- Install dependencies:
python -m pip install -r requirements.txt
Run the GUI:
python minecraft_scanner.pyOr use the package entrypoint:
python -m minecraft_server_scannerOptional startup flags:
python minecraft_scanner.py --target "192.168.1.0/24" --ports "25565,19132-19133" --edition both
python minecraft_scanner.py --profile "Home LAN" --autostartTarget examples:
192.168.1.25192.168.1.1-192.168.1.255192.168.1.0/24play.example.net@C:\path\to\targets.txt
Scan history and profiles are stored in SQLite at:
%LOCALAPPDATA%\MinecraftServerScanner\scanner.sqlite3You can override this for testing or portable runs:
python minecraft_scanner.py --db .\scanner-dev.sqlite3The Monitor tab repeatedly scans a saved profile while the app is open. Choose a profile, pick an interval of 1, 5, 15, 30, or 60 minutes, then start monitoring.
- The first monitor run captures a baseline and does not create alerts.
- Later runs compare against the previous monitor run.
- Alerts are created for new servers, servers that went offline or came back online, version changes, MOTD changes, player-count changes, and latency changes of 100 ms or more.
- Monitor alerts stay inside the app and can be acknowledged, copied, or used to load the related scan run.
- Monitoring pauses or stops when you choose those controls; it does not run as a background service.
The MCScans tab can search the public MCScans API, move through result pages 20 servers at a time, import selected or all visible search results into local scan history, copy server addresses, and create target profiles from MCScans results.
Dataset browsing uses the MCScans dataset API and shows dataset IDs, file names, sizes, line counts, modified times, and direct download URLs. Dataset files can be very large, so the app copies URLs for intentional downloads instead of downloading them automatically.
python -m pip check
python -m py_compile minecraft_scanner.py
python -m pytesthttps://github.com/TommySanzCode/MinecraftServerScanner/releases/tag/v2.2.0-alpha
- Only scan networks you own or have permission to test.
- The app warns before scans that include public/non-private IP ranges.
- Large-scale internet scanning is intentionally not the default workflow.
This project is open source and available under the MIT License.