スキル一覧に戻る
u9401066

pubmed-multi-source-search

by u9401066

MCP server for PubMed/NCBI literature search with PICO analysis, search strategies, and session management

0🍴 0📅 2026年1月22日
GitHubで見るManusで実行

SKILL.md


name: pubmed-multi-source-search description: Cross-database search using multiple academic sources. Triggers: 跨資料庫, multi-source, Semantic Scholar, OpenAlex, CORE, Europe PMC, 綜合搜尋

多來源綜合搜尋

描述

整合 PubMed、Europe PMC、CORE、Semantic Scholar、OpenAlex 等多個學術資料庫,進行全面的跨來源搜尋。

觸發條件

  • 「搜尋所有來源」
  • 「跨資料庫搜尋」
  • 「找更多來源」
  • 提到 Semantic Scholar、OpenAlex、CORE
  • 需要開放取用論文

資料庫特色比較

資料庫收錄量特色最適合
PubMed35M+生物醫學權威臨床/基礎醫學
Europe PMC33M+含預印本、全文歐洲研究、預印本
CORE200M+最大 OA 庫開放取用全文
Semantic Scholar200M+AI 分析、引用圖譜跨領域、影響力分析
OpenAlex250M+開放學術圖譜大規模分析、趨勢研究

各資料庫工具

PubMed(核心)

search_literature(query="remimazolam sedation", limit=30)
generate_search_queries(topic="remimazolam")  # MeSH 擴展

Europe PMC

# 搜尋(含預印本)
search_europe_pmc(query="remimazolam", limit=30)

# 取得全文
get_europe_pmc_fulltext(pmcid="PMC6939411")

# 引用資料
get_europe_pmc_citations(pmid="30217674")

CORE

# 搜尋
search_core(query="machine learning radiology", limit=30)

# 全文搜尋
search_core_fulltext(query="adverse events", limit=20)

# 取得全文
get_core_fulltext(core_id="12345678")

# 用標題找
find_in_core(title="Remimazolam versus midazolam...")

Semantic Scholar

# 搜尋
search_semantic_scholar(query="deep learning medical imaging", limit=30)

# 論文詳情(含引用分析)
get_semantic_scholar_paper(paper_id="...")

OpenAlex

# 搜尋
search_openalex(query="CRISPR gene editing", limit=30)

# 作品詳情
get_openalex_work(work_id="W2741809807")

# 作者資訊
search_openalex_authors(query="Jennifer Doudna")

跨來源搜尋策略

策略 1:互補搜尋

不同資料庫強項不同,互相補充:

# PubMed:生物醫學文獻(權威性)
pm_results = search_literature(query="COVID-19 vaccine efficacy", limit=50)

# Europe PMC:預印本(最新研究)
epmc_results = search_europe_pmc(query="COVID-19 vaccine efficacy", source="preprint", limit=30)

# Semantic Scholar:跨領域(含 CS、工程)
ss_results = search_semantic_scholar(query="COVID-19 vaccine efficacy", limit=30)

# CORE:開放取用全文
core_results = search_core(query="COVID-19 vaccine efficacy", limit=30)

策略 2:全文優先

需要全文時的搜尋順序:

# Step 1: PubMed 搜尋建立基礎列表
results = search_literature(query="...", limit=50)

# Step 2: 分析全文可用性
access = analyze_fulltext_access(pmids="last")

# Step 3: Europe PMC 補充全文
for pmid in access["subscription_required_pmids"]:
    epmc = search_europe_pmc(query=f"EXT_ID:{pmid}")
    
# Step 4: CORE 最後嘗試
for pmid in still_missing:
    details = fetch_article_details(pmids=pmid)
    core = find_in_core(title=details["articles"][0]["title"])

策略 3:影響力分析

結合 Semantic Scholar 的引用分析:

# PubMed 搜尋
pm = search_literature(query="...", limit=30)

# 取得 Semantic Scholar 的影響力指標
for article in pm["articles"]:
    ss = search_semantic_scholar(query=article["title"], limit=1)
    if ss["papers"]:
        details = get_semantic_scholar_paper(paper_id=ss["papers"][0]["paperId"])
        print(f"Citations: {details['citationCount']}")
        print(f"Influential Citations: {details['influentialCitationCount']}")

完整跨來源工作流程

情境:全面搜尋某主題

# Step 1: PubMed 核心搜尋
pm_results = search_literature(
    query="machine learning drug discovery",
    limit=50
)

# Step 2: 並行搜尋其他來源
epmc_results = search_europe_pmc(query="machine learning drug discovery", limit=30)
core_results = search_core(query="machine learning drug discovery", limit=30)
ss_results = search_semantic_scholar(query="machine learning drug discovery", limit=30)
oa_results = search_openalex(query="machine learning drug discovery", limit=30)

# Step 3: 整合結果
all_titles = set()
unique_papers = []

for source, results in [
    ("PubMed", pm_results),
    ("Europe PMC", epmc_results),
    ("CORE", core_results),
    ("Semantic Scholar", ss_results),
    ("OpenAlex", oa_results)
]:
    for paper in results["articles"]:
        title_key = paper["title"].lower()[:50]  # 標題前50字作為key
        if title_key not in all_titles:
            all_titles.add(title_key)
            paper["source"] = source
            unique_papers.append(paper)

print(f"Total unique papers: {len(unique_papers)}")

各來源的獨特功能

Europe PMC 獨有

# 預印本搜尋
search_europe_pmc(query="...", source="preprint")

# 註解/評論
search_europe_pmc(query="...", has_annotations=True)

# 資料補充材料
get_europe_pmc_supplementary(pmcid="PMC...")

CORE 獨有

# 全文內容搜尋
search_core_fulltext(query="specific methodology term")

# 大規模開放取用
search_core(query="...", open_access=True)

Semantic Scholar 獨有

# 影響力引用(不只是數量,而是「有影響力的」引用)
paper = get_semantic_scholar_paper(paper_id="...")
print(paper["influentialCitationCount"])

# AI 生成摘要
print(paper["tldr"])  # Too Long; Didn't Read

# 引用意圖分析
for citation in paper["citations"]:
    print(citation["intent"])  # methodology, background, result

OpenAlex 獨有

# 作者分析
author = search_openalex_authors(query="Jennifer Doudna")[0]
print(f"h-index: {author['hIndex']}")
print(f"Works count: {author['worksCount']}")

# 機構分析
works = search_openalex(query="...", institution="Harvard")

# 開放取用狀態詳情
work = get_openalex_work(work_id="...")
print(work["open_access"]["oa_status"])  # gold, green, hybrid, closed

結果整合技巧

去重方法

def deduplicate_papers(all_results):
    """基於標題相似度去重"""
    seen_titles = {}
    unique = []
    
    for paper in all_results:
        # 正規化標題
        title_key = paper["title"].lower()
        title_key = re.sub(r'[^\w\s]', '', title_key)[:100]
        
        if title_key not in seen_titles:
            seen_titles[title_key] = paper
            unique.append(paper)
        else:
            # 合併來源資訊
            seen_titles[title_key]["sources"].append(paper["source"])
    
    return unique

排序優先級

def score_paper(paper):
    """計算論文優先分數"""
    score = 0
    
    # 多來源找到 = 更重要
    score += len(paper.get("sources", [])) * 10
    
    # 有全文 = 更有用
    if paper.get("fulltext_available"):
        score += 20
    
    # 高引用 = 更有影響力
    score += min(paper.get("citation_count", 0) / 10, 50)
    
    # 最近發表 = 更新穎
    if paper.get("year", 0) >= 2023:
        score += 15
    
    return score

# 排序
papers.sort(key=score_paper, reverse=True)

使用場景建議

需求推薦來源組合
臨床研究PubMed + Europe PMC
跨領域研究Semantic Scholar + OpenAlex
開放取用優先CORE + Europe PMC
最新研究Europe PMC (preprint)
影響力分析Semantic Scholar + OpenAlex
全面覆蓋全部五個來源

小技巧

1. 並行搜尋

# 同時搜尋多個來源(並行呼叫)
# 大幅減少等待時間

2. 先 PubMed 後擴展

# PubMed 結果最權威
# 其他來源用於補充和取得全文

3. 標題匹配找全文

# PubMed 找到但無全文 → 用標題在 CORE 搜尋
find_in_core(title="exact paper title")

4. 引用分析用 Semantic Scholar

# 它的 influentialCitationCount 比單純計數更有意義

スコア

総合スコア

75/100

リポジトリの品質指標に基づく評価

SKILL.md

SKILL.mdファイルが含まれている

+20
LICENSE

ライセンスが設定されている

+10
説明文

100文字以上の説明がある

+10
人気

GitHub Stars 100以上

0/15
最近の活動

1ヶ月以内に更新

+10
フォーク

10回以上フォークされている

0/5
Issue管理

オープンIssueが50未満

+5
言語

プログラミング言語が設定されている

+5
タグ

1つ以上のタグが設定されている

+5

レビュー

💬

レビュー機能は近日公開予定です