mcpField
S
scholar-search

scholar-search

github.com/dsebastien生産性17134 回インストール28 週間前に更新
リポジトリ

scholar-search について

PythonスクリプトでOpenAlexの学術文献を検索するリサーチスキルです。論文や会議録、ジャーナル記事の検索に使え、引用数、掲載先、再構成された要旨、外部IDを含む結果を年や掲載先で絞り込めます。

主な機能

  1. 01OpenAlexの学術文献を検索
  2. 02構造化JSONと再構成要旨を出力
  3. 03年、掲載先、概念で絞り込み
  4. 04引用数の下限とオープンアクセスで絞り込み

活用シーン

  1. 01テーマに関する学術論文を検索
  2. 02新しい研究や被引用数の多い研究を選別
  3. 03会議やジャーナル別に文献を検索
  4. 04文献レビュー候補を収集

インストール

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

$npx skills add https://github.com/dsebastien/ai-skill-scholar --skill scholar-search

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

同梱ファイルscripts/scholar_search.py

詳細

Scholar Search

250M 件以上の学術論文を収録するオープンカタログ、OpenAlex を検索して、主要なあらゆる出版先(arXiv だけではありません)に掲載された論文を探します。引用数、出版先、再構成された要旨、arXiv/DOI/PubMed へのリンクを示す外部 ID などを含む、構造化された JSON を返します。

OpenAlex を選ぶ理由(Semantic Scholar ではなく)

どちらも、おおむね同じデータをカバーしています。OpenAlex が優れている点は次のとおりです。

  • API キーが不要です。 無料の公開エンドポイントをそのまま利用できます。
  • レート制限に余裕があります。 匿名で 10 req/sec、ポライトプールではさらに高い制限が適用されます。
  • 大規模に実用的に利用できます。 Semantic Scholar の公開プランは共有されており、429 エラーが頻繁に発生します。

arxiv-search より優れている点

arxiv-searchscholar-search
プレプリントはいはい
学会(ICLR、NeurIPS、ACL など)いいえはい
学術誌いいえはい
書籍、章いいえはい
引用数いいえはい
出版先による絞り込みいいえはい
概念/トピックのタグいいえはい

幅広いレビューを行う場合は、literature-review 経由で両方を併用してください。

使い方

# Basic query
python3 scripts/scholar_search.py "mechanistic interpretability" --limit 25

# Year + venue filter
python3 scripts/scholar_search.py "sparse autoencoders" \
    --year 2024-2026 --venue "ICLR" --limit 30

# Citation floor (quality filter)
python3 scripts/scholar_search.py "scaling laws" --min-citations 50 --limit 20

# Open-access only (when you want readable papers)
python3 scripts/scholar_search.py "mixture of experts" --open-access --limit 20

# Concept filter (uses OpenAlex's topic taxonomy)
python3 scripts/scholar_search.py "alignment" \
    --concepts "Machine learning" --limit 20

フラグ:

  • --limit N — 結果の最大数(1~200、デフォルトは 25)
  • --year YYYY または YYYY-YYYY — 出版年で絞り込み
  • --venue NAME — 出版先名の部分一致(大文字・小文字を区別しません)
  • --concepts NAME — OpenAlex の概念(例:Machine learning、Computer vision)
  • --min-citations N — 引用数の最低値
  • --open-access — 公開 PDF がある論文のみ

出力 JSON の形式(結果ごと):

{
  "paper_id": "W4395065622",
  "openalex_url": "https://openalex.org/W4395065622",
  "title": "...",
  "authors": ["Alice", "Bob"],
  "year": 2024,
  "venue": "ICLR 2024",
  "work_type": "article",
  "citation_count": 150,
  "reference_count": 42,
  "abstract": "...",
  "concepts": ["Interpretability", "Machine learning"],
  "arxiv_id": "2404.14082",
  "doi": "10.48550/arxiv.2404.14082",
  "is_open_access": true,
  "open_access_pdf": "https://arxiv.org/pdf/2404.14082",
  "landing_url": "http://arxiv.org/abs/2404.14082"
}

ポライトプール(任意)

頻繁に利用する場合は、メールアドレスを設定して OpenAlex のポライトプールに参加してください。

export OPENALEX_EMAIL="[email protected]"

優先ルーティングと、実質的に高いレート制限を利用できます。登録は不要です。トラフィックに問題が発生した場合に連絡できるよう、有効なメールアドレスを設定してください。

ワークフロー

1. 意図を解析する
  • 「X に関する論文を探して」→ 基本的なクエリ
  • 「X に関する引用数の多い論文」→ --min-citations 50+ を追加
  • 「X に関する最近の論文」→ --year 2024-2026
  • 「出版先 Y の論文」→ --venue "ICLR"
  • 「オープンアクセスのみ」→ --open-access
2. 検索を実行する

デフォルトの --limit は 25 です。幅広いレビューでは 50~100 に増やしてください。OpenAlex は高速なので、より多くの結果を取得しても問題ありません。

3. 結果を提示する

コンパクトな表に、引用数 | 年 | 出版先 | 著者 | タイトル | 要旨の最初の一文をまとめます。ユーザーが新しさを重視している場合を除き、引用数の多い順に並べてください。

OpenAlex には Semantic Scholar にあったような TLDR フィールドがありません。代わりに、スクリーニングを手早く行えるよう、再構成された要旨の最初の約 50 語を使用してください。

4. 次のステップを案内する
  • 「論文 X を分析して」→ arxiv-analyze に引き継ぐ(arxiv_id がある場合)、または open_access_pdf を直接取得する
  • 「これを引用しているのは?」/「これは何を引用している?」→ scholar-citations に引き継ぐ
  • 「文献レビュー」→ literature-review に引き継ぐ

トークン効率

  • 25 件の結果で約 8K~15K トークンです(大半を要旨が占めます)。スクリーニングのみを行う場合は、将来追加されるフラグで --select を上書きしてください。
  • OpenAlex の要旨はサーバー側で「転置インデックス」形式になっています。このスクリプトは処理の過程で通常の文章に再構成します。

レート制限

  • 匿名: 共有プール全体で 10 req/sec、1 日あたり 100k
  • ポライトプール(OPENALEX_EMAIL を設定):制限は同じですが、優先度が高く、スロットリングが発生しにくくなります

スクリプトはプロセスごとに 5 req/sec で自動的にリクエストを制限します(~/.cache/ai-skill-scholar/ 内のクールダウンファイルを介して共有)。

厳守事項

  • キーの詮索は禁止: API キーを要求しないでください。OpenAlex に API キーはありません。OPENALEX_EMAIL は任意であり、設定方法も記載されています。
  • 過剰なリクエストは禁止: 5 req/sec の制限は不可欠です。削除しないでください。
  • 要旨がない場合があります: OpenAlex に要旨が常にあるとは限りません。捏造せず、空として報告してください。

要件

  • Python 3.11 以上(標準ライブラリのみ)
  • api.openalex.org へのインターネット接続
  • 任意:ポライトプールを利用する場合は OPENALEX_EMAIL 環境変数

コメント