Scholar Search MCP
A MCP server that integrates the Semantic Scholar API and arXiv API so AI assistants (e.g. Claude, Cursor) can search and fetch academic paper metadata.
Features
- Search papers – Keyword search with parallel merge from Semantic Scholar and arXiv; optional year and venue filters (venue applies to Semantic Scholar only)
- Paper details – Full metadata (title, authors, abstract, citations, etc.)
- Citations & references – Papers that cite or are cited by a given paper
- Author info – Author profile and paper list
- Batch lookup – Fetch up to 500 papers in one call
- Recommendations – Similar papers for a given paper
- arXiv LaTeX source – Download and extract the source tarball from
https://arxiv.org/src/{id}(tool:download_arxiv_source)
Installation
pip install scholar-search-mcp
Configuration
Claude Desktop
Edit the config file:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
Add:
{
"mcpServers": {
"scholar-search": {
"command": "python",
"args": ["-m", "scholar_search_mcp"],
"env": {
"SCHOLAR_SEARCH_ENABLE_SEMANTIC_SCHOLAR": "true", // enable https://www.semanticscholar.org/
"SCHOLAR_SEARCH_ENABLE_ARXIV": "true" // enable https://arxiv.org/
}
}
}
}
If you have API keys (optional but recommended for search):
{
"mcpServers": {
"scholar-search": {
"command": "python",
"args": ["-m", "scholar_search_mcp"],
"env": {
"SEMANTIC_SCHOLAR_API_KEY": "your-semantic-scholar-api-key-here",
"SCHOLAR_SEARCH_ENABLE_SEMANTIC_SCHOLAR": "true", // enable https://www.semanticscholar.org/
"SCHOLAR_SEARCH_ENABLE_ARXIV": "true" // enable https://arxiv.org/
}
}
}
}
Cursor
Add an MCP server in Cursor settings with the same command, args, and env as above.
API keys (optional)
search_papers queries enabled sources in parallel and merges results by title:
- Semantic Scholar – Works without a key with lower limits. Set
SEMANTIC_SCHOLAR_API_KEYfor higher limits. - arXiv – No key required.
Enable/disable search channels
Control which sources are used in search_papers via environment variables (default: all enabled):
| Variable | Description |
|---|---|
SCHOLAR_SEARCH_ENABLE_SEMANTIC_SCHOLAR |
Use Semantic Scholar (default: true). |
SCHOLAR_SEARCH_ENABLE_ARXIV |
Use arXiv (default: true). |
Example: CORE and arXiv only (skip Semantic Scholar):
"env": {
"SCHOLAR_SEARCH_ENABLE_SEMANTIC_SCHOLAR": "false"
}
arXiv source downloads (download_arxiv_source)
Optional default parent directory for extracted sources when the tool is called without output_dir:
| Variable | Description |
|---|---|
SCHOLAR_ARXIV_SOURCE_DIR |
If set, files go under <dir>/<arxiv_id>/. Otherwise uses a temp subfolder. |
Tools
| Tool | Description |
|---|---|
search_papers |
Search by query; optional limit, fields, year, venue |
get_paper_details |
Get one paper by ID (DOI, ArXiv ID, S2 ID, or URL) |
get_paper_citations |
Papers that cite the given paper |
get_paper_references |
References of the given paper |
get_author_info |
Author profile by ID |
get_author_papers |
Papers by author |
get_paper_recommendations |
Similar papers for a given paper |
batch_get_papers |
Details for up to 500 paper IDs |
download_arxiv_source |
Download arXiv source tar.gz and extract; args: arxiv_id, optional output_dir |
Testing with MCP Inspector
npm install -g @modelcontextprotocol/inspector
mcp-inspector python -m scholar_search_mcp
License
MIT
Links
Metadata
Release files for scholar-search-mcp 0.1.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| scholar_search_mcp-0.1.3.tar.gz | 14.1 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| scholar_search_mcp-0.1.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 27.0 kB
Release files / scholar_search_mcp-0.1.3.tar.gz
| Download URL | scholar_search_mcp-0.1.3.tar.gz |
|---|---|
| Size | 14.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
6b7dca025f424d06c9570f9bc73bff021dd152b744dc582a3dbb5083b33bf247
|
|
BLAKE2b-256 checksum How to use checksums |
1a8e3cdf9d02dd509a86b93b0d8859334da99b424a1813f97b5f6949bcf06402
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.10.20
|
Release files / scholar_search_mcp-0.1.3-py3-none-any.whl
| Download URL | scholar_search_mcp-0.1.3-py3-none-any.whl |
|---|---|
| Size | 13.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
26d4019d999deef6009debde7f215d0327349b1b76b8042facb0a476d25ac54c
|
|
BLAKE2b-256 checksum How to use checksums |
73c6d56108a10082832e9ee26d6a4bb11fb47f31aa98219eb3510077432511c2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.10.20
|
Security for scholar-search-mcp 0.1.3
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.