Scholar answers to a rate limit that has real consequences: exceed it and your IP is blocked for a day or two, across proxies on the same range, with repeat offences escalating. The defaults are tuned for that, and the project is explicit that going below five seconds is not recommended. Two things follow. Use the batch tool for multiple queries, because its built-in spacing is safer than firing them yourself. And for a large literature scan, raise the delays and put a proxy in front rather than hoping.
An MCP server over Google Scholar, built on the scholarly library. Scholar has no official API and blocks aggressive clients, so the interesting engineering here is the pacing: randomised delays, retries and optional proxying are part of the server rather than something you have to add.
- Keyword search using the same syntax as the Scholar search box, with filtering, sorting and pagination — `search_papers`
- One paper's complete record, including citation-per-year statistics and its BibTeX entry, where the search result is deliberately lightweight — `get_paper_details`
- Forward-citation analysis: the papers that cite a given work, found by title — `get_citations`
- An author profile by name, carrying affiliation, h-index, i10-index, research interests and a sample of publications — `search_author`
- A BibTeX record for a paper by title, returned as a string ready to paste into a bib file — `get_bibtex`
- Batch search over several queries run sequentially with randomised delays between them, where a single failed query is captured rather than aborting the batch — `bulk_search`
No account and no key for the default configuration. Python 3.11 or later; install `google-scholar-search-mcp` from PyPI or from a clone, and run the module over stdio. Pacing is set by `GS_MIN_DELAY` and `GS_MAX_DELAY`, which default to 5.0 and 15.0 seconds and are randomised between the two, with `GS_MAX_RETRIES` at 3 and `GS_TIMEOUT` at 30 seconds. `GS_PROXY_TYPE` selects none, free, single or scraperapi — the single mode takes `GS_PROXY_HTTP` and `GS_PROXY_HTTPS`, and the ScraperAPI mode takes `GS_SCRAPERAPI_KEY`.
One command — pip install google-scholar-search-mcp
