Labsco
MCP SERVER

Scientific Paper Harvester

by benedict2310

Search six academic sources — arXiv, OpenAlex, PMC, Europe PMC, bioRxiv/medRxiv and CORE — and pull a paper's full text, not just its abstract.

Academic Literature & CitationsVerified
Summary
Getting the actual text is the hard part, and that is what this is built around.

Search across preprint servers and open catalogues is common; retrieving readable full text from six different hosting arrangements is not, and the per-source extraction strategies with a DOI fallback chain are why a paper usually comes back as text rather than a link. The honest bit is the flags — when extraction truncates or fails you are told, so an answer built on a partial paper is visible as such. Plan around the split: search returns metadata with an empty text field, and full text is a second call per paper.

What it is

A harvester across six literature sources, with the source named on every call. Search and listing return metadata; full text is a separate call, because extraction is where the work happens.

What you get
  • search_papers queries arXiv, OpenAlex, Europe PMC or CORE, with field set to all, title, abstract, author or fulltext, and sortBy relevance, date or citations
  • fetch_latest returns the newest papers in a category for a source, and list_categories shows what categories that source offers
  • fetch_top_cited returns the most cited papers for a concept since a date you give, from OpenAlex's citation data
  • fetch_content retrieves one paper by id with its text extracted — id formats differ per source, from arXiv's 2401.12345 to OpenAlex's W2741809807 and DOIs for bioRxiv
  • Extraction is per-source: arXiv HTML with an ar5iv fallback, PMC through E-utilities, Europe PMC over REST, CORE from PDF or HTML, each falling back rather than failing outright
  • A DOI resolution chain — Unpaywall, then Crossref, then Semantic Scholar — for finding a free full text when the direct route has none
  • Every result carries textTruncated and textExtractionFailed flags, so a partial extraction is visible rather than silent
  • fetch_pdf_content reads a PDF from a URL, bounded by maxPages, maxSizeMB and a timeout, with a confirmation step for large files
  • Per-source rate limiting built in: 5 requests a minute for arXiv and bioRxiv, 10 for OpenAlex, Europe PMC and CORE, 3 a second for PMC
Requirements

No account for the default setup — it runs as npx -y @futurelab-studio/latest-science-mcp@latest and all six sources are reachable without keys. CORE_API_KEY is the one optional credential, and it raises CORE's rate limit above the public tier.

Setup effort

One command — npm install -g @futurelab-studio/latest-science-mcp