Academic Search MCP
Allows searching academic literature through the Semantic Scholar API, with tools for relevance search, batch metadata retrieval, and citation-graph recommendations.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Academic Search MCP search for papers on transformer models from 2020 with at least 100 citations"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Academic Search MCP Server
A Model Context Protocol (MCP) server that lets Claude Code (or any MCP client) search academic literature through the Semantic Scholar API. It is built for research workflows: relevance search with filters, batch metadata retrieval, and citation-graph recommendations.
This is a modified fork of afrise/academic-search-mcp-server.
The server was rewritten on top of the official semanticscholar
Python library and extended with batch and recommendation tools, bounded retry on rate limits, and
clearer error handling. See Changes from upstream below.
Tools
Tool | What it does |
| Relevance search with optional filters: |
| Same as |
| Full metadata for a single paper by Semantic Scholar ID, DOI, or arXiv ID. |
| Details for up to 500 papers in one request — far cheaper than looping |
| Citation-graph recommendations from seed paper IDs ( |
Each tool returns a formatted text block per paper: ID, title, authors, year, DOI, venue, citation count, fields of study, open-access status, PDF URL, abstract, and TL;DR when available.
Related MCP server: Semantic Scholar MCP Server
Requirements
Python 3.10+
uv (recommended) — or plain
pipA Semantic Scholar API key is optional (see below)
Install
git clone https://github.com/ociupitu/academic-search-mcp.git
cd academic-search-mcp
uv sync # creates .venv and installs dependencies from uv.lockPrefer pip? pip install -e . inside a virtual environment works too.
API key (optional)
The server reads SEMANTIC_SCHOLAR_API_KEY from the environment, but it is optional:
Without a key — requests go through Semantic Scholar's shared anonymous pool. It works, but you are more likely to hit
HTTP 429rate limiting during busy periods.With a free key — you get your own quota. Register at https://www.semanticscholar.org/product/api and set the variable (the
.mcp.jsonexample below wires it in).
Either way the server keeps requests sequential and does a short bounded retry on a 429, then
returns a readable Error: string rather than hanging or silently returning "no results".
Use with Claude Code
Add the server to your client's MCP config (for Claude Code, a .mcp.json in your project root).
Point --directory at wherever you cloned this repo, and use an absolute path:
{
"mcpServers": {
"academic-search": {
"type": "stdio",
"command": "uv",
"args": ["run", "--directory", "/absolute/path/to/academic-search-mcp", "server.py"],
"env": {
"SEMANTIC_SCHOLAR_API_KEY": "YOUR_API_KEY_HERE"
}
}
}
}Leave the env block out entirely to run keyless. Restart your MCP client after editing the config.
Changes from upstream
Rewritten on the official
semanticscholarlibrary instead of hand-rolledhttpxcalls.Added
get_papers_batch(batch details) andrecommend_papers(citation-graph recommendations).Added search filters:
fields_of_study,min_citation_count,venue,open_access_pdf, and a flexibleyearrange.Fail-fast client (
retry=False) plus a bounded in-server retry on 429, so a throttle recovers in seconds or returns a clean error instead of blocking for minutes.Dropped the Crossref path; Semantic Scholar is the single source.
License
AGPL-3.0, inherited from the upstream project. See LICENSE. If you redistribute or run a modified version as a network service, the AGPL's source-availability terms apply.
Available Tools
5 toolsfetch_paper_detailsA
Get detailed information about a single paper.
Args:
paper_id: a Semantic Scholar paper ID, or a DOI, arXiv ID, etc.
Inputs: paper_id (required).
get_papers_batchA
Fetch details for many papers in ONE request (up to 500).
Far more efficient than calling fetch_paper_details in a loop: a single
request returns all of them, which matters under the 1 request/second limit.
Args:
paper_ids: Semantic Scholar paper IDs (or DOIs, arXiv IDs, etc.).
Inputs: paper_ids (required).
recommend_papersA
Recommend papers similar to seed papers, via the citation graph.
Use this as a second discovery channel: keyword search finds papers that
share vocabulary, while recommendations surface structurally similar papers
in OTHER empirical domains that keyword search misses. Seed it with the
paper IDs of the best on-target hits from a search.
Args:
positive_paper_ids: IDs the results should resemble (at least one required).
negative_paper_ids: IDs to steer recommendations away from (optional).
limit: maximum number of recommendations (default 10, capped at 100).
Inputs: positive_paper_ids (required), limit, negative_paper_ids.
search_by_topicA
Search papers by topic with an optional year range and filters.
Thin wrapper over search_papers that maps a year_start/year_end pair to the
API's year-range string. See search_papers for the filter semantics.
Args:
topic: the search query string.
year_start: start year (inclusive).
year_end: end year (inclusive).
limit: maximum number of results (default 10, capped at 100).
fields_of_study: restrict to fields, e.g. ["Economics", "Business"].
min_citation_count: drop papers with fewer citations than this.
Inputs: topic (required), limit, year_end, year_start, +2 more.
search_papersB
Relevance search for papers on Semantic Scholar.
Args:
query: the search query string.
limit: maximum number of results (default 10, capped at 100).
year: a single year or range, e.g. "2018", "2015-2022", "2016-", "-2015".
fields_of_study: restrict to fields, e.g. ["Economics", "Business"].
min_citation_count: drop papers with fewer citations than this.
venue: restrict to venues, e.g. ["Marketing Science"].
open_access_pdf: if True, only return papers that have an open-access PDF.
Inputs: query (required), year, limit, venue, +3 more.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 5 tools
Tools have distinct purposes: single/batch fetch, search, and recommendation. The two search tools (search_by_topic, search_papers) have overlapping functionality, but the descriptions clarify that search_by_topic is a convenience wrapper with year range parameters, reducing ambiguity.
All tools follow a verb_noun pattern in snake_case (e.g., fetch_paper_details, get_papers_batch, recommend_papers, search_papers). The slight deviation of search_by_topic (verb_preposition_noun) is minor and still predictable.
Five tools cover the core operations of an academic search server: single/batch retrieval, two search variants, and recommendation. The scope is well-defined, and no tool feels redundant or missing for the stated purpose.
The tool set covers essential tasks: search, retrieve, and recommend. However, it lacks tools for fetching citations, references, or author details, which are common in academic search. This is a minor gap for a complete workflow.
Maintenance
Related MCP Connectors
Academic literature search, retrieval, and private library management on top of OpenAlex.
Academic paper search, scientific literature, citation analysis, arXiv & semantic related-work.
Search 340M+ academic papers — citation graphs, semantic similarity, and AI literature reviews.
Find related scientific papers through their citation network, from OpenAlex and Semantic Scholar.
Related MCP Servers
- FlicenseNot gradedqualityAmaintenanceEnables searching and retrieving academic paper data, author profiles, and citation networks through the Semantic Scholar API, including paper and author search, batch lookups, citation and reference tracking, snippet search, and paper recommendations.-
- FlicenseNot gradedqualityAmaintenanceEnables searching for academic papers, authors, and citation networks through the Semantic Scholar API. Supports full-text and title search, batch lookups, citation and reference tracking, author profiles, and paper recommendations.-
- FlicenseNot gradedqualityAmaintenanceEnables querying academic papers, author profiles, and citation networks through the Semantic Scholar API. Supports full-text and title search, batch paper and author lookups, citation and reference tracking, and single- or multi-paper recommendations via natural language.-
- FlicenseNot gradedqualityAmaintenanceEnables users to search and retrieve academic paper data, author profiles, citation networks, and paper recommendations via the Semantic Scholar API.-