Overview
gs-skills (GitHub: cookjohn/gs-skills, MIT, ~317 stars) is a Claude Code skill set that drives Google Scholar through the Chrome DevTools MCP. Author cookjohn also maintains cnki-skills, pm-skills, wos-skills, sci-skills, and zotero-mcp-plugin, forming a broader academic-research skill ecosystem.
The core problem: Google Scholar is foundational infrastructure for academic search, but it exposes no public API. Batch exports, citation tracing, structured filtering, and Zotero import normally require manual page-turning and copy-paste. Existing workarounds fall into two camps — Selenium/Playwright scraping (heavy, easy to fingerprint) and third-party proxies like SerpAPI (costly, partially uncontrollable). gs-skills takes a third path: Claude Code invokes Chrome DevTools Protocol directly, parses the DOM for precise extraction, and wraps intent into SKILL files.
Key points
- Architecture: DevTools MCP, not OCR. Instead of navigate → screenshot → OCR → click, the tool does navigate →
evaluate_script(run JS in the page) → CSS-selector extraction → structured JSON. Each skill usually needs only 1–2 tool calls (one navigate, one evaluate_script), an order of magnitude faster than Playwright MCP's snapshot/analyze/click pattern. data-cidas the universal join key. Google Scholar embeds a hidden cluster ID (data-cid) on every result. gs-skills promotes it to the primary key shared across skills:gs-searchreturns it,gs-cited-byopens the citation page by it,gs-fulltextresolves the paper by it, andgs-exportproduces BibTeX by it. This avoids fragile title-matching or URL stitching.- CORS workaround for BibTeX. BibTeX files live on
scholar.googleusercontent.com, so direct fetch hits CORS. gs-skills navigates the page to the BibTeX URL (usingnavigate_page) and reads the response text viaevaluate_scripton the new page, sidestepping the same-origin policy. - CAPTCHA-aware design. Rather than plugging in a captcha-solving service, the tool detects the CAPTCHA DOM node, pauses, and asks the user to solve it manually — a pragmatic human-in-the-loop handoff that handles the remaining ~5% of cases automation cannot.
- Six atomic skills + one orchestrator.
gs-search,gs-advanced-search,gs-cited-by,gs-fulltext,gs-navigate-pages, andgs-exportfollow single-responsibility design. Thegs-researcheragent composes them via prompt-engineering (no DAG engine): e.g. "search deep learning, rank by citations, traverse references, export to Zotero." When CAPTCHA fires mid-flow, it halts and surfaces the prompt to the user. - The wider cookjohn stack. cnki-skills (~453 stars) covers CNKI including CAJ downloads and GB/T 7714 export; pm-skills uses NCBI E-utilities directly (esearch/esummary/efetch) since PubMed has a real API; wos-skills (~70) targets Web of Science; sci-skills (~37) covers ScienceDirect; zotero-mcp-plugin (~808 stars) exposes Zotero itself as an MCP server. CNKI's higher star count suggests Chinese academic users are underserved.
- Installation is a 4-step local setup: install Chrome DevTools MCP, clone the repo and copy
skills/andagents/into.claude/, launch Chrome with--remote-debugging-port=9222, then runclaude. Headless mode is not viable — Scholar fingerprints headless browsers — so deployment targets personal workstations, not servers. - DOM fragility. Google Scholar's CSS classes are not a contract; any redesign breaks every selector. Long-term maintenance cost is much higher than API-based tools like pm-skills.
- CAPTCHA handoff friction. Pausing works, but the user must context-switch between terminal and browser. An in-terminal inline preview or in-browser popup could smooth this.
data-cidstability. If Google's clustering algorithm changes, the join key can drift. There is no persistent cache or mapping layer; each session re-fetches.- Interoperability. Zotero is the only first-class export target. EndNote, Mendeley, or Notion-based workflows require manual BibTeX conversion, and field-mapping varies across tools.
- Bulk atomicity. If a 100-paper export hits a CAPTCHA midway, partial work is not rolled back or resumed. There is no transaction or checkpoint mechanism for large batches.
- gs-skills: https://github.com/cookjohn/gs-skills
- Chrome DevTools MCP: https://github.com/anthropics/chrome-devtools-mcp
- zotero-mcp-plugin: https://github.com/cookjohn/zotero-mcp-plugin
- cnki-skills: https://github.com/cookjohn/cnki-skills
- pm-skills: https://github.com/cookjohn/pm-skills
Limitations and open questions
Why it matters
gs-skills is less about "letting AI search Google Scholar" than about packaging academic retrieval into composable, reusable SKILL units. Claude Code can therefore understand multi-step intents like search → filter → trace → export and execute them autonomously. Combined with the sibling projects, the stack covers Scholar + CNKI + PubMed + Web of Science + ScienceDirect + Zotero — effectively an AI-ization of the full academic search pipeline. A workflow that took 30 minutes of manual paging and copying can drop to roughly 30 seconds.