Skip to main content
Glama
Silung

scholar-search-mcp

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).


Table of Contents


Why this project

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:

  • One MCP server, multiple scholarly sources

  • Free-first defaults (arXiv works without keys)

  • LLM-friendly outputs for downstream reasoning and agent workflows

  • Practical research actions, not only search

  • Unified search: search_papers runs Semantic Scholar + arXiv in parallel and deduplicates by normalized title.

  • Research graph tools: details, citations, references, author profile/papers, and recommendations.

  • Batch + source workflows: fetch up to 500 papers, and download/extract arXiv LaTeX sources.

  • Operational controls: built-in caching plus env-based source toggles (enable/disable channels).

  • Source strategy: built-in Semantic Scholar + arXiv, free-first by default (arXiv key-free), optional API key for higher Semantic Scholar limits.

Demo videos

Agent writes a survey paper with Scholar Search MCP.

Install

pip install scholar-search-mcp

Requires Python 3.10+.

Quick setup (Claude Desktop / Cursor)

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: edit local config file directly.

  • Cursor: add an MCP server in Cursor settings UI (or corresponding settings JSON).

Claude Desktop config file locations:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

  • Windows: %APPDATA%\Claude\claude_desktop_config.json

  • Linux: ~/.config/Claude/claude_desktop_config.json

Environment variables

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 list

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).

Testing with MCP Inspector

npm install -g @modelcontextprotocol/inspector
mcp-inspector python -m scholar_search_mcp

Contributing

Issues and PRs are welcome: fork repo, create branch, add validation/tests, and open a PR with clear before/after behavior.

License

MIT

References

A
license - permissive license
-
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
2wRelease cycle
4Releases (12mo)

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Silung/scholar-search-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server