Skip to main content
Glama

biorxiv-mcp-server

Server Details

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

If you are the author of this connector, you can claim ownership with GitHub, an HTTP challenge, or a DNS record. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
Repository
cyanheads/biorxiv-mcp-server
GitHub Stars
4
Server Listing
@cyanheads/biorxiv-mcp-server

TDQS

A4.7/5.0

Scored across 6 tools

Disambiguation5/5

Each tool targets a clearly distinct operation: metadata retrieval, full-text extraction, published-version crosswalk, category listing, recent listing, and keyword/author search. Cross-tool references (e.g., fulltext unavailable routes to biorxiv_get_preprint) further clarify boundaries.

Naming Consistency5/5

All six tools share the biorxiv_ prefix and follow a consistent verb_noun snake_case pattern: get_fulltext, get_preprint, get_published_version, list_categories, list_recent, search_preprints. No style mixing or vague verbs.

Tool Count5/5

Six tools is well-scoped for a preprint server: search, browse, category listing, metadata, full-text, and journal crosswalk are each represented without redundancy or bloat. The count feels intentional and complete for the domain.

Completeness5/5

The set covers the full read-side workflow: discovering preprints via search or recent lists, filtering by category, retrieving metadata/revisions, extracting full text, and resolving the published journal version. Cross-tool error routing and hints (e.g., checking publishedJournalDoi before calling get_published_version) create a cohesive surface with no obvious dead ends.

Available Tools

6 tools
biorxiv_get_fulltextGet Preprint Full TextA
Read-only
Inspect

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. bioRxiv and medRxiv share the 10.1101/ DOI prefix, so server="both" (the default) resolves the DOI against both in parallel and the response reports which server answered. 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); paging is cheap because the extracted article is cached per version for an hour after the first read, so only the first chunk pays for a fetch. 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.

ParametersJSON Schema
NameRequiredDescriptionDefault
doiYesPreprint DOI (e.g. 10.1101/2024.05.28.596311 or 10.64898/2026.05.07.723463). The latest version is resolved automatically.
limitNoMaximum 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.
offsetNoCharacter 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 response).
serverNoServer the preprint was posted on. "both" (default) checks bioRxiv and medRxiv in parallel to resolve the DOI — the full-text fetch itself only ever targets whichever server resolved, and the output server field names it.both

Output Schema

ParametersJSON Schema
NameRequiredDescription
capNoThe limit (max characters) applied to this chunk.
doiNoThe resolved preprint DOI.
errorNoPresent when the call failed. Absent on success.
shownNoCharacters returned in this chunk.
titleNoArticle title detected during extraction. Absent when the page exposed none.
lengthNoNumber of characters returned in this chunk.
noticeNoPaging guidance when the content was truncated — how to fetch the next chunk.
offsetNoCharacter offset into the full extracted text where this chunk begins.
serverNoServer the preprint was resolved on.
contentNoThe requested chunk of full text as best-effort Markdown extracted from the rendered HTML page. Section structure is approximate — this is not JATS.
hasMoreNoTrue when more text follows this chunk. When true, call again with offset = offset + length.
versionNoPreprint version whose full text was retrieved (the latest revision).
sourceUrlNoThe full-text HTML page the content was extracted from.
truncatedNoTrue when this chunk was capped by limit and more text remains.
wordCountNoApproximate word count of the FULL extracted article as reported by the extractor (not just the returned chunk). Absent when the extractor reported none.
totalCharsNoTotal characters in the full extracted text. Use with offset and length to page through long articles.
contentFormatNoHow content was produced: Markdown extracted from the rendered HTML article page (constant).
remainingCharsNoCharacters remaining after this chunk (totalChars - offset - length). 0 means this chunk reaches the end.

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnlyHint and openWorldHint annotations, the description discloses best-effort Markdown quality, approximate section structure, per-version caching for an hour, parallel server resolution, error behavior, and fallback conditions. This is rich behavioral context that an agent cannot infer from the annotations or schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is long but every sentence carries distinct information: extraction method, server resolution, quality caveat, paging/caching, error fallback, and journal alternative. It is front-loaded with the core retrieval purpose and progresses logically through operational details.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with this complexity, the description covers the key operational facts: DOI resolution, paging through long articles, likely error modes and their fallback, and the approximate nature of the extracted structure. Since an output schema exists, detailed return-value documentation is not needed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 100% schema description coverage, the baseline is 3, and the description adds value by explaining the paging protocol (offset = prior_offset + prior_length), the caching implications for later chunks, and how server resolution works. It complements the schema rather than merely restating it.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The first sentence states a specific verb+resource: 'Retrieve a preprint's full text as best-effort Markdown, extracted from its rendered HTML article page,' and then names the concrete content extracted (abstract, sections, references). It differentiates itself from siblings by explicitly contrasting with biorxiv_get_preprint and the journal-published version, and by stating this is not structured JATS.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives explicit routing guidance: when a fulltext_unavailable error occurs, use biorxiv_get_preprint for metadata; when a preprint has a journal version, richer full text may live elsewhere. It also specifies when to use offset and limit for paging rather than one call, making the selection and invocation conditions clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

biorxiv_get_preprintGet Preprint by DOIA
Read-onlyIdempotent
Inspect

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 in failed[] rather than aborting the batch, each carrying a reason (not_found, invalid_doi_format, upstream_unavailable, rate_limited) and a retryable flag; a rate_limited entry also carries the wait in seconds the origin asked for. DOIs must match the pattern 10.NNNN/…

ParametersJSON Schema
NameRequiredDescriptionDefault
doisYesOne or more preprint DOIs to look up (max 10).
serverNoServer to query. "both" checks bioRxiv and medRxiv in parallel for each DOI.both

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNoPresent when the call failed. Absent on success.
failedNoDOIs that could not be resolved, with per-DOI error details.
preprintsNoSuccessfully resolved preprints with their full revision history.

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With readOnlyHint, openWorldHint, and idempotentHint already set, the description goes well beyond them by disclosing batch behavior, per-DOI failure reporting with reasons, retryable flags, rate-limit wait times, and the fact that all revisions are returned in one response. This is rich, non-obvious behavioral context that annotations alone do not provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core purpose and every subsequent sentence adds necessary behavioral or constraint information. It is dense but not bloated; each sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a batch lookup tool with an output schema, the description covers the essential operational details: what is fetched, how revisions are returned, server selection, failure semantics, retryability, and DOI format requirements. Nothing critical is missing for an agent to select and invoke this tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description adds value by specifying the DOI pattern (10.NNNN/…), the default behavior of server='both', and how failures are handled per DOI. These details go beyond the schema's parameter descriptions without duplicating them.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific action ('Fetch full metadata, abstract, all revision history, JATS XML full-text links, and published-journal DOI') and a specific resource (preprints by DOI). It is clear and detailed, but it does not explicitly differentiate itself from siblings like biorxiv_get_fulltext or biorxiv_get_published_version, which could have overlapping responsibilities.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context for when to use the tool: given one or more preprint DOIs, it returns metadata and revisions. It also explains the server='both' default behavior. However, it does not explicitly state when NOT to use it or which sibling to choose instead, so it lacks explicit exclusion guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

biorxiv_get_published_versionGet Published Journal VersionA
Read-onlyIdempotent
Inspect

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. bioRxiv and medRxiv share the 10.1101/ DOI prefix, so server="both" (the default) checks both in parallel and the response reports which server answered. Returns a not-found error when no attempted server holds a published record — check biorxiv_get_preprint if you need to confirm the preprint is published at all.

ParametersJSON Schema
NameRequiredDescriptionDefault
doiYesPreprint DOI to resolve (e.g. 10.1101/2024.01.15.575123 or 10.64898/2026.05.07.723463).
serverNoServer the preprint was posted on. "both" (default) checks bioRxiv and medRxiv in parallel — use it when the DOI alone does not tell you which server holds the preprint.both

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNoPresent when the call failed. Absent on success.
serverNoThe server that returned this published record — never "both".
preprintDoiNoThe preprint DOI that was resolved.
preprintDateNoDate the preprint was first posted.
publishedDoiNoThe journal publication DOI.
preprintTitleNoTitle of the preprint.
publishedDateNoJournal publication date (YYYY-MM-DD).
preprintAuthorsNoPreprint author list.
preprintAbstractNoPreprint abstract.
preprintCategoryNoSubject category.
publishedJournalNoName of the publishing journal.
preprintAuthorCorrespondingNoCorresponding author name.
preprintAuthorCorrespondingInstitutionNoCorresponding author institution.

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark the tool as read-only, idempotent, and open-world, but the description adds meaningful behavior beyond that: the shared 10.1101/ prefix rationale, parallel checking when server='both', the server-reported-in-response behavior, and the not-found error condition. No contradiction with annotations exists.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but well-structured: purpose first, then when-to-use, then parameter behavior, then error handling. Every sentence contributes necessary operational information, and nothing is redundant with the schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is complete for a two-parameter tool with a rich output schema. It covers the target input, default behavior, error case, and relationship to the sibling tool. Given the annotations and output schema, nothing an agent needs to call this correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already documents both parameters fully, so the baseline is 3. The description adds extra meaning for the `server` parameter by explaining why 'both' is the default, how parallel checking works, and how the shared DOI prefix makes server selection ambiguous. This raises it above baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific action and resource: 'Resolve a preprint DOI to its full journal publication record' and lists the returned fields. It clearly differentiates itself from biorxiv_get_preprint by focusing on the published journal crosswalk rather than the preprint record.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives an explicit trigger condition: use when `publishedJournalDoi` from biorxiv_get_preprint is present and full crosswalk metadata is needed. It also tells the agent when not to use it and what to call instead: check biorxiv_get_preprint if confirmation of publication is the goal. Server selection guidance is also included.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

biorxiv_list_categoriesList bioRxiv/medRxiv CategoriesA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNoPresent when the call failed. Absent on success.
biorxivNobioRxiv subject categories
medrxivNomedRxiv subject categories

TDQS

A4.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover readOnlyHint, idempotentHint, and openWorldHint, so the base safety profile is established. The description adds useful behavioral context beyond those annotations: the returned values are 'current valid values' and should be fetched before filtering, indicating the category list may change over time. This is valuable guidance without contradicting any annotation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, each earning its place: the tool's purpose, how to use the output, and when to run it. The most important information is front-loaded, with no redundant or decorative language. This is an example of efficient, well-structured documentation.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter read-only tool with an output schema present, the description covers everything an agent needs: what values are returned, how to consume them, and when to call it. The existence of an output schema means return-value details are already structured, so no further explanation is required.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so there is nothing for the description to clarify about parameters. Per the baseline for zero-parameter tools, this dimension is trivially satisfied and needs no compensation. The description appropriately focuses on the output semantics instead.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'List valid subject category strings for bioRxiv and medRxiv.' It clearly distinguishes this tool from its siblings by identifying categories as its domain, not fulltext, preprints, or search. The purpose is unambiguous and tied to a concrete use case.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly tells the agent when to use this tool: before filtering with biorxiv_list_recent, and how to apply the result (as the `category` filter value). It names the sibling tool directly and gives an actionable sequence, leaving no ambiguity about its role in the workflow.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

biorxiv_list_recentList Recent PreprintsA
Read-only
Inspect

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. One server failing under server="both" does not abort the call: the other server's page is still returned and the failed one is named in failed[], marking the result set as partial rather than complete. Every attempted server failing is a different case and does abort the call, with a retryable upstream_unavailable (or rate_limited) error — an empty page would otherwise be indistinguishable from an interval that genuinely holds nothing. Call biorxiv_list_categories for valid category strings.

ParametersJSON Schema
NameRequiredDescriptionDefault
cursorNoInteger page offset (0, 30, 60, …). Defaults to 0 (first page).
serverNoServer to query. "both" fans out to bioRxiv and medRxiv in parallel.both
categoryNoSubject category filter. Use biorxiv_list_categories for valid values.
end_dateYesEnd of the date interval (YYYY-MM-DD).
start_dateYesStart of the date interval (YYYY-MM-DD).

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNoPresent when the call failed. Absent on success.
failedNoServers that did not answer, so their records are missing from "preprints" and they have no "pagination" entry. Non-empty means this result set is partial — retry to include them. Only populated when server="both", and never holding every attempted server: when none answered, the call fails with upstream_unavailable or rate_limited instead of returning a page. A single-server failure likewise surfaces as a tool error. Distinct from an exhausted pagination entry, where the server answered.
noticeNoGuidance on how to read this result set: which servers did not answer, which cursors are past the end, and — when nothing came back — the applied filters and how to broaden them. All applicable qualifications are composed into one string.
preprintsNoPreprints in the requested date interval.
paginationNoPer-server pagination state. Advance each server independently.
categoryNoteNoPresent when server="both" and the category exists in only one server's taxonomy. Explains which server was queried and why the other was excluded.

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes far beyond the readOnlyHint/openWorldHint annotations: discloses fixed 30-per-page pagination, integer-offset cursor semantics, per-server cursor state under server="both", partial-failure semantics (one server failing yields a partial result with failed[]), and full-failure semantics (abort with retryable upstream_unavailable/rate_limited). Even explains the rationale (empty-page ambiguity), which materially helps an agent interpret results and decide retries. Consistent with annotations — no contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Six sentences, each earning its place: purpose first, then pagination mechanics, then dual-server pagination, then partial and full failure modes, then category routing. It is front-loaded and logically ordered. The length is fully justified by the genuinely complex behavioral semantics (partial results, per-server cursors, retryable errors) that an agent must understand to use the tool correctly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given an output schema exists (return shape need not be described) and annotations cover the safety profile, the description covers every operationally critical aspect: page size, cursor stepping, dual-server pagination, partial vs. aborted failure, retryable error types, and where to obtain valid category strings. Nothing an agent needs to invoke or interpret this tool correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3; the description adds genuine value on top. For `cursor` it explains the fixed page size and offset stepping (0, 30, 60…); for `server` it details the 'both' fan-out consequences, per-server pagination, and failure behavior; for `category` it routes to the authoritative source. Only start_date/end_date add nothing beyond the schema, which is fine since the schema already specifies YYYY-MM-DD.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb+resource+scope: 'List preprints posted or revised within a date interval, optionally scoped to one server or a subject category.' This clearly distinguishes it from sibling tools: search_preprints (query-based), get_preprint/get_fulltext/get_published_version (single-item retrieval), and list_categories (categories, not preprints).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The intended use context is clear — browsing preprints by date interval with optional server/category scoping — and it explicitly routes to biorxiv_list_categories for valid category values. However, it never contrasts itself with biorxiv_search_preprints or states when NOT to use this tool, leaving the list-vs-search decision to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

biorxiv_search_preprintsSearch Preprints by KeywordA
Read-only
Inspect

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. A EuropePMC rate limit (HTTP 429) fails the call with a retryable rate_limited error carrying the wait in seconds — a rate-limited metadata enrichment does not, and instead marks the affected record enrichment_error: "rate_limited".

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum results to return (1–100). Defaults to 25.
queryNoKeyword search query. Optional when author is provided — supply at least one of query or author.
authorNoAuthor 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").
serverNoServer scope for enrichment. "both" checks all matching DOIs on both servers.both
date_toNoLatest first-publication date filter (YYYY-MM-DD).
date_fromNoEarliest first-publication date filter (YYYY-MM-DD).
cursor_markNoOpaque 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 raising limit.

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNoPresent when the call failed. Absent on success.
noticeNoRecovery hint when zero results are returned — echoes query and suggests how to broaden.
preprintsNoSearch results, ranked by EuropePMC relevance.
queryEchoNoEcho of the parameters used to produce this result set — lets callers verify what was sent.
totalCountNoTotal preprints matching the query in EuropePMC (hitCount) — the true upstream grand total, not the number of results returned.
nextCursorMarkNoOpaque 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.
partial_resultsNoTrue when one or more DOIs failed bioRxiv enrichment and fell back to EuropePMC metadata.

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already signal read-only and open-world behavior, but the description adds substantial value: EuropePMC indexing delay of 1–2 days, rate-limit failure semantics with retryable errors, and enrichment failure handling via enrichment_error: "rate_limited". No contradiction with annotations exists.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Every sentence earns its place: core behavior, parameter combination rule, recency caveat with alternative, and error behavior. The most important functional information is front-loaded, and the content is dense without fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is complete for a search tool with a rich output schema and annotations. It covers behavior, default scope, timing caveats, error handling, and the key alternative, leaving nothing necessary for an agent to call it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description does not meaningfully add beyond the schema: the AUTH mapping and ANDing of author is already in the author parameter description, and the server default is already in the server parameter description. The description reinforces usage constraints but does not introduce new parameter semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: search preprints by keyword and/or author, with EuropePMC relevance ranking and bioRxiv/medRxiv metadata enrichment. It is clearly differentiated from siblings like biorxiv_get_preprint and biorxiv_get_fulltext by framing this as a search/enumerate operation, and it even names biorxiv_list_recent as the alternative for very recent preprints.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives explicit usage context: supply a keyword, an author, or both; author is ANDed with the keyword. It also gives a concrete when-not-to-use rule by directing users to biorxiv_list_recent for preprints posted within the last day, and it notes the default server coverage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 6 tool updates
    • First observedbiorxiv_get_fulltext
    • First observedbiorxiv_get_preprint
    • First observedbiorxiv_get_published_version
    • First observedbiorxiv_list_categories
    • First observedbiorxiv_list_recent
    • First observedbiorxiv_search_preprints

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    MCP server that turns a medRxiv DOI into clean markdown full text and provides free, relevance-ranked preprint search via Europe PMC.
    2
    1
    Apache 2.0
  • F
    license
    A
    quality
    D
    maintenance
    Provides access to bioRxiv and medRxiv preprints via a unified tool with seven methods, including keyword search, metadata retrieval, and statistics.
    1
    -
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables querying bioRxiv and medRxiv preprints, including metadata, publication status, and submission counts, through natural language or direct tool calls.
    5 npm
    MIT
  • F
    license
    Not graded
    quality
    F
    maintenance
    🔍 Enable AI assistants to search and access bioRxiv papers through a simple MCP interface. The bioRxiv MCP Server provides a bridge between AI assistants and bioRxiv's preprint repository through the Model Context Protocol (MCP). It allows AI models to search for biology preprints and access their
    25
    -
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.