# Semantic Scholar MCP server

> Search 200M+ academic papers and explore citations, authors and recommendations through the Semantic Scholar API.

- Listing: https://mcp.tc/i/semantic-scholar
- Connect: this is a local (stdio) server; install it on your machine (see Install). The listing link is a page, not an MCP endpoint.
- Type: local (stdio)
- Auth: API key
- Category: [Docs & Knowledge](https://mcp.tc/c/docs-knowledge)
- Vendor: smaniches
- Homepage: <https://topologica.ai>
- Docs: <https://smaniches.github.io/semantic-scholar-mcp/>
- Repository: <https://github.com/smaniches/semantic-scholar-mcp>
- Package: pypi `s2-mcp-server`

## About

Connects an assistant to the Semantic Scholar API for academic research. It offers 14 typed tools for paper search, citation graph traversal in both directions, author profiles, recommendations, bulk lookups and full-text snippet search. Paper IDs can be given as Semantic Scholar ID, DOI, ArXiv, PubMed, Corpus ID, ACL or URL.

Runs locally over stdio from the PyPI package s2-mcp-server, started with uvx. It can also be installed with pip or Docker. No API key is needed to start (public limit of 1 request per second). An optional SEMANTIC\_SCHOLAR\_API\_KEY raises the limit to 10 requests per second.

## What it can do

- Search papers across the Semantic Scholar index
- Traverse citations and references for a paper
- Look up author profiles
- Get paper recommendations
- Run bulk lookups for up to 500 papers or 1000 authors
- Search full-text snippets with surrounding context
- Return results as Markdown or JSON

## Example prompts

- "Find recent papers on retrieval-augmented generation and summarize the top five"
- "Show papers that cite the DOI 10.1038/nature14539"
- "Look up the author profile for Yoshua Bengio and list his most cited papers"
- "Recommend papers similar to arXiv 1706.03762"

## Install

### Claude Code

1. Run this in a terminal, in your project folder:

```bash
claude mcp add --transport stdio semantic-scholar --env "SEMANTIC_SCHOLAR_API_KEY=<YOUR_SEMANTIC_SCHOLAR_API_KEY>" -- uvx s2-mcp-server
```

2. Start Claude Code and type `/mcp`. **semantic-scholar** should show as connected.

Add `--scope user` to make it available in every project. Replace the placeholders with your own values.

### Claude Desktop

1. Open **Settings → Developer → Edit Config**. It opens `claude_desktop_config.json`. Add:

`claude_desktop_config.json`:

```json
{
  "mcpServers": {
    "semantic-scholar": {
      "command": "uvx",
      "args": [
        "s2-mcp-server"
      ],
      "env": {
        "SEMANTIC_SCHOLAR_API_KEY": "<YOUR_SEMANTIC_SCHOLAR_API_KEY>"
      }
    }
  }
}
```

2. Save the file and restart Claude Desktop. Replace the placeholders with your own values.

Needs uv (Python) on your computer. The file lives in `~/Library/Application Support/Claude/` on macOS and `%APPDATA%\Claude\` on Windows.

### Cursor

[Add to Cursor](<https://cursor.com/install-mcp?name=semantic-scholar&config=eyJjb21tYW5kIjoidXZ4IiwiYXJncyI6WyJzMi1tY3Atc2VydmVyIl0sImVudiI6eyJTRU1BTlRJQ19TQ0hPTEFSX0FQSV9LRVkiOiI8WU9VUl9TRU1BTlRJQ19TQ0hPTEFSX0FQSV9LRVk%2BIn19>) (opens Cursor)

Or add it by hand to `~/.cursor/mcp.json` (all projects) or `.cursor/mcp.json` (this project):

`mcp.json`:

```json
{
  "mcpServers": {
    "semantic-scholar": {
      "command": "uvx",
      "args": [
        "s2-mcp-server"
      ],
      "env": {
        "SEMANTIC_SCHOLAR_API_KEY": "<YOUR_SEMANTIC_SCHOLAR_API_KEY>"
      }
    }
  }
}
```

Needs uv (Python) on your computer. Replace the placeholders with your own values.

### VS Code

Add it to `.vscode/mcp.json`. VS Code asks for the secret the first time and stores it securely:

`.vscode/mcp.json`:

```json
{
  "servers": {
    "semantic-scholar": {
      "type": "stdio",
      "command": "uvx",
      "args": [
        "s2-mcp-server"
      ],
      "env": {
        "SEMANTIC_SCHOLAR_API_KEY": "${input:semantic-scholar-api-key}"
      }
    }
  },
  "inputs": [
    {
      "type": "promptString",
      "id": "semantic-scholar-api-key",
      "description": "SEMANTIC_SCHOLAR_API_KEY",
      "password": true
    }
  ]
}
```

Needs uv (Python) on your computer.

### Devin Desktop

1. Add it to `~/.config/devin/mcp_config.json` (macOS and Linux) or `%APPDATA%\devin\mcp_config.json` (Windows):

`mcp_config.json`:

```json
{
  "mcpServers": {
    "semantic-scholar": {
      "command": "uvx",
      "args": [
        "s2-mcp-server"
      ],
      "env": {
        "SEMANTIC_SCHOLAR_API_KEY": "<YOUR_SEMANTIC_SCHOLAR_API_KEY>"
      }
    }
  }
}
```

2. Refresh the MCP server list in Cascade. Replace the placeholders with your own values.

Devin Desktop is the new name for Windsurf.

### Codex

```bash
codex mcp add semantic-scholar --env "SEMANTIC_SCHOLAR_API_KEY=<YOUR_SEMANTIC_SCHOLAR_API_KEY>" -- uvx s2-mcp-server
```

Or edit `~/.codex/config.toml` directly:

`config.toml`:

```toml
[mcp_servers.semantic-scholar]
command = "uvx"
args = ["s2-mcp-server"]
env = { SEMANTIC_SCHOLAR_API_KEY = "<YOUR_SEMANTIC_SCHOLAR_API_KEY>" }
```

Needs uv (Python) on your computer. Replace the placeholders with your own values.

### Gemini CLI

```bash
gemini mcp add -e "SEMANTIC_SCHOLAR_API_KEY=<YOUR_SEMANTIC_SCHOLAR_API_KEY>" semantic-scholar uvx s2-mcp-server
```

This adds it to the current project. Add `-s user` to use it everywhere.

### Any client

Most clients that start local servers accept this shape:

```json
{
  "mcpServers": {
    "semantic-scholar": {
      "command": "uvx",
      "args": [
        "s2-mcp-server"
      ],
      "env": {
        "SEMANTIC_SCHOLAR_API_KEY": "<YOUR_SEMANTIC_SCHOLAR_API_KEY>"
      }
    }
  }
}
```

Zed puts servers under `context_servers` in its settings, with the same `command`, `args` and `env` fields.

Needs uv (Python) on your computer. Replace the placeholders with your own values.

## Details

- Server version: 1.7.5
- Last checked: 2026-10-04
- Listed: 2026-10-04
- Updated: 2026-10-04

---
Source: https://mcp.tc/i/semantic-scholar (mcp.tc is an independent directory, not affiliated with this server's publisher). Corrections: https://mcp.tc/report
