Skip to main content

MCP server for academic paper search, powered by Semantic Scholar (214M+ papers)

Project description

scholar-mcp

PyPI version Python 3.10+ License: MIT 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 -> bioRxiv/medRxiv)
  • Full-text extraction from downloaded PDFs
  • Fallback search via arXiv and Google Scholar when Semantic Scholar is unavailable

Tools

Tool Description
search_papers Search 214M+ papers with year, venue, field, citation filters. Falls back to arXiv, 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, 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
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

Query -> Semantic Scholar API (214M papers)
            |  fails?
            v
         arXiv API (2.5M preprints)
            |  fails?
            v
         Google Scholar (scraping, last resort)

PDF downloads try multiple sources: Semantic Scholar open access URL, then arXiv direct, then bioRxiv/medRxiv for biology preprints.

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

scholar_mcp-0.1.0.tar.gz (14.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

scholar_mcp-0.1.0-py3-none-any.whl (13.2 kB view details)

Uploaded Python 3

File details

Details for the file scholar_mcp-0.1.0.tar.gz.

File metadata

  • Download URL: scholar_mcp-0.1.0.tar.gz
  • Upload date:
  • Size: 14.3 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

Hashes for scholar_mcp-0.1.0.tar.gz
Algorithm Hash digest
SHA256 263492325a556bfba6ac4fabb23408a07de75ebc2db860054f05aaa3640a529f
MD5 5bd91a010feec64f38eac699844d10e0
BLAKE2b-256 e0a2c957fa973a99b5c7929ff4e6d4ad11d4d35b03c98ebfa2500a924fd5b326

See more details on using hashes here.

File details

Details for the file scholar_mcp-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: scholar_mcp-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 13.2 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

Hashes for scholar_mcp-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e872bc1f5d92fed773131176ff664d921f5c64711a3c46e7ce2696ebcdac1487
MD5 21b92c0e851af1355744d0b4e5ff8e48
BLAKE2b-256 c29074651a60f45a05a556163772ff5a7c8fbf097914ab37c6979f4455c66585

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page