Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
cookjohn avatar

Gs Fulltext

  • 262 installs
  • 470 repo stars
  • Updated March 13, 2026
  • cookjohn/gs-skills

Retrieve Google Scholar full-text PDFs or linked open-access copies when agents need primary sources beyond abstracts for analysis.

About

gs-fulltext from cookjohn/gs-skills teaches Claude Code how to resolve Google Scholar entries to full-text PDFs or publisher pages, enabling agents to ingest complete papers for summarization, citation checking, and evidence-backed recommendations during early research.

  • Scholar full-text resolution
  • Open-access link following
  • PDF retrieval for agents
  • Primary-source evidence gathering
  • Literature deep-read automation

Gs Fulltext by the numbers

  • 262 all-time installs (skills.sh)
  • Ranked #514 of 2,715 Automation & Workflows skills by installs in the Skillselion catalog
  • Data as of Aug 3, 2026 (Skillselion catalog sync)
npx skills add https://github.com/cookjohn/gs-skills --skill gs-fulltext

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs262
repo stars470
Last updatedMarch 13, 2026
Repositorycookjohn/gs-skills

What it does

Retrieve Google Scholar full-text PDFs or linked open-access copies when agents need primary sources beyond abstracts for analysis.

Files

SKILL.mdMarkdownGitHub ↗

Google Scholar Full Text Access

Resolve and present all full-text access options for a paper found in Google Scholar search results.

Arguments

$ARGUMENTS can be:

  • A data-cid from a previous search result
  • A result number (e.g., 3) referring to a previous search result

Prerequisites

This skill works best after a previous gs-search or gs-advanced-search call, which already extracts fullTextUrl and href for each result. If those are available, use them directly.

Steps

Step 1: Collect links from search results

From the previous search result, extract these fields for the target paper:

  • fullTextUrl: direct PDF/HTML link (from .gs_ggs a)
  • href: link to the paper's publisher page (from .gs_rt a)
  • dataCid: cluster ID

If no previous search context is available, search for the paper first using gs-search.

Step 2: Resolve additional links (evaluate_script)

Navigate to the Google Scholar results page (if not already there), then extract full-text links for the specific paper:

async () => {
  const cid = "DATA_CID_HERE";

  // Find the result item by data-cid
  const item = document.querySelector(`.gs_r.gs_or.gs_scl[data-cid="${cid}"]`);
  if (!item) return { error: 'not_found', message: 'Paper not found on current page. Try searching again.' };

  const titleEl = item.querySelector('.gs_rt a');
  const title = titleEl?.textContent?.trim() || item.querySelector('.gs_rt')?.textContent?.trim() || '';
  const paperUrl = titleEl?.href || '';

  // Full-text PDF/HTML link (shown on the right side of results)
  const fullTextEl = item.querySelector('.gs_ggs a') || item.querySelector('.gs_or_ggsm a');
  const fullTextUrl = fullTextEl?.href || '';
  const fullTextType = fullTextEl?.querySelector('span.gs_ctg2')?.textContent?.trim() || '';

  // Meta info for context
  const meta = item.querySelector('.gs_a')?.textContent || '';
  const parts = meta.split(' - ');
  const authors = parts[0]?.trim() || '';
  const journalYear = parts[1]?.trim() || '';

  // Try to extract DOI from paper URL
  let doi = '';
  if (paperUrl.includes('doi.org/')) {
    doi = paperUrl.replace(/^https?:\/\/(dx\.)?doi\.org\//, '');
  }

  // Build access links
  const links = {};

  if (fullTextUrl) {
    links.fullText = fullTextUrl;
    links.fullTextType = fullTextType || (fullTextUrl.endsWith('.pdf') ? '[PDF]' : '[HTML]');
  }

  if (paperUrl) {
    links.publisher = paperUrl;
  }

  if (doi) {
    links.doi = `https://doi.org/${doi}`;
    links.scihub = `https://sci-hub.ru/${doi}`;
  } else if (paperUrl) {
    // Sci-Hub also works with direct URLs
    links.scihub = `https://sci-hub.ru/${paperUrl}`;
  }

  return {
    dataCid: cid,
    title,
    authors,
    journalYear,
    doi,
    fullTextUrl,
    fullTextType,
    paperUrl,
    links
  };
}

Step 3: Report

## Full Text Links — {title}

**Authors:** {authors} | {journalYear}

**Direct Full Text:**
{links.fullText ? "- " + links.fullTextType + " " + links.fullText : "No direct full text link available"}

**Publisher Page:**
{links.publisher ? "- " + links.publisher : "N/A"}

**DOI:**
{links.doi ? "- " + links.doi : "No DOI detected"}

**Sci-Hub:**
{links.scihub ? "- " + links.scihub : "N/A"}

Step 4: Open full text (optional)

If the user wants to read the paper immediately, use mcp__chrome-devtools__new_page to open the preferred link in this priority: 1. fullTextUrl (direct PDF/HTML, usually free) 2. DOI link (may require subscription) 3. Sci-Hub link (fallback) 4. Publisher page

Notes

  • This skill uses 1-2 tool calls: evaluate_script (if already on results page) or navigate_page + evaluate_script
  • Google Scholar's full-text links (.gs_ggs) are usually free/open-access PDFs
  • DOI may not always be extractable from the paper URL
  • Sci-Hub works with both DOI and direct URL
  • Opening full text in a new tab adds 1 more tool call (new_page)

Related skills

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.