Academic Search MCP
A Model Context Protocol (MCP) server for searching and downloading academic papers from multiple sources. Designed for seamless integration with large language models like Claude Desktop.
Fork Notice: This is an extended fork of openags/academic-search-mcp with additional platforms (CORE, SSRN, CyberLeninka) and improvements.
Table of Contents
Overview
academic-search-mcp is a Python-based MCP server that enables users to search and download academic papers from various platforms. It provides tools for searching papers (e.g., search_arxiv) and downloading PDFs (e.g., download_arxiv), making it ideal for researchers and AI-driven workflows. Built with the MCP Python SDK, it integrates seamlessly with LLM clients like Claude Desktop.
Features
- Multi-Source Support: Search and download papers from arXiv, PubMed, bioRxiv, medRxiv, Google Scholar, IACR ePrint Archive, Semantic Scholar, CrossRef, OpenAlex, CORE, SSRN, and CyberLeninka.
- Date Filtering: All sources support
date_fromanddate_toparameters (YYYY-MM-DD format) to filter papers by publication date. - Citation Counts: OpenAlex, Semantic Scholar, CrossRef, and Google Scholar include citation counts in search results.
- Citation Graph: OpenAlex tools to explore references (papers a work cites) and citations (papers citing a work), sorted by impact.
- Open Access PDFs: OpenAlex includes PDF URLs for open access papers.
- Token-Optimized Output: Configurable
abstract_limitparameter to control abstract length (default: 200 chars, use -1 for full, 0 to omit). - Standardized Output: Papers are returned in a consistent, compact dictionary format via the
Paperclass. - Asynchronous Tools: Efficiently handles network requests using
httpx. - MCP Integration: Compatible with MCP clients for LLM context enhancement.
- Extensible Design: Easily add new academic platforms by extending the
academic_platformsmodule.
Search Parameters
All search tools support these common parameters:
| Parameter | Type | Default | Description |
|---|---|---|---|
query |
str | required | Search query string |
max_results |
int | 10 | Maximum number of papers to return |
abstract_limit |
int | 200 | Max chars for abstract (0=omit, -1=full) |
date_from |
str | None | Start date in YYYY-MM-DD format |
date_to |
str | None | End date in YYYY-MM-DD format |
Note: Google Scholar only supports year-level filtering (month/day are ignored).
Installation
Quick Start with uvx
The easiest way to use academic-search-mcp:
uvx academic-search-mcp
Or install globally:
uv tool install academic-search-mcp
Configure Claude Desktop
Add this configuration to ~/Library/Application Support/Claude/claude_desktop_config.json (Mac) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"academic_search": {
"command": "uvx",
"args": ["academic-search-mcp"]
}
}
}
Alternative: Install with pip/uv
pip install academic-search-mcp
# or
uv add academic-search-mcp
- Configure Claude Desktop (alternative):
Add this configuration to
~/Library/Application Support/Claude/claude_desktop_config.json(Mac) or%APPDATA%\Claude\claude_desktop_config.json(Windows):{ "mcpServers": { "paper_search_server": { "command": "uv", "args": [ "run", "--directory", "/path/to/your/academic-search-mcp", "-m", "paper_search_mcp.server" ], "env": { "SEMANTIC_SCHOLAR_API_KEY": "", // Optional: For enhanced Semantic Scholar features "CORE_API_KEY": "" // Optional: for CORE repository access } } } }
Note: Replace
/path/to/your/academic-search-mcpwith your actual installation path.
For Development
For developers who want to modify the code or contribute:
-
Setup Environment:
# Install uv if not installed curl -LsSf https://astral.sh/uv/install.sh | sh # Clone repository git clone https://github.com/openags/academic-search-mcp.git cd academic-search-mcp # Create and activate virtual environment uv venv source .venv/bin/activate # On Windows: .venv\Scripts\activate
-
Install Dependencies:
# Install project in editable mode uv add -e . # Add development dependencies (optional) uv add pytest flake8
Contributing
We welcome contributions! Here's how to get started:
-
Fork the Repository: Click "Fork" on GitHub.
-
Clone and Set Up:
git clone https://github.com/yourusername/academic-search-mcp.git cd academic-search-mcp pip install -e ".[dev]" # Install dev dependencies (if added to pyproject.toml)
-
Make Changes:
- Add new platforms in
academic_platforms/. - Update tests in
tests/.
- Add new platforms in
-
Submit a Pull Request: Push changes and create a PR on GitHub.
Demo
TODO
Planned Academic Platforms
- arXiv
- PubMed
- bioRxiv
- medRxiv
- Google Scholar
- IACR ePrint Archive
- Semantic Scholar
- CrossRef
- OpenAlex
- CORE (200M+ open access papers)
- SSRN (social sciences, law, business preprints)
- CyberLeninka (Russian academic papers, VAK/RSCI/SCOPUS filters)
- PubMed Central (PMC)
- Science Direct
- Springer Link
- IEEE Xplore
- ACM Digital Library
- Web of Science
- Scopus
- JSTOR
- ResearchGate
License
This project is licensed under the MIT License. See the LICENSE file for details.
Happy researching with academic-search-mcp!
Credits
Based on openags/paper-search-mcp by P.S Zhang.
Release files for academic-search-mcp 0.1.8
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| academic_search_mcp-0.1.8.tar.gz | 268.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| academic_search_mcp-0.1.8-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 325.4 kB
Release files / academic_search_mcp-0.1.8.tar.gz
| Download URL | academic_search_mcp-0.1.8.tar.gz |
|---|---|
| Size | 268.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
70d1ea6e5d68f437c8abee4dd2bde7229ea21d9886c12db9db48dbf22d4a8e87
|
|
BLAKE2b-256 checksum How to use checksums |
e1802b6928eecb5f29f1b9a31d74afec7d34dc2f4408691ed94f2ebddd6af47e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.4
|
Release files / academic_search_mcp-0.1.8-py3-none-any.whl
| Download URL | academic_search_mcp-0.1.8-py3-none-any.whl |
|---|---|
| Size | 57.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
71af1c706deec494198b77937624adead578abcf79d13ba3f9ab0643e1c00031
|
|
BLAKE2b-256 checksum How to use checksums |
83ba9c8a991d065843772bc2f0b8836510f14ab77be34656344d4bf59364f325
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.4
|