##See it work
##A real session
It connects with Mineflayer (in offline mode, no Microsoft accounts) and records what comes back: the kick message with its colors, the MOTD, the icon, the version, the server brand and how long the session lasted. From that it tells whether it reached the game, hit a whitelist, a ban, an account problem, or got no answer at all. Before the first scan you have to accept a responsible-use notice: the tool only looks at what the server replies
##Rules that vote
Classification uses hand-written rules, and they vote: if two rules point to different things, the result is "ambiguous" instead of picking one. Rules get added one at a time from real messages I run into, like a Spanish ban message it didn't recognize at first. And an account problem is never presented as a ban, because it isn't evidence of one
##Isolated and cancellable
Every scan runs in its own Node.js process, separate from the app, and can be cancelled at any moment. 93 Python tests cover the rules, the runtime and the storage
##Direct or through Tor
It can go out directly or through Tor, to compare what each route gets. In a test against a big server, the answer over Tor was identical to the direct one
##A card to share
The result turns into an image: the server as it shows up in the game's server list, the player's skin and the server's message, with a choice of backgrounds and an editor to arrange each part
AccessScope (GTK4 + WebKit) │ Python service ▼ isolated Node.js process (Mineflayer) │ direct or through Tor ▼ Minecraft server │ kick · MOTD · icon · brand · version ▼ rules that vote ├─ all agree ──────► classification └─ they disagree ──► "ambiguous"
##Log
- The foundationEvery scan runs in its own isolated Node.js process that can be cancelled at any moment. The rules vote: if two disagree, the result is "ambiguous" instead of a guess. Tested live against real servers
- PolishConfigurable timeouts, result export, automated tests, and a shareable image card showing what each server replied