Scientific Paper Harvester Mcp Server について
Scientific Paper Harvester MCP Serverは、研究者やLLMを使った文献処理向けに、6つの学術情報源から論文の検索、取得、全文抽出を提供します。CLIに加え、引用数検索、メタデータ取得、DOI解決にも対応します。
主な機能
- 01タイトル・要旨・著者・全文で検索
- 02カテゴリ別に最新論文を取得
- 03全文とメタデータを抽出
- 04OpenAlexの高被引用論文を検索
- 05各ソースのカテゴリや概念を表示
- 06CLIから利用
活用シーン
- 01複数ソースからテーマや著者で論文を検索
- 02分野の最新研究を収集
- 03研究分析用に論文の全文を抽出
- 04指定日以降の高被引用論文を調査
MCP 対応
カテゴリ参照、最新論文取得、論文検索、全文抽出、OpenAlexの高被引用論文検索ツールをMCPクライアントに公開します。arXiv、OpenAlex、PMC、Europe PMC、bioRxiv/medRxiv、COREに対応します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
6掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| source | enum | はい | カテゴリを取得するデータソース: • 'arxiv' - arXiv.org のプレプリントカテゴリ(物理学、コンピューターサイエンス、数学など) • 'openalex' - OpenAlex の研究概念(AI、機械学習、量子コンピューティングなど) • 'pmc' - PubMed Central の生物医学カテゴリ(医学、生物学、神経科学など) • 'europepmc' - Europe PMC の生命科学カテゴリ(PMC と同様ですが、欧州に重点) • 'biorxiv' - bioRxiv/medRxiv のプレプリントカテゴリ(生物学、医学のプレプリント) • 'core' - CORE 学術論文リポジトリのカテゴリ(学際的) 使用上のヒント:fetch_latest を使う前に、必ず最初にこのツールを呼び出して、利用可能なカテゴリを確認してください。arxiv | openalex | pmc | europepmc | biorxiv | core |
詳細
Scientific Paper Harvester MCP サーバー
LLM に 6 つの主要な学術ソース(arXiv、OpenAlex、PMC(PubMed Central)、Europe PMC、bioRxiv/medRxiv、CORE)から科学的論文へのリアルタイムアクセスを提供する包括的な Model Context Protocol(MCP)サーバーです。
🚀 機能
包括的なソースカバレッジ
- arXiv: コンピュータサイエンス、物理学、数学のプレプリントおよび論文
- OpenAlex: 引用データを含む学術論文のオープンカタログ
- PMC: PubMed Central の生物医学およびライフサイエンス文献
- Europe PMC: ヨーロッパのライフサイエンス文献データベース
- bioRxiv/medRxiv: 生物学および医学のプレプリントサーバー
- CORE: 世界最大のオープンアクセス研究論文コレクション
高度な機能
- 論文取得: カテゴリ/概念ごとに任意のソースから最新論文を取得
- 論文検索: 4 つの主要ソースを横断してタイトル、要約、著者、または全文で論文を検索
- 全文抽出: インテリジェントなフォールバック戦略による完全なテキストコンテンツの抽出
- 引用分析: 指定した日付以降の OpenAlex からの被引用数の多い論文を検索
- 論文ルックアップ: ID を指定して特定の論文の完全なメタデータを取得
- カテゴリの検出: すべてのソースで利用可能なカテゴリを閲覧
- スマートなレート制限: ソースごとのレート制限による敬意ある API 利用
- DOI 解決: Unpaywall → Crossref → Semantic Scholar のフォールバックを備えた高度な DOI リゾルバー
- デュアルインターフェース: MCP プロトコルと CLI の両方でアクセス可能
- TypeScript: ESM モジュールによる完全な型安全性
📊 カバレッジ統計
- 総ソース数: 6 つの学術データベース
- カテゴリカバレッジ: すべての分野にわたる 100 以上のカテゴリ
- 論文アクセス: インテリジェントなテキスト抽出による 2 億件以上の論文
- テキスト抽出成功率: 対応する論文種別で 90% 以上
- 応答時間: 論文取得の平均 15 秒未満
🛠 インストール
npm install
npm run build
📋 MCP クライアントの設定
このサーバーを MCP クライアント(Claude Desktop など)で使用するには、MCP クライアントの設定に以下を追加します。
公開パッケージの場合(npm で利用可能):
オプション 1: npx を使用する(Claude などの AI ツールに推奨)
{
"mcpServers": {
"scientific-papers": {
"command": "npx",
"args": [
"-y",
"@futurelab-studio/latest-science-mcp@latest"
]
}
}
}
オプション 2: グローバルインストール
npm install -g @futurelab-studio/latest-science-mcp
次に設定します:
{
"mcpServers": {
"scientific-papers": {
"command": "latest-science-mcp"
}
}
}
📖 使用方法
CLI インターフェース
カテゴリの一覧表示
# List arXiv categories
node dist/cli.js list-categories --source=arxiv
# List OpenAlex concepts
node dist/cli.js list-categories --source=openalex
# List PMC biomedical categories
node dist/cli.js list-categories --source=pmc
# List Europe PMC life science categories
node dist/cli.js list-categories --source=europepmc
# List bioRxiv/medRxiv categories (includes both servers)
node dist/cli.js list-categories --source=biorxiv
# List CORE academic categories
node dist/cli.js list-categories --source=core
最新論文の取得
# Get latest AI papers from arXiv
node dist/cli.js fetch-latest --source=arxiv --category=cs.AI --count=10
# Get latest biology papers from bioRxiv
node dist/cli.js fetch-latest --source=biorxiv --category="biorxiv:biology" --count=5
# Get latest immunology papers from PMC
node dist/cli.js fetch-latest --source=pmc --category=immunology --count=3
# Get latest papers from CORE by subject
node dist/cli.js fetch-latest --source=core --category=computer_science --count=5
# Search by concept name (OpenAlex)
node dist/cli.js fetch-latest --source=openalex --category="machine learning" --count=3
被引用数の多い論文の取得
# Get top 20 cited papers in machine learning since 2024
node dist/cli.js fetch-top-cited --concept="machine learning" --since=2024-01-01 --count=20
# Get top cited papers by concept ID
node dist/cli.js fetch-top-cited --concept=C41008148 --since=2023-06-01 --count=10
論文の検索
# Search by keywords across all fields
node dist/cli.js search-papers --source=arxiv --query="machine learning" --count=10
# Search by paper title
node dist/cli.js search-papers --source=openalex --query="neural networks" --field=title --count=5
# Search by author name
node dist/cli.js search-papers --source=europepmc --query="John Smith" --field=author --count=10
# Search full-text content sorted by citations
node dist/cli.js search-papers --source=core --query="climate change" --field=fulltext --sortBy=citations --count=20
特定の論文コンテンツの取得
# Get arXiv paper by ID
node dist/cli.js fetch-content --source=arxiv --id=2401.12345
# Get bioRxiv paper by DOI
node dist/cli.js fetch-content --source=biorxiv --id="10.1101/2021.01.01.425001"
# Get PMC paper by ID
node dist/cli.js fetch-content --source=pmc --id=PMC8245678
# Get CORE paper by ID
node dist/cli.js fetch-content --source=core --id=12345678
# Show text content with preview
node dist/cli.js fetch-content --source=arxiv --id=2401.12345 --show-text --text-preview=500
🔧 利用可能なツール
list_categories
任意のデータソースから利用可能なカテゴリ/概念を一覧表示します。
パラメータ:
source:"arxiv"|"openalex"|"pmc"|"europepmc"|"biorxiv"|"core"
戻り値:
id、name、および任意のdescriptionを持つカテゴリオブジェクトの配列
例:
{
"name": "list_categories",
"arguments": {
"source": "biorxiv"
}
}
fetch_latest
指定したカテゴリについて任意のソースから最新論文を メタデータのみ(テキスト抽出なし)で取得します。
パラメータ:
source:"arxiv"|"openalex"|"pmc"|"europepmc"|"biorxiv"|"core"category: カテゴリ ID または概念名(ソースによって異なります)count: 取得する論文の数(デフォルト: 50、最大: 200)
ソース別のカテゴリの例:
- arXiv:
"cs.AI"、"physics.gen-ph"、"math.CO" - OpenAlex:
"artificial intelligence"、"machine learning"、"C41008148" - PMC:
"immunology"、"genetics"、"neuroscience" - Europe PMC:
"biology"、"medicine"、"cancer" - bioRxiv/medRxiv:
"biorxiv:neuroscience"、"medrxiv:psychiatry" - CORE:
"computer_science"、"mathematics"、"physics"
戻り値:
- メタデータ(id、title、authors、date、pdf_url)を持つ論文オブジェクトの配列
- テキストフィールド: 空文字列(
text: "") - 全文にはfetch_contentを使用してください
fetch_top_cited
指定した概念について、特定の日付以降の OpenAlex からの被引用数の多い論文を取得します。
パラメータ:
concept: 概念名または OpenAlex の概念 IDsince: YYYY-MM-DD 形式の開始日count: 取得する論文の数(デフォルト: 50、最大: 200)
search_papers
複数の学術ソースを横断して論文を検索します。フィールド別の検索と並べ替えオプションに対応しています。
パラメータ:
source:"arxiv"|"openalex"|"europepmc"|"core"query: 検索クエリ文字列(最大 1500 文字)field:"all"|"title"|"abstract"|"author"|"fulltext"(デフォルト: "all")count: 返す結果の件数(デフォルト: 50、最大: 200)sortBy:"relevance"|"date"|"citations"(デフォルト: "relevance")
ソース別の検索機能:
- arXiv: タイトル、概要、著者、および Boolean 演算子を使った一般検索
- OpenAlex: 関連度スコアリングと被引用数による並べ替えに対応した高度な検索
- Europe PMC: MeSH 用語と全文検索に対応した生物医学文献
- CORE: 高度なクエリ言語に対応した世界の学術論文
クエリの例:
- キーワード:
"machine learning"、"climate change" - フレーズ:
"artificial intelligence"(完全一致フレーズには引用符を使用) - Boolean:
"deep learning AND neural networks"(arXiv が対応) - 著者:
"John Smith"、"Smith J"
戻り値:
- メタデータ(id、title、authors、date、pdf_url)を含む論文オブジェクトの配列
- Text フィールド: 空文字列(
text: "")- 全文にはfetch_contentを使用してください
fetch_content
ID を指定して特定の論文の完全なメタデータとテキストコンテンツを取得します。完全なテキスト抽出に対応しています。
パラメータ:
source: サポートされている 6 つのソースのいずれかid: 論文 ID(形式はソースによって異なります)
ソース別の ID 形式:
- arXiv:
"2401.12345"、"cs/0601001"、"1234.5678v2" - OpenAlex:
"W2741809807"または数値2741809807 - PMC:
"PMC8245678"または"12345678" - Europe PMC:
"PMC8245678"、"12345678"、または DOI - bioRxiv/medRxiv:
"10.1101/2021.01.01.425001"または"2021.01.01.425001" - CORE:
"12345678"のような数値 ID
📄 論文メタデータの形式
すべてのツールは、次の構造を持つ論文オブジェクトを返します:
{
id: string; // Paper ID
title: string; // Paper title
authors: string[]; // List of author names
date: string; // Publication date (ISO format)
pdf_url?: string; // PDF URL (if available)
text: string; // Extracted full text content
textTruncated?: boolean; // Warning: text was truncated due to size limits
textExtractionFailed?: boolean; // Warning: text extraction failed
}
🧠 高度なテキスト抽出
マルチソース戦略
各ソースには特化したテキスト抽出アプローチがあります:
- arXiv:
arxiv.org/htmlの HTML と、ar5iv.labs.arxiv.orgへのフォールバック - OpenAlex: HTML ソースと DOI リゾルバーのフォールバックチェーン
- PMC: E-utilities API による XML/HTML 抽出
- Europe PMC: 複数の URL 戦略に対応した REST API
- bioRxiv/medRxiv: 概要へのフォールバックを備えた直接的な HTML 抽出
- CORE: ソース URL へのフォールバックを備えた PDF/HTML
DOI 解決チェーン
複数のフォールバック戦略を備えた高度な DOI リゾルバー:
- Unpaywall → 無料の全文ソース
- Crossref → 出版社のメタデータとリンク
- Semantic Scholar Academic Graph → 代替アクセス
パフォーマンスと信頼性
- テキスト抽出成功率: HTML が利用可能な論文で 90% 以上
- グレースフルデグラデーション: テキスト抽出が失敗しても常にメタデータを返します
- サイズ管理: 6MB のテキスト上限とインテリジェントな切り詰め
- キャッシュ: DOI 解決のための 24 時間 LRU キャッシュ
🔄 レート制限
ソースごとのレート制限による、配慮ある API 利用:
- arXiv: 毎分 5 リクエスト
- OpenAlex: 毎分 10 リクエスト
- PMC: 毎秒 3 リクエスト
- Europe PMC: 毎分 10 リクエスト
- bioRxiv/medRxiv: 毎分 5 リクエスト
- CORE: 毎分 10 リクエスト(公開)、API キーがあればより多く
CORE API の設定
CORE へのアクセスを強化するには、環境変数を設定してください:
export CORE_API_KEY="your-api-key"
🧪 テスト
テストスイートの実行
# Run all tests
npm test
# Run integration tests
npm run test -- tests/integration
# Run end-to-end workflow tests
npm run test -- tests/e2e
# Run performance benchmarks
npm run test -- tests/integration/performance.test.ts
テストカバレッジ
- 統合テスト: 6 つのソースすべてをエンドツーエンドでテスト
- パフォーマンステスト: 応答時間とスループットのベンチマーク
- ワークフローテスト: 複数のソースをまたぐ実際の研究シナリオ
- ユニットテスト: コアコンポーネントとエッジケース
🏗 アーキテクチャ
モジュール式ドライバーシステム
- ソース間の明確な分離
- すべてのドライバーで一貫したインターフェース
- ソースごとに特化したテキスト抽出
高度な機能
- DOI 解決: マルチプロバイダーのフォールバックチェーン
- レート制限: ソースごとのトークンバケットアルゴリズム
- テキスト処理: HTML のクリーニングと正規化
- エラーハンドリング: 実行可能な提案を含む構造化されたレスポンス
- キャッシュ: DOI 解決のためのインテリジェントなキャッシュ
テクノロジースタック
- TypeScript + ESM: 完全な型安全性を備えたモダン JavaScript
- モジュール設計: 関心の明確な分離
- グレースフルデグラデーション: 部分的な障害があっても常に機能
- レスポンスサイズ管理: 自動的な切り詰めと警告
📊 ソースの比較
| ソース | 論文 | 分野 | 全文 | 引用データ | プレプリント | 検索 |
|---|---|---|---|---|---|---|
| arXiv | 2.3M+ | STEM | HTML ✓ | 限定的 | ✓ | ✓✓✓ |
| OpenAlex | 200M+ | すべて | 可変 | ✓✓✓ | ✓ | ✓✓✓ |
| PMC | 7M+ | 生物医学 | XML/HTML ✓ | 限定的 | ✗ | 限定的 |
| Europe PMC | 40M+ | ライフサイエンス | HTML ✓ | 限定的 | ✓ | ✓✓✓ |
| bioRxiv/medRxiv | 500K+ | 生物/医学 | HTML ✓ | 限定的 | ✓✓✓ | 限定的 |
| CORE | 200M+ | すべて | PDF/HTML ✓ | 限定的 | ✓ | ✓✓✓ |
🔧 開発
ビルド
npm run build
個別のソースのテスト
# Test specific sources
node dist/cli.js list-categories --source=arxiv
node dist/cli.js fetch-latest --source=biorxiv --category="biorxiv:biology" --count=3
node dist/cli.js fetch-content --source=core --id=12345678
# Test search functionality
node dist/cli.js search-papers --source=arxiv --query="artificial intelligence" --count=5
node dist/cli.js search-papers --source=openalex --query="quantum computing" --field=title --count=3
パフォーマンステスト
# Run performance benchmarks
npm run test -- tests/integration/performance.test.ts
# Test memory usage
npm run test -- --reporter=verbose
🚨 エラーハンドリング
すべてのソースに対する包括的なエラーハンドリング:
- 形式の提案を含む無効な論文 ID
- 再試行時間の情報を含むレート制限
- API タイムアウトとサーバーエラー
- 認証の欠如 (CORE API キー)
- ネットワーク接続の問題
- フォールバック戦略を伴うテキスト抽出の失敗
🔍 トラブルシューティング
よくある問題
- レート制限: 指数バックオフによる自動再試行
- 論文が見つからない: 同じコンテンツに対して別のソースを試す
- テキスト抽出の失敗: 概要またはメタデータへのフォールバック
- CORE API の制限:
CORE_API_KEY環境変数を設定する
パフォーマンスの最適化
- 適切な
countパラメータを使用する (レスポンスを速くするには小さめに) - 可能な場合は結果をキャッシュする
- 発見には
fetch_latestを、詳細な閲覧にはfetch_contentを使用する
📝 ライセンス
MIT
世界の科学知識を探求する準備はできましたか? 6 つのソースのいずれかから始めて、あらゆる学術分野の論文を発見しましょう! 🔬📚
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。