Google Scholar Skills
Google Scholar Skills for Claude Code
Шесть скиллов и агент gs-researcher: Claude Code ищет в Google Scholar, отслеживает цитирования, берет ссылки на полный текст и выгружает в Zotero
- 538 ★ репозитория
- Последний коммит
- MIT
Расширенный доступ
Почему такой уровень
- Отладочный порт 9222 дает агенту управление вкладками Chrome, в том числе открытыми с вашими входами
- Скилл выполняет JavaScript на странице и скачивает данные, а `gs-export` передает записи в Zotero
- Среди ссылок на полный текст есть Sci-Hub, законность зависит от страны
Установка
- Работает в
Ручная установка
claude mcp add chrome-devtools -- npx -y chrome-devtools-mcp@latestШаг 1: сервер Chrome DevTools MCP, через который скиллы управляют браузером.
Доступ и проверки
Как мы проверяемРасширенный доступИнструмент запускает код или ходит в сеть, а внешние данные только читает.
- Отладочный порт 9222 дает агенту управление вкладками Chrome, в том числе открытыми с вашими входами
- Скилл выполняет JavaScript на странице и скачивает данные, а `gs-export` передает записи в Zotero
- Среди ссылок на полный текст есть Sci-Hub, законность зависит от страны
Это чужой код. Посмотрите файлы в репозитории перед установкой.
Что делает
Набор управляет Google Scholar через Chrome DevTools MCP: у сервиса нет публичного API, поэтому скиллы разбирают страницу по CSS-селекторам. Каждая операция занимает один-два вызова инструмента, без распознавания скриншотов. Скилл gs-search ищет по ключевым словам и возвращает название, авторов, журнал, год, число цитирований и ссылки. Gs-advanced-search добавляет фильтры по автору, журналу, диапазону дат, точной фразе и только заголовку, например `author`:Einstein `after`:2020. Gs-cited-by находит работы, которые цитируют выбранную статью, по идентификатору `data-cid`, он служит ключом во всех скиллах. Gs-fulltext собирает ссылки на PDF, DOI и страницу издателя, `gs-navigate-pages` листает выдачу. Gs-export берет BibTeX и отправляет запись в Zotero через скрипт push_to_zotero.py. Агент `gs-researcher` объединяет все шесть скиллов в цепочки вроде «поиск, цитирования, экспорт в Zotero». Если Google показывает капчу, он останавливается и просит вас пройти ее вручную в браузере.
Для кого. Для исследователей, аспирантов и студентов, которые собирают литературу в Google Scholar и ведут библиотеку в Zotero.
Подходит, если
- Нужен список работ по теме с цитированиями, журналами и годами в структурном виде
- Надо найти статьи Эйнштейна после 2020 года или искать точную фразу только в заголовках
- Хочется узнать, кто цитирует ключевую статью, и перейти по цепочке цитирований
- Нужны ссылки на полный текст статьи: PDF, DOI, страница издателя
- Найденные работы требуется сразу отправить в Zotero в виде BibTeX
Не подходит, если
- Нужен официальный API с гарантированной структурой: разбор страницы может сломаться при смене верстки Google Scholar
- Нужен поиск по китайским базам: для CNKI в каталоге есть отдельный набор от того же автора
- Хотите запускать поиск без браузера: Chrome должен быть открыт с отладочным портом
- Нужен массовый сбор данных: частые запросы приводят к капче, а скилл просит решить ее вручную
Пример запроса к агенту
/gs-advanced-search `author`:Hinton `after`:2022 `neural` `networks`, затем покажи, кто цитирует первую статьюОграничения
Нужны Chrome с удаленной отладкой на порту 9222 и сервер chrome-devtools-mcp. Для экспорта требуется настольное приложение Zotero и Python 3. Данные берутся разбором страницы, поэтому сбой возможен при изменении верстки. Скилл `gs-fulltext` среди прочего возвращает ссылки на Sci-Hub: законность их использования зависит от вашей страны и правил вашей организации. При капче работа останавливается до ручного ввода.
Как отключить. Удалите папки `gs-`* из .claude/skills и файл gs-researcher.md из .claude/agents. Сервер удалите командой claude mcp `remove` chrome-devtools и закройте Chrome с отладочным портом.
Частые вопросы
Как подключить Google Scholar к Claude Code?
Поставьте сервер командой claude mcp add chrome-devtools -- npx -y chrome-devtools-mcp@latest, скопируйте папки skills и agents из репозитория в .claude и запустите Chrome с флагом --remote-debugging-port=9222. После запуска claude проверьте установку командой /gs-search deep learning.
Почему скиллы не используют API Google Scholar?
Публичного API у сервиса нет. Скиллы читают страницу через evaluate_script и CSS-селекторы, а BibTeX получают через navigate_page, чтобы обойти ограничения CORS на scholar.googleusercontent.com.
Что такое data-cid и зачем он нужен?
Это идентификатор кластера статьи в выдаче Google Scholar. Он служит главным ключом во всех скиллах: по нему работают отслеживание цитирований, экспорт и перекрестные ссылки, например /gs-cited-by 0qfs6zbVakoJ.
Что делает скилл при капче?
Он проверяет наличие капчи, останавливается и просит вас пройти ее в браузере, после чего вы просите продолжить. Автоматически капчу скилл не решает.
Нужен ли Zotero для работы скиллов?
Нет. Zotero и Python 3 нужны только для экспорта через `gs-export`. Поиск, цитирования и ссылки на полный текст работают без них.
Обсуждение
Вопросов и отзывов пока нет.
Похожие
СкиллыCNKI Skills
CNKI Skills for Claude Code
Набор скиллов для Claude Code, который через Chrome DevTools MCP ищет статьи в CNKI, смотрит журналы, скачивает PDF и выгружает в Zotero
Скилл для Claude Code, который превращает агента в исследователя: многоэтапный сбор источников, проверка цитат и отчет с вики, растущей от сессии к сессии
Deep Research
Deep Research Skill for Claude Code
Скилл глубокого исследования для Claude Code: многоэтапный поиск, проверка утверждений и отчет со ссылками в Markdown, HTML и PDF
Поиск научных статей сразу в пяти базах с дедупликацией, проверкой цитат и экспортом в RIS и BibTeX для Claude Code и Codex
MCP-сервер ищет в Google и Scholar, читает страницы и PDF и копит найденное в локальном графе знаний проекта
Скилл веб-исследования: SearXNG ищет, Camofox читает страницы, CloakBrowser открывает сайты, которые проверяют посетителей
Сравнение с похожими
Записи с тем же главным запросом: чем они отличаются.
| Запись | Официальный | Авторизация | Звезды репозитория | Главное отличие |
|---|---|---|---|---|
| Google Scholar Skills (эта запись) | нет | 538 | ||
| CNKI Skills | нет | 1 027 | тот же подход, но для китайской базы CNKI | |
| Paper Search MCP | нет | ключ необязателен | 2 941 | MCP-сервер с поиском по arXiv, PubMed и другим открытым источникам через API |
| Zotero MCP | нет | не нужна | 1 251 | подключает библиотеку Zotero к агенту, поиска по Google Scholar в нем нет |
Коротко о README
Описание дано на английском и китайском. Оно перечисляет требования, таблицу из шести скиллов с примерами вызова, агента `gs-researcher` и три шага установки: сервер Chrome DevTools MCP, копирование скиллов и запуск Chrome с отладочным портом. Затем объяснены принципы работы: разбор страницы без распознавания скриншотов, `data-cid` как ключ, один асинхронный скрипт на операцию. Лицензия MIT.
Бейдж для README
Исходный SKILL.md
---
name: gs-search
description: 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.
argument-hint: "[search keywords]"
---
# Google Scholar Basic Search
Search Google Scholar for papers using keyword(s). Returns structured result list via DOM scraping.
## Arguments
$ARGUMENTS contains the search keyword(s).
## Steps
### 1. Navigate
Use `mcp__chrome-devtools__navigate_page`:
- url: `https://scholar.google.com/scholar?q={URL_ENCODED_KEYWORDS}&hl=en&num=10`
### 2. Extract results (evaluate_script)
Wait for results to load, check for CAPTCHA, then scrape the DOM:
```javascript
async () => {
// Wait for results or CAPTCHA
for (let i = 0; i < 20; i++) {
if (document.querySelector('#gs_res_ccl') || document.querySelector('#gs_captcha_ccl')) break;
await new Promise(r => setTimeout(r, 500));
}
// CAPTCHA check
if (document.querySelector('#gs_captcha_ccl') || document.body.innerText.includes('unusual traffic')) {
return { error: 'captcha', message: 'Google Scholar requires CAPTCHA verification. Please complete it in your browser, then tell me to continue.' };
}
const items = document.querySelectorAll('#gs_res_ccl .gs_r.gs_or.gs_scl');
const results = Array.from(items).map((item, i) => {
const titleEl = item.querySelector('.gs_rt a');
const meta = item.querySelector('.gs_a')?.textContent || '';
// Parse "Author1, Author2 - Journal, Year - publisher"
const parts = meta.split(' - ');
const authors = parts[0]?.trim() || '';