🚀 arXiv MCP Server
このサーバーは、arXiv APIとやり取りするためのツールを提供するMCP(Model Context Protocol)サーバーです。学術論文の検索や取得が可能です。
🚀 クイックスタート
このサーバーは、arXivのプレプリントリポジトリから論文を検索および取得するためのツールを提供するために、Model Context Protocolを実装しています。AIアシスタントが様々な条件で論文を検索し、特定の論文の詳細を取得し、カテゴリで検索し、PDFから全文コンテンツを抽出することを可能にします。
✨ 主な機能
- 論文検索:様々な条件(タイトル、著者、概要、カテゴリなど)を使用して論文を検索します。
- 論文詳細取得:arXiv IDを使用して特定の論文の詳細情報を取得します。
- カテゴリ検索:特定のarXivカテゴリ内の論文を検索します。
- PDFコンテンツ抽出:論文のPDFをダウンロードし、全文コンテンツを抽出します。
- 構造化された結果:生のXMLではなく、適切に解析されたJSONデータを返します。
- キャッシング:冗長なダウンロードを避けるためのインテリジェントなPDFキャッシング。
📦 インストール
前提条件
セットアップ
-
このリポジトリをクローンします:
git clone https://github.com/your-username/arxiv-mcp-server.git
cd arxiv-mcp-server
-
依存関係をインストールします:
npm install
-
プロジェクトをビルドします:
npm run build
💻 使用例
MCPサーバーとして
サーバーを起動します:
npm start
サーバーはstdioで実行され、MCPクライアントと通信できるようになります。
MCPクライアントの設定
この設定をあなたのMCPクライアント設定に追加してください。Claude Desktopの場合は、claude_desktop_config.jsonに追加します:
{
"mcpServers": {
"arxiv": {
"name": "arxiv-mcp-server",
"command": "node",
"args": ["build/index.js"],
"cwd": "C:/path/to/arxiv-mcp-server",
"enabled": true,
"alwaysAllow": [
"search_papers",
"get_paper",
"search_by_category",
"get_paper_content"
],
"env": {}
}
}
}
他のMCPクライアントの場合は、同様の構成構造を使用してください。以下を確認してください:
cwdパスをあなたのarxiv-mcp-serverディレクトリを指すように更新します。
build/index.jsファイルが存在することを確認します(最初にnpm run buildを実行してください)。
alwaysAllow配列には、ユーザーの確認を必要としないツールがリストされています。
利用可能なツール
search_papers
様々な条件でarXiv上の論文を柔軟なクエリオプションで検索します。
パラメーター:
query (文字列、任意): すべてのフィールドを対象とした一般的な検索クエリ
category (文字列、任意): arXivカテゴリ (例: cs.AI, physics.optics)
author (文字列、任意): 検索する著者名
title (文字列、任意): タイトル内で検索する単語
abstract (文字列、任意): 概要内で検索する単語
start (数値、任意): ページネーションの開始インデックス (0から始まり、デフォルト: 0)
max_results (数値、任意): 返す最大結果数 (最大2000、デフォルト: 10)
sort_by (文字列、任意): relevance、lastUpdatedDate、またはsubmittedDateでソート
sort_order (文字列、任意): ソート順 ascending または descending
応答例:
{
"feed_title": "arXiv Query: search_query=all:machine+learning",
"total_results": 150000,
"start_index": 0,
"items_per_page": 10,
"papers": [
{
"id": "http://arxiv.org/abs/2104.13478",
"arxiv_id": "2104.13478",
"title": "Advanced Machine Learning Techniques",
"summary": "This paper discusses advanced machine learning techniques...",
"authors": ["John Smith", "Jane Doe"],
"published": "2021-04-28T09:00:00Z",
"updated": "2021-04-28T09:00:00Z",
"categories": ["cs.LG", "cs.AI"],
"links": [
{
"href": "http://arxiv.org/abs/2104.13478",
"rel": "alternate",
"type": "text/html"
}
]
}
]
}
get_paper
arXiv IDを使用して特定の論文の詳細情報を取得します。
パラメーター:
paper_id (文字列、必須): arXiv論文ID (例: 2104.13478 または cs/0001001)
返り値: search_papersと同じ構造化された形式ですが、単一の論文に関するものです。
search_by_category
特定のarXivカテゴリ内の論文をページネーションとソートオプションで検索します。
パラメーター:
category (文字列、必須): arXivカテゴリ (例: cs.AI, physics.optics)
start (数値、任意): ページネーションの開始インデックス (0から始まります)
max_results (数値、任意): 返す最大結果数 (最大2000)
sort_by (文字列、任意): relevance、lastUpdatedDate、またはsubmittedDateでソート
sort_order (文字列、任意): ソート順 ascending または descending
get_paper_content
論文のPDFから全文コンテンツをダウンロードして抽出します。
パラメーター:
paper_id (文字列、必須): arXiv論文ID (例: 2104.13478)
特徴:
- arXivのサーバーからPDFをダウンロードします。
- 冗長なダウンロードを避けるために、PDFをローカルにキャッシュします。
- pdf-parseを使用してテキストコンテンツを抽出し、クリーニングします。
- ネットワークエラーや解析問題を適切に処理します。
- 分析に適した平文のコンテンツを返します。
返り値: 論文の平文コンテンツ。
一般的なarXivカテゴリ
cs.AI - 人工知能
cs.LG - 機械学習
cs.CL - 計算と言語
cs.CV - コンピュータビジョンとパターン認識
physics.optics - 光学
math.CO - 組合せ論
stat.ML - 機械学習(統計学)
完全なリストについては、arXiv Subject Classificationsを参照してください。
開発
テストの実行
npm test
ビルド
npm run build
開発用のウォッチモード
npm run test:watch
📚 ドキュメント
このサーバーは、公式のarXiv APIを使用しています。詳細情報については、以下を参照してください:
コントリビュート
コードの行動規範とプルリクエストの提出プロセスの詳細については、CONTRIBUTING.mdを読んでください。
📄 ライセンス
このプロジェクトはMITライセンスの下でライセンスされています。詳細については、LICENSEファイルを参照してください。
変更履歴
v0.1.0 (初期リリース)
- 基本的なarXiv API統合
- 複数の条件での論文検索
- 個々の論文の詳細取得
- カテゴリベースの検索
- キャッシングを伴うPDFコンテンツ抽出
- 構造化されたJSON応答の解析
- MCPプロトコルの実装