mcpField
P
preprint-fulltext

preprint-fulltext

ローカル
github.com科学・教育215 週間前に更新

preprint-fulltext について

preprint-fulltextは、CLI、Pythonライブラリ、MCPサーバーを通じてbioRxiv、medRxiv、arXivの全文を構造化して取得します。研究者やコーディングエージェントが論文を検索し、節を抽出したり、ライセンスに配慮したコーパスを作成したりできます。

主な機能

  1. 01DOIによる構造化全文の取得
  2. 02プレプリントの検索と発見
  3. 03節別JSONL・Parquetチャンクの出力
  4. 04一括コーパス取り込みの再開
  5. 05再配布ライセンスの確認
  6. 06複数ソースで共通のパーサー

活用シーン

  1. 01分析用に方法と結果を抽出する
  2. 02論文の結果に基づいて主張を検証する
  3. 03RAG用のプレプリントコーパスを作る
  4. 04複数論文の手順を比較する

MCP 対応

stdio MCPサーバーは、search_preprints、get_fulltext、get_metadata、resolveをMCPクライアントに提供します。一括取り込みはCLIで利用でき、MCPツールには含まれません。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"genecell-preprint-fulltext": {
"command": "uvx",
"args": [
"preprint-fulltext"
],
"env": {
"CONTACT_EMAIL": "<CONTACT_EMAIL>",
"OPENALEX_API_KEY": "<OPENALEX_API_KEY>"
}
}
}
}
起動コマンドuvx preprint-fulltext
設定が必要な環境変数
CONTACT_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 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
pypipreprint-fulltext0.1.0

ツール

4

掲載時のツール一覧 · 2 週間前に更新

パラメーター型必須説明
fieldenumいいえfulltext | title | abstract | author
limitintegerいいえ
querystringはい
sourceenumいいえeuropepmc | openalex | arxiv

詳細

preprint-fulltext

English | 简体中文 | 繁體中文 | 한국어 | Deutsch | Español | Français | Italiano | 日本語

PyPI Python License: BSD-3-Clause CI

bioRxiv/medRxiv/arXiv のプレプリントの全文を、CLI、Python ライブラリ、または MCP サーバーから、クリーンで構造化された、埋め込み処理にすぐ使えるデータとして取得できます。

preprint-fulltext は、DOI(または検索クエリ)を、構造化されたセクション(要旨/序論/方法/結果/考察)、単一の JSON/Markdown ドキュメント、あるいは埋め込みと RAG にすぐ使えるチャンク分割済みの JSONL/Parquet コーパスに変換します。openRxiv のテキスト・データマイニング(TDM)コンプライアンスは、ユーザー任せにせず、構造的に徹底されます。

「埋め込み処理にすぐ使える」とは、出力がクリーンで、セクションを認識し、トークン数に上限を設けたチャンクであることを意味します。お使いの埋め込みモデルにすぐ投入できます。埋め込みの計算は任意の最後のステップであり、ユーザー自身が行います。このツールには埋め込みモデルは含まれていません。

目次


理由

プレプリントの全文は、互換性のない複数の経路に分散しています。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)。
searchEurope PMC関連度によるランキングを使用します。--source openalex|arxiv。
discoverOpenAlex2 億 5,000 万件以上の研究成果、OA の所在、トピック/日付。--source arxiv。
ingestS3(または 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_REGIONus-east-1リクエスター支払い方式の openRxiv バケットのリージョン
PREPRINT_FULLTEXT_CACHE_DIR~/.cache/preprint-fulltextコンテンツアドレス方式のキャッシュ
PREPRINT_FULLTEXT_CHUNK_TOKENS512チャンクあたりの最大トークン数
PREPRINT_FULLTEXT_CHUNK_OVERLAP64セクション内で重複させるトークン数

コンプライアンス

コーパスは、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 を参照)。これはソフトウェアのみを対象とし、取得されたプレプリントのコンテンツは、引き続き著者が選択したライセンスの下にあります。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。