User Scanner
User Scanner 架构:模块、并发、透视、报告与 MCP
从目标规范化到平台模块、HTTP 并发、cross-scan 图、导出器和代理工具。

你将学会
- Explain module, pivot, report, and MCP layers
- Run a bounded scan and interpret uncertainty
- Apply authorization, rate-limit, and data-retention controls
开始前需要
- Basic Git and command-line usage
- Comfort reading a project README
You can explain the project, run its documented first step, and decide what to verify before adopting it.
先看结论
- Separate module, transport, pivot, report, and MCP contracts.
- Cross-scan is a bounded graph traversal with provenance and de-duplication.
- Different report formats and AI clients must preserve uncertainty and redaction.
Model the engine as contracts
将模块、传输、pivot、报告和 MCP 视为独立契约。cross-scan 是带深度、验证、去重和父子证据的图遍历,不是单个请求。
A module response should carry platform, target type, status, URL or identifier, timestamp, and uncertainty. The engine should not collapse `not found`, timeout, blocked, and ambiguous into one boolean.
Follow a pivot edge
An initial username or email scan can emit handles, profile links, or public addresses. The cross-scan engine classifies those links, applies depth and verification policy, queues secondary modules, and records parent/child relationships. This is a graph traversal, not a single request.
Bound breadth and depth, de-duplicate normalized targets, and keep an audit record of why each edge was accepted or rejected. A recursive pivot must not silently expand the investigation scope.
Connect reports and MCP
PDF, JSON, and CSV writers project the same observation graph into different consumers; PDF may include profile photos while JSON is better for pipelines. The MCP layer exposes scan, email, and module-discovery tools to compatible clients, so schemas and errors must remain stable and redacted.
Keep the client as an orchestrator of evidence, not an authority that invents identity confidence or widens permissions.
Review failure boundaries
Concurrency, TLS fingerprinting, proxies, provider changes, and module-specific parsers can fail independently. Test timeouts, rate limits, malformed responses, duplicate pivots, partial exports, and MCP cancellation; each should leave a named, recoverable state.
如何选择
| 比较维度 | 方案 A | 方案 B |
|---|---|---|
| Best when | You need predictable behavior and easy auditing | You need adaptive optimization and have reliable telemetry |
| Main risk | May leave performance on the table | Can become difficult to explain or debug |
实施步骤
- 1
Map target normalization, module registry, transport, and response schema.
- 2
Trace one parent target into a verified child pivot.
- 3
Follow JSON/CSV/PDF projections and MCP tool schemas.
- 4
Inject timeout, block, duplicate, and partial-export failures.
可复制示例
target normalize -> module registry -> httpx/curl_cffi
response/status -> pivot classifier -> bounded graph
observations -> JSON/CSV/PDF + MCP schemas常见问题
Is a platform module result a binary truth value?
No. Preserve status, evidence URL/identifier, timestamp, and ambiguity such as timeout or block.
Why model cross-scan as a graph?
Each discovered handle/email/link can create parent-child edges, requiring depth, verification, and de-duplication controls.
资料来源
- User Scanner README (captured 2026-08-31)来源核查 2026-08-31
- User Scanner repository来源核查 2026-08-31