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.
Available components
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
- Source repository is publicly reachable at the declared URL. View diagnostics → Pass
- Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
- Clear OSI-approved license (Apache-2.0).Pass
- Actively maintained (last published 26 days ago).Pass
- Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
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.
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
claude mcp add cyanheads-biorxiv-mcp-server -- npx -y @cyanheads/biorxiv-mcp-server
codex mcp add cyanheads-biorxiv-mcp-server -- npx -y @cyanheads/biorxiv-mcp-server
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"cyanheads-biorxiv-mcp-server": {
"type": "local",
"command": [
"npx",
"-y",
"@cyanheads/biorxiv-mcp-server"
],
"enabled": true
}
}
} openclaw mcp add cyanheads-biorxiv-mcp-server --command npx --arg -y --arg @cyanheads/biorxiv-mcp-server
mcp_servers:
cyanheads-biorxiv-mcp-server:
command: "npx"
args: ["-y", "@cyanheads/biorxiv-mcp-server"] {
"mcpServers": {
"cyanheads-biorxiv-mcp-server": {
"command": "npx",
"args": [
"-y",
"@cyanheads/biorxiv-mcp-server"
]
}
}
} 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.
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.
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.
biorxiv_get_fulltext Get Preprint Full Text ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| doi | string | yes | Preprint DOI (e.g. 10.1101/2024.05.28.596311 or 10.64898/2026.05.07.723463). The latest version is resolved automatically. |
| limit | integer | – | Maximum 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. |
| offset | integer | – | Character 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… |
| server | string | – | Server the preprint was posted on. Defaults to biorxiv. |
| Name | Type | Req | Description |
|---|---|---|---|
| cap | number | – | The limit (max characters) applied to this chunk. |
| content | string | yes | The requested chunk of full text as best-effort Markdown extracted from the rendered HTML page. Section structure is approximate — this is not JATS. |
| contentFormat | string | yes | How content was produced: Markdown extracted from the rendered HTML article page (constant). |
| doi | string | yes | The resolved preprint DOI. |
| hasMore | boolean | yes | True when more text follows this chunk. When true, call again with offset = offset + length. |
| length | number | yes | Number of characters returned in this chunk. |
| notice | string | – | Paging guidance when the content was truncated — how to fetch the next chunk. |
| offset | number | yes | Character offset into the full extracted text where this chunk begins. |
| remainingChars | number | yes | Characters remaining after this chunk (totalChars - offset - length). 0 means this chunk reaches the end. |
| server | string | yes | Server the preprint was resolved on. |
| shown | number | – | Characters returned in this chunk. |
| sourceUrl | string | yes | The full-text HTML page the content was extracted from. |
| title | string | – | Article title detected during extraction. Absent when the page exposed none. |
| totalChars | number | yes | Total characters in the full extracted text. Use with offset and length to page through long articles. |
| truncated | boolean | – | True when this chunk was capped by limit and more text remains. |
| version | string | yes | Preprint version whose full text was retrieved (the latest revision). |
| wordCount | number | – | Approximate 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 Get Preprint by DOI ~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/…
| Name | Type | Req | Description |
|---|---|---|---|
| dois | array | yes | One or more preprint DOIs to look up (max 10). |
| server | string | – | Server to query. "both" checks bioRxiv and medRxiv in parallel for each DOI. |
| Name | Type | Req | Description |
|---|---|---|---|
| failed | array | yes | DOIs that could not be resolved, with per-DOI error details. |
| preprints | array | yes | Successfully resolved preprints with their full revision history. |
No examples provided.
biorxiv_get_published_version Get Published Journal 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.
| Name | Type | Req | Description |
|---|---|---|---|
| doi | string | yes | Preprint DOI to resolve (e.g. 10.1101/2024.01.15.575123 or 10.64898/2026.05.07.723463). |
| server | string | – | Server the preprint was posted on. Defaults to biorxiv. |
| Name | Type | Req | Description |
|---|---|---|---|
| preprintAbstract | string | – | Preprint abstract. |
| preprintAuthorCorresponding | string | – | Corresponding author name. |
| preprintAuthorCorrespondingInstitution | string | – | Corresponding author institution. |
| preprintAuthors | string | – | Preprint author list. |
| preprintCategory | string | – | Subject category. |
| preprintDate | string | – | Date the preprint was first posted. |
| preprintDoi | string | yes | The preprint DOI that was resolved. |
| preprintTitle | string | – | Title of the preprint. |
| publishedDate | string | – | Journal publication date (YYYY-MM-DD). |
| publishedDoi | string | – | The journal publication DOI. |
| publishedJournal | string | – | Name of the publishing journal. |
No examples provided.
biorxiv_list_categories List bioRxiv/medRxiv 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.
| Name | Type | Req | Description |
|---|---|---|---|
| biorxiv | array | yes | bioRxiv subject categories |
| medrxiv | array | yes | medRxiv subject categories |
No examples provided.
biorxiv_list_recent List Recent Preprints ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| category | string | – | Subject category filter. Use biorxiv_list_categories for valid values. |
| cursor | integer | – | Integer page offset (0, 30, 60, …). Defaults to 0 (first page). |
| end_date | string | yes | End of the date interval (YYYY-MM-DD). |
| server | string | – | Server to query. "both" fans out to bioRxiv and medRxiv in parallel. |
| start_date | string | yes | Start of the date interval (YYYY-MM-DD). |
| Name | Type | Req | Description |
|---|---|---|---|
| categoryNote | string | – | Present when server="both" and the category exists in only one server's taxonomy. Explains which server was queried and why the other was excluded. |
| notice | string | – | Recovery hint when zero results are returned — echoes applied filters and suggests how to broaden. |
| pagination | object | yes | Per-server pagination state. Advance each server independently. |
| preprints | array | yes | Preprints in the requested date interval. |
No examples provided.
biorxiv_search_preprints Search Preprints by Keyword ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| author | string | – | Author 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_mark | string | – | Opaque 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_from | string | – | Earliest first-publication date filter (YYYY-MM-DD). |
| date_to | string | – | Latest first-publication date filter (YYYY-MM-DD). |
| limit | integer | – | Maximum results to return (1–100). Defaults to 25. |
| query | string | – | Keyword search query. Optional when author is provided — supply at least one of query or author. |
| server | string | – | Server scope for enrichment. "both" checks all matching DOIs on both servers. |
| Name | Type | Req | Description |
|---|---|---|---|
| nextCursorMark | string | – | Opaque 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. |
| notice | string | – | Recovery hint when zero results are returned — echoes query and suggests how to broaden. |
| partial_results | boolean | yes | True when one or more DOIs failed bioRxiv enrichment and fell back to EuropePMC metadata. |
| preprints | array | yes | Search results, ranked by EuropePMC relevance. |
| queryEcho | object | yes | Echo of the parameters used to produce this result set — lets callers verify what was sent. |
| totalCount | number | yes | Total preprints matching the query in EuropePMC (hitCount) — the true upstream grand total, not the number of results returned. |
No examples provided.