Unified MCP server for searching & downloading academic papers and ebooks from 10+ sources
mcp-academic-hub
A unified MCP (Model Context Protocol) server for searching and downloading academic papers and ebooks from 10+ sources.
Sources
Papers
- OpenAlex - Open scholarly metadata
- ArXiv - Preprints
- Unpaywall - Legal Open Access PDFs
- CORE - Library Open Access
- Sci-Hub - Fallback
Books
- Anna's Archive
- Z-Library (mirror)
- OceanofPDF
- PDF Drive
- ManyBooks (public domain)
- BDeBooks
- DigiLibraries
- Smashwords
Installation
git clone https://github.com/bockybocky/mcp-academic-hub.git
cd mcp-academic-hub
pip install -r requirements.txt
Configuration
Set environment variables (optional):
export UNPAYWALL_EMAIL="your-email@example.com" # For Unpaywall API
export CORE_API_KEY="your-core-api-key" # For CORE API (free at https://core.ac.uk)
export DOWNLOAD_DIR="/path/to/downloads" # Default download directory
Usage with Claude Code
Add to your Claude Code MCP settings (~/.claude/settings.json):
{
"mcpServers": {
"academic-hub": {
"type": "stdio",
"command": "uv",
"args": ["run", "server.py"],
"cwd": "/path/to/mcp-academic-hub"
}
}
}
Usage with Gemini CLI
Add to your Gemini MCP settings:
{
"mcpServers": {
"academic-hub": {
"command": "uv",
"args": ["run", "server.py"],
"cwd": "/path/to/mcp-academic-hub"
}
}
}
Available Tools
Search Tools
| Tool | Description |
|------|-------------|
| search_papers | Search OpenAlex + ArXiv |
| search_ocean_of_pdf | Search OceanofPDF |
| search_pdf_drive | Search PDF Drive |
| search_manybooks | Search ManyBooks (free/public domain) |
| search_bdebooks | Search BDeBooks |
| search_digilibraries | Search DigiLibraries |
| search_smashwords | Search Smashwords |
| search_zlibrary_to | Search Z-Library mirror |
| search_annas_archive | Search Anna's Archive |
Download/Link Extraction Tools
| Tool | Description |
|------|-------------|
| get_pdf_links | Find PDF links for a DOI (Unpaywall + CORE + Sci-Hub) |
| download_paper | Download a PDF from a direct URL |
| get_ocean_of_pdf_links | Extract download links from OceanofPDF |
| get_pdf_drive_links | Extract PDF links from PDF Drive |
| get_digilibraries_links | Extract download links from DigiLibraries |
| get_zlibrary_to_links | Extract download links from Z-Library |
| get_smashwords_links | Extract Smashwords book info |
Requirements
- Python >= 3.10
- uv (recommended) or pip
License
MIT