Overview
What is Scholar_mcp_server?
Scholar_mcp_server is a Go‑based MCP (Model Context Protocol) service that aggregates scholarly paper search results from multiple academic databases. It provides a unified interface with intelligent deduplication, merging, and sorting, designed for researchers who need to query several sources simultaneously.
How to use Scholar_mcp_server?
Clone the repository, run go mod tidy, then start the server with go run main.go logging.go. Optionally set environment variables SCOPUS_API_KEY and ADSABS_API_KEY to enable those sources. The server listens on http://127.0.0.1:8080/; configure an MCP client (e.g., Claude Desktop) to use the endpoint http://127.0.0.1:8080/mcp. Use the tools searchScholarPapers and getScholarPaper via JSON‑RPC calls.
Key features of Scholar_mcp_server
- Multi‑source aggregation across 6 academic databases
- Smart deduplication based on DOI and title
- Unified, standardized paper metadata format
- Concurrent asynchronous calls for high performance
- Intelligent sorting and relevance scoring
- Full MCP protocol tool interface
- Real‑time source status and performance monitoring
Use cases of Scholar_mcp_server
- Search for papers across arXiv, Semantic Scholar, Crossref, and more with a single query.
- Retrieve detailed paper information by DOI or arXiv ID.
- Perform advanced filtering by author, year, citation count, and open‑access status.
FAQ from Scholar_mcp_server
Which data sources are supported?
Six sources: arXiv, Semantic Scholar, Crossref (free), Scopus (requires API key), ADSABS (requires API key), and Sci‑Hub (free, with legal caveats).
Do I need API keys to run the server?
No, you can run with only the free sources. Scopus and ADSABS require setting the SCOPUS_API_KEY and ADSABS_API_KEY environment variables.
What are the available MCP tools?
Two tools: searchScholarPapers for aggregated search and getScholarPaper for retrieving paper details by identifier.
Are there limits on search results?
Yes, the limit parameter defaults to 10 with a maximum of 100. You can also paginate using offset.