by Silung
An MCP server for academic paper search that integrates with AI assistants (e.g., Claude Code, Cursor), enabling them to search and retrieve academic paper metadata.
# Add to your Claude Code skills
git clone https://github.com/Silung/scholar-search-mcpGuides for using ai agents skills like scholar-search-mcp.
An MCP server for academic literature workflows in Claude, Cursor, and other MCP clients.
It combines Semantic Scholar + arXiv into one unified toolset, with fast parallel search, normalized outputs, source-aware deduplication, and practical research utilities (citations, references, author graph, recommendations, and arXiv source download).
Most paper tools force you to choose one source or one API style. scholar-search-mcp focuses on a simple goal:
arXiv works without keys)If you use AI agents for research, this gives you a cleaner and more reliable paper retrieval layer.
No comments yet. Be the first to share your thoughts!
search_papers)
batch_get_papers)download_arxiv_sourceCurrent built-in sources:
Design principle:
pip install scholar-search-mcp
Requires Python 3.10+.
Config file locations:
~/Library/Application Support/Claude/claude_desktop_config.json%APPDATA%\Claude\claude_desktop_config.json~/.config/Claude/claude_desktop_config.jsonMinimal config:
{
"mcpServers": {
"scholar-search": {
"command": "python",
"args": ["-m", "scholar_search_mcp"],
"env": {
"SCHOLAR_SEARCH_ENABLE_SEMANTIC_SCHOLAR": "true",
"SCHOLAR_SEARCH_ENABLE_ARXIV": "true"
}
}
}
}
Recommended (with optional Semantic Scholar key):
{
"mcpServers": {
"scholar-search": {
"command": "python",
"args": ["-m", "scholar_search_mcp"],
"env": {
"SEMANTIC_SCHOLAR_API_KEY": "your-key",
"SCHOLAR_SEARCH_ENABLE_SEMANTIC_SCHOLAR": "true",
"SCHOLAR_SEARCH_ENABLE_ARXIV": "true"
}
}
}
}
Add an MCP server in Cursor with the same:
command: pythonargs: ["-m", "scholar_search_mcp"]env: same variables as above| Variable | Description |
| --- | --- |
| SEMANTIC_SCHOLAR_API_KEY | Optional. Increases Semantic Scholar rate limits. |
| SCHOLAR_SEARCH_ENABLE_SEMANTIC_SCHOLAR | true/false, default true. |
| SCHOLAR_SEARCH_ENABLE_ARXIV | true/false, default true. |
| SCHOLAR_SEARCH_CACHE_DIR | Optional cache directory path. |
| SCHOLAR_SEARCH_CACHE_TTL_SECONDS | Cache TTL in seconds, default 86400. |
| SCHOLAR_ARXIV_SOURCE_DIR | Default parent directory for extracted arXiv sources. |
Example: run arXiv-only mode
{
"SCHOLAR_SEARCH_ENABLE_SEMANTIC_SCHOLAR": "false",
"SCHOLAR_SEARCH_ENABLE_ARXIV": "true"
}
| Tool | Purpose |
| --- | --- |
| search_papers | Search papers with optional limit, fields, year, venue. |
| get_paper_details | Get one paper by DOI, arXiv ID, S2 ID, or URL. |
| get_paper_citations | Get papers that cite a given paper. |
| get_paper_references | Get references of a given paper. |
| get_author_info | Get an author profile by ID. |
| get_author_papers | Get papers by a given author. |
| get_paper_recommendations | Get similar paper recommendations. |
| batch_get_papers | Batch fetch paper details (up to 500 IDs). |
| download_arxiv_source | Download and extract arXiv source bundle (tar.gz). |
npm install -g @modelcontextprotocol/inspector
mcp-inspector python -m scholar_search_mcp
Issues and pull requests are welcome.
If you want to contribute:
MIT