- Reliability 9/20
- The README documents a complete MCP path (pip install hyperresearch[mcp], then hyperresearch mcp over stdio with thirteen tools), but no server manifest is cached and no CI workflows, test files, or execution logs are visible in the supplied evidence. Tool behavior (search_notes, read_many, fetch_url, create_note, update_note, etc.) is asserted only by prose; parameter schemas, error-return shapes, retry/timeout semantics and failure modes are not specified. External dependencies (Unpaywall, Europe PMC, Semantic Scholar, OpenAlex, crawl4ai, optional Voyage/OpenAI embeddings) widen the failure surface, though the README does describe degradation paths (provider none needs no API keys; OA recovery never fails a fetch; run resume continues from the failed step; budget cap blocks the run). Under the static calibration rule, the absence of real CI plus committed tests caps reliability at 12; without verifiable execution evidence for the key paths, 9.
- Security and permissions 12/20
- Positives: web-fetched bodies are served inside an <untrusted-source> fence on both body-serving paths (note show in single/batch/JSON, and search with bodies), forged fence tags are neutralized and left visible, the url attribute is HTML-escaped with control characters stripped, and third-party API-resolved URLs are checked for scheme, embedded credentials and publicly-routable resolution, which is explicit prompt-injection hardening; no real tokens or secrets appear in install examples; CAPTCHAs, 2FA and logins are never solved automatically and are consolidated back to the user. Deductions: authenticated crawling via hyperresearch setup reuses the user's real logged-in browser sessions (LinkedIn, Twitter, Facebook, Instagram, TikTok) and the browser-fetcher agent drives the user's real, logged-in Chrome, a high-privilege, cross-site credential-reuse boundary with no stated credential storage location, encryption, least-privilege scoping, or auditable consent flow; MCP write tools (create_note, update_note, fetch_url) have no documented write-scope restriction or confirmation requirement; the local HTTP server (serve --open on port 8080) mentions no authentication. No red-line item is met (no malware, no credential theft, no unconfirmed irreversible defaults), so this is not scored 0-4, but with permission and confirmation mechanisms incomplete, 12.
- Maintenance 11/20
- Facts: MIT license is explicit; repository is not archived, 1,906 stars, 27 open issues (a high count with no visible response data); README references PyPI releases (version badge) and git integration commands, implying ongoing work. Gaps: no release cadence, no CHANGELOG, no contributor governance description, no visible security-response channel (no SECURITY.md), and no dependency-update policy; issue triage/closure evidence is missing so maintainer responsiveness cannot be verified. Scores at the "active but governance/versioning gaps" anchor: 11.
- Documentation 15/20
- Documentation is the strongest aspect. It is layered and covers installation (including the Python 3.11-3.13 window and 3.14 unsupported note, plus the per-project vs --global trade-off), the 16-step pipeline with tier/gear/lever concepts, the subagent roster with default models, the vault data model (markdown is truth, SQLite is a rebuildable cache), the thirteen MCP tool names, CLI examples with -j output, fetching security boundaries, academic-API-first ordering, the four disclosure locations for open-access substitution (body banner, frontmatter fields, the body_is_not_from_source flag in note show JSON, and CLI output), the [scholar] config keys with the Unpaywall contact_email requirement, and an explicit "what it doesn't do" limitations section (does not replace judgment, cannot bypass paywalls, lint only catches structural failures, not factual accuracy). Deductions: no parameter-level schema or examples for the MCP tools, no error codes or rate-limit guidance, no MCP client configuration snippets (Claude Desktop/Cursor), cost only given as time ranges, and no troubleshooting section; marketing claims about leading DeepResearch-Bench with internal benchmarking are footnoted as pending third-party validation but remain external claims needing verification. 15.
- Setup experience 12/20
- The install path is friendly to mainstream clients: pip install hyperresearch && hyperresearch install and then /hyperresearch inside Claude Code, or pip install hyperresearch[mcp] plus hyperresearch mcp (stdio) for Claude Desktop, Cursor, or any MCP client. The Python version window is explicit (3.11-3.13, 3.14 unsupported) with three concrete environment recipes (pyenv, uv venv, py -3.13), so the path is short and clear. Deductions: no MCP client configuration file example (JSON snippet absent), no Windows/macOS/Linux differences stated, and full functionality depends on Claude Code plus the optional Claude-in-Chrome extension; under static calibration with no CI/test execution evidence setup is capped at 15, and because several manual configuration surfaces remain (browser setup, crawl4ai, embedding provider, Unpaywall contact email), 12.