Pubtator MCP Server について
Pubtator MCP Serverは、PubTator3 APIを利用する非同期Pythonサーバーです。生物医学研究や文献調査向けに、エンティティ検索、論文検索、本文抽出、関係探索を提供します。
主な機能
- 01遺伝子や疾患などの検索
- 02キーワードや関係による文献検索
- 03PubMed/PMC論文本文の抽出
- 04関連エンティティと関係の絞り込み
活用シーン
- 01生物医学概念の識別子検索
- 02関連するPubMed/PMC文献の検索
- 03論文のプレーンテキスト取得
- 04エンティティ間の関係調査
MCP 対応
MCPクライアントに、PubTator3のエンティティ検索、文献検索、論文本文抽出、関連エンティティ検索のツールを提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Pubtator MCP サーバー
このプロジェクトは、PubTator3 API と連携する非同期 Python サーバーを提供します。MCP エージェントプロトコルに対応した複数の生物医学テキストマイニングツールを公開し、エンティティ検索、生物医学文献検索、PubMed/PMC 論文からのテキスト抽出などのタスクをサポートします。
機能
- エンティティのオートコンプリート: 自由形式のテキストクエリを使って、生物医学エンティティ(遺伝子、疾患、化学物質、バリアント)を検索します。
- 文献検索: キーワード、エンティティ ID、またはエンティティ間の関係を使って PubTator3 データベースを検索します。
- 論文の取得: 複数の形式で PubMed/PMC 論文をダウンロードし、テキストを抽出します。
- 関連エンティティの検索: カスタマイズ可能な関係とタイプのフィルターを使って、指定した識別子に関連するエンティティを検索します。
- 非同期かつ高速: ノンブロッキング HTTP リクエストに
aiohttpを使用し、より広範な MCP 環境への統合を想定して設計されています。
利用可能なツール
このサーバーは、MCP プロトコル経由で利用できる PubTator3 API と連携する以下のツールを提供します。これらのツールを使って、生物医学概念の検索、文献検索、全文抽出、エンティティ間の関係の発見にプログラムからアクセスできます。
1. find_entity
- 目的: 自由形式のテキストクエリを使って、特定の生物概念の識別子を検索します。
- 入力:
query(文字列、必須):検索する概念の自由形式のテキスト(例:「breast cancer」、「BRCA1」)。bioconcept(文字列、任意):結果を概念タイプのいずれか('disease'、'gene'、'chemical'、'variant')に限定します。limit(整数、任意):結果の最大数(デフォルトは 10、最大 50)。
- 戻り値:
PubTator 識別子、ラベル、概念タイプを含む、一致したエンティティのリストです。
2. search_pubtator
- 目的: 柔軟なクエリを使って、PubTator3 内の関連する PubMed/PMC 論文を検索します。
- 入力:
query(文字列、必須):自由形式のテキスト、PubTator 概念 ID、または関係クエリ。relation(文字列、任意):特定の関係タイプ(デフォルトは'ANY')。limit(整数、任意):取得する結果数(デフォルトは 10、最大 50)。
- 戻り値:
論文 ID と簡単な概要を含む JSON リストです。
3. get_paper_text
- 目的: PubMed または PMC の論文からテキストコンテンツをダウンロードして抽出します。
- 入力:
pmidまたはpmcid(文字列、必須):論文の識別子(PubMed ID または PMC ID)。
- 戻り値:
利用可能な場合、論文のプレーンテキストコンテンツです。
4. find_related_entities
- 目的: 関係タイプまたはエンティティタイプで絞り込み、特定の PubTator エンティティに関連するエンティティを検索します。
- 入力:
entity_id(文字列、必須):検索する PubTator エンティティ ID(例:@GENE_BRCA1)。relation_type(文字列、任意):関係をタイプで絞り込みます(例:'interacts_with'、'associated_with')。entity_type(文字列、任意):関連エンティティを概念タイプで絞り込みます。
- 戻り値:
関連エンティティ ID と関係の詳細を含む、整形済み JSON です。
各ツールの完全な入力スキーマ、説明、使用例は、server.py 内の list_tools エンドポイントに記載されています。
これらのツールを使って、互換性のあるプラットフォームやエージェントに PubTator3 を活用した高度な生物医学ナレッジへのアクセスを統合できます。
インストール
- インストール 3.10 以降、および必要なライブラリ(下記を参照)。
pip install mcp-server-pubtator3 - サーバーを実行:
mcp-server-pubtator3
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。