Academic Search MCP

Academic Search MCP

Enables searching academic literature via Semantic Scholar with relevance filters, batch metadata retrieval, and citation-graph recommendations.

Category
Visit Server

README

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
search_papers Relevance search with optional filters: year, fields_of_study, min_citation_count, venue, open_access_pdf.
search_by_topic Same as search_papers, with a year_start/year_end range (kept for backward compatibility).
fetch_paper_details Full metadata for a single paper by Semantic Scholar ID, DOI, or arXiv ID.
get_papers_batch Details for up to 500 papers in one request — far cheaper than looping fetch_paper_details under the 1 req/sec limit.
recommend_papers Citation-graph recommendations from seed paper IDs (positive_paper_ids, optional negative_paper_ids). Surfaces structurally similar work that keyword search misses.

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.

Requirements

  • Python 3.10+
  • uv (recommended) — or plain pip
  • A 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.lock

Prefer 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 429 rate 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.json example 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 semanticscholar library instead of hand-rolled httpx calls.
  • Added get_papers_batch (batch details) and recommend_papers (citation-graph recommendations).
  • Added search filters: fields_of_study, min_citation_count, venue, open_access_pdf, and a flexible year range.
  • 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.

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured