arxiv-mcp について
WebFetch と Exa を使って arXiv 論文を検索する研究スキルです。学術調査や技術文献の検索向けに、キーワード、著者、カテゴリ、論文 ID での検索とメタデータ取得を行います。
主な機能
- 01キーワード、著者、カテゴリで検索
- 02論文 ID から詳細を取得
- 03要旨と論文メタデータを抽出
- 04Exa の意味検索と WebFetch を併用
- 05検索結果を 20 件に制限
活用シーン
- 01文献レビュー用の論文を探す
- 02特定の研究者の論文を検索
- 03分野の最新研究を見つける
- 04論文引用用のメタデータを取得
MCP 対応
このスキルは MCP サーバーを提供せず、インストールも不要です。既存の WebFetch と Exa ツールを使って arXiv にアクセスします。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ oimiragieo/ agent-studio --skill arxiv-mcpインストール後、Claude Code で/arxiv-mcpを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
commands/arxiv-mcp.mdhooks/post-execute.cjspre-execute.cjsreferences/original-README.mdresearch-requirements.mdrules/arxiv-mcp.mdschemas/input.schema.jsonoutput.schema.jsonscripts/main.cjstemplates/implementation-template.md詳細
モード:認知/プロンプト駆動型 — 単独で実行するユーティリティスクリプトはありません。エージェントのコンテキストを通じて使用します。
arXiv 検索スキル
arXiv 検索スキル — 既存のツール(WebFetch、Exa)を使用して、arXiv.org から学術論文を検索・取得します。MCP サーバーのインストールは不要です。✅ インストール不要
このスキルは、既存のツールを使用して arXiv にアクセスします。
- WebFetch — arXiv API に直接アクセス
- Exa — arXiv に絞り込んだセマンティック検索
すぐに使用できます。MCP サーバーも再起動も不要です。
- キーワード、著者、カテゴリ、日付範囲で学術論文を検索します - 詳細な論文メタデータ(タイトル、著者、要旨、カテゴリ、PDF リンク)を取得します - arXiv ID を指定して論文を取得します - カテゴリやキーワードをもとに関連論文を探します - arXiv のカテゴリ(cs.AI、cs.LG、cs.CV、math.*、physics.* など)で絞り込みます - API キーは不要です。公開 arXiv API を使用します結果の上限(メモリ保護)
arxiv-mcp は学術論文を返します。メモリの枯渇を防ぐため、次の上限を設けています。
- max_results:20(厳守)
- 各論文のメタデータは約 300 バイトです
- 20 件 × 300 バイト = メタデータ約 6 KB
- 論文を取得すると 1 件あたり 100 KB を超える場合があります。全文は取得しないでください
上限を設ける理由
- 以前の上限:100 件 → メタデータ 30 KB 以上 → コンテキストが過剰に膨張
- 新しい上限:20 件 → メタデータ 6 KB → メモリを安全に保護
- 目的の論文を見つけるには、通常 20 件で十分です
方法 1:arXiv API を使った WebFetch(特定のクエリにおすすめ)
arXiv API は http://export.arxiv.org/api/query から公開されています。
おすすめのパターン
// ✓ GOOD: Limit results to 20
WebFetch({
url: 'http://export.arxiv.org/api/query?search_query=all:transformer+attention&max_results=20&sortBy=relevance',
prompt: 'Extract paper titles, authors, abstracts, arXiv IDs, and PDF links from these results',
});
// ✓ GOOD: Use specific filters to reduce result set
WebFetch({
url: 'http://export.arxiv.org/api/query?search_query=all:transformer+attention+2025&max_results=20&sortBy=submittedDate',
prompt: 'Extract recent papers on transformer attention',
});
// ✗ BAD: Old behavior - unlimited or >20 results
WebFetch({
url: 'http://export.arxiv.org/api/query?search_query=all:neural+networks',
// Too broad - will get 100s of results
});
// ✗ BAD: Exceeds memory limit
WebFetch({
url: 'http://export.arxiv.org/api/query?search_query=all:deep+learning&max_results=100',
// Over limit - memory risk
});
キーワードで検索
WebFetch({
url: 'http://export.arxiv.org/api/query?search_query=all:transformer+attention&max_results=20&sortBy=relevance',
prompt: 'Extract paper titles, authors, abstracts, arXiv IDs, and PDF links from these results',
});
著者で検索
WebFetch({
url: 'http://export.arxiv.org/api/query?search_query=au:LeCun&max_results=10&sortBy=submittedDate',
prompt: 'Extract paper titles, authors, abstracts, and arXiv IDs',
});
カテゴリで検索
WebFetch({
url: 'http://export.arxiv.org/api/query?search_query=cat:cs.LG&max_results=15&sortBy=submittedDate',
prompt: 'Extract paper titles, authors, abstracts, categories, and arXiv IDs',
});
ID を指定して論文を取得
WebFetch({
url: 'http://export.arxiv.org/api/query?id_list=2301.07041',
prompt:
'Extract full details: title, all authors, abstract, categories, published date, PDF link',
});
API クエリパラメーター
| パラメーター | 説明 | 例 |
|---|---|---|
search_query | フィールドの接頭辞を付けた検索語 | all:transformer、au:LeCun、ti:attention |
id_list | カンマ区切りの arXiv ID | 2301.07041,2302.13971 |
max_results | 結果数(デフォルト 10、最大 100) | max_results=20 |
start | ページネーションの開始位置 | start=10 |
sortBy | 並べ替え順:relevance、lastUpdatedDate、submittedDate | sortBy=submittedDate |
sortOrder | ascending または descending | sortOrder=descending |
search_query のフィールド接頭辞
| 接頭辞 | フィールド | 例 |
|---|---|---|
all: | すべてのフィールド | all:machine+learning |
ti: | タイトル | ti:transformer |
au: | 著者 | au:Vaswani |
abs: | 要旨 | abs:attention+mechanism |
cat: | カテゴリ | cat:cs.LG |
co: | コメント | co:accepted |
ブール演算子
AND、OR、ANDNOT で語句を組み合わせます。
search_query=ti:transformer+AND+abs:attention
search_query=au:LeCun+OR+au:Bengio
search_query=cat:cs.LG+ANDNOT+ti:survey
arxiv-mcp を使わない場合
- 一般的なウェブ調査 → 代わりに WebSearch/WebFetch を使用します
- 実装例 → コードベースで
pnpm search:codeまたは ripgrep スキルを使用します(代替手段として Grep/Glob) - 製品調査 → ニュースフィルターを使って WebSearch を実行します
- コミュニティでの議論 → フォーラムや Stack Overflow を WebSearch で検索します
arxiv-mcp が適している用途:
- 特定のトピックに関する学術論文を探す
- 理論的な基礎を理解する
- ドキュメントで研究を引用する
- 文献を手早く調査する(最大 20 件)
方法 2:Exa 検索(セマンティック検索や自然言語クエリに最適)
arXiv に絞り込んだ、より自然な言葉でのクエリには Exa を使用します。
セマンティック検索
mcp__Exa__web_search_exa({
query: 'site:arxiv.org transformer architecture attention mechanism deep learning',
numResults: 10,
});
分野の最新論文
mcp__Exa__web_search_exa({
query: 'site:arxiv.org large language model scaling laws 2024',
numResults: 15,
});
著者に焦点を当てた検索
mcp__Exa__web_search_exa({
query: 'site:arxiv.org author:"Yann LeCun" deep learning',
numResults: 10,
});
arXiv の主なカテゴリー
| カテゴリー | 分野 |
|---|---|
| cs.AI | 人工知能 |
| cs.LG | 機械学習 |
| cs.CL | 計算と言語(NLP) |
| cs.CV | コンピュータービジョン |
| cs.SE | ソフトウェア工学 |
| cs.CR | 暗号とセキュリティ |
| stat.ML | 機械学習(統計学) |
| math.* | 数学(すべてのサブカテゴリー) |
| physics.* | 物理学(すべてのサブカテゴリー) |
| q-bio.* | 数理生物学 |
| econ.* | 経済学 |
ワークフロー:研究プロセス全体
ステップ 1:初期検索
// Start with broad Exa search for semantic matching
mcp__Exa__web_search_exa({
query: 'site:arxiv.org transformer attention mechanism neural networks',
numResults: 10,
});
ステップ 2:特定の論文を取得
// Get details for interesting papers by ID
WebFetch({
url: 'http://export.arxiv.org/api/query?id_list=2301.07041,2302.13971',
prompt: 'Extract full metadata for each paper: title, authors, abstract, categories, PDF URL',
});
ステップ 3:関連研究を探す
// Search by category of interesting paper
WebFetch({
url: 'http://export.arxiv.org/api/query?search_query=cat:cs.LG+AND+ti:attention&max_results=10&sortBy=submittedDate',
prompt: 'Find related papers, extract titles and abstracts',
});
ステップ 4:最新論文を取得
// Latest papers in the field
WebFetch({
url: 'http://export.arxiv.org/api/query?search_query=cat:cs.LG&max_results=20&sortBy=submittedDate&sortOrder=descending',
prompt: 'Extract the 20 most recent machine learning papers',
});
</execution_process>
<best_practices>
- 発見には Exa を使用する:自然言語のクエリで、意味的に関連する論文を見つけられます
- 正確な取得には WebFetch を使用する:特定の ID、カテゴリー、API クエリに適しています
- 両方の方法を組み合わせる:Exa で発見し、WebFetch で詳細を調べます
- 具体的なクエリを使う:「transformer attention mechanism」>「machine learning」
- 複数のカテゴリーを確認する:論文は cs.AI + cs.LG + cs.CL にまたがることがよくあります
- 最新の研究には日付順で並べ替える:
sortBy=submittedDate&sortOrder=descending
</best_practices>
**例 1:Transformer に関する論文を検索する**:WebFetch({
url: 'http://export.arxiv.org/api/query?search_query=ti:transformer+AND+abs:attention&max_results=10&sortBy=relevance',
prompt: 'Extract paper titles, authors, abstracts, and arXiv IDs',
});
例 2:研究者の論文を探す:
WebFetch({
url: 'http://export.arxiv.org/api/query?search_query=au:Vaswani&max_results=15',
prompt: 'List all papers by this author with titles and dates',
});
例 3:最新の ML 論文を取得する:
WebFetch({
url: 'http://export.arxiv.org/api/query?search_query=cat:cs.LG&max_results=20&sortBy=submittedDate&sortOrder=descending',
prompt: 'Extract the 20 most recent machine learning papers with titles and abstracts',
});
例 4:Exa でセマンティック検索する:
mcp__Exa__web_search_exa({
query: 'site:arxiv.org multimodal large language models vision 2024',
numResults: 10,
});
例 5:特定の論文の詳細を取得する:
WebFetch({
url: 'http://export.arxiv.org/api/query?id_list=1706.03762',
prompt: "Extract complete details for the 'Attention Is All You Need' paper",
});
</usage_example>
エージェントとの統合
このスキルは、次のエージェントに自動的に割り当てられます。
- researcher - 学術研究、文献レビュー
- scientific-research-expert - 詳細な科学的分析
- developer - 実装に必要な技術論文の検索
厳守すべきルール
- 必ず max_results=20 を適用する — 結果数に上限を設けないクエリや 20 件を超えるクエリは決して許可しないでください。100 件以上の論文によるコンテキストの肥大化は、エージェントのパイプラインを停止させることが知られている失敗要因です。
- 文献レビュー中に論文の PDF 全文を取得しない — メタデータと要旨のみを抽出してください。論文全文は 1 件あたり 100KB 以上あり、数分でコンテキストの上限を使い果たします。
- 意味的な発見には必ず Exa を、正確な取得には WebFetch を使用する — Exa は意味的に関連する論文を見つけ、WebFetch は特定の ID やカテゴリーのフィードを取得します。両方を順番に使用し、代替可能なものとして扱わないでください。
- 分野のプレフィックスなしで広範なクエリを使わない —
search_query=neural+networksでは数千件の結果が返されます。クエリの対象を絞るため、必ずti:、au:、cat:、またはabs:のプレフィックスを指定してください。 - 論文を参照するときは必ず arXiv ID(例:2301.07041)を引用する — タイトルだけでは曖昧で、変更される可能性があります。ID は安定しており、機械可読で、すぐに取得できるようにします。
アンチパターン
| アンチパターン | 失敗する理由 | 正しい方法 |
|---|---|---|
max_results=100 を使う、または上限を設定しない | コンテキストが爆発します。論文100件 × 300バイト = メタデータだけで30KB以上です | 常に max_results=20 を設定します(上限) |
| 論文のPDF全体を取得する | 1件の論文だけで100KB以上になる場合があり、コンテキストの予算を圧迫します | APIで概要とメタデータのみを抽出します |
| フィールドの接頭辞を付けずに広範なクエリを使う | すべての分野から無関係な結果が返されます | ti:, au:, cat:, abs: の接頭辞を使います |
| 検索にWebFetchだけを使う | 完全一致する語句がなく、意味的に関連する論文を見落とします | まずExaを使って意味検索を行います |
| arXiv IDではなく論文タイトルを引用する | タイトルは曖昧だったり、重複していたりする場合があります | 必ずarXiv ID(例:1706.03762)を含めます |
メモリプロトコル(必須)
開始前:
cat .claude/context/memory/learnings.md
完了後:
- 新しいパターン →
.claude/context/memory/learnings.md - 問題を発見 →
.claude/context/memory/issues.md - 決定事項 →
.claude/context/memory/decisions.md
中断を想定してください。コンテキストはリセットされる場合があります。メモリに記録されていなければ、実行されていないものとします。