Agent skill

Pubmed Database

by jaechang-hits in jaechang-hits/SciAgent-Skills

Programmatic PubMed access via NCBI E-utilities REST API. An agent skill from jaechang-hits/SciAgent-Skills.

CC-BY-4.0Auto-check passedResearch & Science

Install Pubmed Database

skills CLI
$ npx skills add jaechang-hits/SciAgent-Skills --skill pubmed-database -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install jaechang-hits/SciAgent-Skills pubmed-database --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/jaechang-hits/SciAgent-Skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/scientific-writing/pubmed-database .claude/skills/pubmed-database && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
pubmed-database
GitHub stars
371
Used in
1 other repo
Token cost
~4.4k tokens
SKILL.md length
807 words
Files
3 (incl. references)
Skills in repo
169
Repo updated
First seen
Licence
CC-BY-4.0

At a glance

Programmatic PubMed access via NCBI E-utilities REST API. An agent skill from jaechang-hits/SciAgent-Skills.

  • Works in 6 steps: Search Query Construction → ESearch — Search and Retrieve PMIDs → EFetch — Download Full Records → …
  • Biomedical literature search
  • SKILL.md covers Overview, When to Use, Prerequisites and Quick Start, plus 10 more sections
  • Calls pip; reaches eutils.ncbi.nlm.nih.gov; needs API_KEY

What it does

Pubmed Database is an agent skill from jaechang-hits/SciAgent-Skills. Programmatic PubMed access via NCBI E-utilities REST API. Covers Boolean/MeSH queries, field-tagged search, endpoints (ESearch, EFetch, ESummary, EPost, ELink), history server for batches, citation matching, systematic review strategies. Use for biomedical literature search or automated pipelines.

Its SKILL.md is about 4.4k tokens, which your agent loads only when the skill is triggered. The skill folder holds 3 other files, including reference files (for example `references/common_queries.md` and `references/search_syntax.md`).

It sits in Research & Science, covering Academic paper search, Literature review and Citation management. It works with PubMed and NCBI. The repository describes itself as: 197 bioinformatics & life science skills for Claude Code and AI agents — BixBench 92.0% accuracy. RNA-seq, single-cell, drug discovery, proteomics, and more. Powers OmicsHorizon. The licence is CC-BY-4.0.

When your agent uses it

  • Biomedical literature search
  • Automated pipelines

Example prompts

  • “/pubmed-database”

Requirements

  • Python 3
  • A credential in API_KEY
  • A credential in YOUR_API_KEY

Workflow steps

6 steps, taken from the step headings in SKILL.md.

  1. Search Query Construction
  2. ESearch — Search and Retrieve PMIDs
  3. EFetch — Download Full Records
  4. ESummary and ELink — Summaries and Related Articles
  5. Citation Matching and Identifier Lookup
  6. Publication Filtering

What it can do on your machine

Read from SKILL.md and the folder at commit 82c862c. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • pip

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • eutils.ncbi.nlm.nih.gov

    Also links to:

    • ncbi.nlm.nih.gov
    • pubmed.ncbi.nlm.nih.gov

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names these keys or tokens, usually read from environment variables:

    • API_KEY

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Pubmed Database loads about 4.4k tokens when it runs, and up to ~7.9k if it reads all its reference files. Until then it costs about 79 tokens; SKILL.md has 807 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~79
When it runs · the whole SKILL.md, loaded when a task matches
~4.4k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~7.9k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from jaechang-hits/SciAgent-Skills at commit 82c862c, republished under its CC-BY-4.0 licence (© jaechang-hits). 807 words, ~4,423 tokens.

Download SKILL.mdSave it as .claude/skills/pubmed-database/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.
name
pubmed-database
description
Programmatic PubMed access via NCBI E-utilities REST API. Covers Boolean/MeSH queries, field-tagged search, endpoints (ESearch, EFetch, ESummary, EPost, ELink), history server for batches, citation matching, systematic review strategies. Use for biomedical literature search or automated pipelines.
license
CC-BY-4.0

PubMed Database

Overview

PubMed is the U.S. National Library of Medicine's database providing free access to 36M+ biomedical citations from MEDLINE and life sciences journals. This skill covers programmatic access via the E-utilities REST API and advanced search query construction using Boolean operators, MeSH terms, and field tags.

When to Use

  • Searching biomedical literature with structured Boolean/MeSH queries
  • Building automated literature monitoring or extraction pipelines
  • Conducting systematic literature reviews or meta-analyses
  • Retrieving article metadata, abstracts, or citation information by PMID/DOI
  • Finding related articles or exploring citation networks programmatically
  • Batch processing large sets of PubMed records
  • For Python-native PubMed access, prefer BioPython (Bio.Entrez) — this skill covers direct REST API usage
  • For broader academic search (non-biomedical), use OpenAlex or Semantic Scholar APIs

Prerequisites

bash
pip install requests  # HTTP client for E-utilities API
# Optional: pip install biopython  — Bio.Entrez wrapper (higher-level API)

API Rate Limits:

Quick Start

python
import requests
import time

BASE_URL = "https://eutils.ncbi.nlm.nih.gov/entrez/eutils/"
API_KEY = "YOUR_API_KEY"  # Optional but recommended

def pubmed_request(endpoint, params):
    """Reusable helper for E-utilities API calls with rate limiting."""
    params.setdefault("api_key", API_KEY)
    response = requests.get(f"{BASE_URL}{endpoint}", params=params)
    response.raise_for_status()
    time.sleep(0.1 if API_KEY != "YOUR_API_KEY" else 0.34)  # Rate limit
    return response

# Search → Fetch workflow
search_resp = pubmed_request("esearch.fcgi", {
    "db": "pubmed", "term": "CRISPR[tiab] AND 2024[dp]",
    "retmax": 5, "retmode": "json"
})
pmids = search_resp.json()["esearchresult"]["idlist"]
print(f"Found {len(pmids)} articles: {pmids}")

fetch_resp = pubmed_request("efetch.fcgi", {
    "db": "pubmed", "id": ",".join(pmids),
    "rettype": "abstract", "retmode": "text"
})
print(fetch_resp.text[:500])

Core API

1. Search Query Construction

Build PubMed queries using Boolean operators, field tags, and MeSH terms.

python
# Boolean operators: AND, OR, NOT (must be uppercase)
queries = {
    "basic": "diabetes AND treatment AND 2024[dp]",
    "synonyms": "(metformin OR insulin) AND type 2 diabetes",
    "exclude": "cancer NOT review[pt]",
    "phrase": '"gene expression" AND RNA-seq',
    "field_tags": "smith ja[au] AND cancer[tiab] AND 2023[dp]",
}

# Common field tags:
# [tiab] = title/abstract    [au] = author       [mh] = MeSH term
# [pt]   = publication type   [dp] = date          [ta] = journal
# [1au]  = first author       [lastau] = last author
# [affil] = affiliation       [doi] = DOI          [pmid] = PubMed ID

# Date filtering
date_queries = {
    "single_year": "cancer AND 2024[dp]",
    "range": "cancer AND 2020:2024[dp]",
    "specific": "cancer AND 2024/03/15[dp]",
}
python
# MeSH terms — controlled vocabulary for precise searching
mesh_queries = {
    # [mh] includes narrower terms automatically
    "broad": "diabetes mellitus[mh]",
    # [majr] limits to major topic focus
    "focused": "diabetes mellitus[majr]",
    # MeSH + subheading
    "therapy": "diabetes mellitus, type 2[mh]/drug therapy",
    # Substance name
    "drug": "metformin[nm] AND diabetes mellitus[mh]",
}

# Common MeSH subheadings:
# /diagnosis  /drug therapy  /epidemiology  /etiology
# /prevention & control  /therapy  /genetics
2. ESearch — Search and Retrieve PMIDs
python
# Basic search
resp = pubmed_request("esearch.fcgi", {
    "db": "pubmed",
    "term": "CRISPR[tiab] AND genome editing[tiab] AND 2024[dp]",
    "retmax": 100,
    "retmode": "json",
    "sort": "relevance",  # or "pub_date", "first_author"
})
result = resp.json()["esearchresult"]
pmids = result["idlist"]
total = result["count"]
print(f"Total hits: {total}, Retrieved: {len(pmids)}")

# With history server (for large result sets > 500)
resp = pubmed_request("esearch.fcgi", {
    "db": "pubmed",
    "term": "cancer AND 2024[dp]",
    "usehistory": "y",
    "retmode": "json",
})
result = resp.json()["esearchresult"]
webenv = result["webenv"]
query_key = result["querykey"]
total = int(result["count"])
print(f"Stored {total} results on history server")
3. EFetch — Download Full Records
python
# Fetch abstracts as text
resp = pubmed_request("efetch.fcgi", {
    "db": "pubmed",
    "id": ",".join(pmids[:10]),
    "rettype": "abstract",
    "retmode": "text",
})
print(resp.text[:500])

# Fetch XML for structured parsing
resp = pubmed_request("efetch.fcgi", {
    "db": "pubmed",
    "id": ",".join(pmids[:10]),
    "rettype": "xml",
    "retmode": "xml",
})

# Fetch from history server (batch processing)
batch_size = 500
for start in range(0, total, batch_size):
    resp = pubmed_request("efetch.fcgi", {
        "db": "pubmed",
        "query_key": query_key,
        "WebEnv": webenv,
        "retstart": start,
        "retmax": batch_size,
        "rettype": "xml",
        "retmode": "xml",
    })
    print(f"Fetched records {start}–{start + batch_size}")
    time.sleep(0.5)  # Extra delay for large batches
python
# ESummary — lightweight document summaries
resp = pubmed_request("esummary.fcgi", {
    "db": "pubmed",
    "id": ",".join(pmids[:5]),
    "retmode": "json",
})
for uid, data in resp.json()["result"].items():
    if uid == "uids":
        continue
    print(f"PMID {uid}: {data.get('title', '')[:80]}")
    print(f"  Journal: {data.get('fulljournalname', '')}, "
          f"Date: {data.get('pubdate', '')}")

# ELink — find related articles
resp = pubmed_request("elink.fcgi", {
    "dbfrom": "pubmed",
    "db": "pubmed",
    "id": pmids[0],
    "cmd": "neighbor",
    "retmode": "json",
})
# Links to other NCBI databases
resp = pubmed_request("elink.fcgi", {
    "dbfrom": "pubmed",
    "db": "pmc",  # PubMed Central
    "id": pmids[0],
    "retmode": "json",
})
5. Citation Matching and Identifier Lookup
python
# Search by identifiers
id_queries = {
    "pmid": "12345678[pmid]",
    "doi": "10.1056/NEJMoa123456[doi]",
    "pmc": "PMC123456[pmc]",
}

# ECitMatch — match partial citations to PMIDs
# Format: journal|year|volume|first_page|author_name|key|
citation = "Science|2008|320|5880|1185|key1|"
resp = pubmed_request("ecitmatch.cgi", {
    "db": "pubmed",
    "rettype": "xml",
    "bdata": citation,
})
print(f"Matched PMID: {resp.text.strip()}")

# Batch citation matching
citations = [
    "Nature|2020|580|7801|71|ref1|",
    "Science|2019|366|6463|347|ref2|",
]
resp = pubmed_request("ecitmatch.cgi", {
    "db": "pubmed",
    "rettype": "xml",
    "bdata": "\r".join(citations),
})
6. Publication Filtering
python
# Filter by publication type
type_filters = {
    "rcts": "randomized controlled trial[pt]",
    "reviews": "systematic review[pt]",
    "meta": "meta-analysis[pt]",
    "guidelines": "guideline[pt]",
    "case_reports": "case reports[pt]",
}

# Filter by text availability
availability = {
    "free_text": "free full text[sb]",
    "has_abstract": "hasabstract[text]",
}

# Combine filters
query = (
    "diabetes mellitus[mh] AND "
    "randomized controlled trial[pt] AND "
    "2023:2024[dp] AND "
    "free full text[sb] AND "
    "english[la]"
)
resp = pubmed_request("esearch.fcgi", {
    "db": "pubmed", "term": query, "retmax": 100, "retmode": "json"
})
print(f"Free RCTs on diabetes (2023-2024): {resp.json()['esearchresult']['count']}")

Key Concepts

E-utilities Endpoint Summary
EndpointPurposeKey Parameters
esearch.fcgiSearch, return PMIDsterm, retmax, sort, usehistory
efetch.fcgiDownload full recordsid/query_key+WebEnv, rettype, retmode
esummary.fcgiLightweight summariesid, retmode
epost.fcgiUpload UIDs to serverid (comma-separated)
elink.fcgiRelated articles, cross-DBid, dbfrom, db, cmd
einfo.fcgiList databases/fieldsdb (optional)
egquery.fcgiCount hits across DBsterm
espell.fcgiSpelling suggestionsterm
ecitmatch.cgiMatch citations to PMIDsbdata
History Server Pattern

For result sets >500 articles, use the history server to avoid URL length limits:

  1. ESearch with usehistory=y → returns WebEnv + QueryKey
  2. EFetch in batches using WebEnv + QueryKey + retstart/retmax
  3. EPost to upload additional PMIDs to the same WebEnv
Automatic Term Mapping (ATM)

When no field tag is specified, PubMed maps terms through: MeSH Translation Table → Journals Translation Table → Author Index → Full Text. Bypass ATM with explicit field tags or quoted phrases.

Common MeSH Subheadings
SubheadingAbbreviationUse
/diagnosis/DIDiagnostic methods
/drug therapy/DTPharmaceutical treatment
/epidemiology/EPDisease patterns
/etiology/ETDisease causes
/genetics/GEGenetic aspects
/prevention & control/PCPreventive measures
/therapy/THTreatment approaches

Common Workflows

python
import requests, time, json

# 1. Define PICO-structured query
query = (
    # Population
    "(diabetes mellitus, type 2[mh] OR type 2 diabetes[tiab]) AND "
    # Intervention + Comparison
    "(metformin[nm] OR lifestyle modification[tiab]) AND "
    # Outcome
    "(glycemic control[tiab] OR HbA1c[tiab]) AND "
    # Study design filter
    "(randomized controlled trial[pt] OR systematic review[pt]) AND "
    # Date range
    "2020:2024[dp]"
)

# 2. Search with history server
resp = pubmed_request("esearch.fcgi", {
    "db": "pubmed", "term": query,
    "usehistory": "y", "retmode": "json"
})
result = resp.json()["esearchresult"]
total = int(result["count"])
print(f"Systematic review hits: {total}")

# 3. Batch fetch all results as XML
import xml.etree.ElementTree as ET
articles = []
for start in range(0, total, 200):
    resp = pubmed_request("efetch.fcgi", {
        "db": "pubmed", "query_key": result["querykey"],
        "WebEnv": result["webenv"],
        "retstart": start, "retmax": 200,
        "rettype": "xml", "retmode": "xml"
    })
    root = ET.fromstring(resp.text)
    for article in root.findall('.//PubmedArticle'):
        pmid = article.findtext('.//PMID')
        title = article.findtext('.//ArticleTitle')
        articles.append({"pmid": pmid, "title": title})
    time.sleep(0.5)

print(f"Retrieved {len(articles)} articles for screening")
Workflow 2: Literature Monitoring Pipeline
python
import json, datetime

# 1. Construct monitoring query
topic_query = (
    "(CRISPR[tiab] OR gene editing[tiab]) AND "
    "(therapeutics[tiab] OR clinical trial[pt])"
)

# 2. Search recent publications (last 30 days)
today = datetime.date.today()
start_date = today - datetime.timedelta(days=30)
query = f"{topic_query} AND {start_date.strftime('%Y/%m/%d')}:{today.strftime('%Y/%m/%d')}[dp]"

resp = pubmed_request("esearch.fcgi", {
    "db": "pubmed", "term": query,
    "retmax": 100, "retmode": "json", "sort": "pub_date"
})
pmids = resp.json()["esearchresult"]["idlist"]

# 3. Get summaries for new articles
if pmids:
    resp = pubmed_request("esummary.fcgi", {
        "db": "pubmed", "id": ",".join(pmids), "retmode": "json"
    })
    for uid in pmids:
        info = resp.json()["result"].get(uid, {})
        print(f"[{uid}] {info.get('title', 'N/A')[:80]}")
        print(f"  {info.get('fulljournalname', '')} — {info.get('pubdate', '')}")

Key Parameters

ParameterEndpointDefaultEffect
termESearchRequiredSearch query with Boolean/field tags
retmaxESearch/EFetch20Max records returned (up to 10,000)
retstartESearch/EFetch0Offset for pagination
rettypeEFetchfullOutput type: abstract, medline, xml, uilist
retmodeAllxmlOutput format: xml, json, text
sortESearchrelevanceSort order: relevance, pub_date, first_author
usehistoryESearchnEnable history server: y for large result sets
api_keyAllNoneNCBI API key for 10 req/sec (vs 3 without)
cmdELinkneighborLink type: neighbor, neighbor_score, prlinks
datetypeESearchpdatDate field: pdat (publication), edat (entrez)
Show full SKILL.md (334 more words)Show less

Best Practices

  1. Always use an API key — register at NCBI for 10 req/sec instead of 3
  2. Use history server for >500 results — avoids URL length limits and enables batch fetching
  3. Include rate limiting — time.sleep(0.1) with API key, time.sleep(0.34) without
  4. Cache results locally — PubMed data changes slowly; cache responses to minimize API calls
  5. Use MeSH terms + free text — combine [mh] and [tiab] for comprehensive coverage: (diabetes mellitus[mh] OR diabetes[tiab])
  6. Document search strategies — for systematic reviews, record exact queries, dates, and result counts
  7. Parse XML for structured data — text output is human-readable but XML preserves field structure for automated extraction

Troubleshooting

ProblemCauseSolution
HTTP 429 (Too Many Requests)Exceeding rate limitAdd time.sleep(); use API key for higher limit
HTTP 414 (URI Too Long)Too many PMIDs in URLUse history server (usehistory=y) or EPost
Empty result setOverly restrictive queryRemove filters one at a time; check ATM with EInfo
Unexpected MeSH mappingAutomatic Term MappingUse explicit field tags: term[tiab] instead of bare term
Missing abstractsPre-1975 articles or certain typesFilter: hasabstract[text]
XML parsing errorsMalformed responseCheck retmode=xml and rettype=xml; handle encoding
Stale history serverSession expired (8h inactivity)Re-run ESearch with usehistory=y to get new WebEnv
Truncated resultsDefault retmax=20Set retmax=100 or higher (max 10,000)

Common Recipes

Recipe: Download Abstracts for a Gene Set
python
import requests
import time

def fetch_abstracts(gene_list, max_per_gene=5):
    """Retrieve PubMed abstracts for each gene in a list."""
    base = "https://eutils.ncbi.nlm.nih.gov/entrez/eutils"
    records = []
    for gene in gene_list:
        r = requests.get(f"{base}/esearch.fcgi",
                         params={"db": "pubmed", "term": f"{gene}[gene] AND Homo sapiens[orgn]",
                                 "retmax": max_per_gene, "retmode": "json"})
        ids = r.json()["esearchresult"]["idlist"]
        if ids:
            fetch = requests.get(f"{base}/efetch.fcgi",
                                 params={"db": "pubmed", "id": ",".join(ids), "rettype": "abstract"})
            records.append({"gene": gene, "pmids": ids, "text": fetch.text[:500]})
        time.sleep(0.34)
    return records

results = fetch_abstracts(["BRCA1", "TP53", "EGFR"])
for r in results:
    print(f"{r['gene']}: {r['pmids']}")
Recipe: Track New Publications via Date Filter
python
import requests
from datetime import date, timedelta

# Find papers published in the last 7 days on a topic
week_ago = (date.today() - timedelta(days=7)).strftime("%Y/%m/%d")
today = date.today().strftime("%Y/%m/%d")

resp = requests.get("https://eutils.ncbi.nlm.nih.gov/entrez/eutils/esearch.fcgi",
                    params={"db": "pubmed", "term": "CRISPR AND cancer",
                            "datetype": "pdat", "mindate": week_ago, "maxdate": today,
                            "retmax": 20, "retmode": "json"})
data = resp.json()["esearchresult"]
print(f"New CRISPR+cancer papers this week: {data['count']}")
print("PMIDs:", data["idlist"])

Bundled Resources

  • references/search_syntax.md — Complete field tag reference, Boolean/wildcard/proximity syntax, automatic term mapping rules, all filter types (age groups, species, languages), and clinical query filters
  • references/common_queries.md — Ready-to-use query templates organized by domain (disease-specific, population-specific, methodology, drug research, epidemiology) with ~40 example patterns

Not migrated from original: references/api_reference.md (298 lines) — endpoint parameter details are consolidated into Core API sections 2-5 and the E-utilities Endpoint Summary table in Key Concepts.

References

  • biopython — higher-level Python wrapper (Bio.Entrez) for E-utilities
  • openalex-database — broader academic literature beyond biomedical
  • literature-review — systematic review methodology and PRISMA framework

© jaechang-hits, CC-BY-4.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 2 other files (references) in skills/scientific-writing/pubmed-database of jaechang-hits/SciAgent-Skills.

  • SKILL.md
  • references/common_queries.md
  • references/search_syntax.md

Open the folder on GitHubat commit 82c862c

Used in 1 other repository

We found 1 copy of this SKILL.md (exact, near-identical or edited) in other folders, from 1 other GitHub owner. This page covers the copy in jaechang-hits/SciAgent-Skills, which our catalogue first saw on October 7, 2026.

Compare with similar skills

Pubmed Database next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Pubmed Database compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Pubmed Database this skilljaechang-hits/SciAgent-Skills3711 repos~4.4kAutomated safety check: PassCC-BY-4.0
PubMed REST API Searchdavila7/claude-code-templates32k14 repos~3.9kAutomated safety check: PassMIT
Molecular Review Workflowaipoch/medical-research-skills2k—~1.8kAutomated safety check: PassMIT
Literature Reviewneflibata-feng/MyArxiv-Agent12620 repos~5.9kAutomated safety check: NotesMIT
Academic Search and Citation RouterYuan1z0825/nature-skills47k—~884Automated safety check: PassApache-2.0
Literature ReviewK-Dense-AI/scientific-agent-skills48k1 repos~3.2kAutomated safety check: NotesMIT

Similar skills

  • PubMed REST API Search

    davila7/claude-code-templates

    Searches PubMed directly through its E-utilities REST API, with guidance on Boolean and MeSH query syntax, batch retrieval and citation data.

    32k GitHub starsUsed in 14 repos~3.9k tokens
    Research & ScienceAuto-check passed
  • Molecular Review Workflow

    aipoch/medical-research-skills

    Generates academic reviews for molecules in diseases using PubMed research.

    2k GitHub stars~1.8k tokensUpdated 22 days ago
    Research & ScienceAuto-check passed
  • Literature Review

    neflibata-feng/MyArxiv-Agent

    Conduct comprehensive, systematic literature reviews using multiple academic databases (PubMed, arXiv, bioRxiv, Semantic Scholar, etc.).

    126 GitHub starsUsed in 20 repos~5.9k tokens
    Research & ScienceAuto-check: notes
  • Academic Search and Citation Router

    Yuan1z0825/nature-skills

    Finds papers across literature sources, verifies and converts citations, builds MeSH strategies and audits independent citations of a paper.

    47k GitHub stars~884 tokensUpdated yesterday
    Research & ScienceAuto-check passed
  • Literature Review

    K-Dense-AI/scientific-agent-skills

    Runs systematic, scoping or narrative literature reviews across PubMed, arXiv, bioRxiv and Semantic Scholar, with citation checks and Markdown or PDF output.

    48k GitHub starsUsed in 1 repo~3.2k tokens
    Research & ScienceAuto-check: notes
  • Literature Review

    Norman-bury/research-writing-skill

    A skill your agent uses when writing literature review sections - guides searching, organizing, and synthesizing academic sources

    3.4k GitHub stars~2.2k tokensUpdated 4 mo ago
    Research & ScienceAuto-check: notes

More from jaechang-hits/SciAgent-Skills

All 169 skills in this repo
  • Neb Irc Activation Energy

    jaechang-hits/SciAgent-Skills

    NEB-IRC activation energy pipeline for reaction barriers using GFN2-xTB and pysisyphus.

    371 GitHub stars~4k tokensUpdated 10 days ago
    Auto-check passed
  • Molecular Visualization 3dmol

    jaechang-hits/SciAgent-Skills

    3Dmol.js WebGL molecular visualization emitted as self-contained HTML.

    371 GitHub stars~3.2k tokensUpdated 10 days ago
    Auto-check passed
  • Cobrapy Metabolic Modeling

    jaechang-hits/SciAgent-Skills

    Constraint-based (COBRA) analysis of genome-scale metabolic models: FBA, FVA, knockouts, flux sampling, production envelopes, gapfilling, media optimization.

    371 GitHub starsUsed in 1 repo~4.9k tokens
    Auto-check passed
  • Rdkit Chemdraw Cdxml

    jaechang-hits/SciAgent-Skills

    Read, write, and edit ChemDraw CDX/CDXML files with RDKit's rdkit.Chem.rdChemDraw plus direct XML editing, always paired with a rendered PNG.

    371 GitHub stars~6.9k tokensUpdated 10 days ago
    Auto-check passed
  • Sciagent Skill Creator

    jaechang-hits/SciAgent-Skills

    Scaffold a new SciAgent-Skills entry. An agent skill from jaechang-hits/SciAgent-Skills.

    371 GitHub stars~2.3k tokensUpdated 10 days ago
    Auto-check passed
  • Shap Model Explainability

    jaechang-hits/SciAgent-Skills

    Model interpretability via SHAP (Shapley values from game theory).

    371 GitHub starsUsed in 1 repo~3.7k tokens
    Auto-check passed

Works with

Questions about Pubmed Database

What does Pubmed Database do?

Programmatic PubMed access via NCBI E-utilities REST API. An agent skill from jaechang-hits/SciAgent-Skills. Pubmed Database is an agent skill from jaechang-hits/SciAgent-Skills. Programmatic PubMed access via NCBI E-utilities REST API.

When should I use Pubmed Database?

Pubmed Database fits situations like: biomedical literature search; automated pipelines.

How do I install Pubmed Database in Claude Code?

Run `npx skills add jaechang-hits/SciAgent-Skills --skill pubmed-database -a claude-code`. Or copy the skill folder (skills/scientific-writing/pubmed-database in jaechang-hits/SciAgent-Skills) into .claude/skills/pubmed-database in your project. Claude Code loads it when a task matches its description.

How do I install Pubmed Database in Codex?

Run `npx skills add jaechang-hits/SciAgent-Skills --skill pubmed-database -a codex`. Or copy the skill folder (skills/scientific-writing/pubmed-database in jaechang-hits/SciAgent-Skills) into .agents/skills/pubmed-database in your project. Codex loads it when a task matches its description.

Can I use Pubmed Database in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add jaechang-hits/SciAgent-Skills --skill pubmed-database -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/pubmed-database, .gemini/skills/pubmed-database, .github/skills/pubmed-database and .opencode/skills/pubmed-database in your project.

What does Pubmed Database need to run?

Going by SKILL.md and its folder, Pubmed Database needs the command-line tools its instructions call (pip) and credentials named API_KEY. Our summary lists: Python 3; A credential in API_KEY; A credential in YOUR_API_KEY.

Does Pubmed Database access the network?

SKILL.md names 3 domains. In commands or code: eutils.ncbi.nlm.nih.gov; the agent is likely to contact it when it follows the instructions. As links in the text: ncbi.nlm.nih.gov and pubmed.ncbi.nlm.nih.gov. This is read from the text; nothing was executed.

Is Pubmed Database safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Pubmed Database use?

Pubmed Database is published under the CC-BY-4.0 licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Pubmed Database use?

About 4.4k tokens (SKILL.md is roughly 18k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 3.4k tokens, read only when the agent opens those files.

What are the alternatives to Pubmed Database?

Skills that share tags, products or a category with Pubmed Database: PubMed REST API Search (davila7/claude-code-templates, 32k stars), Molecular Review Workflow (aipoch/medical-research-skills, 2k stars), Literature Review (neflibata-feng/MyArxiv-Agent, 126 stars) and Academic Search and Citation Router (Yuan1z0825/nature-skills, 47k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Pubmed Database?

jaechang-hits (a GitHub user) maintains it in jaechang-hits/SciAgent-Skills, which has 371 GitHub stars. The repository holds 169 skills in this directory. The repository was last updated on September 29, 2026.

Source: jaechang-hits/SciAgent-Skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.