Skip to main content
Glama
Semantic Scholar MCP Server

Semantic Scholar MCP Server

by HenryKautz

Semantic Scholar MCP Server

An MCP server that provides access to the Semantic Scholar academic paper API, with optional ngrok tunnel for remote access.

Features

  • search_papers — Search for papers by keyword, year, field of study, and citation count

  • get_paper — Get full details for a paper by S2 ID, DOI, ArXiv ID, etc.

  • get_citations — List papers that cite a given paper

  • get_references — List papers referenced by a given paper

  • search_authors — Search for authors by name

  • get_author — Get author profile (h-index, paper count, affiliations)

  • get_author_papers — List papers by a specific author

  • recommend_papers — Get paper recommendations based on a seed paper

  • batch_get_papers — Look up multiple papers in a single request

Related MCP server: Semantic Scholar MCP Server

Setup

Requires Python 3.10+ and uv.

# Install dependencies
uv sync

Optionally set an API key for higher rate limits:

export S2_API_KEY="your-key-here"

Usage

HTTP transport (default) — for remote clients

uv run python server.py

The server listens on http://localhost:8000. The MCP endpoint is at /mcp.

With ngrok tunnel

uv run python server.py --ngrok

This opens a public ngrok tunnel and prints the URL to stderr.

stdio transport — for Claude Desktop

uv run python server.py --transport stdio

Claude Desktop config (claude_desktop_config.json):

{
  "mcpServers": {
    "semantic-scholar": {
      "command": "uv",
      "args": ["--directory", "/path/to/this/project", "run", "python", "server.py", "--transport", "stdio"]
    }
  }
}

Options

Flag

Default

Description

--transport

streamable-http

streamable-http or stdio

--port

8000

Port for HTTP transport

--ngrok

off

Open an ngrok tunnel

Available Tools

9 tools
batch_get_papersA

Look up multiple papers at once by their IDs.

Args: paper_ids: List of paper IDs (S2 IDs, DOIs, ArXiv IDs, etc.). Max 500. fields: Comma-separated fields to return. Defaults to standard detail fields.

Inputs: paper_ids (required), fields. Returns: result

get_authorB

Get detailed information about an author.

Args: author_id: Semantic Scholar author ID.

Inputs: author_id (required). Returns: result

get_author_papersA

Get papers written by a specific author.

Args: author_id: Semantic Scholar author ID. limit: Max papers to return (1-1000, default 10). offset: Pagination offset.

Inputs: author_id (required), limit, offset. Returns: result

get_citationsA

Get papers that cite a given paper.

Args: paper_id: The Semantic Scholar paper ID (or DOI, ArXiv ID, etc.). limit: Max citations to return (1-1000, default 10). offset: Pagination offset.

Inputs: paper_id (required), limit, offset. Returns: result

get_paperA

Get detailed information about a specific paper.

Args: paper_id: Semantic Scholar paper ID, DOI, ArXiv ID (prefix with "ArXiv:"), CorpusId (prefix with "CorpusId:"), PMID, ACL ID, or a URL.

Inputs: paper_id (required). Returns: result

get_referencesA

Get papers referenced by a given paper.

Args: paper_id: The Semantic Scholar paper ID (or DOI, ArXiv ID, etc.). limit: Max references to return (1-1000, default 10). offset: Pagination offset.

Inputs: paper_id (required), limit, offset. Returns: result

recommend_papersB

Get paper recommendations based on a given paper.

Args: paper_id: Semantic Scholar paper ID to get recommendations for. limit: Max recommendations to return (1-500, default 10).

Inputs: paper_id (required), limit. Returns: result

search_authorsB

Search for authors on Semantic Scholar.

Args: query: Author name to search for. limit: Max results (1-100, default 10).

Inputs: query (required), limit. Returns: result

search_papersA

Search for academic papers on Semantic Scholar.

Args: query: Search query (e.g. "transformer attention mechanism"). limit: Max results to return (1-100, default 10). year: Filter by year or range, e.g. "2020" or "2018-2023". fields_of_study: Comma-separated fields, e.g. "Computer Science,Mathematics". min_citation_count: Only include papers with at least this many citations.

Inputs: query (required), year, limit, fields_of_study, +1 more. Returns: result

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A3.9/5.0

    Scored across 9 tools

    Disambiguation5/5

    Each tool targets a distinct operation: search vs. lookup by ID, citation graph traversal, author retrieval, recommendations, and batch lookup. There is no meaningful overlap or ambiguity between the tools.

    Naming Consistency5/5

    All tools follow a consistent snake_case verb_noun pattern: search_papers, get_paper, get_citations, get_author, recommend_papers, batch_get_papers. The naming is predictable and makes the action and target clear.

    Tool Count5/5

    Nine tools is well-scoped for a scholarly literature and author discovery server. Each tool has a distinct purpose without the surface feeling bloated or sparse.

    Completeness5/5

    The server covers the core read-only academic search workflow: searching papers, retrieving details, batch lookups, citation/reference exploration, author search and paper lists, plus recommendations. No obvious gaps exist for its stated purpose.

    Maintenance

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers