Arxiv Mcp Server について
arXiv MCP Server は、arXiv.org の論文を AI アシスタントから検索、分析、エクスポートするための MCP サーバーです。研究者や文献調査を行う人を対象とし、引用分析、トレンド統計、複数形式の出力に対応します。
主な機能
- 01キーワード、著者、カテゴリによる論文検索
- 02論文の詳細情報と整形された要約
- 03推定引用指標と影響度分析
- 04論文数、著者、キーワードのトレンド統計
- 05BibTeX、JSON、CSV、Markdown へのエクスポート
活用シーン
- 01AI アシスタントによるテーマや著者別の最新論文検索
- 02執筆用に参考文献を BibTeX で一括出力
- 03arXiv カテゴリ内の研究トピックの推移把握
MCP 対応
本プロジェクトは MCP サーバーであり、arXiv 論文データにアクセスするための search_arxiv、get_paper、analyze_trends、export_papers などのツールを MCP クライアントに公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
arXiv MCP サーバー クライアント
arXiv.org と連携するための包括的な Model Context Protocol(MCP)実装です。AI アシスタントが学術論文をシームレスに検索、取得、分析、エクスポートできます。
🚀 特長
コア機能
- 論文検索:キーワード、著者、タイトル、カテゴリを使用した高度な検索
- 論文取得:特定の arXiv 論文の詳細なメタデータを取得
- スマート要約:重要な情報を含む、形式を整えた論文の要約を生成
高度なツール
- 著者検索:特定の研究者によるすべての論文を検索
- カテゴリの閲覧:特定の arXiv カテゴリ(cs.AI、cs.LG など)の論文を閲覧
- 最近の論文:期間をカスタマイズして最新の出版物を取得
- 論文の比較:複数の論文を並べて分析
- 関連論文:インテリジェントなマッチングにより、指定した研究に関連する論文を発見
- 引用分析:引用指標の推定とインパクト分析
- トレンド分析:出版数、主要な著者、キーワードの頻度を用いた研究トレンド分析
- 複数形式へのエクスポート:BibTeX、JSON、CSV、Markdown 形式で論文をエクスポート
📦 インストール
Poetry を使用(推奨)
# Clone the repository
git clone https://github.com/yourusername/arxiv-mcp-client.git
cd arxiv-mcp-client
# Install dependencies
poetry install
# Activate virtual environment
poetry shell
pip を使用
# Install dependencies
pip install mcp httpx
# Run the client
python arxiv_mcp_client.py
🛠️ 使い方
基本設定
import asyncio
from arxiv_mcp_client import ArxivMCPClient
async def main():
# Initialize client
client = ArxivMCPClient()
# Connect to MCP server
await client.connect("arxiv_mcp_server.py")
# Your code here...
# Close connection
await client.close()
asyncio.run(main())
検索例
# General search
results = await client.search_papers("transformer neural networks", max_results=10)
# Search by author
papers = await client.search_by_author("Geoffrey Hinton", max_results=20)
# Search by category
ai_papers = await client.search_by_category("cs.AI", max_results=15)
# Get recent papers
recent = await client.get_recent_papers("cs.LG", days_back=7, max_results=10)
論文分析
# Get paper details
paper = await client.get_paper_details("2301.07041")
# Get formatted summary
summary = await client.get_paper_summary("2301.07041")
# Compare papers
comparison = await client.compare_papers(
["2301.07041", "2302.13971"],
comparison_fields=["authors", "abstract", "categories"]
)
# Find related papers
related = await client.find_related_papers("2301.07041", max_results=10)
エクスポートと分析
# Export to BibTeX
bibtex = await client.export_papers(
["2301.07041", "2302.13971"],
format="bibtex",
include_abstract=True
)
# Analyze research trends
trends = await client.analyze_trends(
category="cs.AI",
time_period="3_months",
analysis_type="top_authors"
)
🔧 利用可能なツール
| ツール | 説明 | 主なパラメーター |
|---|---|---|
search_arxiv | 論文の一般検索 | query、max_results、sort_by |
get_paper | 特定の論文の詳細を取得 | arxiv_id |
summarize_paper | 形式を整えた要約を生成 | arxiv_id |
search_by_author | 著者別に論文を検索 | author_name、max_results |
search_by_category | カテゴリ別に論文を閲覧 | category、max_results、sort_by |
get_recent_papers | 最新の出版物を取得 | category、days_back、max_results |
compare_papers | 複数の論文を比較 | arxiv_ids、comparison_fields |
find_related_papers | 関連する研究を発見 | arxiv_id、max_results |
get_paper_citations | 引用分析 | arxiv_id |
analyze_trends | 研究トレンド分析 | category、time_period、analysis_type |
export_papers | 複数形式へのエクスポート | arxiv_ids、format、include_abstract |
📊 対応カテゴリ
コンピューターサイエンス
cs.AI- 人工知能cs.LG- 機械学習cs.CV- コンピュータービジョンcs.CL- 計算と言語cs.CR- 暗号とセキュリティcs.DB- データベースcs.DS- データ構造とアルゴリズム
数学
math.CO- 組合せ論math.ST- 統計理論math.PR- 確率論math.OC- 最適化と制御
物理学
physics.comp-ph- 計算物理学physics.data-an- データ分析quant-ph- 量子物理学
📄 エクスポート形式
BibTeX
@article{2301_07041,
title={Title of the Paper},
author={Author One and Author Two},
journal={arXiv preprint arXiv:2301.07041},
year={2023},
url={https://arxiv.org/abs/2301.07041}
}
JSON
{
"id": "2301.07041",
"title": "Title of the Paper",
"authors": ["Author One", "Author Two"],
"abstract": "Paper abstract...",
"published": "2023-01-17",
"categories": ["cs.AI", "cs.LG"]
}
CSV
id,title,authors,published,categories,url
2301.07041,Title of the Paper,"Author One; Author Two",2023-01-17,"cs.AI; cs.LG",https://arxiv.org/abs/2301.07041
🔍 検索クエリの例
基本的な検索
# Keyword search
await client.search_papers("neural networks")
# Multiple keywords
await client.search_papers("transformer attention mechanism")
# Exact phrase
await client.search_papers('"large language models"')
高度な検索
# Author search
await client.search_by_author("Yoshua Bengio")
# Category search
await client.search_by_category("cs.AI")
# Recent papers in category
await client.get_recent_papers("cs.LG", days_back=14)
📈 トレンド分析の種類
出版数分析
特定のカテゴリで、一定期間に出版された論文の数を追跡します。
trends = await client.analyze_trends("cs.AI", "6_months", "publication_count")
# Returns: monthly publication counts
主要著者分析
指定した期間において、ある分野で最も多くの論文を発表した著者を特定します。
trends = await client.analyze_trends("cs.LG", "1_year", "top_authors")
# Returns: authors ranked by paper count
キーワード頻度分析
カテゴリ内の論文タイトルで最もよく使われるキーワードを分析します。
trends = await client.analyze_trends("cs.CV", "3_months", "keyword_frequency")
# Returns: keywords ranked by frequency
🚨 エラー処理
クライアントには包括的なエラー処理が備わっています。
try:
results = await client.search_papers("machine learning")
if "error" in results:
print(f"Search failed: {results['error']}")
else:
print(f"Found {len(results['papers'])} papers")
except Exception as e:
print(f"Connection error: {e}")
🔧 設定
レート制限
クライアントはレート制限とタイムアウト処理を組み込み、arXiv の API ガイドラインに準拠しています。
カスタマイズ
# Custom timeout
client = ArxivMCPClient()
client.http_client = httpx.AsyncClient(timeout=60.0)
# Custom result limits
results = await client.search_papers("AI", max_results=50) # Max: 100
🤝 貢献
- リポジトリをフォークします
- 機能ブランチを作成します(
git checkout -b feature/amazing-feature) - 変更をコミットします(
git commit -m 'Add amazing feature') - ブランチにプッシュします(
git push origin feature/amazing-feature) - Pull Request を作成します
📝 ライセンス
このプロジェクトはMITライセンスの下でライセンスされています。詳細はLICENSEファイルをご覧ください。
🙏 謝辞
- 学術論文への無料アクセスを提供しているarXiv.orgに感謝します
- Model Context Protocolを提供しているAnthropicに感謝します
- 基盤となるライブラリを提供しているオープンソースコミュニティに感謝します
📞 サポート
- 問題:GitHub Issues
- ドキュメント:Wiki
- ディスカッション:GitHub Discussions
研究コミュニティのために ❤️ を込めて作成
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。