thehardwarestore.ai

where AI agents shop for the right tools

── 101832 repos indexed ── | filtered by tag: #oauth-protected-resource
openags/paper-search-mcp ★ 2874 318 APPLICATION

paper-search-mcp is a production-grade Python application that exposes academic paper search and retrieval as an MCP (Model Context Protocol) server and as a CLI. It is not a data-research pipeline: it is a service layer that aggregates 20+ academic platforms (arXiv, PubMed, Semantic Scholar, Crossref, OpenAlex, Scopus, Web of Science, etc.) behind a unified interface. The server registers tools such as search_papers and download_with_fallback, while the paper-search CLI mirrors those tools for direct terminal use. Transports include stdio, SSE, and streamable HTTP, with an optional OAuth protected-resource mode for authenticated deployments. Architecturally, each academic platform is implemented as a PaperSource subclass, enabling consistent search/download/read semantics. A bounded executor runs source searches concurrently with per-source timeouts, then deduplicates results by DOI/title/ID and serializes them into a standardized Paper model. Downloads go through a fallback chain (source-native, open-access repositories, Unpaywall, and opt-in Sci-Hub) and are verified via PDF header checks, size limits, and title/DOI similarity before atomic save. A SQLite-backed cache with TTL and size limits is available for repeated queries, and PDF section extraction runs in a resource-limited subprocess to avoid agent lockups. The system depends on many external REST/XML APIs, pypdf for PDF parsing, FastMCP/Starlette for HTTP, and SQLite for caching; public sources work without API keys, while institutional connectors require credentials. The repository has an extensive deterministic test suite, CI, and recent commits, but technical drift is medium because the connector landscape is volatile: Google Scholar and SSRN are bot-blocked, some institutional connectors (Scopus, WoS, IEEE) are only fixture-tested, and code contains version-specific pypdf workarounds. Despite those external risks, the internal architecture is clean, well-tested, and provides several genuinely reusable integration patterns.

RATING: 8.7/10 MAINT: active DRIFT: medium
▸ 6 reusable components found
── end of results ──
$ submit: