MCP server for academic paper search, powered by Semantic Scholar (214M+ papers)
Project description
scholar-mcp
MCP server for academic paper search, powered by Semantic Scholar (214M+ papers, 2.49B citations). Search, cite, download, and read papers directly from Claude Code or any MCP client.
Quick Start
One-liner for Claude Code:
claude mcp add scholar -- uvx scholar-mcp
Or with an API key for higher rate limits:
claude mcp add scholar -e S2_API_KEY=your_key -- uvx scholar-mcp
For Claude Desktop, add to your config:
{
"mcpServers": {
"scholar": {
"command": "uvx",
"args": ["scholar-mcp"]
}
}
}
[!NOTE] Requires Python 3.10+ and uv installed. No API key needed for basic use (100 requests / 5 minutes free).
Features
- Search across 214M+ papers with filters (year, venue, field of study, citation count, open access)
- Paper details with TLDR summaries, BibTeX, venue metadata
- Citation graph traversal (who cites this paper, what does it reference)
- Recommendations for similar/related papers
- Author search with h-index, affiliations, paper counts
- PDF download with smart fallback chain (Semantic Scholar -> arXiv -> CORE -> bioRxiv/medRxiv)
- Full-text extraction from downloaded PDFs
- Fallback search via arXiv, CORE (250M+ open access papers), PubMed (36M+ biomedical), and Google Scholar
Tools
| Tool | Description |
|---|---|
search_papers |
Search 214M+ papers with year, venue, field, citation filters. Falls back to arXiv, CORE, PubMed, then Google Scholar |
get_paper |
Paper details by Semantic Scholar ID, DOI, ArXiv ID (ArXiv:xxxx), or PMID (PMID:xxxx) |
get_citations |
Papers that cite a given paper (up to 1000) |
get_references |
Papers referenced by a given paper (up to 1000) |
recommend_papers |
Similar/related papers via S2 recommendation engine (up to 500) |
search_authors |
Find researchers with h-index, affiliations, paper/citation counts |
download_paper |
Download PDF: tries S2 open access, arXiv, CORE, bioRxiv/medRxiv |
read_paper |
Download + extract full text from PDF (with optional page limit) |
Configuration
All configuration is via environment variables (all optional):
| Variable | Default | Description |
|---|---|---|
S2_API_KEY |
— | Semantic Scholar API key for higher rate limits |
CORE_API_KEY |
— | CORE API key for institutional repository search (free) |
SCHOLAR_DOWNLOAD_DIR |
./downloads |
Directory for downloaded PDFs |
S2_TIMEOUT |
30 |
API request timeout in seconds |
Rate limits: Free tier allows 100 requests per 5 minutes. With an API key: ~100 requests per second.
Examples
Search with filters:
search_papers("transformer architecture", year="2020-2024", venue="NeurIPS", min_citations=100)
Look up specific papers:
get_paper("ArXiv:1706.03762") # by arXiv ID
get_paper("10.1038/nature12373") # by DOI
get_paper("PMID:19872477") # by PubMed ID
Explore the citation graph:
get_citations("ArXiv:1706.03762", limit=20) # who cites this?
get_references("ArXiv:1706.03762", limit=20) # what does it cite?
recommend_papers("ArXiv:1706.03762") # find similar work
Download and read:
download_paper("ArXiv:1706.03762")
read_paper("ArXiv:1706.03762", max_pages=5)
Development
git clone https://github.com/Liyux3/scholar-mcp.git
cd scholar-mcp
uv venv && uv pip install -e ".[dev]"
uv run pytest tests/
How It Works
Search: S2 (214M) -> arXiv (preprints) -> CORE (institutional) -> PubMed (biomedical) -> Google Scholar (scraping)
Download: S2 open access -> arXiv direct -> CORE (by DOI/title) -> bioRxiv/medRxiv -> fail
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file scholar_mcp-0.2.1.tar.gz.
File metadata
- Download URL: scholar_mcp-0.2.1.tar.gz
- Upload date:
- Size: 16.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.10.10 {"installer":{"name":"uv","version":"0.10.10","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5d8442f2c21c539f412997c74de4c3fc5ec79b2bb6679d1fdf4a668260d6825c
|
|
| MD5 |
51207d3620e503ede09d8f7b3f554212
|
|
| BLAKE2b-256 |
6d8d50082cd1b554709b4eb26ed26f5ffd8d1b5bd33f6aaff80c6e43f0a282d2
|
File details
Details for the file scholar_mcp-0.2.1-py3-none-any.whl.
File metadata
- Download URL: scholar_mcp-0.2.1-py3-none-any.whl
- Upload date:
- Size: 16.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.10.10 {"installer":{"name":"uv","version":"0.10.10","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ea98c5ab1aab961e7716959e61fd26f1fbb62d9267d35d35a4292820c3dda7a2
|
|
| MD5 |
39e6f65d8f0f676466dee866e14bdf7e
|
|
| BLAKE2b-256 |
beb81131a0dc8865d9a337f287b67b1731a6ff0df1717f96bbf3563690d5e883
|