Search and retrieve bioRxiv and medRxiv preprints β by DOI, date interval, or keyword β via MCP.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
We haven't yet run this listing's install command through our automated sandbox check. This isn't a red flag β we're steadily working through the catalog.
π‘ Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
Search and retrieve bioRxiv and medRxiv preprints β by DOI, date interval, or keyword β via MCP. STDIO or Streamable HTTP.
Six tools for working with bioRxiv and medRxiv preprint data:
| Tool | Description |
|---|---|
biorxiv_get_preprint | Fetch full metadata, abstract, revision history, and journal crosswalk for one or more preprints by DOI |
biorxiv_list_recent | List preprints posted or updated within a date interval, with optional server and category filters |
biorxiv_search_preprints | Search preprints by keyword and/or author via EuropePMC for relevance ranking, enriched with bioRxiv/medRxiv metadata |
biorxiv_get_published_version | Resolve a preprint DOI to its journal publication record (journal DOI, name, published date) |
biorxiv_get_fulltext | Retrieve a preprint's full text as best-effort Markdown extracted from its rendered HTML article page |
biorxiv_list_categories | List valid subject category strings for bioRxiv and medRxiv |
biorxiv_get_preprintFetch preprint metadata by DOI β all revisions in one call.
collection[] β one API call per DOI, no enumeration loopjatsxml), and published journal DOI when the preprint has been acceptedbiorxiv, medrxiv, or both; when both, each DOI fans out in parallel and partial failures report per-DOI in failed[]failed[] entry carries a reason (not_found, invalid_doi_format, upstream_unavailable, rate_limited) and a retryable flag β a DOI is only reported as not found when every attempted server answeredrate_limited rather than folding into upstream_unavailable, and carries retryAfter β the wait in seconds api.biorxiv.org asked forbiorxiv_list_recentPage through preprints in a date interval.
?category=β¦ β pass a value from biorxiv_list_categoriescursor (0, 30, 60, β¦)total count per server for calculating remaining pagesserver="both", each server paginates independently; response surfaces per-server pagination state ({ biorxiv: { cursor, total }, medrxiv: { cursor, total } })exhausted: true β the API reports total: 0 for an out-of-range cursor, so that count is an artifact rather than the interval totalserver="both" is named in failed[] rather than dropped; the other server's page is still returned, and a non-empty failed[] marks the result set as partialupstream_unavailable (or rate_limited) error instead of returning an empty page β nothing answered, so an empty interval was never establishedbiorxiv_search_preprintsKeyword and/or author search with relevance ranking.
author maps to an EuropePMC AUTH:"β¦" field query, ANDed with the keyword query β supply query, author, or bothserverdate_from, date_to)biorxiv_get_preprint returns β including type, license, funder, and authorCorrespondingInstitutionpartial_results and a per-record enrichment_error (service_error, rate_limited, or not_found)rate_limited error carrying the origin's Retry-After wait β the search is the primary call and has no metadata to fall back on, unlike the enrichment stepbiorxiv_get_published_versionResolve a preprint DOI to its journal publication crosswalk.
/pubs/{server}/{doi} endpoint for richer metadata than the publishedJournalDoi field in biorxiv_get_preprintpublishedJournalDoi field is present and you need the full crosswalk recordbiorxiv, medrxiv, or both; both is the default because the two servers share the 10.1101/ DOI prefix, and the output server field names the one that answeredupstream_unavailable, or rate_limited with the origin's wait when the failure was an HTTP 429 β never doi_not_found, which would assert an absence nothing establishedbiorxiv_get_fulltextRetrieve a preprint's full text as best-effort Markdown.
www.{server}.org/content/{doi}v{N}.full) and extracts Markdown β there is no keyless JATS sourcebiorxiv, medrxiv, or both; both is the default because the two servers share the 10.1101/ DOI prefix. Only the DOI resolution fans out β the full-text fetch targets the single server that answered, named in the output server fieldoffset/limit character chunking (totalChars, remainingChars, hasMore); the extracted article is cached per version, so paging costs one origin fetch rather than one per chunkfulltext_unavailable error routing to biorxiv_get_preprintrate_limited error carrying the origin's Retry-After wait, rather than a bare fetch failure. Both origins this tool touches can hit it β the article page during the full-text fetch, api.biorxiv.org during version resolution β and the recovery hint names which of them are limiting, since biorxiv_get_preprint is only a useful fallback while the metadata origin is answeringbiorxiv_list_categoriesReturn the static subject category taxonomy for both servers.
biorxiv_list_recentBuilt on @cyanheads/mcp-ts-core:
none, jwt, oauth)in-memory, filesystem, Supabase, Cloudflare KV/R2/D1bioRxiv-specific:
No reviews yet β be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/biorxiv-mcp-server)<a href="https://allmcps.com/mcp/biorxiv-mcp-server"><img src="https://allmcps.com/api/badge/biorxiv-mcp-server?style=directory" alt="Biorxiv MCP Server on AllMCPs" /></a>