masa061580/pubmed-mcp-server
If you are the rightful owner of pubmed-mcp-server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
The Enhanced PubMed Search MCP Server is a powerful tool designed to enhance medical literature searches on PubMed and PubMed Central (PMC), providing researchers and healthcare professionals with efficient literature search and management capabilities.
Enhanced PubMed Search MCP Server
医学文献検索のための高機能MCPサーバー - 完全セットアップガイド
📖 概要
このMCP(Model Context Protocol)サーバーは、PubMedおよびPubMed Central(PMC)での医学文献検索を強化し、研究者や医療従事者が効率的に文献を検索・管理できるツールです。
🌟 主要機能
🔬 拡張PubMed検索
- 完全な要約取得: efetchを使用した詳細な要約の取得
- MeSH用語抽出: 医学件名標目(MeSH)の自動抽出
- キーワード抽出: 論文のキーワードを自動取得
- オープンアクセス検出: フルテキストが利用可能な論文の識別
📖 PMCフルテキスト検索
- オープンアクセス論文: PMCで利用可能なフルテキスト論文の検索
- フルテキスト内検索: タイトルや要約だけでなく、本文も検索対象
💾 データベース機能
- 検索結果の保存: SQLiteデータベースによる永続化(最大500件)
- 検索履歴管理: 過去の検索結果の管理と再取得
- ページネーション: 大量の検索結果の効率的な表示
🔍 詳細情報取得
- 完全要約取得: 特定のPMIDの詳細情報取得(数値・文字列両対応)
- DOI・PMCIDサポート: 各種識別子による論文特定
🚀 完全セットアップガイド
ステップ1: Pythonのインストール
Windows環境の場合
-
Python公式サイトからダウンロード
- Python公式サイトにアクセス
- 「Download Python 3.11.x」ボタンをクリック(3.8以上であれば動作)
-
インストール実行
- ダウンロードしたインストーラーを実行
- ⚠️ 重要: 「Add Python to PATH」にチェックを入れる
- 「Install Now」をクリック
-
インストール確認
# コマンドプロンプトまたはPowerShellで実行 python --version pip --version
macOS環境の場合
-
Homebrewを使用(推奨)
# Homebrewのインストール(未インストールの場合) /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" # Pythonのインストール brew install python
-
または公式インストーラー
- Python公式サイトからmacOS版をダウンロード
ステップ2: 必要なPythonパッケージのインストール
# 必要なパッケージをインストール
pip install fastmcp httpx
ステップ3: プロジェクトファイルの準備
-
作業ディレクトリの作成
# 任意の場所にプロジェクトフォルダを作成 mkdir "/path/to/your/pubmed-mcp-server" cd "/path/to/your/pubmed-mcp-server"
-
GitHubからファイルをダウンロード
# Gitクローン(推奨) git clone https://github.com/your-username/pubmed-mcp-server.git cd pubmed-mcp-server # または、ZIPファイルをダウンロードして解凍
-
ファイル構成の確認
pubmed-mcp-server/ ├── pubmed.py # メインのPythonスクリプト ├── README.md # このファイル └── requirements.txt # 依存関係リスト
ステップ4: Claude Desktopの設定
4-1. Claude Desktop設定ファイルの場所
Windows:
%APPDATA%\Claude\claude_desktop_config.json
macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
4-2. 設定ファイルの編集
設定ファイルを開き、以下のJSON設定を追加してください:
⚠️ Windowsでは必ずPythonの絶対パスを指定してください
{
"mcpServers": {
"pubmed": {
"command": "C:\\Users\\YourName\\AppData\\Local\\Programs\\Python\\Python311\\python.exe",
"args": ["/path/to/your/pubmed-mcp-server/pubmed.py"],
"env": {
"PYTHONPATH": "/path/to/your/pubmed-mcp-server"
}
}
}
}
⚠️ 重要な注意点:
- Windows: Pythonの絶対パスが必要(
python
コマンドでは動作しません) - macOS/Linux:
python3
またはpython
コマンドが使用可能 - パスは必ずあなたの環境に合わせて変更してください
- Windowsの場合、バックスラッシュ(
\
)は二重にする:\\
4-3. 設定例(環境別)
Windows環境:
{
"mcpServers": {
"pubmed": {
"command": "C:\\Users\\YourName\\AppData\\Local\\Programs\\Python\\Python311\\python.exe",
"args": ["C:\\path\\to\\your\\pubmed-mcp-server\\pubmed.py"]
}
}
}
macOS環境:
{
"mcpServers": {
"pubmed": {
"command": "python3",
"args": ["/Users/YourName/path/to/pubmed-mcp-server/pubmed.py"]
}
}
}
Linux環境:
{
"mcpServers": {
"pubmed": {
"command": "python3",
"args": ["/home/username/path/to/pubmed-mcp-server/pubmed.py"]
}
}
}
4-4. Pythonパスの確認方法
Windows:
# Pythonのインストール場所を確認
where python
# または
py -c "import sys; print(sys.executable)"
macOS/Linux:
# Pythonのインストール場所を確認
which python3
# または
python3 -c "import sys; print(sys.executable)"
ステップ5: 動作確認
-
Claude Desktopを再起動
- アプリケーションを完全に終了
- 再度起動
-
接続確認
- Claude Desktopでチャットを開始
- 左下に「🔧」アイコンが表示されることを確認
-
基本テスト
search_pubmed("COVID-19 vaccine", 5)
💡 利用可能な機能
1. PubMed検索 (search_pubmed
)
基本的な使用法:
search_pubmed("covid vaccine", 10)
高度な検索構文:
- シンプル検索:
"covid vaccine"
- フィールド指定:
"CRISPR"[Title]
- 日付範囲:
"therapy AND 2023[Date - Publication]"
- 複合検索:
"gene therapy OR gene editing"
- 著者検索:
"Smith J"[Author]
- ジャーナル指定:
"Nature"[Journal]
パラメータ:
query
: 検索クエリ(必須)max_results
: 最大結果数(デフォルト: 10、最大: 500)
2. PMCフルテキスト検索 (search_pmc_fulltext
)
使用法:
search_pmc_fulltext("machine learning medical imaging", 20)
オープンアクセス論文のフルテキストを検索します。
3. 保存された検索結果の取得 (retrieve_pubmed_results
)
使用法:
retrieve_pubmed_results(search_id=1, page=1, results_per_page=10)
パラメータ:
search_id
: 検索ID(必須)page
: ページ番号(デフォルト: 1)results_per_page
: ページあたりの結果数(デフォルト: 10、最大: 50)
4. 検索履歴の表示 (list_pubmed_searches
)
使用法:
list_pubmed_searches()
過去の検索履歴と保存された結果の一覧を表示します。
5. 完全要約の取得 (get_full_abstract
)
✅ 改善版 - 数値と文字列の両方に対応:
# どちらの形式でも動作します
get_full_abstract(35504917) # 数値形式
get_full_abstract("35504917") # 文字列形式
6. 使用方法のヘルプ (get_abstract_help
)
使用法:
get_abstract_help()
get_full_abstract
機能の使用方法と例を表示します。
📊 検索結果の形式
各論文の検索結果には以下の情報が含まれます:
**Title:** CRISPR-Cas9遺伝子編集技術の医療応用
**Authors:** 田中太郎, 佐藤花子, 山田次郎
**Journal:** Nature Medicine (2023 Dec)
**PMID:** 12345678 | **PMCID:** PMC9876543 | **DOI:** 10.1038/s41591-023-12345-6
**Abstract:** CRISPR-Cas9技術は...
🔓 **Full Text Available:** https://www.ncbi.nlm.nih.gov/pmc/articles/PMC9876543/
✅ **Open Access**
**PubMed Link:** https://pubmed.ncbi.nlm.nih.gov/12345678/
**Keywords:** CRISPR-Cas9, 遺伝子編集, 治療
**MeSH Terms:** Gene Editing, CRISPR-Cas Systems, Therapeutic Applications
🗃️ データベース構造
searchesテーブル
カラム | 型 | 説明 |
---|---|---|
id | INTEGER | 主キー |
query | TEXT | 検索クエリ |
search_type | TEXT | 検索タイプ(pubmed/pmc) |
timestamp | TEXT | 検索日時 |
result_count | INTEGER | 取得結果数 |
total_found | INTEGER | 総検索結果数 |
articlesテーブル
カラム | 型 | 説明 |
---|---|---|
id | INTEGER | 主キー |
search_id | INTEGER | 検索ID(外部キー) |
pmid | TEXT | PubMed識別子 |
pmcid | TEXT | PMC識別子 |
title | TEXT | タイトル |
authors | TEXT | 著者 |
journal | TEXT | ジャーナル |
pub_date | TEXT | 発行日 |
doi | TEXT | DOI |
abstract | TEXT | 要約 |
keywords | TEXT | キーワード |
mesh_terms | TEXT | MeSH用語 |
is_open_access | BOOLEAN | オープンアクセス |
pmc_available | BOOLEAN | PMC利用可能 |
データベースファイルの場所:
Windows: C:\Users\[ユーザー名]\AppData\Local\AnthropicClaude\app-x.x.x\enhanced_pubmed_searches.db
macOS: ~/Library/Application Support/AnthropicClaude/app-x.x.x/enhanced_pubmed_searches.db
Linux: ~/.config/AnthropicClaude/app-x.x.x/enhanced_pubmed_searches.db
🔧 トラブルシューティング
よくある問題と解決方法
1. "python: command not found"エラー
原因: Pythonがインストールされていないか、PATHが設定されていない 解決法:
- Pythonを再インストールし、「Add to PATH」にチェック
- または、設定で
python3
を使用
2. "ModuleNotFoundError: No module named 'fastmcp'"
原因: 必要なパッケージがインストールされていない 解決法:
pip install fastmcp httpx
3. Claude DesktopでMCPサーバーが認識されない
原因: 設定ファイルの書式エラーまたはパスの間違い 解決法:
- JSONの書式を確認(カンマ、括弧の位置)
- ファイルパスを絶対パスで指定
- Windows: Pythonの絶対パスを使用(
python
コマンドは不可) - Claude Desktopを完全に再起動
4. "Invalid PMID format"エラー
原因: PMIDが正しい形式ではない 解決法:
- PMIDは8桁の数値であることを確認
- 数値形式(
12345678
)または文字列形式("12345678"
)で入力
5. 検索結果が表示されない
原因: ネットワーク接続またはNCBI APIの問題 解決法:
- インターネット接続を確認
- しばらく時間をおいて再試行
ログの確認方法
Windows:
# コマンドプロンプトで実行:
"C:\Users\YourName\AppData\Local\Programs\Python\Python311\python.exe" "C:\path\to\your\pubmed-mcp-server\pubmed.py"
macOS/Linux:
# ターミナルで実行:
python3 /path/to/your/pubmed-mcp-server/pubmed.py
🌐 API制限と配慮事項
NCBI API制限
- レート制限: 3リクエスト/秒(自動的に制御)
- タイムアウト: 30秒
- User-Agent: 適切なUser-Agentヘッダーを設定
エラーハンドリング
- 接続エラー: ネットワーク問題への対応
- API制限: レート制限の自動調整
- データ解析エラー: XMLパース失敗時の処理
📝 使用例
基本的なCOVID-19ワクチン研究の検索
result = search_pubmed("COVID-19 vaccine efficacy", 15)
特定ジャーナルでの2023年の研究
result = search_pubmed("cancer immunotherapy AND 2023[Date - Publication] AND Nature[Journal]", 10)
PMCでのフルテキスト検索
result = search_pmc_fulltext("artificial intelligence medical diagnosis", 20)
保存された検索結果の取得
searches = list_pubmed_searches() # 検索履歴の確認
result = retrieve_pubmed_results(search_id=3, page=2) # 特定検索の2ページ目
特定論文の詳細情報取得
# 両方の形式が利用可能
abstract = get_full_abstract(35504917) # 数値形式
abstract = get_full_abstract("35504917") # 文字列形式
📄 ライセンス
このプロジェクトはオープンソースです。研究および教育目的での使用を想定しています。
⚠️ 免責事項
この検索結果は情報提供のみを目的としており、医学的助言とみなすべきではありません。医学的な懸念については、医療従事者にご相談ください。
🤝 貢献
バグ報告や機能改善の提案は歓迎します。
📈 更新履歴
v1.2 (最新)
get_full_abstract
機能の改善(数値・文字列の両方に対応)get_abstract_help
ヘルプ機能の追加- 最大保存件数を500件に拡張
- エラーハンドリングの改善
v1.1
- 完全な要約取得機能の追加
- PMC統合の実装
- MeSH用語とキーワードの抽出
- データベース機能の強化
- エラーハンドリングの改善
v1.0
- 基本的なPubMed検索機能
- 初期リリース
📞 サポート
問題が発生した場合は、以下を確認してください:
- Pythonのバージョン: 3.8以上
- 必要パッケージ:
pip list
で確認 - 設定ファイル: JSON形式が正しいか
- ファイルパス: 絶対パスで正確に指定
- Claude Desktopの再起動: 設定変更後は必須
これで完全なセットアップと使用が可能になります!🎉