
Preprint Fulltext
io.github.genecellPublished by GitHub account genecellv0.1.0Updated Oct 24, 2026
bioRxiv/medRxiv/arXiv preprint full text as structured sections for AI agents + search.
Overview
Fetches bioRxiv, medRxiv and arXiv preprint full text as structured, section-labeled text, and searches or resolves preprints for an assistant.
- What you can do
- Search preprints by keyword, title, abstract or author across Europe PMC, OpenAlex and arXiv
- Fetch one preprint's full text as structured sections (abstract, methods, results, discussion) from a DOI, URL or arXiv id
- Look up metadata and resolve identifiers to a canonical record
- Discover works by topic and date window
- Return license- and provenance-tagged text suitable for citation or chunking
- When to use it
- Useful when an assistant needs to read beyond abstracts: literature deep research, methods or protocol extraction, claim checking against results sections, or building a section-aware corpus for RAG over preprint literature.
- Requirements
- Runs locally over stdio as a Python package (PyPI preprint-fulltext), launched for example via uvx or an installed command. Set CONTACT_EMAIL for the Europe PMC and OpenAlex polite pools; OPENALEX_API_KEY is needed for OpenAlex search and discover. Network access to Europe PMC, OpenAlex and arXiv is required.
Installation
In SourceWeft
- Open Preprint Fulltext in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
README
preprint-fulltext
English | 简体中文 | 繁體中文 | 한국어 | Deutsch | Español | Français | Italiano | 日本語
[PyPI] [Python] [License: BSD-3-Clause] [CI]
Retrieve the full text of bioRxiv / medRxiv / arXiv preprints as clean, structured, embedding-ready data — from a CLI, a Python library, or an MCP server.
preprint-fulltext turns a DOI (or a search) into structured sections
(abstract / introduction / methods / results / discussion), a single JSON/Markdown
document, or a chunked JSONL/Parquet corpus ready for embeddings and RAG. openRxiv
text-and-data-mining (TDM) compliance is enforced structurally, not left to the user.
"Embedding-ready" means the output is clean, section-aware, token-bounded chunks — ready to feed to your embedding model. Computing embeddings is an optional last step you own; this tool does not bundle an embedding model.
Contents
- Why · Who it's for · Full text for AI-driven science
- Features · Install · Quickstart (CLI) · Typical workflows
- Python library · MCP server (coding agents) · Data sources & routing
- Configuration · Compliance · Development · Contact · License
Why
Preprint full text is scattered across incompatible channels: Europe PMC serves JATS
XML for the open-access subset, the openRxiv S3 buckets hold the authoritative
.meca corpus (requester-pays), OpenAlex is a catalog with n-gram-only full-text
search, and the bioRxiv/medRxiv websites render HTML. preprint-fulltext unifies
them behind one canonical data model and one shared JATS parser, so you get the
same structured output no matter where a document came from.
Who it's for
- ML / NLP researchers building embedding corpora or RAG systems over the preprint literature.
- Bioinformaticians and labs who need a paper's methods/results as clean text for analysis, extraction, or LLM pipelines.
- Coding agents (via the MCP server /
SKILL.md) that need to pull a preprint's full text or search the literature mid-task. - Anyone who wants one preprint's sections from a DOI without hand-parsing JATS or scraping HTML.
Full text for AI-driven science
Language models and agents reason far more reliably over a paper's methods and results
than over its abstract alone — most scientific claims, protocols, quantities, and caveats
live in the body. preprint-fulltext gives Claude, Codex, and other agents that body as
clean, section-labeled, provenance- and license-tagged text, which is the substrate for
grounded scientific reasoning and deep research:
- Literature deep-research — read across many papers' full text, not just abstracts.
- Methods / protocol extraction — pull exact procedures, parameters, and datasets.
- Claim verification — check a stated result against the actual Results section.
- Reproducibility & meta-analysis — compare methods and numbers across studies.
- RAG over your own corpus — section-aware, token-bounded chunks with citations.
Because every Section/Chunk carries its kind (methods / results / …), source, and
license, an agent can cite precisely (which section of which paper/version) and stay
within-license while it reasons. Full text is retrieval, not memorization: the model
grounds its reasoning in the primary source instead of recalling a possibly-stale summary.
Features
get <id>— one preprint's full text as structured JSON or Markdown. bioRxiv/ medRxiv route Europe PMC → S3 (opt-in HTML fallback); arXiv ids route to arXiv's LaTeXML full text (native HTML → ar5iv). Latest version by default;--versionselects one.search/discover— keyword, title, abstract, or author search across Europe PMC, OpenAlex, and arXiv; topic/category/date discovery.ingest— resumable, incremental bulk ingestion from the openRxiv S3 buckets into a chunked corpus (JSONL or Parquet) with a sidecar manifest.- MCP server — the same capabilities as tools for coding agents.
- Compliance built in — an export gate degrades non-redistributable works to link-back stubs; unknown licenses are treated as non-redistributable (fail-safe).
- One JATS parser shared by the Europe PMC and S3 paths; token- and section-aware chunking with deterministic, idempotent chunk ids.
Install
The MCP server is built in — no extra install and no third-party MCP framework. It's a
small, self-contained JSON-RPC 2.0 stdio server, so preprint-fulltext-mcp works out of the
box with only the core dependencies.
Set a contact email for the Europe PMC / OpenAlex polite pools (recommended), and an OpenAlex API key if you use OpenAlex (required by OpenAlex since 2026-02-13):
Quickstart (CLI)
get emits a FullText document (JSON) or Markdown (--markdown). search /
discover stream one SearchHit per line (JSONL). ingest writes one Chunk per
line plus a <out>_manifest.jsonl audit/resume sidecar.
Typical workflows
1. Read one paper's methods/results as text.
2. Build an embedding-ready corpus on a topic (free, no AWS).
3. Build the complete corpus for a month from S3 (requester-pays).
4. Find papers by author or title, then fetch.
5. Give a coding agent literature access — run preprint-fulltext-mcp and point your
agent at it (see skills/preprint-fulltext/SKILL.md).
Python
MCP server
Give a coding agent live preprint access. The server exposes four tools —
search_preprints, get_fulltext, get_metadata, resolve — over stdio. (Bulk ingest
is intentionally not a tool: it is long-running and incurs requester-pays cost.)
mcp-name: io.github.genecell/preprint-fulltext
It's a local stdio server, so it works in Claude Code / Cursor / VS Code / Windsurf / Zed / Codex / Cline — but not the claude.ai web app (there, use the Skill instead).
Recommended: run via uvx (no install)
uv runs the published package on demand — nothing to
pip install or keep on a PATH. Install uv once:
The launch command is uvx --from preprint-fulltext preprint-fulltext-mcp (the --from is
needed because the run command differs from the package name). First launch downloads the
package (~30 s); later launches are cached.
Claude Code — key mcpServers
Or edit ~/.claude.json (user) / project .mcp.json:
Cursor / Windsurf / Cline / Continue — key mcpServers (same shape)
Cursor: ~/.cursor/mcp.json (global) or .cursor/mcp.json (project). Windsurf:
~/.codeium/windsurf/mcp_config.json. Cline: MCP Servers → Configure. Continue:
~/.continue/config.
VS Code (GitHub Copilot, Agent mode) — key servers + type
.vscode/mcp.json (workspace) or user settings.json under "mcp":
Or one-shot: code --add-mcp '{"name":"preprint-fulltext","command":"uvx","args":["--from","preprint-fulltext","preprint-fulltext-mcp"]}'
Zed — key context_servers (different shape)
~/.config/zed/settings.json:
Codex (OpenAI Codex CLI) — TOML, not JSON
~/.codex/config.toml:
Or: codex mcp add preprint-fulltext -- uvx --from preprint-fulltext preprint-fulltext-mcp
Alternative: install with pip
If you already pip install preprint-fulltext, the server is on your PATH as
preprint-fulltext-mcp — use "command": "preprint-fulltext-mcp" (no args) in any config
above.
Env vars: set
CONTACT_EMAIL(Europe PMC / OpenAlex polite pools) andOPENALEX_API_KEY(only for OpenAlex search/discover) via the config'senvblock, or in your shell before launching the client. SeeSKILL.mdfor the full agent-facing tool reference.
Data sources & routing
Configuration
Via environment variables (prefixed PREPRINT_FULLTEXT_ or the bare names below),
a .env file, or a preprint-fulltext.toml:
Compliance
Corpora are for the operator's own text/data mining under the openRxiv TDM terms.
preprint-fulltext does not re-host or redistribute preprint full text. Every
FullText/Chunk carries its license; the export gate has two modes:
- analysis (default): pass-through for your own mining.
- redistribution (
--redistribution): works whose license permits redistribution pass unchanged; all others are degraded to a link-back stub (metadata + URL, no body text). Unknown/ambiguous licenses are treated as non-redistributable.
Development
Live tests are opt-in (they hit the real public APIs — Europe PMC, arXiv, and the bioRxiv/medRxiv JSON API):
The same live smoke runs in CI on demand (Actions → live-smoke) and weekly, to catch
upstream API drift; the default test workflow stays fully offline.
Agent docs (AGENTS.md, llms.txt, .cursor/rules/…, .github/copilot-instructions.md)
are generated from skills/preprint-fulltext/SKILL.md:
Contact
Min Dai — [email protected] (Gord Fishell Lab, Harvard Medical School / Broad Institute). Issues and pull requests welcome at https://github.com/genecell/preprint-fulltext.
License
BSD-3-Clause (see LICENSE). This covers the software only —
retrieved preprint content remains under its author-selected license.
Source: README.md at commit 625c926
Tools
0Version history
1- v0.1.0LatestSep 16, 2026
Score
40% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 days25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declared10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts
Declare a license in the repository or the registry entry.