From mjlab
Search the scientific literature for the Miller-Jensen lab using public REST APIs (PubMed/OpenAlex/Crossref/Europe PMC/bioRxiv/Semantic Scholar/arXiv/Unpaywall) and optionally Ai2 Asta. TRIGGER when the user asks to find papers on a topic, do a quick literature lookup, locate a DOI or PMID, get the latest preprints, or ground a claim in real published work. For a reproducible local corpus snapshot, see [local-lit-search](../local-lit-search/SKILL.md).
How this skill is triggered — by the user, by Claude, or both
Slash command
/mjlab:literature-searchThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Live-oracle mode for the Miller-Jensen lab: ask public APIs (or Asta) for fresh results. For a reproducible local SQLite FTS5 corpus that pins answers across sessions — e.g., for a manuscript intro or paper-replication repo — use the sibling skill [local-lit-search](../local-lit-search/SKILL.md).
Live-oracle mode for the Miller-Jensen lab: ask public APIs (or Asta) for fresh results. For a reproducible local SQLite FTS5 corpus that pins answers across sessions — e.g., for a manuscript intro or paper-replication repo — use the sibling skill local-lit-search.
[email protected] query param or User-Agent. Do this; rate-limited 429s waste real time..env (NCBI_API_KEY=…) and pass to the shipped scripts as needed.curl or httpx; MCP is a convenience layer the lab member shouldn't have to install unless they ask.All free, no key needed (except where noted). Include your email in mailto= when offered.
# search → returns PMIDs
curl -sS 'https://eutils.ncbi.nlm.nih.gov/entrez/eutils/esearch.fcgi?db=pubmed&term=TLR4+macrophage+single+cell&retmode=json&retmax=20'
# fetch metadata for a PMID
curl -sS 'https://eutils.ncbi.nlm.nih.gov/entrez/eutils/esummary.fcgi?db=pubmed&id=38000001,38000002&retmode=json'
# fetch full abstract (XML, slower)
curl -sS 'https://eutils.ncbi.nlm.nih.gov/entrez/eutils/efetch.fcgi?db=pubmed&id=38000001&retmode=xml&rettype=abstract'
For >3 req/s, add &api_key=$NCBI_API_KEY. PubMed-specific filters: [ti] (title), [au] (author), [pt] (pub type), [mh] (MeSH), [dp] (date), 2020:2026[dp] (date range).
Free, no key. Best general-purpose academic graph (~250M works).
# search papers
curl -sS 'https://api.openalex.org/works?search=NF-kB+bursting+single+cell&per-page=25&[email protected]'
# get one work by DOI
curl -sS 'https://api.openalex.org/works/doi:10.1038/s41586-024-12345'
# authors and their works
curl -sS 'https://api.openalex.org/authors?search=Miller-Jensen+Kathryn&[email protected]'
# citations of a work (incoming) — use the openalex ID
curl -sS 'https://api.openalex.org/works?filter=cites:W2741809807&per-page=25&[email protected]'
Free; metadata for almost all DOIs.
# search by query
curl -sS 'https://api.crossref.org/works?query=TNF+bursting+macrophage&rows=25&[email protected]'
# resolve a DOI to metadata
curl -sS 'https://api.crossref.org/works/10.1038/s41586-024-12345'
Search PubMed + PMC full-text with one call; returns abstracts and OA PDF URLs.
curl -sS 'https://www.ebi.ac.uk/europepmc/webservices/rest/search?query=macrophage+polarization+single-cell&format=json&resultType=core&pageSize=25'
Preprints. No search endpoint — you fetch by DOI or by date range, then filter client-side.
# get metadata for one preprint
curl -sS 'https://api.biorxiv.org/details/biorxiv/10.1101/2024.01.15.575912'
# recent papers in a date window
curl -sS 'https://api.biorxiv.org/details/biorxiv/2026-04-01/2026-05-01/0'
For substantive search of preprints, use Europe PMC above with &src=PPR filter, or OpenAlex with &filter=type:preprint.
Free with rate limits; request a key at https://www.semanticscholar.org/product/api for higher throughput.
# search
curl -sS 'https://api.semanticscholar.org/graph/v1/paper/search?query=transcriptional+bursting&limit=20&fields=title,authors,year,citationCount,influentialCitationCount,abstract,externalIds'
# get one paper + its references and citing papers
curl -sS 'https://api.semanticscholar.org/graph/v1/paper/DOI:10.1038/s41586-024-12345?fields=title,abstract,references,citations,influentialCitationCount'
The influentialCitationCount field is unique to Semantic Scholar — it flags citations that contextually matter, not just every mention.
# Atom-XML response
curl -sS 'http://export.arxiv.org/api/query?search_query=all:single-cell+RNA-seq+macrophage&start=0&max_results=20'
Free with email. Resolves a DOI to an open-access PDF URL if one exists.
curl -sS "https://api.unpaywall.org/v2/10.1038/[email protected]"
Use this when the user wants a paper they don't have institutional access to. The response's best_oa_location.url_for_pdf is what you fetch.
Asta is the Allen Institute's free agentic literature service over 200M+ papers. It plans multi-step searches, follows citations, and returns synthesized answers with grounded citations.
Two integration paths. The agent should default to the REST API. On first use of Asta in a session, ask the user once: "Asta also ships an MCP server — would you like to install it for richer tool integration, or keep using the REST API?" Honor whatever they say and don't re-ask.
REST:
# Scientific Corpus Tool — hybrid (sparse + dense) full-text search
curl -sS -X POST 'https://api.allenai.org/v1/asta/search' \
-H 'Content-Type: application/json' \
-d '{"query":"TNF transcriptional bursting macrophage","retrieval":"hybrid","limit":20}'
(Endpoint subject to change — see https://allenai.org/asta/resources/mcp for current shapes.)
MCP (if user opted in):
# install the MCP server (one-time)
uv tool install asta-mcp
# then add to claude code's MCP config — see https://allenai.org/asta/resources/mcp
After install, Asta's tools (asta_search, asta_synthesize, etc.) appear natively in the agent's tool list. Use them like any other tool.
Verification rule: Asta's returned citations are usually real but sometimes fabricated or mis-attributed. Before quoting an Asta-returned PMID/DOI in a manuscript or analysis, resolve it via Crossref or PubMed (esummary.fcgi?db=pubmed&id=…) and confirm title + authors match.
| Situation | Endpoint |
|---|---|
| "What's the latest on X?" exploratory | Asta, or PubMed esearch.fcgi?sort=date |
| Single citation lookup ("get the DOI for Bridges 2024 macrophage paper") | Crossref or OpenAlex |
| Find an OA PDF for a known DOI | Unpaywall |
| "Who has cited this paper?" | Semantic Scholar or OpenAlex cites: filter |
| "What does this paper actually say?" | Europe PMC full-text endpoint |
| Daily preprint surveillance | bioRxiv API, polled |
| Reproducible literature snapshot for a manuscript or paper-replication repo | Switch to local-lit-search |
.env with NCBI / Semantic Scholar keys is gitignorednpx claudepluginhub miller-jensen-lab/claude-code-marketplace --plugin mjlabCreates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.