mcpField
O
OpenAlex MCP Server

OpenAlex MCP Server

ローカル
github.com/DavidEncrypted検索434 週間前に更新

OpenAlex MCP Server について

OpenAlex MCP Serverは、OpenAlexの学術論文データをAIエージェントやMCPクライアントから利用できるようにします。絞り込み・並べ替え・ページ分割検索に加え、論文詳細、引用関係、利用可能なテキストn-gramを取得できます。

主な機能

  1. 01キーワードによる学術論文検索
  2. 02結果の絞り込み・並べ替え・ページ分割
  3. 03論文の詳細情報取得
  4. 04参考文献と被引用論文の検索
  5. 05利用可能なテキストn-gramの取得

活用シーン

  1. 01テーマや出版年で論文を探す
  2. 02論文の参考文献や引用論文を調べる
  3. 03研究者や機関に関連する論文を比較する

MCP 対応

OpenAlexの論文検索・取得機能をMCPツールとして提供します。論文詳細、参考文献、被引用論文、n-gramを取得できます。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

OpenAlex MCP Server

このプロジェクトは、AI エージェントやその他の MCP クライアントが、学術論文を中心に OpenAlex データベースを利用できるようにする Model Context Protocol(MCP)サーバーを提供します。OpenAlex API との通信には pyalex Python ライブラリを使用し、MCP Python SDK(fastmcp)を使って機能を MCP ツールとして公開します。

使用例

参考として、この MCP を有効にした AI エージェントに依頼できるクエリの例をいくつか紹介します。

  • 畳み込みニューラルネットワークを導入した基礎論文を引用している論文のうち、最も多く引用されているものを 5 件見つけてください
  • 自己教師あり視覚オドメトリに関連する論文を探しています。このトピックに関連する論文を見つけ、それぞれのタイトルと要約を読んで関連度を 1〜10 で評価してください。
  • 2020 年以降に発表された、トランスフォーマーモデルに関する最も影響力のある論文を見つけ、アーキテクチャがどのように進化してきたかを要約してください
  • MIT と Stanford の研究者が共著した論文を見つけてください

機能

このサーバーは、OpenAlex の works とやり取りするために、以下の MCP ツールを公開します。

  1. search_works:

    • 説明: キーワードとフィルターに基づいて OpenAlex の works を検索します。検索クエリではブール演算子を使用できます。選択したフィールドを返し、カーソルによるページネーションを使用します。
    • パラメーター:
      • search_query(string、必須):検索語。
      • filters(object、任意):フィルタリング用のキーと値のペア(例:{"publication_year": 2023, "is_oa": true})。使用可能なキーについては、OpenAlex のフィルターに関するドキュメントを参照してください。
      • search_field(string、任意、デフォルト:"default"):検索対象のフィールド('title'、'abstract'、'fulltext'、'title_and_abstract'、'default'。'default' は title、abstract、fulltext を検索します)。
      • select_fields(文字列の配列、任意):返すルートレベルのフィールドのリスト(例:["id", "doi", "title", "abstract"])。指定された場合、プレーンテキストの abstract も含まれます。
      • sort(object、任意):並べ替えに使用するフィールドと順序(例:{"cited_by_count": "desc"})。
      • per_page(integer、任意、デフォルト:25):1 ページあたりの結果数(最大 200)。
      • cursor(string、任意):ページネーション用カーソル。
    • 戻り値: results(work オブジェクトのリスト)と meta(next_cursor を含むページネーション情報)を持つオブジェクト。
  2. get_work_details:

    • 説明: ID(OpenAlex ID URL、DOI URL、PMID URL、MAG ID)を指定して、特定の OpenAlex work の詳細情報を取得します。
    • パラメーター:
      • work_id(string、必須):work の識別子。
      • select_fields(文字列の配列、任意):返すルートレベルのフィールドのリスト。指定された場合、プレーンテキストの abstract も含まれます。
    • 戻り値: 選択したフィールドを含む work を表すオブジェクト、またはエラーオブジェクト。
  3. get_referenced_works:

    • 説明: 特定の OpenAlex work が引用している(発信引用)OpenAlex ID のリストを取得します。注:このツールが返すのは現在 ID のリストのみです。各参考文献の詳細については、get_work_details を使用してください。
    • パラメーター:
      • work_id(string、必須):引用元 work の OpenAlex ID。
    • 戻り値: referenced_work_ids(文字列のリスト)を持つオブジェクト、またはエラーオブジェクト。
  4. get_citing_works:

    • 説明: 特定の OpenAlex work を引用している(着信引用)works のリストを取得します。カーソルによるページネーションを使用します。
    • パラメーター:
      • work_id(string、必須):引用されている work の OpenAlex ID。
      • select_fields(文字列の配列、任意):各引用元 work のルートレベルのフィールドのリスト。
      • per_page(integer、任意、デフォルト:25):1 ページあたりの結果数(最大 200)。
      • cursor(string、任意):ページネーション用カーソル。
    • 戻り値: results(引用元 work オブジェクトのリスト)と meta(ページネーション情報)を持つオブジェクト、またはエラーオブジェクト。
  5. get_work_ngrams:

    • 説明: 利用可能な場合、特定の OpenAlex work の全文に含まれる N-gram(単語の近接情報)を取得します。
    • パラメーター:
      • work_id(string、必須):work の OpenAlex ID。
    • 戻り値: N-gram を表すオブジェクト、またはエラーオブジェクト(例:N-gram が見つからない場合)。

注記

OpenAlex は、著作権上の理由から通常、全文を保存していません。 そのため、OpenAlex の検索機能では全文は検索されず、title と abstract のみが検索対象となります。

セットアップとインストール

インストール
  1. リポジトリをクローンします(任意):

    git clone <repository-url>
    cd openalex-mcp-server
    
  2. 依存関係をインストールします:

    uv venv
    source .venv/bin/activate
    
    uv pip install .
    

    これにより、依存関係(mcp[cli]、pyalex)とともにサーバーパッケージがインストールされます。

  3. サーバーを実行します:

    uv --directory /YOUR/INSTALL/DIRECTORY/openalex-mcp-server run server.py
    
設定
  • OpenAlex Polite Pool: より高速で信頼性の高い OpenAlex polite pool を使用するには、サーバーの実行前、または MCP クライアントで設定する際に、OPENALEX_EMAIL 環境変数にメールアドレスを設定してください。
    export OPENALEX_EMAIL="[email protected]"
    
    この変数が設定されていない場合、サーバーは匿名プールを使用します。匿名プールでは、レート制限がより厳しくなります。

MCP との連携

このサーバーを MCP クライアント(Claude VS Code Extension や Claude Desktop など)で使用するには、クライアントの設定ファイルに構成を追加する必要があります。

設定例(cline_mcp_settings.json など):

{
  "mcpServers": {
    "... other servers ...": {},
    "openalex": {
      "autoApprove": [],
      "disabled": false,
      "timeout": 60,
      "command": "uv",
      "args": [
        "--directory", "/YOUR/INSTALL/DIRECTORY/openalex-mcp-server", "run", "server.py"
      ],
      "env": {
        "OPENALEX_EMAIL": "[email protected]" // Set your email here!
      },
      "transportType": "stdio"
    }
  }
}
  • "[email protected]" を実際のメールアドレスに置き換えてください。
  • 構成を追加した後、MCP クライアントを再起動してください(例:VS Code ウィンドウを再読み込み)。

使用方法

サーバーの設定と起動が完了したら(MCP クライアントとの連携経由、または開発用に手動で起動)、AI エージェント内で use_mcp_tool コマンドを使用して操作できます。

ツール呼び出しの例:

  • 2023 年に出版された「machine learning」に関する論文を検索する:

    <use_mcp_tool>
      <server_name>openalex</server_name>
      <tool_name>search_works</tool_name>
      <arguments>
      {
        "search_query": "machine learning",
        "filters": { "publication_year": 2023 },
        "select_fields": ["id", "doi", "title", "publication_year", "cited_by_count"]
      }
      </arguments>
    </use_mcp_tool>
    
  • 特定の著作物の詳細を取得する:

    <use_mcp_tool>
      <server_name>openalex</server_name>
      <tool_name>get_work_details</tool_name>
      <arguments>
      {
        "work_id": "W2741809807",
        "select_fields": ["title", "authorships", "abstract", "open_access"]
      }
      </arguments>
    </use_mcp_tool>
    
  • 著作物の参考文献を取得する:

    <use_mcp_tool>
      <server_name>openalex</server_name>
      <tool_name>get_referenced_works</tool_name>
      <arguments>
      {
        "work_id": "W2741809807"
      }
      </arguments>
    </use_mcp_tool>
    

開発

開発およびテスト用にサーバーをローカルで実行するには:

  1. 依存関係がインストールされていることを確認します(「インストール」を参照)。
  2. OPENALEX_EMAIL 環境変数を設定します。
  3. mcp dev server.py

依存関係

  • mcp-sdk:MCP サーバーの実装に使用します。
  • pyalex:OpenAlex API との連携に使用します。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。