| name | gs-fulltext |
| description | Get full-text access links for a Google Scholar paper - PDF, DOI, Sci-Hub, and publisher links. Use when user wants to read or download a paper's full text. |
| argument-hint | [data-cid or result number from previous search] |
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";
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 || '';
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() || '';
const meta = item.querySelector()?. || ;
parts = meta.();
authors = parts[]?.() || ;
journalYear = parts[]?.() || ;
doi = ;
(paperUrl.()) {
doi = paperUrl.(, );
}
links = {};
(fullTextUrl) {
links. = fullTextUrl;
links. = fullTextType || (fullTextUrl.() ? : );
}
(paperUrl) {
links. = paperUrl;
}
(doi) {
links. = ;
links. = ;
} (paperUrl) {
links. = ;
}
{
: 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:
fullTextUrl (direct PDF/HTML, usually free)
- DOI link (may require subscription)
- Sci-Hub link (fallback)
- 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)