preprint-fulltext について
preprint-fulltextは、CLI、Pythonライブラリ、MCPサーバーを通じてbioRxiv、medRxiv、arXivの全文を構造化して取得します。研究者やコーディングエージェントが論文を検索し、節を抽出したり、ライセンスに配慮したコーパスを作成したりできます。
主な機能
- 01DOIによる構造化全文の取得
- 02プレプリントの検索と発見
- 03節別JSONL・Parquetチャンクの出力
- 04一括コーパス取り込みの再開
- 05再配布ライセンスの確認
- 06複数ソースで共通のパーサー
活用シーン
- 01分析用に方法と結果を抽出する
- 02論文の結果に基づいて主張を検証する
- 03RAG用のプレプリントコーパスを作る
- 04複数論文の手順を比較する
MCP 対応
stdio MCPサーバーは、search_preprints、get_fulltext、get_metadata、resolveをMCPクライアントに提供します。一括取り込みはCLIで利用でき、MCPツールには含まれません。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
uvx preprint-fulltextCONTACT_EMAILEmail for the Europe PMC / OpenAlex polite pools (recommended).OPENALEX_API_KEYシークレットOpenAlex API key (only needed for OpenAlex discover/search; required by OpenAlex since 2026-02-13).ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
4掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| field | enum | いいえ | fulltext | title | abstract | author |
| limit | integer | いいえ | |
| query | string | はい | |
| source | enum | いいえ | europepmc | openalex | arxiv |
詳細
preprint-fulltext
English | 简体中文 | 繁體中文 | 한국어 | Deutsch | Español | Français | Italiano | 日本語
bioRxiv/medRxiv/arXiv のプレプリントの全文を、CLI、Python ライブラリ、または MCP サーバーから、クリーンで構造化された、埋め込み処理にすぐ使えるデータとして取得できます。
preprint-fulltext は、DOI(または検索クエリ)を、構造化されたセクション(要旨/序論/方法/結果/考察)、単一の JSON/Markdown ドキュメント、あるいは埋め込みと RAG にすぐ使えるチャンク分割済みの JSONL/Parquet コーパスに変換します。openRxiv のテキスト・データマイニング(TDM)コンプライアンスは、ユーザー任せにせず、構造的に徹底されます。
「埋め込み処理にすぐ使える」とは、出力がクリーンで、セクションを認識し、トークン数に上限を設けたチャンクであることを意味します。お使いの埋め込みモデルにすぐ投入できます。埋め込みの計算は任意の最後のステップであり、ユーザー自身が行います。このツールには埋め込みモデルは含まれていません。
目次
- 理由 · 対象ユーザー · AI 駆動の科学研究向けの全文
- 機能 · インストール · クイックスタート(CLI) · 一般的なワークフロー
- Python ライブラリ · MCP サーバー(コーディングエージェント) · データソースとルーティング
- 設定 · コンプライアンス · 開発 · 連絡先 · ライセンス
理由
プレプリントの全文は、互換性のない複数の経路に分散しています。Europe PMC はオープンアクセス対象について JATS XML を提供し、openRxiv の S3 バケットには信頼できる .meca コーパスが格納されています(リクエスター負担)。OpenAlex は n-gram のみで全文検索を行うカタログであり、bioRxiv/medRxiv のウェブサイトは HTML を表示します。preprint-fulltext はこれらを単一の標準データモデルと共有の JATS パーサーに統合するため、文書の取得元にかかわらず同じ構造化出力を得られます。
対象ユーザー
- プレプリント文献を対象とした埋め込みコーパスや RAG システムを構築する ML/NLP 研究者。
- 分析、情報抽出、LLM パイプラインに使える、クリーンなテキスト形式の論文の方法や結果を必要とする バイオインフォマティクス研究者や研究室。
- 作業中にプレプリントの全文を取得したり、文献を検索したりする必要がある コーディングエージェント(MCP サーバー/
SKILL.md経由)。 - JATS を手作業で解析したり HTML をスクレイピングしたりせず、DOI から特定のプレプリントのセクションを取得したいすべての人。
AI 主導の科学研究のための全文
言語モデルやエージェントは、アブストラクトだけを読むよりも、論文の方法と結果
に基づいて、はるかに確実に推論できます。科学的主張、プロトコル、数量、注意事項の
多くは本文に記載されています。preprint-fulltext は、本文をセクション名、出典情報、
ライセンス情報付きのクリーンなテキストとして Claude、Codex、その他のエージェントに
提供し、根拠に基づく科学的推論と深い調査の土台となります。
- 文献の深掘り調査 — アブストラクトだけでなく、多数の論文の全文を読みます。
- 方法/プロトコルの抽出 — 正確な手順、パラメーター、データセットを取り出します。
- 主張の検証 — 記載された結果を実際の「結果」セクションと照合します。
- 再現性とメタ分析 — 研究間で方法と数値を比較します。
- 独自コーパスの RAG — セクションを考慮し、トークン数を制限した、引用付きのチャンクを使用します。
各 Section/Chunk に kind(methods / results / …)、source、および
license が含まれるため、エージェントは正確に引用し(どの論文のどのバージョンの
どのセクションか)、推論中もライセンスの範囲内にとどまることができます。全文は
検索対象であり、記憶させるものではありません。モデルは古くなっている可能性のある
要約を想起するのではなく、一次資料に基づいて推論します。
機能
get <id>— 1 件のプレプリントの全文を、構造化 JSON または Markdown で取得します。bioRxiv/ medRxiv は Europe PMC → S3 を経由します(HTML フォールバックはオプトイン)。arXiv の ID は arXiv の LaTeXML 全文(ネイティブ HTML → ar5iv)にルーティングされます。デフォルトでは最新 バージョンを使用します。--versionでバージョンを指定できます。search/discover— Europe PMC、OpenAlex、arXiv を対象に、キーワード、タイトル、 アブストラクト、著者で検索できます。トピック/カテゴリ/日付による探索もできます。ingest— openRxiv の S3 バケットから、チャンク化されたコーパス(JSONL または Parquet)へ、 再開可能な増分一括取り込みを行います。サイドカーマニフェストも作成されます。- MCP サーバー — コーディングエージェント向けに、同じ機能をツールとして提供します。
- コンプライアンスを標準搭載 — エクスポート時のゲートにより、再配布できない著作物はリンク先を 示すスタブに切り替えます。不明なライセンスは再配布不可として扱います(フェイルセーフ)。
- 単一の JATS パーサーを Europe PMC 経由と S3 経由の両方で共有します。トークン数とセクションを 考慮したチャンク化を行い、決定的で冪等なチャンク ID を付与します。
インストール
pip install preprint-fulltext # CLI + Python library + MCP server
pip install "preprint-fulltext[parquet,openalex]" # + Parquet output, pyalex
MCP サーバーは組み込み済みです。追加インストールも、サードパーティの MCP フレームワークも
不要です。小規模で自己完結型の JSON-RPC 2.0 stdio サーバーなので、コア依存関係だけで
preprint-fulltext-mcp をすぐに使用できます。
Europe PMC/OpenAlex の適切な利用者向けプール用に連絡先メールアドレスを設定してください (推奨)。OpenAlex を使用する場合は、OpenAlex API キーも設定してください(2026-02-13 以降、 OpenAlex で必須です)。
export CONTACT_EMAIL="[email protected]"
export OPENALEX_API_KEY="..." # only needed for OpenAlex discover/search
クイックスタート(CLI)
# Structured full text for one preprint (Europe PMC → S3 router)
preprint-fulltext get 10.1101/2024.01.15.575000 --markdown
# Accepts a DOI, a doi.org URL, or a bioRxiv/medRxiv content URL
preprint-fulltext get https://www.biorxiv.org/content/10.64898/2026.06.13.731750v1.full --html --markdown
# Versions: the DOI resolves to the latest version by default; --version selects one
preprint-fulltext get 10.64898/2026.01.29.702557 --version 1 --source html --markdown
# arXiv: id, arxiv.org URL, or 10.48550/arXiv.* DOI — routed to arXiv LaTeXML full text
preprint-fulltext get arXiv:1706.03762 --markdown
preprint-fulltext get https://arxiv.org/abs/2401.10515 --markdown
# Search: keyword, title, or author (add --source arxiv to search arXiv)
preprint-fulltext search "cortical interneurons" -n 20
preprint-fulltext search "Fezf2" --field title
preprint-fulltext search "Min Dai" --field author
preprint-fulltext search "diffusion model" --field title --source arxiv
# Discover by topic + date window (OpenAlex)
preprint-fulltext discover --query "spatial transcriptomics" --since 2025-01 -n 100
# Bulk corpus from S3 (requester-pays; needs AWS credentials)
preprint-fulltext ingest corpus.jsonl --source s3 --server biorxiv --since 2025-06
# A free, no-AWS corpus of the open-access (CC) subset via Europe PMC
preprint-fulltext ingest corpus.jsonl --source europepmc --query "long covid"
get は FullText ドキュメント(JSON)または Markdown(--markdown)を出力します。
search/discover は、1 行につき 1 件の SearchHit をストリーム出力します(JSONL)。
ingest は、1 行につき 1 件の Chunk と、監査/再開用のサイドカーファイル
<out>_manifest.jsonl を書き出します。
典型的なワークフロー
1. 1 件の論文の方法/結果をテキストとして読む。
preprint-fulltext get 10.64898/2026.01.29.702557 --markdown > paper.md
# -> # Title / ## Abstract / ## Introduction / ## Methods / ## Results / ## Discussion
2. トピックに関する埋め込み対応コーパスを構築する(無料、AWS 不要)。
# CC/open-access subset via Europe PMC — one Chunk per JSONL line
preprint-fulltext ingest cortex.jsonl --source europepmc --query "cortical interneurons" -n 500
# cortex.jsonl -> {doi, version, chunk_id, section_kind, text, token_count, license, ...}
# cortex_manifest.jsonl -> one row per preprint (doi, version, license, n_chunks, status)
3. S3 から 1 か月分の完全なコーパスを構築する(リクエスター負担)。
export AWS_PROFILE=... # needs AWS credentials; ~$0.09/GB
preprint-fulltext ingest 2025-06.jsonl --source s3 --server both --since 2025-06 --format parquet
# resumable: rerun after an interruption and it skips finished preprints (no duplicates)
4. 著者またはタイトルで論文を探し、その後取得する。
preprint-fulltext search "Min Dai" --field author -n 20 > hits.jsonl
preprint-fulltext get "$(head -1 hits.jsonl | python -c 'import sys,json;print(json.load(sys.stdin)["doi"])')" --markdown
5. コーディングエージェントに文献へのアクセスを提供する — preprint-fulltext-mcp を実行し、
エージェントから接続します(skills/preprint-fulltext/SKILL.md を参照)。
Python
from preprint_fulltext.pipeline.router import Router
result = Router().get_fulltext("10.1101/2024.01.15.575000")
if result.fulltext:
for section in result.fulltext.sections:
print(section.kind, section.title)
from preprint_fulltext.core.chunk import chunk_fulltext
chunks = chunk_fulltext(result.fulltext) # embedding-ready Chunk records
MCP サーバー
コーディングエージェントにプレプリントへのライブアクセスを提供します。サーバーは stdio 経由で
4 つのツール — search_preprints、get_fulltext、get_metadata、resolve — を公開します。
(一括 ingest は長時間実行され、リクエスター負担のコストが発生するため、意図的にツールには
含めていません。)
mcp-name: io.github.genecell/preprint-fulltext
これはローカル stdio サーバーなので、Claude Code/Cursor/VS Code/Windsurf/ Zed/Codex/Cline で動作します。ただし、claude.ai のウェブアプリでは動作しません (そちらでは代わりに Skill を使用してください)。
推奨:uvx で実行(インストール不要)
uv を使うと、公開パッケージをオンデマンドで実行できます。pip install したり、PATH に保持したりする必要はありません。uv を一度インストールしてください。
curl -LsSf https://astral.sh/uv/install.sh | sh # macOS / Linux
# or: pipx install uv | pip install --user uv | brew install uv | winget install astral-sh.uv
起動コマンドは uvx --from preprint-fulltext preprint-fulltext-mcp です(実行コマンドがパッケージ名と異なるため、--from が必要です)。初回の起動時にパッケージがダウンロードされます(約 30 秒)。以降の起動ではキャッシュが使われます。
Claude Code — mcpServers キー
claude mcp add preprint-fulltext --scope user -- uvx --from preprint-fulltext preprint-fulltext-mcp
# uvx not on PATH? use its absolute path:
claude mcp add preprint-fulltext --scope user -- "$(which uvx)" --from preprint-fulltext preprint-fulltext-mcp
claude mcp get preprint-fulltext # verify → Status: ✔ Connected
または、~/.claude.json(ユーザー用)/プロジェクトの .mcp.json を編集してください。
{ "mcpServers": { "preprint-fulltext": {
"command": "uvx",
"args": ["--from", "preprint-fulltext", "preprint-fulltext-mcp"],
"env": { "CONTACT_EMAIL": "[email protected]" }
} } }
Cursor / Windsurf / Cline / Continue — mcpServers キー(同じ形式)
Cursor:~/.cursor/mcp.json(グローバル)または .cursor/mcp.json(プロジェクト)。Windsurf:
~/.codeium/windsurf/mcp_config.json。Cline:MCP サーバー → 設定。Continue:
~/.continue/config。
{ "mcpServers": { "preprint-fulltext": {
"command": "uvx",
"args": ["--from", "preprint-fulltext", "preprint-fulltext-mcp"],
"env": { "CONTACT_EMAIL": "[email protected]" }
} } }
VS Code(GitHub Copilot、エージェントモード)— servers + type キー
.vscode/mcp.json(ワークスペース)またはユーザーの settings.json の "mcp" 内に設定します。
{ "servers": { "preprint-fulltext": {
"type": "stdio",
"command": "uvx",
"args": ["--from", "preprint-fulltext", "preprint-fulltext-mcp"]
} } }
または、単発で実行します:code --add-mcp '{"name":"preprint-fulltext","command":"uvx","args":["--from","preprint-fulltext","preprint-fulltext-mcp"]}'
Zed — context_servers キー(形式が異なります)
~/.config/zed/settings.json:
{ "context_servers": { "preprint-fulltext": {
"source": "custom",
"command": "uvx",
"args": ["--from", "preprint-fulltext", "preprint-fulltext-mcp"],
"env": {}
} } }
Codex(OpenAI Codex CLI)— JSON ではなく TOML
~/.codex/config.toml:
[mcp_servers.preprint-fulltext]
command = "uvx"
args = ["--from", "preprint-fulltext", "preprint-fulltext-mcp"]
# env = { CONTACT_EMAIL = "[email protected]" }
または:codex mcp add preprint-fulltext -- uvx --from preprint-fulltext preprint-fulltext-mcp
代替方法:pip でインストール
すでに pip install preprint-fulltext を実行している場合、サーバーは PATH 上に preprint-fulltext-mcp として配置されています。上記のいずれかの設定で "command": "preprint-fulltext-mcp"(args は不要)を使用してください。
環境変数:
CONTACT_EMAIL(Europe PMC / OpenAlex の優先利用プール用)とOPENALEX_API_KEY(OpenAlex の検索/発見にのみ使用)は、設定のenvブロックで指定するか、 クライアントを起動する前にシェルで設定してください。エージェント向けツールの詳細については、SKILL.mdを参照してください。
データソースとルーティング
| 動詞 | デフォルトソース | 備考 |
|---|---|---|
get | 自動(Europe PMC → S3、または arXiv) | bioRxiv/medRxiv:EPMC(CC/OA の一部)→ S3(完全版、AWS 認証情報が必要)、--html を指定するとフォールバック。arXiv ID → arXiv LaTeXML の全文(ネイティブ HTML → ar5iv)。 |
search | Europe PMC | 関連度によるランキングを使用します。--source openalex|arxiv。 |
discover | OpenAlex | 2 億 5,000 万件以上の研究成果、OA の所在、トピック/日付。--source arxiv。 |
ingest | S3(または Europe PMC) | S3 = 完全なコーパス、Europe PMC = 無料の CC 対象範囲。arXiv の一括取得は対象外です(arXiv 独自の S3 LaTeX バケットを使用してください)。 |
設定
環境変数(PREPRINT_FULLTEXT_ プレフィックス付き、または以下のプレフィックスなしの名前)、.env ファイル、または preprint-fulltext.toml で設定できます。
| 設定 | デフォルト | 用途 |
|---|---|---|
CONTACT_EMAIL | – | Europe PMC / OpenAlex の優先利用プールで使用する識別情報 |
OPENALEX_API_KEY | – | 2026-02-13 以降、OpenAlex で必須 |
AWS_REGION | us-east-1 | リクエスター支払い方式の openRxiv バケットのリージョン |
PREPRINT_FULLTEXT_CACHE_DIR | ~/.cache/preprint-fulltext | コンテンツアドレス方式のキャッシュ |
PREPRINT_FULLTEXT_CHUNK_TOKENS | 512 | チャンクあたりの最大トークン数 |
PREPRINT_FULLTEXT_CHUNK_OVERLAP | 64 | セクション内で重複させるトークン数 |
コンプライアンス
コーパスは、openRxiv TDM の利用規約に基づく、運営者自身のテキスト/データマイニングを目的としています。
preprint-fulltext は、プレプリントの全文を再ホストまたは再配布しません。各
FullText/Chunk にはライセンスが付与されており、エクスポートゲートには次の 2 つのモードがあります。
- analysis(デフォルト):ご自身のマイニング用に、そのまま通過させます。
- redistribution(
--redistribution):ライセンスで再配布が許可されている文献は変更せずに通過させ、それ以外はリンクバック用スタブ(メタデータ+URL、本文テキストなし)に置き換えます。不明または曖昧なライセンスは、再配布不可として扱います。
開発
pip install -e ".[dev]"
pytest # offline suite (HTTP mocked with respx, S3 with moto)
ruff check preprint_fulltext/
ライブテストはオプトイン方式です(実際の公開 API、すなわち Europe PMC、arXiv、bioRxiv/medRxiv JSON API にアクセスします)。
PREPRINT_FULLTEXT_LIVE=1 [email protected] pytest -m live # EPMC / arXiv / medRxiv / versions
PREPRINT_FULLTEXT_LIVE_S3=1 pytest -m live_s3 # requester-pays S3 (small; needs AWS creds)
同じライブスモークテストは、必要に応じて CI(Actions → live-smoke)で実行されるほか、上流 API の変更を検知するため毎週実行されます。デフォルトの test ワークフローは完全にオフラインのままです。
エージェント向けドキュメント(AGENTS.md、llms.txt、.cursor/rules/…、.github/copilot-instructions.md)は、skills/preprint-fulltext/SKILL.md から生成されます。
python scripts/build_agent_docs.py
お問い合わせ
Min Dai — [email protected](Gord Fishell Lab、Harvard Medical School / Broad Institute)。Issue とプルリクエストは https://github.com/genecell/preprint-fulltext で歓迎します。
ライセンス
BSD-3-Clause(LICENSE を参照)。これはソフトウェアのみを対象とし、取得されたプレプリントのコンテンツは、引き続き著者が選択したライセンスの下にあります。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。