Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
beita6969 avatar

Pubmed Search

  • 17 installs
  • 869 repo stars
  • Updated June 8, 2026
  • beita6969/scienceclaw

pubmed-search is a Claude skill that searches PubMed/MEDLINE biomedical literature via the NCBI E-utilities API using curl and a two-step esearch/efetch pattern.

About

This skill shows an agent how to search PubMed and MEDLINE via the NCBI E-utilities REST API using curl, covering esearch, efetch, and einfo endpoints, query syntax with field tags and MeSH terms, and specialty search patterns. It enforces a zero-hallucination rule requiring every citation to come from a real API response. Developers use it to find clinical studies and retrieve abstracts by PMID.

  • Curl-based PubMed/MEDLINE search over NCBI E-utilities (36M+ citations)
  • Two-step esearch-then-efetch pattern with MeSH and field-tag syntax
  • Zero-hallucination rule: every result must come from a real API response

Pubmed Search by the numbers

  • 17 all-time installs (skills.sh)
  • Ranked #1,286 of 2,065 Data Science & ML skills by installs in the Skillselion catalog
  • Data as of Aug 2, 2026 (Skillselion catalog sync)
At a glance

pubmed-search capabilities & compatibility

Free; only curl is required, and an NCBI API key is optional.

Capabilities
web search · research
Use cases
research · web search
Platforms
macOS · Linux
Pricing
Free
From the docs

What pubmed-search says it does

Search PubMed/MEDLINE (36M+ citations) via NCBI E-utilities REST API.
SKILL.md
NEVER fabricate results from training data.
SKILL.md
npx skills add https://github.com/beita6969/scienceclaw --skill pubmed-search

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs17
repo stars869
Last updatedJune 8, 2026
Repositorybeita6969/scienceclaw

What it does

Search PubMed/MEDLINE for biomedical papers and retrieve abstracts via curl and E-utilities.

Who is it for?

Searching medical papers, clinical studies, and retrieving abstracts by PMID.

Skip if: Non-biomedical papers (use arxiv-search or semantic-scholar) or full-text access.

When should I use this skill?

Searching biomedical papers, clinical studies, or querying with MeSH terms.

What you get

  • PMID lists
  • Retrieved abstracts and citations

By the numbers

  • 36M+ citations
  • 10 requests/sec with API key

Files

SKILL.mdMarkdownGitHub ↗

PubMed Search

Search PubMed/MEDLINE (36M+ citations) via NCBI E-utilities REST API.

API Endpoints

Base: https://eutils.ncbi.nlm.nih.gov/entrez/eutils/

esearch -- Search and get PMIDs

curl -s "https://eutils.ncbi.nlm.nih.gov/entrez/eutils/esearch.fcgi?db=pubmed&term=COVID-19+vaccine+efficacy&retmax=10&retmode=json"

Parameters: db=pubmed, term= (URL-encoded query), retmax= (default 20, max 10000), retstart= (pagination), retmode=json, sort=relevance|pub_date, mindate=/maxdate= (YYYY/MM/DD), datetype=pdat.

efetch -- Retrieve records by PMID

curl -s "https://eutils.ncbi.nlm.nih.gov/entrez/eutils/efetch.fcgi?db=pubmed&id=39142890,39088712&retmode=xml&rettype=abstract"

einfo -- Database metadata

curl -s "https://eutils.ncbi.nlm.nih.gov/entrez/eutils/einfo.fcgi?db=pubmed&retmode=json"

Query Syntax

Boolean: AND, OR, NOT, parentheses for grouping.

Field tags: [ti] title, [tiab] title/abstract, [au] author, [mesh] MeSH heading, [majr] MeSH major topic, [pt] publication type, [dp] date, [la] language, [jour] journal.

MeSH terms: Standardized vocabulary with automatic explosion to narrower terms. Use [mesh:noexp] for exact heading only. Qualifiers: /therapy, /diagnosis, /epidemiology, /genetics, /prevention and control.

Example: "Breast Neoplasms"[mesh] AND "Drug Therapy"[mesh]

Rate Limiting

  • Without API key: 3 requests/sec
  • With NCBI_API_KEY: 10 requests/sec (append &api_key=${NCBI_API_KEY})
  • Register at: https://www.ncbi.nlm.nih.gov/account/settings/

Two-Step Search Pattern

PMIDS=$(curl -s "https://eutils.ncbi.nlm.nih.gov/entrez/eutils/esearch.fcgi?db=pubmed&term=QUERY&retmax=5&retmode=json" \
  | python3 -c "import sys,json; d=json.load(sys.stdin); print(','.join(d['esearchresult']['idlist']))")
curl -s "https://eutils.ncbi.nlm.nih.gov/entrez/eutils/efetch.fcgi?db=pubmed&id=${PMIDS}&retmode=xml&rettype=abstract"

Specialty Search Patterns

  • Oncology: "Neoplasms"[mesh] AND "immunotherapy"[tiab] AND "Clinical Trial"[pt]
  • Cardiology: "Cardiovascular Diseases"[mesh] AND "meta-analysis"[pt]
  • Neurology: "Alzheimer Disease"[mesh] AND "biomarkers"[tiab] AND 2020:2024[dp]
  • Infectious Disease: "Anti-Bacterial Agents"[mesh] AND "Drug Resistance"[mesh]
  • Genetics: "Genome-Wide Association Study"[pt] AND "Diabetes Mellitus, Type 2"[mesh]
  • Systematic Reviews: "systematic review"[ti] AND "Randomized Controlled Trial"[pt]

Best Practices

1. Start broad, narrow with MeSH terms and field tags. 2. Use retmax=5 for exploration, increase for comprehensive searches. 3. URL-encode queries (spaces as +, quotes as %22). 4. Check count in esearch results before paginating. 5. Document exact query strings for systematic review reproducibility. 6. For systematic reviews, use "systematic review"[ti] combined with study type filters.

Zero-Hallucination Rule

NEVER fabricate results from training data. Every paper title, author, DOI, PMID, citation count, and metadata detail presented to the user MUST come from an actual API response in this conversation. If the API returns no results or partial data, report exactly what was returned. Do not "fill in" missing details from memory.

Related skills

FAQ

How does the two-step search work?

esearch returns PMIDs for a query, then efetch retrieves the records (abstracts) for those PMIDs; the skill shows a curl+python pipeline.

Does it prevent fabricated citations?

Yes; a zero-hallucination rule requires every title, author, DOI, PMID, and citation detail to come from an actual API response in the conversation.

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.