mcpField
P
PubMed MCP Server

PubMed MCP Server

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

PubMed MCP Server について

PubMed MCP Server は、研究・医療分野のユーザーが MCP 経由で PubMed 文献を検索、分析できるサーバーです。詳細な絞り込みに加え、記事取得、引用出力、関連文献検索、トレンド分析を備えています。

主な機能

  1. 01日付、著者、雑誌、MeSH による検索
  2. 02記事詳細と抄録の取得
  3. 03複数形式での引用出力
  4. 04関連文献と著者の論文検索
  5. 05出版トレンドの分析
  6. 06結果のキャッシュとレート制限

活用シーン

  1. 01研究課題に合う文献の検索
  2. 02PMID による記事メタデータと抄録の取得
  3. 03研究文書用の引用情報の準備
  4. 04特定テーマの出版動向の確認

MCP 対応

PubMed の検索、記事、引用、著者、関連文献、MeSH、トレンド分析のツールを MCP クライアントに公開します。

設定

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

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

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

リポジトリ

ツール

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

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

詳細

PubMed MCP サーバー

CI

PubMed の文献検索と管理に対応する、包括的な Model Context Protocol(MCP)サーバーです。MCP プロトコルを通じて、高度な検索機能、引用形式の整形、研究分析ツールを提供します。

PubMed Server MCP server

機能

  • 高度な PubMed 検索:日付範囲、論文の種類、著者、ジャーナル、MeSH 用語などの複雑なフィルターを使って検索できます
  • 論文の詳細:特定の PMID の抄録、著者、メタデータなど、詳細な情報を取得できます
  • 引用のエクスポート:複数の形式(BibTeX、APA、MLA、Chicago、Vancouver、EndNote、RIS)で引用をエクスポートできます
  • 著者検索:共著者の情報を含め、特定の著者による論文を検索できます
  • 関連記事:特定の PMID に関連する論文を見つけられます
  • MeSH 用語検索:Medical Subject Headings を検索して調べられます
  • ジャーナル分析:特定のジャーナルの指標や最近の論文を取得できます
  • 研究トレンド:経時的な出版トレンドを分析できます
  • 論文の比較:複数の論文を並べて比較できます
  • キャッシュ:パフォーマンスを向上させるキャッシュ機能を内蔵しています
  • レート制限:設定可能なレート制限により、API を適切に利用できます

インストール

前提条件
  • Python 3.8 以上
  • NCBI API キー(無料の登録が必要です)
  • NCBI API での識別に使用する有効なメールアドレス
クイックスタート
  1. リポジトリをクローンします:

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

    pip install -r requirements.txt
    
  3. 環境変数を設定します:

    cp env.example .env
    # Edit .env with your NCBI API key and email
    
  4. サーバーを起動します:

    python -m src.main
    
開発用インストール

追加ツールを使用した開発の場合:

make install-dev

または、手動でインストールします:

pip install -r requirements.txt
pip install -e .
pip install black isort mypy flake8

設定

プロジェクトのルートに .env ファイルを作成し、次の変数を設定します:

# Required
PUBMED_API_KEY=your_ncbi_api_key_here
[email protected]

# Optional
CACHE_TTL=300
CACHE_MAX_SIZE=1000
RATE_LIMIT=3.0
LOG_LEVEL=info
NCBI API キーの取得
  1. NCBI アカウント設定にアクセスします
  2. サインインするか、アカウントを作成します
  3. 「API Key Management」に移動します
  4. 新しい API キーを作成します
  5. キーを .env ファイルにコピーします

使用方法

利用可能なツール

このサーバーは、次の MCP ツールを提供します:

1. search_pubmed

高度なフィルターオプションを使って PubMed を検索します。

{
  "query": "machine learning healthcare",
  "max_results": 20,
  "date_range": "5y",
  "article_types": ["Journal Article", "Review"],
  "has_abstract": true
}
2. get_article_details

特定の PMID の詳細情報を取得します。

{
  "pmids": ["12345678", "87654321"],
  "include_abstracts": true,
  "include_citations": false
}
3. search_by_author

特定の著者による論文を検索します。

{
  "author_name": "Smith J",
  "max_results": 10,
  "include_coauthors": true
}
4. export_citations

さまざまな形式で引用をエクスポートします。

{
  "pmids": ["12345678"],
  "format": "bibtex",
  "include_abstracts": false
}
5. find_related_articles

特定の PMID に関連する論文を見つけます。

{
  "pmid": "12345678",
  "max_results": 10
}
6. search_mesh_terms

MeSH 用語を使って検索します。

{
  "term": "Machine Learning",
  "max_results": 20
}
7. analyze_research_trends

経時的な出版トレンドを分析します。

{
  "topic": "artificial intelligence",
  "years_back": 5,
  "include_subtopics": false
}
MCP クライアントを使った使用例
import asyncio
from mcp import ClientSession, StdioServerParameters
from mcp.client.stdio import stdio_client

async def main():
    server_params = StdioServerParameters(
        command="python",
        args=["-m", "src.main"]
    )

    async with stdio_client(server_params) as (read, write):
        async with ClientSession(read, write) as session:
            # Initialize the session
            await session.initialize()

            # Search PubMed
            result = await session.call_tool(
                "search_pubmed",
                {
                    "query": "COVID-19 vaccines",
                    "max_results": 5,
                    "date_range": "1y"
                }
            )

            print(result.content[0].text)

if __name__ == "__main__":
    asyncio.run(main())

開発

テストの実行
# Run all tests
make test

# Run with coverage
make test-coverage

# Run specific test types
python run_tests.py unit
python run_tests.py integration
python run_tests.py coverage
コード品質
# Format code
make format

# Run linting
make lint

# Type checking
mypy src/
プロジェクト構成
pubmed-mcp/
├── src/
│   ├── __init__.py
│   ├── main.py              # Entry point
│   ├── server.py            # MCP server implementation
│   ├── models.py            # Pydantic models
│   ├── pubmed_client.py     # PubMed API client
│   ├── tool_handler.py      # Tool request handlers
│   ├── citation_formatter.py # Citation formatting
│   ├── tools.py             # Tool definitions
│   └── utils.py             # Utility functions
├── tests/                   # Test suite
├── requirements.txt         # Dependencies
├── setup.py                 # Package setup
├── pyproject.toml          # Modern Python config
├── Makefile                # Development commands
├── Dockerfile              # Container setup
└── README.md               # This file

Docker

ビルドと実行
# Build Docker image
make docker-build

# Run with environment variables
make docker-run PUBMED_API_KEY=your_key PUBMED_EMAIL=your_email
Docker Compose
version: '3.8'
services:
  pubmed-mcp:
    build: .
    environment:
      - PUBMED_API_KEY=your_key
      - PUBMED_EMAIL=your_email
      - LOG_LEVEL=info
    volumes:
      - ./data:/app/data

API リファレンス

検索パラメーター
  • query:PubMed 構文を使った検索クエリ
  • max_results:結果の最大件数(1~200)
  • sort_order:並べ替え順(関連度、出版日、著者、ジャーナル、タイトル)
  • date_from/date_to:日付範囲のフィルター
  • date_range:定義済みの日付範囲(1y、5y、10y、all)
  • article_types:出版物の種類によるフィルター
  • authors:著者名によるフィルター
  • journals:ジャーナル名によるフィルター
  • mesh_terms:MeSH 用語によるフィルター
  • language:言語のフィルター(例:'eng'、'fre')
  • has_abstract:抄録のある論文のみ
  • has_full_text:全文のある論文のみ
  • humans_only:ヒトを対象とする研究のみ
引用形式
  • bibtex:BibTeX 形式
  • apa:APA スタイル
  • mla:MLA スタイル
  • chicago:Chicago スタイル
  • vancouver:Vancouver スタイル
  • endnote:EndNote 形式
  • ris:RIS 形式

コントリビューション

  1. リポジトリをフォークします
  2. フィーチャーブランチを作成します
  3. 変更を加えます
  4. 新しい機能のテストを追加します
  5. テストスイートを実行します
  6. プルリクエストを送信します
開発ガイドライン
  • PEP 8 のスタイルガイドラインに従います
  • すべての関数に型ヒントを追加します
  • 包括的なテストを作成します
  • 新機能についてドキュメントを更新します
  • Conventional Commits のメッセージを使用します

ライセンス

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

サポート

謝辞

変更履歴

変更履歴の詳細は CHANGELOG.md をご覧ください。


注:このサーバーを使用するには有効な NCBI API キーが必要で、NCBI の利用ガイドラインに従います。API のレート制限と利用規約を遵守してください。

コメント

MCP は初めてですか?

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

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