loading…
Search for a command to run...
loading…
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 meta
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.
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 provides one MCP layer for literature search and graph retrieval:
arXiv works without keys)search_papers runs Semantic Scholar + arXiv in parallel and deduplicates by normalized title.arXiv key-free), optional API key for higher Semantic Scholar limits.Agent writes a survey paper with Scholar Search MCP.
pip install scholar-search-mcp
Requires Python 3.10+.
Use the same server command in both clients:
{
"mcpServers": {
"scholar-search": {
"command": "python",
"args": ["-m", "scholar_search_mcp"],
"env": {
"SCHOLAR_SEARCH_ENABLE_SEMANTIC_SCHOLAR": "true",
"SCHOLAR_SEARCH_ENABLE_ARXIV": "true"
}
}
}
}
SEMANTIC_SCHOLAR_API_KEY is optional. Add it only if you want higher Semantic Scholar rate limits:
{
"mcpServers": {
"scholar-search": {
"command": "python",
"args": ["-m", "scholar_search_mcp"],
"env": {
"SCHOLAR_SEARCH_ENABLE_SEMANTIC_SCHOLAR": "true",
"SCHOLAR_SEARCH_ENABLE_ARXIV": "true",
"SEMANTIC_SCHOLAR_API_KEY": "your-key"
}
}
}
}
Difference:
Claude Desktop config file locations:
~/Library/Application Support/Claude/claude_desktop_config.json%APPDATA%\Claude\claude_desktop_config.json~/.config/Claude/claude_desktop_config.json| 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 (arXiv only):
{
"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 PRs are welcome: fork repo, create branch, add validation/tests, and open a PR with clear before/after behavior.
MIT
Add this to claude_desktop_config.json and restart Claude Desktop.
{
"mcpServers": {
"scholar-search-mcp": {
"command": "npx",
"args": []
}
}
}