Skip to main content
Glama

Semantic Scholar MCP Server

セマンティック・スカラーMCPサーバー

鍛冶屋のバッジ

Semantic Scholar API 用の FastMCP サーバー実装。学術論文データ、著者情報、引用ネットワークへの包括的なアクセスを提供します。

プロジェクト構造

このプロジェクトは、保守性を向上させるためにモジュール構造にリファクタリングされました。

semantic-scholar-server/ ├── semantic_scholar/ # Main package │ ├── __init__.py # Package initialization │ ├── server.py # Server setup and main functionality │ ├── mcp.py # Centralized FastMCP instance definition │ ├── config.py # Configuration classes │ ├── utils/ # Utility modules │ │ ├── __init__.py │ │ ├── errors.py # Error handling │ │ └── http.py # HTTP client and rate limiting │ ├── api/ # API endpoints │ ├── __init__.py │ ├── papers.py # Paper-related endpoints │ ├── authors.py # Author-related endpoints │ └── recommendations.py # Recommendation endpoints ├── run.py # Entry point script

この構造:

  • 懸念事項を論理モジュールに分割する

  • コードベースの理解と保守が容易になります

  • より良いテストと将来の拡張が可能

  • 関連する機能をグループ化します

  • 循環インポートを回避するためにFastMCPインスタンスを集中管理します

Related MCP server: Semantic Scholar MCP Server

特徴

  • 論文検索と発見

    • 高度なフィルタリングによる全文検索

    • タイトルベースの論文マッチング

    • 論文の推奨事項(単一論文および複数論文)

    • バッチペーパーの詳細検索

    • ランキング戦略を備えた高度な検索

  • 引用分析

    • 引用ネットワーク探索

    • 参照追跡

    • 引用の文脈と影響の分析

  • 著者情報

    • 著者検索とプロフィール詳細

    • 出版履歴

    • 著者詳細の一括取得

  • 高度な機能

    • 複数のランキング戦略を備えた複雑な検索

    • カスタマイズ可能なフィールド選択

    • 効率的なバッチ操作

    • レート制限コンプライアンス

    • 認証されたアクセスと認証されていないアクセスの両方をサポート

    • 正常なシャットダウンとエラー処理

    • 接続プールとリソース管理

システム要件

  • Python 3.8以上

  • FastMCPフレームワーク

  • APIキーの環境変数(オプション)

インストール

Smithery経由でインストール

Smithery経由で Claude Desktop 用の Semantic Scholar MCP Server を自動的にインストールするには:

npx -y @smithery/cli install semantic-scholar-fastmcp-mcp-server --client claude

手動インストール

  1. リポジトリをクローンします。

git clone https://github.com/YUZongmin/semantic-scholar-fastmcp-mcp-server.git cd semantic-scholar-server
  1. FastMCP とその他の依存関係を次のようにインストールします: https://github.com/jlowin/fastmcp

  2. FastMCP を設定します。

Claude Desktop をご利用の場合は、FastMCP 設定ファイルでサーバーを設定する必要があります。設定ファイル(通常は~/.config/claude-desktop/config.json )に以下の行を追加してください。

{ "mcps": { "Semantic Scholar Server": { "command": "/path/to/your/venv/bin/fastmcp", "args": [ "run", "/path/to/your/semantic-scholar-server/run.py" ], "env": { "SEMANTIC_SCHOLAR_API_KEY": "your-api-key-here" # Optional } } } }

必ず次の点に注意してください:

  • /path/to/your/venv/bin/fastmcp FastMCP インストールの実際のパスに置き換えます。

  • /path/to/your/semantic-scholar-server/run.pyを、実際のマシン上の run.py へのパスに置き換えます。

  • Semantic Scholar APIキーをお持ちの場合は、 envセクションに追加してください。お持ちでない場合は、 envセクションを完全に削除できます。

  1. サーバーの使用を開始します。

これで、Claude Desktopインスタンスからサーバーが利用できるようになります。手動でコマンドを実行する必要はありません。Claudeは必要に応じてサーバープロセスを自動的に起動し、管理します。

APIキー(オプション)

より高いレート制限とより良いパフォーマンスを得るには:

  1. Semantic Scholar APIからAPIキーを取得する

  2. 上記のenvセクションに示すように、FastMCP構成に追加します。

API キーが提供されない場合、サーバーはレート制限が低い認証されていないアクセスを使用します。

構成

環境変数

  • SEMANTIC_SCHOLAR_API_KEY : Semantic Scholar API キー(オプション)

    • Semantic Scholar APIからキーを取得する

    • 指定しない場合、サーバーは認証されていないアクセスを使用します

レート制限

サーバーは適切なレート制限に自動的に調整します。

APIキーの場合:

  • 検索、バッチ、推奨エンドポイント: 1 秒あたり 1 リクエスト

  • その他のエンドポイント: 1秒あたり10リクエスト

APIキーなし:

  • すべてのエンドポイント: 5 分あたり 100 件のリクエスト

  • リクエストのタイムアウトが長くなる

利用可能なMCPツール

注: すべてのツールは、 Semantic Scholar APIの公式ドキュメントに準拠しています。詳細なフィールド仕様と最新のアップデートについては、公式ドキュメントをご覧ください。

論文検索ツール

  • paper_relevance_search : 関連性ランキングを使用して論文を検索する

    • 年範囲や引用数フィルターを含む包括的なクエリパラメータをサポート

    • カスタマイズ可能なフィールドを持つページ区切りの結果を返します

  • paper_bulk_search : 並べ替えオプション付きの一括論文検索

    • 関連性検索に似ていますが、より大きな結果セットに最適化されています

    • 引用数、公開日などによる並べ替えをサポートします。

  • paper_title_search : タイトルが完全に一致する論文を検索

    • タイトルがわかっている場合に特定の論文を見つけるのに便利です

    • カスタマイズ可能なフィールドを含む詳細な論文情報を返します

  • paper_details : 特定の論文に関する包括的な詳細情報を取得します

    • さまざまな論文 ID 形式 (S2 ID、DOI、ArXiv など) を受け入れます

    • ネストされたフィールドのサポートを含む詳細な論文メタデータを返します

  • paper_batch_details : 複数の論文の詳細を効率的に取得する

    • 1回のリクエストにつき最大1000枚の紙IDを受け付けます

    • 単一の紙の詳細と同じID形式とフィールドをサポートします

引用ツール

  • paper_citations : 特定の論文を引用している論文を取得する

    • 引用論文のページ区切りリストを返します

    • 利用可能な場合は引用コンテキストも含めます

    • フィールドのカスタマイズと並べ替えをサポート

  • paper_references : 特定の論文によって参照されている論文を取得する

    • 参照論文のページ区切りリストを返します

    • 利用可能な場合は参照コンテキストを含める

    • フィールドのカスタマイズと並べ替えをサポート

著者ツール

  • author_search : 著者名で検索

    • カスタマイズ可能なフィールドを持つページ区切りの結果を返します

    • 所属と出版物数を含む

  • author_details : 著者に関する詳細情報を取得する

    • 包括的な著者メタデータを返す

    • h指数や引用数などの指標が含まれます

  • author_papers : 著者が書いた論文を取得する

    • 著者の出版物のページ区切りリストを返します

    • フィールドのカスタマイズと並べ替えをサポート

  • author_batch_details : 複数の著者の詳細を取得する

    • 最大1000人の著者の情報を効率的に取得

    • 単一の著者の詳細と同じフィールドを返します

推奨ツール

  • paper_recommendations_single : 1つの論文に基づいて推奨事項を取得します

    • 内容と引用パターンに基づいて類似の論文を返します

    • 推奨論文のフィールドカスタマイズをサポート

  • paper_recommendations_multi : 複数の論文に基づいて推奨事項を取得する

    • 肯定的および否定的な例文を受け入れます

    • 肯定的な例に類似し、否定的な例に類似しない論文を返します

使用例

基本的な論文検索

results = await paper_relevance_search( context, query="machine learning", year="2020-2024", min_citation_count=50, fields=["title", "abstract", "authors"] )

論文の推奨事項

# Single paper recommendation recommendations = await paper_recommendations_single( context, paper_id="649def34f8be52c8b66281af98ae884c09aef38b", fields="title,authors,year" ) # Multi-paper recommendation recommendations = await paper_recommendations_multi( context, positive_paper_ids=["649def34f8be52c8b66281af98ae884c09aef38b", "ARXIV:2106.15928"], negative_paper_ids=["ArXiv:1805.02262"], fields="title,abstract,authors" )

バッチ操作

# Get details for multiple papers papers = await paper_batch_details( context, paper_ids=["649def34f8be52c8b66281af98ae884c09aef38b", "ARXIV:2106.15928"], fields="title,authors,year,citations" ) # Get details for multiple authors authors = await author_batch_details( context, author_ids=["1741101", "1780531"], fields="name,hIndex,citationCount,paperCount" )

エラー処理

サーバーは標準化されたエラー応答を提供します。

{ "error": { "type": "error_type", # rate_limit, api_error, validation, timeout "message": "Error description", "details": { # Additional context "authenticated": true/false # Indicates if request was authenticated } } }
-
security - not tested
A
license - permissive license
-
quality - not tested

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/zongmin-yu/semantic-scholar-fastmcp-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server