MCPInstall

gs-navigate-pages

Navigate Google Scholar search result pages. Use when user wants to see more results or go to a specific page.

Installs
159
Last 24h
—
Trending rank
—
Security
Not audited

Install

Works with every agent the skills CLI supports.

npx skills add https://github.com/cookjohn/gs-skills --skill gs-navigate-pages
  1. 01

    Install

    Run the command in your project. The CLI asks which agents to install for.

  2. 02

    Describe the task

    Ask your agent for something this skill covers. It loads gs-navigate-pages automatically when relevant.

  3. 03

    Review the result

    The agent follows the SKILL.md steps, scripts and references bundled with the skill.

SKILL.md

The instructions your agent reads when the skill is triggered.

Google Scholar Navigate Pages

Navigate search result pages. Requires context from a previous gs-search or gs-advanced-search call.

Arguments

$ARGUMENTS can be:

  • next — go to next page
  • previous — go to previous page
  • page N — go to page N

Prerequisites

This skill requires context from a previous search:

  • currentUrl: the current Google Scholar search URL
  • page: current page number (1-based)

Steps

1. Calculate new URL

Google Scholar uses start parameter for pagination (0-indexed, increments of 10):

  • Page 1: start=0 (or omitted)
  • Page 2: start=10
  • Page 3: start=20

Based on $ARGUMENTS:

  • next: newStart = currentStart + 10
  • previous: newStart = max(0, currentStart - 10)
  • page N: newStart = (N - 1) * 10

Modify the start parameter in the current search URL. If start doesn't exist in the URL, append &start={newStart}.

2. Navigate

Use mcp__chrome-devtools__navigate_page with the updated URL.

3. Extract results (evaluate_script)

Same extraction script as gs-search step 2:

async () => {
  for (let i = 0; i < 20; i++) {
    if (document.querySelector('#gs_res_ccl') || document.querySelector('#gs_captcha_ccl')) break;
    await new Promise(r => setTimeout(r, 500));
  }

  if (document.querySelector('#gs_captcha_ccl') || document.body.innerText.includes('unusual traffic')) {
    return { error: 'captcha', message: 'Google Scholar requires CAPTCHA verification. Please complete it in your browser, then tell me to continue.' };
  }

  const items = document.querySelectorAll('#gs_res_ccl .gs_r.gs_or.gs_scl');
  const results = Array.from(items).map((item, i) => {
    const titleEl = item.querySelector('.gs_rt a');
    const meta = item.querySelector('.gs_a')?.textContent || '';
    const parts = meta.split(' - ');
    const authors = parts[0]?.trim() || '';
    const journalYear = parts[1]?.trim() || '';
    const citedByEl = item.querySelector('.gs_fl a[href*="cites"]');

    return {
      n: NEW_START + i + 1,
      title: titleEl?.textContent?.trim() || item.querySelector('.gs_rt')?.textContent?.trim() || '',
      href: titleEl?.href || '',
      authors,
      journalYear,
      citedBy: citedByEl?.textContent?.match(/\d+/)?.[0] || '0',
      citedByUrl: citedByEl?.href || '',
      dataCid: item.getAttribute('data-cid') || '',
      fullTextUrl: (item.querySelector('.gs_ggs a') || item.querySelector('.gs_or_ggsm a'))?.href || '',
      snippet: item.querySelector('.gs_rs')?.textContent?.trim()?.substring(0, 200) || ''
    };
  });

  const totalText = document.querySelector('#gs_ab_md')?.textContent?.trim() || '';
  const hasNext = !!document.querySelector('#gs_n a.gs_ico_nav_next, #gs_nm a:last-child');
  const currentUrl = window.location.href;
  return { total: totalText, page: NEW_PAGE, resultCount: results.length, hasNext, currentUrl, results };
}

Replace NEW_START and NEW_PAGE with the computed values.

4. Report

Page {page} for "{query}" ({total}):

1. {title}
   Authors: {authors} | {journalYear}
   Cited by: {citedBy}
   Data-CID: {dataCid}

2. ...

{hasNext ? "More results available — ask me for the next page." : "No more results."}

Notes

  • This skill uses 2 tool calls: navigate_page + evaluate_script
  • Google Scholar shows 10 results per page by default
  • start parameter controls pagination offset

FAQ

What does the gs-navigate-pages skill do?

Navigate Google Scholar search result pages. Use when user wants to see more results or go to a specific page.

How do I install gs-navigate-pages?

Run npx skills add https://github.com/cookjohn/gs-skills --skill gs-navigate-pages in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/gs-navigate-pages/ (personal) or .claude/skills/gs-navigate-pages/ (project).

Which AI agents can use gs-navigate-pages?

Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.

Is gs-navigate-pages safe to install?

No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.

Who maintains gs-navigate-pages?

It is published by cookjohn in cookjohn/gs-skills. It has 159 recorded installs.

More from cookjohn/gs-skills

View all →

gs-search

cookjohn/gs-skills

Open the skill to read its SKILL.md instructions.

443 installs

gs-fulltext

cookjohn/gs-skills

Open the skill to read its SKILL.md instructions.

291 installs

gs-advanced-search

cookjohn/gs-skills

Open the skill to read its SKILL.md instructions.

231 installs

gs-cited-by

cookjohn/gs-skills

Open the skill to read its SKILL.md instructions.

204 installs

gs-export

cookjohn/gs-skills

Open the skill to read its SKILL.md instructions.

203 installs

Popular other skills

View category →

hyperframes-cli

heygen-com/hyperframes

The HyperFrames CLI by job - scaffold, check, look at frames, edit the timeline, preview, render locally or in the cloud, publish, project history - plus reading its JSON and recovering from build or render failures.

1.3M installs

triage

mattpocock/skills

Move issues and external PRs through a state machine of triage roles, categorise, verify, grill if needed, and write agent-ready briefs.

1M installs

ask-matt

mattpocock/skills

Ask which skill or flow fits your situation. A router over the skills in this repo.

778.4K installs

to-questionnaire

mattpocock/skills

Turn a decision you can't fully answer into a questionnaire for someone else to fill in.

508.9K installs

wait-what

mattpocock/skills

Stop. That last message did not land: re-pitch it.

459.7K installs

loop-me

mattpocock/skills

Grill me about specs for the workflows I want to build, within this workspace.

447.9K installs