{"id":50751836,"url":"https://github.com/cookjohn/gs-skills","last_synced_at":"2026-06-29T22:30:51.283Z","repository":{"id":367860722,"uuid":"1172163016","full_name":"cookjohn/gs-skills","owner":"cookjohn","description":"Google Scholar skills for Claude Code — search, citation tracking, full-text access, and Zotero export via Chrome DevTools MCP","archived":false,"fork":false,"pushed_at":"2026-03-13T06:33:31.000Z","size":430,"stargazers_count":426,"open_issues_count":1,"forks_count":27,"subscribers_count":0,"default_branch":"master","last_synced_at":"2026-06-28T04:03:53.774Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cookjohn.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-03-04T02:17:06.000Z","updated_at":"2026-06-27T08:15:09.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/cookjohn/gs-skills","commit_stats":null,"previous_names":["cookjohn/gs-skills"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/cookjohn/gs-skills","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cookjohn%2Fgs-skills","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cookjohn%2Fgs-skills/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cookjohn%2Fgs-skills/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cookjohn%2Fgs-skills/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cookjohn","download_url":"https://codeload.github.com/cookjohn/gs-skills/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cookjohn%2Fgs-skills/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34945707,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-29T02:00:05.398Z","response_time":58,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-06-11T02:00:24.513Z","updated_at":"2026-06-29T22:30:51.278Z","avatar_url":"https://github.com/cookjohn.png","language":"Python","funding_links":[],"categories":["Claude Code Skills"],"sub_categories":["学习研究"],"readme":"# Google Scholar Skills for Claude Code\n\n[English](#english) | [中文](#中文)\n\n| WeChat Official Account (公众号) | WeChat Group (微信群) | Discord |\n|:---:|:---:|:---:|\n| \u003cimg src=\"qrcode_for_gh_a1c14419b847_258.jpg\" width=\"200\"\u003e | \u003cimg src=\"0320.jpg\" width=\"200\"\u003e | [Join Discord](https://discord.gg/tGd5vTDASg) |\n| 未来论文实验室 | 扫码加入交流群 | English \u0026 Chinese |\n\n---\n\n\u003ca id=\"english\"\u003e\u003c/a\u003e\n\n## English\n\n[Claude Code](https://docs.anthropic.com/en/docs/claude-code) skills that let Claude interact with [Google Scholar](https://scholar.google.com) through Chrome DevTools MCP.\n\nSearch papers, track citations, get full-text links, and export to Zotero — all from the Claude Code CLI.\n\n### Prerequisites\n\n- [Claude Code](https://docs.anthropic.com/en/docs/claude-code) CLI installed\n- Chrome browser with remote debugging enabled\n- [Zotero](https://www.zotero.org/) desktop app (optional, for export)\n- Python 3 (optional, for Zotero push script)\n\n### Skills\n\n| Skill | Description | Invocation |\n|-------|-------------|------------|\n| `gs-search` | Keyword search with structured result extraction | `/gs-search deep learning` |\n| `gs-advanced-search` | Filtered search: author, journal, date range, exact phrase, title-only | `/gs-advanced-search author:Einstein after:2020 relativity` |\n| `gs-cited-by` | Find papers that cite a given paper via data-cid | `/gs-cited-by 0qfs6zbVakoJ` |\n| `gs-fulltext` | Get full-text access links: PDF, DOI, Sci-Hub, publisher | `/gs-fulltext 0qfs6zbVakoJ` |\n| `gs-navigate-pages` | Pagination for search results | `/gs-navigate-pages next` |\n| `gs-export` | Export to Zotero via BibTeX extraction | `/gs-export 0qfs6zbVakoJ` |\n\n### Agent\n\n**`gs-researcher`** — orchestrates all 6 skills. Handles CAPTCHA detection (pauses and asks user to solve manually) and multi-step workflows like \"search → track citations → export to Zotero\".\n\n### Installation\n\n#### 1. Install Chrome DevTools MCP server\n\n```bash\nclaude mcp add chrome-devtools -- npx -y chrome-devtools-mcp@latest\n```\n\n#### 2. Install Google Scholar skills\n\n```bash\ngit clone https://github.com/cookjohn/gs-skills.git\ncd gs-skills\ncp -r skills/ agents/ .claude/\n```\n\nOr add to an existing project:\n\n```bash\ngit clone https://github.com/cookjohn/gs-skills.git /tmp/gs-skills\ncp -r /tmp/gs-skills/skills/ your-project/.claude/skills/\ncp -r /tmp/gs-skills/agents/ your-project/.claude/agents/\n```\n\n#### 3. Start Chrome with remote debugging\n\n```bash\n# Windows\n\"C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe\" --remote-debugging-port=9222\n\n# macOS\n/Applications/Google\\ Chrome.app/Contents/MacOS/Google\\ Chrome --remote-debugging-port=9222\n\n# Linux\ngoogle-chrome --remote-debugging-port=9222\n```\n\n#### 4. Launch Claude Code\n\n```bash\nclaude\n```\n\nSkills and agent are picked up automatically. Try `/gs-search deep learning` to verify.\n\n### How It Works\n\nAll skills use async `evaluate_script` calls via Chrome DevTools MCP — no screenshot parsing or OCR. Each skill operates in 1-2 tool calls (navigate + evaluate_script), making interactions fast and reliable.\n\nKey design choices:\n- **DOM scraping only** — Google Scholar has no public API; all data extraction uses CSS selectors\n- **`data-cid` as primary key** — cluster ID used across all skills for citation tracking, export, and cross-referencing\n- **Single async script per operation** — replaces multi-step snapshot → click → wait_for patterns\n- **BibTeX via navigate_page** — bypasses CORS restrictions on `scholar.googleusercontent.com`\n- **CAPTCHA-aware** — detects Google Scholar CAPTCHA and pauses for manual resolution\n\n### Project Structure\n\n```\nskills/\n├── gs-search/SKILL.md              # Basic keyword search\n├── gs-advanced-search/SKILL.md     # Filtered search (author, journal, date, etc.)\n├── gs-cited-by/SKILL.md            # Citation tracking via data-cid\n├── gs-fulltext/SKILL.md            # Full-text access links (PDF, DOI, Sci-Hub)\n├── gs-navigate-pages/SKILL.md      # Result pagination\n├── gs-export/                      # BibTeX export \u0026 Zotero push\n│   ├── SKILL.md\n│   └── scripts/\n│       └── push_to_zotero.py       # Zotero Connector API client\nagents/\n└── gs-researcher.md                # Agent: orchestrates all skills\n```\n\n---\n\n\u003ca id=\"中文\"\u003e\u003c/a\u003e\n\n## 中文\n\n| 公众号 | 微信交流群 | Discord |\n|:---:|:---:|:---:|\n| \u003cimg src=\"qrcode_for_gh_a1c14419b847_258.jpg\" width=\"200\"\u003e | \u003cimg src=\"0320.jpg\" width=\"200\"\u003e | [加入 Discord](https://discord.gg/tGd5vTDASg) |\n| 未来论文实验室 | 扫码加入交流群 | 中英文交流 |\n\n让 [Claude Code](https://docs.anthropic.com/en/docs/claude-code) 通过 Chrome DevTools MCP 操控 [Google Scholar (谷歌学术)](https://scholar.google.com) 的技能集。\n\n支持论文搜索、引用追踪、全文获取、导出到 Zotero 等功能，全部在 Claude Code 命令行中完成。\n\n### 前置要求\n\n- 已安装 [Claude Code](https://docs.anthropic.com/en/docs/claude-code) CLI\n- Chrome 浏览器（需开启远程调试）\n- [Zotero](https://www.zotero.org/) 桌面版（可选，用于导出）\n- Python 3（可选，用于 Zotero 推送脚本）\n\n### 技能列表\n\n| 技能 | 描述 | 调用方式 |\n|------|------|----------|\n| `gs-search` | 关键词搜索，返回结构化结果 | `/gs-search deep learning` |\n| `gs-advanced-search` | 高级搜索：作者、期刊、时间、精确短语、仅标题 | `/gs-advanced-search author:Einstein after:2020 relativity` |\n| `gs-cited-by` | 引用追踪：查找引用了某篇论文的所有文献 | `/gs-cited-by 0qfs6zbVakoJ` |\n| `gs-fulltext` | 全文获取：PDF、DOI、Sci-Hub、出版商链接 | `/gs-fulltext 0qfs6zbVakoJ` |\n| `gs-navigate-pages` | 搜索结果翻页 | `/gs-navigate-pages next` |\n| `gs-export` | 通过 BibTeX 导出到 Zotero | `/gs-export 0qfs6zbVakoJ` |\n\n### 智能体\n\n**`gs-researcher`** — 统一调度全部 6 个技能。自动检测验证码（暂停并提示用户手动完成），支持\"搜索 → 引用追踪 → 导出到 Zotero\"等复合工作流。\n\n### 安装步骤\n\n#### 1. 安装 Chrome DevTools MCP 服务器\n\n```bash\nclaude mcp add chrome-devtools -- npx -y chrome-devtools-mcp@latest\n```\n\n#### 2. 安装 Google Scholar 技能\n\n```bash\ngit clone https://github.com/cookjohn/gs-skills.git\ncd gs-skills\ncp -r skills/ agents/ .claude/\n```\n\n或添加到已有项目：\n\n```bash\ngit clone https://github.com/cookjohn/gs-skills.git /tmp/gs-skills\ncp -r /tmp/gs-skills/skills/ your-project/.claude/skills/\ncp -r /tmp/gs-skills/agents/ your-project/.claude/agents/\n```\n\n#### 3. 启动 Chrome 远程调试\n\n```bash\n# Windows\n\"C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe\" --remote-debugging-port=9222\n\n# macOS\n/Applications/Google\\ Chrome.app/Contents/MacOS/Google\\ Chrome --remote-debugging-port=9222\n\n# Linux\ngoogle-chrome --remote-debugging-port=9222\n```\n\n#### 4. 启动 Claude Code\n\n```bash\nclaude\n```\n\n技能和智能体会自动加载。输入 `/gs-search deep learning` 验证是否正常工作。\n\n### 工作原理\n\n所有技能通过 Chrome DevTools MCP 的 `evaluate_script` 异步执行 JavaScript，无需截图识别或 OCR。每个技能仅需 1-2 次工具调用（导航 + 执行脚本），快速且稳定。\n\n核心设计：\n- **纯 DOM 解析** — Google Scholar 无公开 API，所有数据通过 CSS 选择器提取\n- **`data-cid` 作为主键** — 集群 ID 贯穿所有技能，用于引用追踪、导出和交叉引用\n- **单次异步脚本** — 取代多步骤 snapshot → click → wait_for 模式\n- **navigate_page 获取 BibTeX** — 绕过 `scholar.googleusercontent.com` 的 CORS 限制\n- **验证码感知** — 检测到 Google Scholar 验证码时自动暂停，等待用户手动完成\n\n---\n\n## License\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcookjohn%2Fgs-skills","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcookjohn%2Fgs-skills","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcookjohn%2Fgs-skills/lists"}