AI エージェントが、電子プレプリントの人気のオープン アクセス リポジトリであるarXivから学術論文を検索、取得、分析できるようにするモデル コンテキスト プロトコル (MCP)サーバーの実装。
概要
このプロジェクトは、AIエージェントがarXivリポジトリと対話し、キーワードに基づいて論文を検索したり、特定の論文に関する詳細情報を取得したり、さらには論文の内容を抽出・分析したりすることを可能にするMCPサーバーを提供します。これは、研究支援のための実用的なツールであると同時に、MCPサーバー構築のためのリファレンス実装としても機能します。
この実装は、MCP サーバーの構築に関するベスト プラクティスに従っており、MCP 互換のあらゆるクライアントとのシームレスな統合を可能にします。
Related MCP server: arXiv MCP Server
特徴
サーバーは学術研究のための強力なツールをいくつか提供します。
search_papers: キーワードを使ってarXivで論文を検索し、包括的な要約を取得しますget_paper_details: arXiv IDで特定の論文の詳細情報を取得するextract_paper_content: 論文の PDF から全文コンテンツをダウンロードして抽出しますanalyze_paper: 論文の内容を分析し、包括的な要約を生成する
前提条件
Python 3.11以上
MCP サーバーをコンテナとして実行する場合は Docker (推奨)
インストール
UVの使用
uv がインストールされていない場合はインストールします。
pip install uvこのリポジトリをクローンします:
git clone https://github.com/kelvingao/arxiv-mcp.git cd arxiv-mcp依存関係をインストールします:
uv pip install -e ..env.exampleに基づいて.envファイルを作成します。cp .env.example .env.envファイルで環境変数を設定します(構成セクションを参照)。
Dockerの使用(推奨)
Docker イメージをビルドします。
docker build -t mcp/arxiv --build-arg PORT=8050 ..env.exampleに基づいて.envファイルを作成し、環境変数を設定します。
構成
.envファイルでは次の環境変数を設定できます。
変数 | 説明 | 例 |
| トランスポートプロトコル(sse または stdio) |
|
| SSEトランスポートを使用するときにバインドするホスト |
|
| SSE トランスポートを使用するときにリッスンするポート |
|
サーバーの実行
UVの使用
SSEトランスポート
MCP サーバーは、以下に示す構成で接続できる API エンドポイントとして実行されます。
Stdioトランスポート
stdio を使用すると、MCP クライアント自体が MCP サーバーを起動できるため、この時点では何も実行されません。
Dockerの使用
SSEトランスポート
MCP サーバーは、以下に示す構成で接続できるコンテナー内の API エンドポイントとして実行されます。
Stdioトランスポート
stdio を使用すると、MCP クライアント自体が MCP サーバー コンテナーを起動できるため、この時点では何も実行されません。
MCPクライアントとの統合
SSE構成
SSE トランスポートを使用してサーバーを実行したら、次の構成を使用してサーバーに接続できます。
Windsurf ユーザーへの注意: 設定では
urlの代わりにserverUrlを使用してください。{ "mcpServers": { "arxiv": { "transport": "sse", "serverUrl": "http://localhost:8050/sse" } } }
n8n ユーザーへの注意: n8n は自身のコンテナの外部にあるホスト マシンにアクセスする必要のあるため、localhost ではなく host.docker.internal を使用してください。
したがって、MCP ノードの完全な URL は次のようになります: http://host.docker.internal:8050/sse
デフォルトの 8050 以外の値を使用している場合は、必ずポートを更新してください。
Python と Stdio 設定
このサーバーを、Claude Desktop、Windsurf、またはその他の MCP クライアントの MCP 構成に追加します。
Stdio 構成の Docker
使用例
AI エージェントで arXiv MCP サーバーを使用する方法の例をいくつか示します。
論文の検索
論文の詳細を取得する
紙のコンテンツの抽出
論文の分析
独自のMCPサーバーの構築
この実装は、より複雑なMCPサーバーを構築するための基盤を提供します。独自のサーバーを構築するには、以下の手順に従ってください。
@mcp.tool()デコレータを使用してメソッドを作成し、独自のツールを追加します。独自のライフスパン関数を作成して、独自の依存関係 (クライアント、データベース接続など) を追加します。
既存のツールを変更したり、新しいツールを追加して機能を強化します
@mcp.resource()と@mcp.prompt()を使用してプロンプトとリソースを追加します。
ライセンス
謝辞
研究論文へのオープンアクセスを提供するarXiv
MCP標準を作成するモデルコンテキストプロトコルチーム