Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

io.github.cyanheads/biorxiv-mcp-server

NPM · @CYANHEADS/BIORXIV-MCP-SERVER · SCANNED AUG 7

Search and retrieve bioRxiv and medRxiv preprints — by DOI, date interval, or keyword — via MCP.

+56 this week 63 Trust /100
Trust breakdown (6 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score →

Supply Chain Security87
  • No malware found by supply-chain analysis.Pass
  • Known CVEs were checked across the 152 of 159 dependencies we could resolve, so this covers what we could see, not the whole tree.Partial
  • No install/post-install scripts declared.Pass
  • Dependency health was assessed across the 152 of 159 dependencies we could resolve, so this covers what we could see, not the whole tree. View diagnostics → Partial
Provenance & Transparency45
Schema Quality & AI Usability66
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 1356 tokens (~226/item across 6 items; 6 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management0
  • Stability not yet verified: not enough scan history yet (needs a 30-day window).Unverified
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
  • Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass

Unverified: 1 category

A category scored 0 because we could not verify it: a data source with nothing on this package, evidence we could not reach, or a check we could not run. We only credit what we can confirm.

Install

Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.

npm · @cyanheads/biorxiv-mcp-server

# add to Claude Code
claude mcp add cyanheads-biorxiv-mcp-server -- npx -y @cyanheads/biorxiv-mcp-server
# add to Codex CLI
codex mcp add cyanheads-biorxiv-mcp-server -- npx -y @cyanheads/biorxiv-mcp-server
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "cyanheads-biorxiv-mcp-server": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "@cyanheads/biorxiv-mcp-server"
      ],
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add cyanheads-biorxiv-mcp-server --command npx --arg -y --arg @cyanheads/biorxiv-mcp-server
# ~/.hermes/config.yaml
mcp_servers:
  cyanheads-biorxiv-mcp-server:
    command: "npx"
    args: ["-y", "@cyanheads/biorxiv-mcp-server"]
// mcp.json
{
  "mcpServers": {
    "cyanheads-biorxiv-mcp-server": {
      "command": "npx",
      "args": [
        "-y",
        "@cyanheads/biorxiv-mcp-server"
      ]
    }
  }
}
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 6 Aug 26 +28
    • Stability: Stability not yet verified: not enough scan history yet (needs a 30-day window). security
    • Tool coverage: unverified → 100 functional
    • MCP protocol: unverified → pass functional
    • First check of Schema quality: excellent functional
    • First check of Schema quality: fail functional
    • First check of Tool coverage: 100 functional
    • First check of Tool coverage: 100 functional
    • First check of Schema quality: fail functional
  • 2 Aug 26 +15
    • Provenance: unverified → fail security
    • Install scripts: unverified → pass security
    • Known CVEs: unverified → partial security
    • Stability: Stability not yet verified: our sandbox run of this package did not complete, so we have no schema to compare. security
    • Security disclosure: fail → unverified functional
    • Maintenance: unverified → pass functional
    • License: unverified → pass functional
    • Dependency health: unverified → partial functional
    • Capabilities: Protocol version not yet verified: our sandbox run of this package did not complete, so we never saw its MCP handshake. functional
    • Tool coverage: Tool coverage not yet verified: our sandbox run of this package did not complete, so we have no tool definitions to assess. functional
    • Schema quality: Schema quality not yet verified: our sandbox run of this package did not complete, so we have no schema to assess. functional
    • Licence: Apache-2.0 functional
  • 1 Aug 26 +13
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 31 Jul 26 −17
    • Malware scan: pass → unverified security
    • Dependency health: unverified → partial functional
  • 29 Jul 26 0
    • Tool coverage: Tool coverage not yet verified: we do not have a sandbox capture of the tool definitions this version of the package serves yet. functional
    • Schema quality: Schema quality not yet verified: we do not have a sandbox capture of the MCP schema this version of the package serves yet. functional
  • 27 Jul 26 24

    First indexed and scored.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 7 Aug 2026 · Analysed npm/@cyanheads/[email protected]

Provenance No attestation

The registry publishes no build provenance for this version, so there is nothing to verify.

Result No attestation
Ecosystem npm
Dependencies 152 packages
Packages resolved 152
Deprecated 148
Stale 43
Tree resolution Partial

The dependency tree was only partially resolved, so these counts may be incomplete.

MCP tools · 6 exposed · ~1,267 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability.

Tool Tokens
biorxiv_get_fulltext ~345

Retrieve a preprint's full text as best-effort Markdown, extracted from its rendered HTML article page. Resolves the latest version via the details API, then fetches and extracts the body — abstract, sections, and references. This is HTML-to-Markdown extraction, not structured JATS: section structure is approximate and not guaranteed. Long articles exceed a single response, so use offset and limit to page through them (the response reports totalChars, remainingChars, and hasMore). Not every preprint has an extractable HTML page — some are PDF-only and some origins block programmatic access — in which case a fulltext_unavailable error routes you to biorxiv_get_preprint for the title, abstract, and metadata. For a preprint that has been published in a journal, the journal's version may have richer full text elsewhere.

NameTypeReqDescription
doistringyesPreprint DOI (e.g. 10.1101/2024.05.28.596311 or 10.64898/2026.05.07.723463). The latest version is resolved automatically.
limitintegerMaximum number of characters to return in this chunk. Default 20,000; increase toward 50,000 for large context windows. Check the length field for the actual count returned.
offsetintegerCharacter offset into the full extracted text at which to start reading. 0 returns the beginning. To read the next chunk, use offset = prior_offset + prior_length (the length field from the previous…
serverstringServer the preprint was posted on. Defaults to biorxiv.
NameTypeReqDescription
capnumberThe limit (max characters) applied to this chunk.
contentstringyesThe requested chunk of full text as best-effort Markdown extracted from the rendered HTML page. Section structure is approximate — this is not JATS.
contentFormatstringyesHow content was produced: Markdown extracted from the rendered HTML article page (constant).
doistringyesThe resolved preprint DOI.
hasMorebooleanyesTrue when more text follows this chunk. When true, call again with offset = offset + length.
lengthnumberyesNumber of characters returned in this chunk.
noticestringPaging guidance when the content was truncated — how to fetch the next chunk.
offsetnumberyesCharacter offset into the full extracted text where this chunk begins.
remainingCharsnumberyesCharacters remaining after this chunk (totalChars - offset - length). 0 means this chunk reaches the end.
serverstringyesServer the preprint was resolved on.
shownnumberCharacters returned in this chunk.
sourceUrlstringyesThe full-text HTML page the content was extracted from.
titlestringArticle title detected during extraction. Absent when the page exposed none.
totalCharsnumberyesTotal characters in the full extracted text. Use with offset and length to page through long articles.
truncatedbooleanTrue when this chunk was capped by limit and more text remains.
versionstringyesPreprint version whose full text was retrieved (the latest revision).
wordCountnumberApproximate word count of the FULL extracted article as reported by the extractor (not just the returned chunk). Absent when the extractor reported none.

No examples provided.

biorxiv_get_preprint ~163

Fetch full metadata, abstract, all revision history, JATS XML full-text links, and published-journal DOI for one or more preprints by DOI. Each DOI returns all revisions in one response. When server="both" (default), each DOI is checked against both bioRxiv and medRxiv; the response includes which server the preprint was found on. Failed lookups are reported per-DOI rather than aborting the batch. DOIs must match the pattern 10.NNNN/…

NameTypeReqDescription
doisarrayyesOne or more preprint DOIs to look up (max 10).
serverstringServer to query. "both" checks bioRxiv and medRxiv in parallel for each DOI.
NameTypeReqDescription
failedarrayyesDOIs that could not be resolved, with per-DOI error details.
preprintsarrayyesSuccessfully resolved preprints with their full revision history.

No examples provided.

biorxiv_get_published_version ~170

Resolve a preprint DOI to its full journal publication record — journal DOI, journal name, published date, and corresponding author details. Use when the preprint's `publishedJournalDoi` field from biorxiv_get_preprint is present and you need the full crosswalk metadata. Returns a not-found error when the preprint is not yet published. Check biorxiv_get_preprint first to confirm the publishedJournalDoi field is populated.

NameTypeReqDescription
doistringyesPreprint DOI to resolve (e.g. 10.1101/2024.01.15.575123 or 10.64898/2026.05.07.723463).
serverstringServer the preprint was posted on. Defaults to biorxiv.
NameTypeReqDescription
preprintAbstractstringPreprint abstract.
preprintAuthorCorrespondingstringCorresponding author name.
preprintAuthorCorrespondingInstitutionstringCorresponding author institution.
preprintAuthorsstringPreprint author list.
preprintCategorystringSubject category.
preprintDatestringDate the preprint was first posted.
preprintDoistringyesThe preprint DOI that was resolved.
preprintTitlestringTitle of the preprint.
publishedDatestringJournal publication date (YYYY-MM-DD).
publishedDoistringThe journal publication DOI.
publishedJournalstringName of the publishing journal.

No examples provided.

biorxiv_list_categories ~60

List valid subject category strings for bioRxiv and medRxiv. Use these strings as the `category` filter in biorxiv_list_recent to narrow results to a specific field. Run this tool before filtering to get the current valid values.

Input schema present but exposes no named parameters.

NameTypeReqDescription
biorxivarrayyesbioRxiv subject categories
medrxivarrayyesmedRxiv subject categories

No examples provided.

biorxiv_list_recent ~217

List preprints posted or revised within a date interval, optionally scoped to one server or a subject category. Returns 30 preprints per page (fixed by the API); pass `cursor` as an integer offset (0, 30, 60, …) to step through additional pages. When server="both" (default), per-server pagination state is returned separately — use each server's `cursor` field for independent advancement. Call biorxiv_list_categories for valid category strings.

NameTypeReqDescription
categorystringSubject category filter. Use biorxiv_list_categories for valid values.
cursorintegerInteger page offset (0, 30, 60, …). Defaults to 0 (first page).
end_datestringyesEnd of the date interval (YYYY-MM-DD).
serverstringServer to query. "both" fans out to bioRxiv and medRxiv in parallel.
start_datestringyesStart of the date interval (YYYY-MM-DD).
NameTypeReqDescription
categoryNotestringPresent when server="both" and the category exists in only one server's taxonomy. Explains which server was queried and why the other was excluded.
noticestringRecovery hint when zero results are returned — echoes applied filters and suggests how to broaden.
paginationobjectyesPer-server pagination state. Advance each server independently.
preprintsarrayyesPreprints in the requested date interval.

No examples provided.

biorxiv_search_preprints ~312

Search preprints by keyword and/or author using EuropePMC for relevance ranking, then enrich matching DOIs with full bioRxiv/medRxiv metadata. Provide a keyword query, an author name, or both — author maps to an EuropePMC AUTH: field query and is ANDed with the keyword query. Covers both servers by default. EuropePMC indexes new preprints within 1–2 days of posting; for preprints posted within the last day, prefer biorxiv_list_recent.

NameTypeReqDescription
authorstringAuthor name to filter by, mapped to an EuropePMC AUTH:"…" field query and ANDed with the keyword query. Optional when query is provided (e.g. "Jennifer Doudna").
cursor_markstringOpaque page token for ranked EuropePMC results. Omit for the first page; pass the nextCursorMark returned by a prior call to fetch the next page. Pages through the same ranked list rather than raisin…
date_fromstringEarliest first-publication date filter (YYYY-MM-DD).
date_tostringLatest first-publication date filter (YYYY-MM-DD).
limitintegerMaximum results to return (1–100). Defaults to 25.
querystringKeyword search query. Optional when author is provided — supply at least one of query or author.
serverstringServer scope for enrichment. "both" checks all matching DOIs on both servers.
NameTypeReqDescription
nextCursorMarkstringOpaque token for the next page of ranked results. Present only when more results exist beyond this page; pass it back as cursor_mark. Absent on the last page.
noticestringRecovery hint when zero results are returned — echoes query and suggests how to broaden.
partial_resultsbooleanyesTrue when one or more DOIs failed bioRxiv enrichment and fell back to EuropePMC metadata.
preprintsarrayyesSearch results, ranked by EuropePMC relevance.
queryEchoobjectyesEcho of the parameters used to produce this result set — lets callers verify what was sent.
totalCountnumberyesTotal preprints matching the query in EuropePMC (hitCount) — the true upstream grand total, not the number of results returned.

No examples provided.