mcpField
P
PubMed Enhanced Search Server

PubMed Enhanced Search Server

ローカル
github.com/leescotデータ・分析584 週間前に更新

PubMed Enhanced Search Server について

研究者向けの PubMed MCP サーバーです。キーワード検索や PICO 検索、MeSH 用語の照会、論文数の集計、論文情報の取得に対応します。

主な機能

  1. 01キーワード検索と雑誌指定
  2. 02関連度または日付順の並べ替え
  3. 03MeSH 用語の照会
  4. 04複数語の論文数集計
  5. 05PMID による論文情報の取得
  6. 06同義語を使った PICO 検索

活用シーン

  1. 01テーマや雑誌を指定した論文検索
  2. 02テーマ間の論文数の比較
  3. 03抄録や書誌情報の取得
  4. 04PICO 要素によるエビデンス検索の絞り込み

MCP 対応

MCP クライアントに PubMed の検索・取得ツールを提供し、MeSH 用語の照会、論文数の集計、論文情報の取得、PICO 検索に対応します。PICO の組み合わせごとに検索式と件数も返します。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"pubmed-mcp-smithery": {
"command": "npx",
"args": [
"-y",
"@smithery/cli"
]
}
}
}
起動コマンドnpx -y @smithery/cli

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npm@smithery/cli

ツール

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

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

詳細

PubMed Enhanced Search MCP サーバー

smithery badge

PubMed データベースから学術論文を検索・取得するための拡張ツールを提供する Model Content Protocol サーバーです。MeSH 用語の検索、出版件数の統計、PICO に基づくエビデンス検索などの追加機能も備えています。

機能

  • キーワードで PubMed を検索します。ジャーナルによる絞り込みも指定できます
  • 関連度順または日付順(新しい順/古い順)に検索結果を並べ替えられます
  • 検索語に関連する MeSH(Medical Subject Headings)用語を取得します
  • 複数の検索語の出版件数を取得します(有病率の比較に便利です)
  • 抄録、DOI、著者、キーワードなど、論文の詳細情報を取得します
  • 同義語と組み合わせ検索に対応した、構造化された PICO ベースの検索を実行します

インストール

前提条件
  • Python 3.6+
  • pip
インストール
  1. このリポジトリをクローンします:

    git clone https://github.com/leescot/pubmed-mcp-smithery
    cd pubmed-mcp-smithery
    
  2. 依存関係をインストールします:

    pip install fastmcp requests
    

使用方法

ローカルでの実行

サーバーを起動します:

python pubmed_enhanced_mcp_server.py

自動リロードを有効にした開発モードで実行するには:

mcp dev pubmed_enhanced_mcp_server.py
Claude Desktop への追加

サーバーを追加するには、Claude Desktop の設定ファイル(CLAUDE_DIRECTORY/claude_desktop_config.json)を編集します:

"pubmed-enhanced": {
    "command": "python",
    "args": [
        "/path/pubmed-mcp-smithery/pubmed_enhanced_mcp_server.py"
    ]
}

MCP の機能

サーバーは、以下の主要な機能を提供します:

  1. search_pubmed - キーワードに一致する論文を PubMed で検索します。ジャーナルによる絞り込みも指定できます

    # Example
    results = await search_pubmed(
        keywords=["diabetes", "insulin resistance"],
        journal="Nature Medicine",
        num_results=5,
        sort_by="date_desc"
    )
    
  2. get_mesh_terms - 医学的概念に関連する MeSH 用語を検索します

    # Example
    mesh_terms = await get_mesh_terms("diabetes")
    
  3. get_pubmed_count - 複数の検索語に該当する出版件数を取得します

    # Example
    counts = await get_pubmed_count(["diabetes", "obesity", "hypertension"])
    
  4. format_paper_details - PMID を指定して、特定の論文の詳細情報を取得します

    # Example
    paper_details = await format_paper_details(["12345678", "87654321"])
    
  5. pico_search - 同義語を使用して、構造化された PICO(Population、Intervention、Comparison、Outcome)検索を実行します

    # Example
    pico_results = await pico_search(
        p_terms=["diabetes", "type 2 diabetes", "T2DM"],
        i_terms=["metformin", "glucophage"],
        c_terms=["sulfonylurea", "glipizide"],
        o_terms=["HbA1c reduction", "glycemic control"]
    )
    

PICO 検索機能

PICO 検索ツールを使用すると、研究者は以下の方法でエビデンスに基づく文献検索を実施できます:

  1. PICO の各要素に複数の同義語を指定できます
  2. 各要素内の用語を OR 演算子で組み合わせます
  3. 要素間を AND で組み合わせます(P AND I、P AND I AND C など)
  4. 各組み合わせの検索クエリと出版件数の両方を返します

この方法により、研究上の問いを絞り込み、最も関連性の高い文献を特定できます。

レート制限

NCBI の E-utilities サービスによるレート制限の可能性に対処するため、サーバーにはバックオフ遅延を伴う自動再試行機能が実装されています。

ライセンス

このプロジェクトは BSD 3-Clause License の下でライセンスされています。詳細については LICENSE ファイルをご覧ください。

コメント

MCP は初めてですか?

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

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