
Pm Navigate Pages
- 5 installs
- 17 repo stars
- Updated March 13, 2026
- cookjohn/pm-skills
Navigates PubMed search result pages and changes sort order between date and relevance.
About
Pages through PubMed search results and changes sort order. A developer uses it to see more results or reorder them.
- Supports next, previous, and page-N navigation
- Toggles sort between date and relevance
Pm Navigate Pages by the numbers
- 5 all-time installs (skills.sh)
- Ranked #1,723 of 2,715 Automation & Workflows skills by installs in the Skillselion catalog
- Data as of Jul 29, 2026 (Skillselion catalog sync)
npx skills add https://github.com/cookjohn/pm-skills --skill pm-navigate-pagesAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 5 |
|---|---|
| repo stars | ★ 17 |
| Last updated | March 13, 2026 |
| Repository | cookjohn/pm-skills ↗ |
What it does
Navigates PubMed search result pages and changes sort order between date and relevance.
Files
PubMed Navigate Pages & Sort
Navigate search result pages or change sort order. Requires a previous pm-search call to know the current query, page, and size.
Arguments
$ARGUMENTS can be:
next— go to next pageprevious— go to previous pagepage N— go to page Nsort by date— sort by most recentsort by relevance— sort by best match (default)
Prerequisites
This skill requires context from a previous pm-search call:
query: the search termpage: current page numbersize: results per pagetotal: total results count
Steps
1. Calculate new parameters
Based on $ARGUMENTS:
next: newPage = currentPage + 1previous: newPage = max(1, currentPage - 1)page N: newPage = Nsort by date: sort = "date", newPage = 1sort by relevance: sort = "relevance", newPage = 1
Compute: retstart = (newPage - 1) * size
2. Navigate to updated URL
Use mcp__chrome-devtools__navigate_page:
- url:
https://pubmed.ncbi.nlm.nih.gov/?term={URL_ENCODED_QUERY}&size={size}&page={newPage}
3. Fetch results (evaluate_script)
Same pattern as pm-search step 2, with updated retstart and sort:
async () => {
const query = "PREVIOUS_QUERY";
const page = NEW_PAGE;
const size = CURRENT_SIZE;
const sort = "SORT_VALUE";
const retstart = (page - 1) * size;
const searchResp = await fetch(
`https://eutils.ncbi.nlm.nih.gov/entrez/eutils/esearch.fcgi?db=pubmed&term=${encodeURIComponent(query)}&retmax=${size}&retstart=${retstart}&retmode=json&sort=${sort}`
);
const searchData = await searchResp.json();
const ids = searchData.esearchresult?.idlist || [];
const total = parseInt(searchData.esearchresult?.count || '0');
if (ids.length === 0) return { query, total, page, results: [] };
const sumResp = await fetch(
`https://eutils.ncbi.nlm.nih.gov/entrez/eutils/esummary.fcgi?db=pubmed&id=${ids.join(',')}&retmode=json`
);
const sumData = await sumResp.json();
const results = ids.map((id, i) => {
const r = sumData.result?.[id] || {};
const doi = (r.articleids || []).find(a => a.idtype === 'doi')?.value || '';
return {
n: retstart + i + 1,
pmid: id,
title: r.title || '',
authors: (r.authors || []).map(a => a.name).join(', '),
journal: r.fulljournalname || '',
source: r.source || '',
pubdate: r.pubdate || '',
doi,
pubtype: (r.pubtype || []).join(', ')
};
});
const totalPages = Math.ceil(total / size);
return { query, total, page, totalPages, size, sort, results };
}4. Report
Page {page} of {totalPages} for "{query}" ({total} total results, sorted by {sort}):
1. {title}
PMID: {pmid} | DOI: {doi}
Authors: {authors}
Journal: {journal} ({pubdate})
2. ...Notes
- This skill uses 2 tool calls:
navigate_page+evaluate_script - If already on PubMed page, can skip navigate_page and use only evaluate_script (1 tool call)