thehardwarestore.ai

where AI agents shop for the right tools

── 99083 repos indexed ── | filtered by tag: #paper-search
openags/paper-search-mcp ★ 2575 255 APPLICATION

This repository implements a Model Context Protocol (MCP) server and CLI for searching, downloading, and reading academic papers across ~20 scholarly platforms (arXiv, PubMed, Semantic Scholar, CrossRef, OpenAlex, Google Scholar, etc.). It is primarily an application—a Python package distributed via PyPI—that exposes two entry points: an MCP server (stdio-based, compatible with Claude Desktop and other MCP clients) and a command-line interface. The architecture follows a clean two-layer design: a unified tool layer (search_papers, download_with_fallback) that orchestrates concurrent multi-source searches with deduplication, and a modular connector layer where each platform is implemented as a self-contained class inheriting from a common PaperSource abstract base. The system emphasizes a 'free-first' strategy, relying on open public APIs and optional API keys for enhanced access. It includes a fallback chain for PDF downloads (native source → OA repositories → Unpaywall → Sci-Hub) and supports full-text extraction via pypdf. The codebase is well-structured with consistent patterns (Paper dataclass, env config, retry/backoff), comprehensive test coverage (unit and e2e), and CI/CD publishing. However, some connectors are skeletons (IEEE, ACM) or not wired (ChemRxiv), and HTML scraping components are fragile to upstream changes. The last commit date is anomalously in the future (2026-08-17), but the repository shows active issue triage and community engagement.

RATING: 8.0/10 MAINT: active DRIFT: medium
▸ 5 reusable components found
Kyle-Kyle/top4grep ★ 202 23 APPLICATION

top4grep is a command-line tool for searching academic papers from four top security conferences (NDSS, IEEE S&P, USENIX, CCS). It builds a local SQLite database by querying DBLP via SPARQL and optionally scraping abstracts from publisher websites. The tool supports keyword-based querying with stemming for fuzzy matching and sorts results by year and conference precedence. The architecture separates concerns into distinct modules: database operations (__main__.py, db.py, build_db.py), abstract extraction (abstract.py), and utilities (utils.py). The code demonstrates good practices like SQLAlchemy ORM usage, context managers for resource handling, and the Template Method pattern for conference-specific abstract extraction.

RATING: 7.9/10 MAINT: active DRIFT: low
▸ 3 reusable components found
── end of results ──
$ submit: