Labsco
LWaetzig logo

Google Scholar MCP

โ˜… 2

from LWaetzig

An MCP server for searching Google Scholar, built for AI assistants and automation workflows that need papers, authors, citations, and BibTeX entries.

๐Ÿ”ฅ๐Ÿ”ฅ๐Ÿ”ฅ๐Ÿ”ฅโœ“ VerifiedFreeAdvanced setup

google-scholar-search-mcp

An MCP (Model Context Protocol) server for searching Google Scholar, built for AI assistants and automation workflows that need papers, authors, citations, and BibTeX entries.

Table of Contents

  1. Features
  2. Installation
  3. Configuration
  4. Usage
  5. Examples
  6. Rate Limiting
  7. Troubleshooting
  8. Contributing

Features

  • Paper Search: Query Google Scholar by keyword with filtering, sorting, and pagination
  • Author Lookup: Find researcher profiles with publication lists and h-index metrics
  • Citation Tracking: Retrieve papers that cite a given work
  • Paper Details: Get full metadata, citations-per-year graphs, and public access info
  • BibTeX Export: Generate citation entries in BibTeX format
  • Bulk Search: Batch search multiple queries with automatic rate limiting
  • Rate Limiting: Built-in delays between requests to avoid being blocked
  • Proxy Support: Optional proxy configuration (free, single, or ScraperAPI)

Rate Limiting

The server automatically enforces rate limiting between requests to avoid overloading Google Scholar's servers:

  • Min Delay (default 5s): Minimum wait between consecutive requests
  • Max Delay (default 15s): Maximum wait (randomized to avoid patterns)
  • Max Retries (default 3): Retry failed requests up to this many times

These settings help prevent being blocked by Google Scholar. Adjust via environment variables if needed:

Copy & paste โ€” that's it
export GS_MIN_DELAY=3.0
export GS_MAX_DELAY=10.0
export GS_MAX_RETRIES=5

โš ๏ธ IP Blocking Warning

If you exceed Google Scholar's rate limits despite the rate limiter:

  • Your IP may be temporarily blocked (usually 24-48 hours)
  • All requests will fail with connection errors or 429 responses
  • Blocked IPs cannot make requests even with valid proxies on the same IP range
  • Repeated violations may trigger permanent blocks or require CAPTCHA solving

Recommended Practices:

  1. Never decrease delays below 5 seconds โ€” the defaults are tuned for reliability
  2. Use the bulk_search tool instead of rapid sequential searches โ€” it includes built-in delays
  3. Add extra buffer during bulk operations โ€” consider setting GS_MIN_DELAY=10.0 for large jobs
  4. Use a proxy service (free proxy or ScraperAPI) to distribute requests across multiple IPs
  5. Monitor for 429 errors โ€” if you see them, increase delays immediately and wait before retrying
  6. Spread requests over time โ€” don't run 100 queries in 5 minutes, even with delays

Recovery from IP Blocks

If your IP gets blocked:

  • Wait 24-48 hours for the temporary block to expire
  • Use a proxy โ€” enable GS_PROXY_TYPE=free or scraperapi to route through different IPs
  • Change your network โ€” use a different WiFi/ISP temporarily if possible
  • Contact support โ€” for persistent blocks, escalate to Google Scholar support

Choosing Appropriate Delays

ScenarioGS_MIN_DELAYGS_MAX_DELAYNotes
Single searches5.015.0Default; safe for occasional queries
Bulk operations10.020.0Use for batch jobs; prevents rapid-fire requests
Heavy load15.030.0Use with proxy for large-scale research
Aggressive โš ๏ธ<5.0<10.0Not recommended; high risk of IP blocking

Contributing

Contributions are welcome! Please:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/your-feature)
  3. Commit your changes with clear messages
  4. Push to your fork
  5. Open a pull request

Support

For issues, questions, or feature requests, please open an issue on GitHub.

License

See LICENSE file