Skip to main content

ncbi-entrez-skill

Submit compact NCBI Entrez E-Utilities requests for PubMed, Gene, Protein, Nucleotide, PMC metadata, and GEO metadata workflows. Use when a user wants concise Entrez search, fetch, summary, or link results; save raw JSON or XML only on request.

Stars
1,305
Source
openai/plugins
Updated
2026-05-30
Slug
openai--plugins--ncbi-entrez-skill
View on GitHubRaw SKILL.md

// install — copy + paste into any project

mkdir -p .claude/skills && curl -fsSL https://raw.githubusercontent.com/openai/plugins/HEAD/plugins/life-science-research/skills/ncbi-entrez-skill/SKILL.md -o .claude/skills/ncbi-entrez-skill.md

Drops the SKILL.md into .claude/skills/ncbi-entrez-skill.md. Works with Claude Code, Cursor, and any agent that loads SKILL.md files from .claude/skills/.

Operating rules

  • Use scripts/ncbi_entrez.py for all Entrez calls in this package.
  • Use explicit endpoint values such as esearch, esummary, efetch, elink, or einfo.
  • Search-style Entrez calls are better with retmax=10 and max_items=10.
  • GEO is nested under this skill. Use db=gds or db=geoprofiles for GEO metadata and load references/geo.md only when the user is specifically asking about GEO.
  • BLAST workflows belong in ncbi-blast-skill. PMC Open Access workflows belong in ncbi-pmc-skill. Datasets v2 workflows belong in ncbi-datasets-skill.
  • Re-run requests in long conversations instead of relying on older tool output.
  • Treat displayed ... in tool previews as UI truncation, not literal request content.

Execution behavior

  • Return concise markdown summaries from the script output by default.
  • Return raw JSON or XML only if the user explicitly asks for machine-readable output.
  • Prefer targeted endpoint calls instead of broad unfiltered dumps.
  • If the user needs the full raw response, set save_raw=true and report the saved file path.

Input

  • Read one JSON object from stdin.
  • Required field: endpoint
  • Optional fields: params, record_path, response_format, max_items, max_depth, timeout_sec, save_raw, raw_output_path
  • Common Entrez patterns:
    • {"endpoint":"esearch","params":{"db":"pubmed","term":"KRAS AND colorectal cancer","retmode":"json","retmax":10},"max_items":10}
    • {"endpoint":"esummary","params":{"db":"gene","id":"7157","retmode":"json"},"max_items":10}
    • {"endpoint":"efetch","params":{"db":"protein","id":"NP_000537.3","retmode":"xml"},"response_format":"xml","max_items":10}
    • {"endpoint":"elink","params":{"dbfrom":"gds","db":"pubmed","id":"200000001","retmode":"json"},"max_items":10}

Output

  • Success returns ok, source, endpoint metadata, and either compact records, a compact summary, or text_head.
  • Use raw_output_path when save_raw=true.
  • Failure returns ok=false with error.code and error.message.

Execution

echo '{"endpoint":"esearch","params":{"db":"gene","term":"TP53[gene] AND human[orgn]","retmode":"json","retmax":10},"max_items":10}' | python scripts/ncbi_entrez.py

References

  • Load references/geo.md only when the user specifically needs GEO query patterns.
  • Keep the import package limited to this file, references/geo.md, and scripts/ncbi_entrez.py.