u9401066/pubmed-search-mcp · Archived

pubmed-systematic-search

Bounded, reproducible review-seed search using generate_search_queries and unified_search. Triggers: 系統性搜尋, 完整搜尋, 文獻回顧, systematic search, comprehensive, MeSH expansion, 同義詞

First seen Jun 24, 2026

Installation

$ npx skills add u9401066/pubmed-search-mcp --skill pubmed-systematic-search

Stronger alternatives

This repository is archived — consider an actively maintained alternative.

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from u9401066/pubmed-search-mcp · top by installs.

npx skills add u9401066/pubmed-search-mcp

Browse all from u9401066/pubmed-search-mcp

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Repository health

Stars 27
License LICENSE
Default branch master
Open issues 2
Status Archived

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 6,145 B
  • docs SUMMARY.md 237 B

History

  1. First seen on skills.sh
  2. First recorded snapshot · 2 installs

SKILL.md

系統性回顧種子搜尋

描述

這個 workflow 用來建立可重現、可稽核的系統性回顧搜尋種子,而不是宣稱已找完所有文獻。核心做法是先用 generatesearchqueries 取得 MeSH、同義詞與建議查詢,再由 Agent 或使用者組裝 provider-neutral Boolean 查詢,最後以唯一公開的文字文獻搜尋入口 unified_search(options="systematic") 執行有界檢索。

systematic 是 bounded retrieval primitive:公開介面每個來源最多取回 100 筆,適合 review seed 與可重現的 coverage expansion,不代表 exhaustive systematic-review coverage。正式回顧仍需保存完整策略、逐來源檢索日期、後續分頁/補充來源與篩選紀錄。

觸發條件

  • 「系統性搜尋」
  • 「完整搜尋」
  • 「文獻回顧」
  • 「comprehensive search」
  • 「systematic review」
  • 提到 MeSH、同義詞擴展、搜尋策略

正確工作流程

generate_search_queries
→ 整理 MeSH / 同義詞 / suggested_queries
→ 手動或由 Agent 組 provider-neutral Boolean 查詢
→ analyze_search_query
→ unified_search(options="systematic")
→ fetch_article_details / prepare_export / save_pipeline

目前沒有公開的獨立合併工具工作流。每一次 unified_search 本身就會做多來源整合與去重;如果你跑多輪策略,做法應該是比較各輪結果、調整查詢,或把流程保存成 pipeline,而不是依賴舊版 merge 思路。


Step 1: 取得搜尋素材

generate_search_queries(
    topic="remimazolam ICU sedation",
    strategy="comprehensive"
)

strategy 選項

  • comprehensive: 預設,適合完整展開查詢素材;不代表結果已窮盡
  • focused: 收斂到較高證據等級
  • exploratory: 放寬,找更多變體與同義詞

你真正要用的欄位

  • mesh_terms: 標準詞彙與對應同義詞
  • all_synonyms: 可直接組 OR 群組
  • suggested_queries: 當作參考,不是最後答案
  • pubmed_translation: 檢查 PubMed 實際如何理解查詢

Step 2: 組裝 Boolean 查詢

範例:從素材組出跨來源可執行查詢

query = '''
("intensive care" OR ICU OR "critical care")
AND
(remimazolam OR "CNS 7056" OR "ONO 2745")
AND
(sedation OR "procedural sedation")
'''

兩個原則

  1. 主概念之間通常用 AND
  2. 同義詞與別名通常用 OR

PubMed 的 [Title/Abstract][MeSH Terms] 等 field tags 不是 provider-neutral 語法。含這些 tags 的查詢只送 sources="pubmed" 並使用預設 keyword mode;跨來源 systematic leg 使用上面的無欄位標籤 Boolean 查詢,讓各 provider adapter 依自身契約編譯。


Step 3: 執行前先分析

analyze_search_query(query=query)

這一步用來確認:

  • 查詢是否太寬或太窄
  • PubMed translation 是否符合預期
  • 有沒有拼字或概念錯置

Step 4: 執行搜尋

unified_search(
    query=query,
    sources="openalex,semantic_scholar",
    options="systematic",
    limit=100,
    ranking="quality",
    filters="year:2020-2025",
    output_format="json"
)

options="systematic" 會關閉 deep expansion 與自動放寬,並在 I/O 前拒絕不支援此模式的 explicit source。現在的 bounded systematic sources 只有 OpenAlex 與 Semantic Scholar;PubMed、Europe PMC、CORE、Scopus、Web of Science 與 preprint adapters 目前是 keyword-only,若要納入需另跑並標記為 supplemental search。

常用調整方式

  • 想補最新未同行評審研究:另跑 options="preprints" 的 keyword search,並標成補充來源
  • 想做快速探索:另跑 options="shallow",不要把它標成 systematic run
  • systematic mode 已停用自動放寬;不要用放寬後的結果冒充原始策略命中
  • 重視新近性:ranking="recency"
  • 重視證據品質:ranking="quality"

端到端範例

情境:建立 remimazolam ICU sedation 的 bounded review seed

# Step 1: 取得 MeSH 與同義詞素材
materials = generate_search_queries(
    topic="remimazolam ICU sedation",
    strategy="comprehensive"
)

# Step 2: 組裝查詢
query = '''
("intensive care" OR ICU OR "critical care")
AND
(remimazolam OR "CNS 7056" OR "ONO 2745")
AND
(sedation OR "procedural sedation")
'''

# Step 3: 先分析
analyze_search_query(query=query)

# Step 4: 再執行
unified_search(
    query=query,
    sources="openalex,semantic_scholar",
    options="systematic",
    limit=100,
    ranking="quality",
    filters="year:2020-2025",
    output_format="json"
)

PubMed-only fielded leg

如果 protocol 需要 PubMed 欄位限定,另建一個只送 PubMed 的 leg,不要把同一字串傳給其他 provider:

pubmed_fielded_query = '''
("intensive care"[Title/Abstract] OR ICU[Title/Abstract])
AND
(remimazolam[Title/Abstract] OR "CNS 7056"[Title/Abstract])
AND
(sedation[Title/Abstract] OR "procedural sedation"[Title/Abstract])
'''

unified_search(
    query=pubmed_fielded_query,
    sources="pubmed",
    limit=100,
    filters="year:2020-2025",
    output_format="json"
)

如果結果太少或太多

結果太少

  • strategy 改成 exploratory
  • 移除部分限制條件
  • 減少 AND、增加同義詞 OR
  • 移除 clinical_query 或過窄的年齡/性別限制

結果太多

  • strategy 改成 focused
  • 增加主題限定詞
  • 加上 filters="year:...,clinical_query:..."
  • systematic leg 只用 OpenAlex / Semantic Scholar;若使用 PubMed field tags,則另跑 sources="pubmed" 的 keyword leg

可重複使用時

當搜尋策略已經穩定,不要每次重組:

save_pipeline(name="icu_sedation_review", config="...")

之後可以:

unified_search(pipeline="saved:icu_sedation_review")