
Pubmed Database
Search MEDLINE and PubMed with MeSH-aware queries, PMIDs, and NCBI E-utilities instead of generic web search for life-sciences literature.
Overview
Pubmed Database is an agent skill for the Idea phase that runs PubMed and NCBI E-utilities searches with MeSH-aware queries, PMIDs, and repeatable biomedical literature workflows.
Install
npx skills add https://github.com/affaan-m/everything-claude-code --skill pubmed-databaseWhat is this skill?
- PubMed query construction with Boolean concepts and field tags ([ti], [mh], [pt], [dp], etc.)
- MeSH and major-topic filters for precision systematic-review style searches
- PMID lookup, abstracts, metadata, and related-citation retrieval workflows
- Direct NCBI E-utilities usage from Python, shell, or HTTP clients
- Repeatable search strings for monitoring and review passes
Adoption & trust: 1.2k installs on skills.sh; 210k GitHub stars; 3/3 security scanners passed (skills.sh audits).
What problem does it solve?
You need peer-reviewed life-sciences evidence but generic search or hallucinated citations cannot deliver reproducible PubMed queries or API results.
Who is it for?
Health-tech founders, bioinformatics side projects, and agents tasked with literature review, PMID lookup, or MEDLINE monitoring.
Skip if: General news, non-biomedical SEO research, or tasks that only need casual web summaries without PubMed identifiers.
When should I use this skill?
Searching MEDLINE, building MeSH-aware PubMed queries, looking up PMIDs, or calling NCBI E-utilities from code or shell.
What do I get? / Deliverables
You get validated PubMed search strings, field-tagged filters, and E-utilities-oriented steps suitable for abstracts, PMIDs, and systematic review passes.
- PubMed query strings with field tags
- Search result identifiers and metadata retrieval steps
- Repeatable monitoring or review search templates
Recommended Skills
Journey fit
Biomedical evidence gathering happens before you commit to a health, bio, or research product direction, so Idea → research is the natural shelf. Research subphase covers systematic literature passes, citation lookup, and repeatable query strings agents can re-run.
How it compares
Use instead of broad web-search skills when citations must map to MEDLINE, MeSH, and NCBI E-utilities APIs.
Common Questions / FAQ
Who is pubmed-database for?
Solo builders and agents working on biomedical products, research tooling, or scientific writing who must query PubMed correctly.
When should I use pubmed-database?
During Idea research for competitor and evidence scans, when building systematic-review search strings, or when automating PMID and abstract retrieval via E-utilities.
Is pubmed-database safe to install?
Network access to NCBI is required for live queries; review the Security Audits panel on this Prism page and scope API keys and rate limits yourself.
SKILL.md
READMESKILL.md - Pubmed Database
# PubMed Database Use this skill when a task needs biomedical literature from PubMed rather than general web search. ## When to Use - Searching MEDLINE or life-sciences literature. - Building PubMed queries with MeSH terms, field tags, dates, or article types. - Looking up PMIDs, abstracts, publication metadata, or related citations. - Running systematic-review search passes that need repeatable search strings. - Using NCBI E-utilities directly from Python, shell, or another HTTP client. ## Query Construction Start with the research question, split it into concepts, then combine concepts with Boolean operators. ```text concept_1 AND concept_2 AND filter synonym_a OR synonym_b NOT exclusion_term ``` Useful PubMed field tags: - `[ti]`: title - `[ab]`: abstract - `[tiab]`: title or abstract - `[au]`: author - `[ta]`: journal title abbreviation - `[mh]`: MeSH term - `[majr]`: major MeSH topic - `[pt]`: publication type - `[dp]`: date of publication - `[la]`: language Examples: ```text diabetes mellitus[mh] AND treatment[tiab] AND systematic review[pt] AND 2023:2026[dp] (metformin[nm] OR insulin[nm]) AND diabetes mellitus, type 2[mh] AND randomized controlled trial[pt] smith ja[au] AND cancer[tiab] AND 2026[dp] AND english[la] ``` ## MeSH and Subheadings Prefer MeSH when the concept has a stable controlled-vocabulary term. Combine MeSH with title/abstract terms when the topic is new or terminology varies. Correct subheading syntax puts the subheading before the field tag: ```text diabetes mellitus, type 2/drug therapy[mh] cardiovascular diseases/prevention & control[mh] ``` Use `[majr]` only when the topic must be central to the paper. It can improve precision but may miss relevant work. ## Filters Publication types: - `clinical trial[pt]` - `meta-analysis[pt]` - `randomized controlled trial[pt]` - `review[pt]` - `systematic review[pt]` - `guideline[pt]` Date filters: ```text 2026[dp] 2020:2026[dp] 2026/03/15[dp] ``` Availability filters: ```text free full text[sb] hasabstract[text] ``` ## E-utilities Workflow NCBI E-utilities supports repeatable API workflows: 1. `esearch.fcgi`: search and return PMIDs. 2. `esummary.fcgi`: return lightweight article metadata. 3. `efetch.fcgi`: fetch abstracts or full records in XML, MEDLINE, or text. 4. `elink.fcgi`: find related articles and linked resources. Use an email and API key for production scripts. Store API keys in environment variables, never in committed files or command history. ```python import os import time import requests BASE = "https://eutils.ncbi.nlm.nih.gov/entrez/eutils" def esearch(query: str, retmax: int = 20) -> list[str]: params = { "db": "pubmed", "term": query, "retmode": "json", "retmax": retmax, "tool": "ecc-pubmed-search", "email": os.environ.get("NCBI_EMAIL", ""), } api_key = os.environ.get("NCBI_API_KEY") if api_key: params["api_key"] = api_key response = requests.get(f"{BASE}/esearch.fcgi", params=params, timeout=30) response.raise_for_status() time.sleep(0.35) return response.json()["esearchresult"]["idlist"] pmids = esearch("hypertension[mh] AND randomized controlled trial[pt] AND 2024:2026[dp]") print(pmids) ``` For batches, prefer NCBI history server parameters (`usehistory=y`, `WebEnv`, `query_key`) instead of passing very long PMID lists through URLs. ## Output Discipline For each search pass, record: - exact search string - database searched - date searched - filters used - result count - export format - any manual exclusions Example: ```markdown | Database | Date searched | Query | Filters | Results | | --- | --- | --- | --- | ---: | | PubMed | 2026-05-11 | `sickle cell disease[mh] AND CRISPR[tiab]` | 2020:20