Cross-scanning turns one identifier into a trail of leads
User Scanner checks usernames and email addresses against a catalog that the README describes as more than 455 scan vectors. A normal run can target every module, one category, or a named site. Results may include avatars, biographies, follower counts, identifiers, and other public profile fields. Output goes to the terminal or to JSON, CSV, and PDF. The same engine is callable from Python, so it can sit inside an investigation script rather than forcing every job through the command line.
Cross-scanning is the part that separates it from a plain username checker. A result can expose a second handle, a profile link, or an email address, and the tool can scan that new identifier in another pass. Depth and sweep budgets keep the branching under control. The guide also assigns confidence labels such as confirmed, likely, candidate, and conflicting. Those labels help sort leads, but they do not turn a common handle into identity proof.
A 455-vector catalog trades reach for per-site fragility
Each module depends on behavior controlled by another website. Three open reports filed on August 29, 2026 show the practical cost. Issue 611 says a small HTML attribute change broke Screener's exact-string check. Issue 612 reports that Render now rejects addresses before the old existence signal appears. Issue 613 says Lovescape added a guest UUID precondition that the module does not supply. In all three cases, the scanner returned an error instead of a registration verdict.
That distinction is worth preserving. A site response that cannot be classified should not be reported as an absent account. User Scanner has separate registered, not registered, error, and skipped states, which gives an analyst a chance to retry or inspect the module. It also means a large result set needs triage. One broken module among hundreds is understandable, but a workflow must retain errors instead of flattening them into clean negatives.
What happened when we ran it
Our sandbox installed commit 14184c2 in 47 seconds. The process added 53 packages and occupied 81 MB on disk. Building the Python project succeeded in 11 seconds. Pip-audit reported 0 known vulnerabilities in the installed dependency set. The checkout itself contained 573 files and about 38,326 lines of source, with 4 CI workflow files and a tests directory but no Dockerfile.
The test command failed with exit code 1 after 11 seconds. Pytest reported 375 passed and 3 skipped, then stopped on 1 collection error out of the 376-test suite. tests/test_mcp_handlers.py imported the MCP handlers, which imported mcp.types; Python then raised ModuleNotFoundError: No module named 'mcp'. That log proves the module was unavailable in the environment. It does not show why the test setup did not install it.
The package metadata provides the relevant boundary. Core dependencies cover HTTP requests, SOCKS support, terminal color, browser-like TLS requests, and rich terminal output. MCP is a separate optional dependency declared as user-scanner[mcp]. A user following the README's base pip install user-scanner command gets the scanner, while the README gives a second install command for AI-agent support. Anyone contributing to MCP code should include that extra before running the complete suite.
Cross-scan confidence still leaves identity work to you
A named link from one profile to another is stronger than sweeping the same username across every site. The cross-scan documentation reflects that difference: a named site and handle can be confirmed, metadata agreement can be likely, and an unconnected registration stays a candidate. It even ignores handle-like display names as evidence and can mark a profile conflicting when its name points to somebody else. That is careful design for a problem with no automatic final answer.
Email pivots need stricter handling. The guide says 23 email modules may send a reset or verification message. Loud checks require permission in an initial scan and are skipped during a cross-scan unless the caller explicitly allows them. Addresses found in prose are also weaker than addresses published in a site's email field. For sensitive work, restrict link classes, disable email pivots, and record why each noisy module is allowed before running it.
MCP access makes powerful scans easier to misuse
Version 1.5.1 exposes 3 MCP tools: scan a username, scan an email address, or list available modules. The server uses standard input and output, and the README supplies a small client configuration for Claude Desktop and other MCP hosts. An agent can select modules, pass proxies, request cross-scans, and follow profile clues without a person typing each command. That is convenient for casework with a fixed scope.
It also moves judgment into the prompt and client permissions. A model can repeat a scan, widen a category, or follow a candidate that belongs to another person. The project's disclaimer limits use to education, authorized research, and defensive investigations. Treat the MCP process as an investigative capability: limit who can call it, set conservative defaults, preserve raw errors, and require a human decision before expanding from the original target.
August releases are active, while issue activity exposes churn
GitHub recorded the last push on August 28, 2026, when v1.5.1 was published. The repository had 3,488 stars and 12 open issues and pull requests when fetched. The release added modules, input-encoding fixes, PDF batch isolation, tests, and MCP support. Those are signs of current development, while the three module failures reported the next day show that contributors are also testing the catalog against live services.
User Scanner is most convincing as a transparent analyst's tool. The 47-second install, 11-second build, detailed pivot guide, and mostly successful test run make it easy to examine. Its results still inherit uncertainty from handle collisions and changing signup flows. Keep error states visible, install optional features deliberately, and verify high-impact findings outside the scanner before acting on them.

