en un clic
gs-fulltext
// 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.
// 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.
Perform advanced Google Scholar search with filters - author, journal, date range, exact phrase, title-only. Constructs proper URL parameters from natural language. Use for precise filtered searches.
Find papers that cite a given Google Scholar paper. Tracks citation chains using data-cid (cluster ID). Use when user wants to see who cited a specific paper.
Export Google Scholar paper(s) to Zotero via BibTeX. Gets citation data from Google Scholar's cite dialog, then pushes to Zotero desktop. Supports single or batch export.
Navigate Google Scholar search result pages. Use when user wants to see more results or go to a specific page.
Search Google Scholar for academic papers by keywords. Returns results with title, authors, journal, year, citation count, and full-text links. Use when the user wants to search Google Scholar.
| 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] |
Resolve and present all full-text access options for a paper found in Google Scholar search results.
$ARGUMENTS can be:
data-cid from a previous search result3) referring to a previous search resultThis 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.
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 IDIf no previous search context is available, search for the paper first using gs-search.
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
};
}
## 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"}
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)evaluate_script (if already on results page) or navigate_page + evaluate_script.gs_ggs) are usually free/open-access PDFsnew_page)