mcpField
L
literature-search-arxiv

literature-search-arxiv

github.com/google-deepmind生産性3.4k3.4k 回インストール5 日前に更新
リポジトリ

literature-search-arxiv について

arXivを検索し、論文のメタデータ、全文、LaTeXソースを取得するコマンドラインスキルです。API利用規則に沿った研究や論文取得に向いています。

主な機能

  1. 01arXivクエリによる論文検索
  2. 02論文メタデータの取得
  3. 03PDFまたはHTMLのダウンロード
  4. 04LaTeXソースのダウンロード
  5. 05付属スクリプトによるリクエスト制限

活用シーン

  1. 01著者名やタイトルで論文を検索
  2. 02全文取得前に要約を確認
  3. 03論文をローカルに保存して閲覧
  4. 04入手可能なLaTeXソースを取得

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/google-deepmind/science-skills --skill literature-search-arxiv

インストール後、Claude Code で/literature-search-arxivを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
citation.bib
query_syntax.md
scripts/
download_paper_source.py
download_paper.py
search_arxiv.py

詳細

arXiv の検索と取得

前提条件

  1. uv:uv のスキルを読み、セットアップ手順に従って、uv がインストールされ、PATH に設定されていることを確認してください。
  2. ユーザーへの通知:.licenses/literature_search_arxiv_LICENSE.txt がワークスペースのルートディレクトリにまだ存在しない場合は、(1)https://info.arxiv.org/help/api/index.html の利用規約を確認し、このスキルで取得した論文のライセンスに制限がないか必ず確認するよう、ユーザーに目立つ形で通知してください。続いて、(2)通知文とタイムスタンプを記録したファイルを作成してください。

基本ルール

  • 利用規約:arXiv の利用規約を必ず遵守してください。
    • リクエストは 3 秒ごとに最大 1 回です。
    • 提供されているユーティリティスクリプトがレート制限を自動的に処理します。独自の curl/python リクエストを書くのではなく、必ずこれらのスクリプトを使用してください。
  • このスキルを使用した場合は、その旨を出力に記載し、出力の作成に使用した論文の URL をすべて列挙してください。

ユーティリティスクリプト

1. メタデータの検索と抽出

arXiv を検索し、一致する論文を整形済み JSON 配列として返します。

uv run scripts/search_arxiv.py --query "au:einstein AND ti:relativity" \
  --max_results 5 2>/dev/null > /tmp/arxiv_search_results.json

重要:このツールは大量の JSON 結果を標準出力に出力します。100 件以上の結果を要求すると、コンテキスト長を超えるほど膨大な JSON が生成される可能性があります。--max_results を制限する(例:5~10 件)か、--start を使用して適切にページ分割してください。必ず出力をファイルにリダイレクトし、別途解析してください。そうしないと、ターミナルの出力が途中で切り詰められます。

返されるメタデータ: JSON の結果には、id、title、summary、published、authors、pdf_url、primary_category、doi、journal_ref、comment が含まれます。 注:doi フィールドに含まれるのは、論文に外部 DOI がある場合の DOI 情報のみです。arXiv が発行した DOI しか存在しない場合、この DOI は返されません。

オプション:

  • --query:検索文字列です。高度な構文については、references/query_syntax.md を参照してください。
  • --id_list:直接取得する arXiv ID のカンマ区切りリストです(例:1706.03762v5)。
  • --start:ページネーションの開始位置(デフォルトは 0)です。
  • --max_results:返す結果の数(デフォルトは 10)です。
  • --sort_by:relevance、lastUpdatedDate、または submittedDate です。(最新の論文を取得するには、--sort_by submittedDate --sort_order descending を使用してください)。
  • --sort_order:ascending または descending です。

2. 論文のダウンロード(PDF または HTML)

論文の全文をローカルのワークスペースにダウンロードして閲覧します。

uv run scripts/download_paper.py --id 1706.03762 --format pdf --output attention.pdf

オプション:

  • --id:arXiv ID です(例:1706.03762 または 1706.03762v5)。
  • --format:pdf または html です。注:HTML は比較的新しい論文でのみ利用できます。
  • --output:ダウンロードした文書を保存するファイルパスです。

重要:論文をダウンロードする際は、他のファイルを上書きせず、既存のディレクトリ構成を乱さない場所にダウンロードしてください。

3. 論文のソースのダウンロード(tar.gz)

論文の LaTeX ソースファイルをローカルのワークスペースにダウンロードします。ソースを入手できない論文もあります。

uv run scripts/download_paper_source.py --id 2010.11645 --output source.tar.gz

オプション:

  • --id:arXiv ID です(例:2010.11645)。
  • --output:ダウンロードした tar.gz ファイルを保存するファイルパスです。

注意:セキュリティ上の問題を避け、ファイルシステムを散らかさないよう、ダウンロードしたファイルを untar する際は十分に注意してください。アーカイブには、多数のファイルや予期しないディレクトリ構成が含まれている場合があります。

安全な展開の要件:作業ディレクトリに直接展開してはいけません。必ず専用の新しいディレクトリに展開してください:bash mkdir paper_source && tar -xzf source.tar.gz -C paper_source

参考資料

  • 高度なクエリ構文:プレフィックス(au、ti、abs)、ブール演算子、日付フィルタリングについては、references/query_syntax.md を参照してください。

ワークフロー

  1. search_arxiv.py を使用して論文を検索します。JSON の要約を確認します。
  2. 全文が必要な場合は、download_paper.py を使用して PDF または HTML を取得します。
  3. PDF をダウンロードした場合は、PDF が空でないこと、破損していないことを確認します。
  4. 標準のファイル読み取りツールを使用して、ダウンロードしたファイルを読み取ります。

コメント