OpenAlex MCP Server について
研究者や AI エージェントが OpenAlex のオープンな学術カタログを検索できる MCP サーバーです。OpenAlex の検索フィルターやソートを使い、エンティティ検索、取得、オートコンプリート、テキスト分類を行えます。
主な機能
- 01論文、著者、研究エンティティの検索
- 02結果の絞り込み、ソート、ページ分割、集計
- 03OpenAlex ID によるエンティティ取得
- 04エンティティ種別を横断するオートコンプリート
- 05テキストから研究概念を分類
活用シーン
- 01トピック、日付、被引用数で論文を検索
- 02研究者や機関を特定
- 03年別の出版動向を調査
- 04タイトルと要旨から研究概念を推定
MCP 対応
OpenAlex API の検索・取得機能を、エンティティ検索、オートコンプリート、テキスト分類を含むツールとして MCP クライアントに提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
OpenAlex MCP サーバー
240 million 以上の学術成果を網羅する、グローバルな研究システムの完全オープンなカタログ、OpenAlex API にアクセスできる Model Context Protocol(MCP)サーバーです。
特長
この MCP サーバーでは、次の項目を検索および取得するツールを利用できます。
- 成果 - 学術論文、プレプリント、データセット、書籍(2億4,000万件以上)
- 著者 - ORCID 連携に対応した研究者および制作者
- 情報源 - 学術誌、会議、リポジトリ(約25万件)
- 機関 - ROR マッチングに対応した大学、病院、研究所
- 概念 - 階層型の研究トピック(レベル0~5)
- 出版社 - 出版組織
- 資金提供機関 - 助成を行う機関
- オートコンプリート - すべてのエンティティタイプを対象にした入力中の検索
- テキスト分類 - 任意のテキストに対する概念の予測
インストール
npm から(推奨)
npm install -g openalex-mcp
ソースから
git clone https://github.com/reetp14/openalex-mcp.git
cd openalex-mcp
npm install
npm run build
使用方法
MCP サーバーとして
MCP クライアントの設定に追加します。
{
"mcpServers": {
"openalex": {
"command": "npx",
"args": ["openalex-mcp"]
}
}
}
json
ローカルにインストールした場合は、次のようにします。
{
"mcpServers": {
"openalex": {
"command": "node",
"args": ["./node_modules/openalex-mcp/build/index.js"]
}
}
}
利用可能なツール
エンティティ検索ツール
すべての検索ツールは、OpenAlex のクエリー文法全体に対応しています。
search_works- 学術成果を検索しますsearch_authors- 研究者および制作者を検索しますsearch_sources- 学術誌、会議、リポジトリを検索しますsearch_institutions- 大学、病院、研究所を検索しますsearch_concepts- 研究トピックを検索しますsearch_publishers- 出版組織を検索しますsearch_funders- 助成を行う機関を検索します
共通パラメーター:
search- 全文検索クエリーfilter- ブール値フィルター(例:concept.id:C12345,from_publication_date:2022-01-01)sort- 並べ替えフィールド。必要に応じて:descを指定します(例:cited_by_count:desc)page/per_page- 標準ページネーション(合計最大10,000件)cursor- 詳細ページネーション(最初の呼び出しには*を使用します)group_by- フィールドによるファセット/集計select- 返すフィールドをカンマ区切りで指定しますsample- ランダムサンプルのサイズ。必要に応じてseedを指定しますmailto- レート制限の引き上げに使用するメールアドレス
単一エンティティの取得
get_entity- OpenAlex ID で単一のエンティティを取得しますentity_type- 次のいずれか:works、authors、sources、institutions、concepts、publishers、fundersopenalex_id- OpenAlex ID(例:W2741809807、A1969205038)
ユーティリティツール
-
autocomplete- エンティティタイプを横断した入力中の検索search- 検索クエリー(必須)type- 検索対象のエンティティタイプ(任意)per_page- 候補の数(最大50件)
-
classify_text- テキストから研究概念を予測しますtitle- 分類するタイトルテキストabstract- 分類する要旨テキスト
使用例
2023年の AI 論文を検索する
{
"tool": "search_works",
"arguments": {
"search": "artificial intelligence",
"filter": "from_publication_date:2023-01-01,to_publication_date:2023-12-31",
"sort": "cited_by_count:desc",
"per_page": 10,
"mailto": "[email protected]"
}
}
機関から著者を検索する
{
"tool": "search_authors",
"arguments": {
"filter": "last_known_institution.id:I27837315",
"sort": "works_count:desc",
"select": "id,display_name,works_count,cited_by_count"
}
}
年ごとの出版動向を取得する
{
"tool": "search_works",
"arguments": {
"filter": "concepts.id:C154945302",
"group_by": "publication_year"
}
}
学術誌名をオートコンプリートする
{
"tool": "autocomplete",
"arguments": {
"search": "nature",
"type": "sources",
"per_page": 5
}
}
研究テキストを分類する
{
"tool": "classify_text",
"arguments": {
"title": "Deep Learning for Medical Image Analysis",
"abstract": "We present a novel approach using convolutional neural networks..."
}
}
クエリー文法のクイックリファレンス
フィルター
- AND 条件は
,で連結します:concept.id:C12345,publication_year:2023 - OR 条件は
|で連結します:type:journal|type:repository !で否定します:authors.id!A12345(著者を除外)- 日付範囲:
from_publication_date:2020-01-01,to_publication_date:2023-12-31
並べ替え
- 昇順:
sort=publication_year - 降順:
sort=cited_by_count:desc - 複数指定:
sort=publication_year:desc,cited_by_count:desc
ページネーション
- 標準:
page=2&per_page=100(最大10,000件) - 詳細:
cursor=*(最初の呼び出し)。以降は返されたnext_cursorを使用します
レート制限
- 匿名:毎秒10リクエスト、1日あたり100,000リクエスト
mailto指定時:毎秒100リクエスト、1日あたり1,000,000リクエスト
API レスポンス形式
すべてのツールは、標準の OpenAlex JSON エンベロープを返します。
{
"meta": {
"count": 249256387,
"db_response_time_ms": 12,
"page": 1,
"per_page": 25,
"next_cursor": "ZjEwMD..."
},
"results": [
{
/* entity object */
}
]
}
開発
# Watch mode during development
npm run watch
# Test with MCP inspector
npm run inspector
# Run basic functionality test
node test-simple.js
環境設定
サーバーは設定用の環境変数に対応しています。.env.example を .env にコピーして設定します。
cp .env.example .env
# Edit .env with your settings
環境変数
OPENALEX_BEARER_TOKEN:認証済み API アクセス用のベアラートークン(任意)OPENALEX_DEFAULT_EMAIL:mailtoパラメーターが指定されていない場合に、レート制限に使用するデフォルトのメールアドレス
API アクセスに関する注意事項
- 無料アクセス:OpenAlex API は無料でオープンです
- レート制限:10 req/sec(匿名)または 100 req/sec(ベアラートークンまたは
mailtoを使用) - 認証:ベアラートークンは環境から自動的に読み込まれます
- レスポンスサイズ:大規模なデータセットでは、
selectパラメーターを使用してレスポンスサイズを制限してください
レスポンスを最適化した例:
{
"tool": "search_works",
"arguments": {
"search": "machine learning",
"select": "id,display_name,publication_year,cited_by_count",
"per_page": 10
}
}
OpenAlex について
OpenAlex は、古代のアレクサンドリア図書館にちなんで名付けられ、非営利団体 OurResearch によって作成された、世界の研究システムを網羅する完全にオープンなカタログです。学術論文、著者、機関などに関する包括的なメタデータを無料で提供しています。
- ウェブサイト:https://openalex.org/
- API ドキュメント:https://docs.openalex.org/
- データソース:Crossref、ORCID、ROR、Microsoft Academic Graph など
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。