# smaniches/semantic-scholar-mcp [Health: Active]

**Category:** 🔬 Research  
**Repository:** https://github.com/smaniches/semantic-scholar-mcp  
**GitHub Stars:** 23  
**Views:** 8  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/smaniches-semantic-scholar-mcp

## Description
Semantic Scholar MCP server: 14 typed tools over 200M+ academic papers — search, paper/author retrieval, citation-graph traversal, and recommendations. uvx s2-mcp-server

## Tools
Capabilities this server exposes over MCP:

- **semantic_scholar_search_papers** — Search for academic papers.

    Relevance-ranked keyword search over 200M+ papers; supports boolean
    operators (AND, OR, NOT) and quoted phrases, plus year, field-of-study,
    publication-type, open-access, and citation-count filters. Page with
    offset/limit (max 100 per call). For sorted or very large result sets
    use semantic_scholar_bulk_search; to search inside paper full text use
    semantic_scholar_snippet_search; to resolve one known title use
    semantic_scholar_match_paper. Returns Markdown by default,
    response_format='json' for raw JSON.
    
- **semantic_scholar_get_paper** — Get paper details. Accepts: S2 ID, DOI:xxx, ARXIV:xxx, PMID:xxx, CorpusId:xxx

    Returns title, abstract, authors, venue, year, citation counts, TLDR,
    and open-access PDF link for one paper, e.g. paper_id='ARXIV:1706.03762'.
    Set include_citations / include_references to also list citing and
    referenced papers (fetched in parallel, 1-100 each). Results are cached
    in memory for 5 minutes; an unknown ID raises a not-found error. Unkeyed
    requests are throttled to 1 req/s (10 req/s with SEMANTIC_SCHOLAR_API_KEY)
    and 429/502/503 responses retry automatically with backoff. Returns
    Markdown by default, response_format='json' for raw JSON. To fetch many
    papers at once use semantic_scholar_bulk_papers.
    
- **semantic_scholar_search_authors** — Search for academic authors by name.

    Example: query='Yoshua Bengio'. Several distinct researchers can share a
    name, so confirm identity with semantic_scholar_get_author (affiliations,
    h-index, publications) before attributing work; to list the authors of a
    specific paper use semantic_scholar_paper_authors instead. Page with
    offset/limit (max 100 per call, default 10). Returns Markdown by default,
    response_format='json' for raw JSON.
    
- **semantic_scholar_get_author** — Get author profile with optional publications list.
- **semantic_scholar_recommendations** — Get paper recommendations based on a seed paper.

    Provide one paper you already know (e.g. paper_id='ARXIV:1706.03762') and
    receive up to `limit` similar papers. from_pool picks the candidate pool:
    'recent' (default, recently published papers from all fields) or 'all-cs'
    (computer-science papers of any age). When steering with several positive
    or negative examples, use semantic_scholar_multi_recommend instead. An
    unknown seed ID raises a not-found error; unkeyed requests are throttled
    to 1 req/s (10 req/s with SEMANTIC_SCHOLAR_API_KEY) and 429/502/503
    responses retry automatically with backoff. Returns Markdown by default,
    response_format='json' for raw JSON.
    
- **semantic_scholar_bulk_papers** — Retrieve multiple papers in a single request (max 500).
- **semantic_scholar_bulk_search** — Search papers with sorting and cursor-based pagination for large result sets.

    Unlike regular search, supports sorting (e.g., by citation count) and
    returns a continuation token for paging through all results.
    
- **semantic_scholar_export_citation** — Export a citation for a paper in BibTeX format.

    Use once you have a paper ID (from semantic_scholar_search_papers or
    semantic_scholar_match_paper), e.g. paper_id='DOI:10.18653/v1/N18-3011'.
    Returns the BibTeX entry as plain text - there is no response_format
    option. Raises an error for an unknown ID, a paper without citation data,
    or any format other than 'bibtex'.
    
- **semantic_scholar_match_paper** — Find the single best paper matching a title string. Returns match score.
- **semantic_scholar_paper_authors** — Get full author profiles for a paper's authors.

    Unlike the abbreviated author list embedded in semantic_scholar_get_paper
    results, this returns each author's complete profile - affiliations,
    h-index, paper and citation counts - plus author IDs usable with
    semantic_scholar_get_author. Example: paper_id='DOI:10.18653/v1/N18-3011'.
    Authors are returned in listed order (limit 1-1000, default 100). Returns
    Markdown by default, response_format='json' for raw JSON.
    
- **semantic_scholar_author_batch** — Retrieve multiple authors in a single request (max 1000).
- **semantic_scholar_multi_recommend** — Get recommendations using multiple positive and negative example papers.

    Use instead of semantic_scholar_recommendations when steering with more
    than one example: results resemble positive_paper_ids and are pushed away
    from negative_paper_ids. Example:
    positive_paper_ids=['ARXIV:1706.03762', 'DOI:10.18653/v1/N19-1423'],
    negative_paper_ids=['ARXIV:1409.0473']. Accepts 1-100 positive and up to
    100 negative IDs in any supported paper-ID format; malformed IDs raise an
    error before any request is made. Returns up to `limit` (1-500, default
    10) papers, Markdown by default or response_format='json' for raw JSON.
    
- **semantic_scholar_snippet_search** — Search within paper full text. Returns text snippets with context.

    Note: This endpoint is heavily rate-limited without an API key.
    
- **semantic_scholar_status** — Check server health, API connectivity, and key status.

## Claude Desktop Quick Installation
Install path detected from listing signals. Uses `uvx` (confidence: high):

```json
"mcpServers": {
  "semantic-scholar-mcp": {
    "command": "uvx",
    "args": ["s2-mcp-server"]
  }
}
```

## Documentation

## What smaniches/semantic-scholar-mcp does

smaniches/semantic-scholar-mcp exposes Semantic Scholar research data through 14 MCP tools. It works with a corpus of more than 200 million academic papers and provides access to paper metadata, author profiles, citation relationships, recommendations, and full-text search snippets.

Paper workflows include relevance-ranked search, title matching, identifier-based lookup, bulk retrieval, sorted searches, and cursor pagination. Supported paper identifiers include Semantic Scholar IDs, DOI, arXiv, PubMed, and Corpus ID formats. Paper details can include abstracts, authors, venues, publication years, citation counts, TLDRs, open-access PDF links, citations, and references.

Author tools search by name, retrieve profiles, load publications, fetch complete author profiles for a paper, and batch multiple author lookups. Citation export produces BibTeX for a known paper.

## How it works

The server communicates with Semantic Scholar through typed MCP tools. Search and profile responses are formatted as Markdown by default; most tools accept `response_format='json'` when an agent needs structured output. Citation export returns BibTeX text and does not provide a response-format option.

Use `semantic_scholar_recommendations` with one seed paper, or use `semantic_scholar_multi_recommend` with positive and negative example papers to steer results. Regular paper search supports boolean operators, quoted phrases, field and publication filters, year ranges, open-access filtering, citation-count filtering, and offset-based paging. Bulk search adds sorting and continuation tokens for larger result sets.

Paper details are cached in memory for five minutes. Requests for citations and references are fetched in parallel, with between one and 100 items per direction. The status tool checks server health, Semantic Scholar connectivity, and API-key status.

## Setup and configuration

The quickest launch method is:

```bash
uvx s2-mcp-server
```

The package can also be installed with pip, run from a source checkout, or started from the published container image:

```bash
pip install s2-mcp-server
docker pull ghcr.io/smaniches/semantic-scholar-mcp:latest
```

Claude Code can register the stdio server with:

```bash
claude mcp add semantic-scholar -- uvx s2-mcp-server
```

No API key is needed to start. Set `SEMANTIC_SCHOLAR_API_KEY` to use an assigned Semantic Scholar quota and avoid the shared unauthenticated pool. The package requires Python 3.10 or newer.

## Tools and capabilities

- Search papers with filters, boolean syntax, phrases, and paging.
- Search large or sorted result sets with cursor continuation.
- Match a single paper from a known title.
- Retrieve one or many papers by supported identifiers.
- Traverse citations and references from paper records.
- Search authors and retrieve individual or batched profiles.
- Retrieve complete profiles for a paper’s authors.
- Recommend papers from one or multiple positive and negative examples.
- Search paper full text for contextual snippets.
- Export known papers as BibTeX citations.
- Check API connectivity and key status.

## Limitations and notes

Unauthenticated requests are throttled to one request per second; the documented keyed limit is 10 requests per second for applicable requests. Full-text snippet search is heavily rate-limited without an API key. Paper bulk retrieval accepts up to 500 papers, author batches up to 1,000 authors, and individual search pages up to 100 results. Recommendation results accept up to 500 items, with multi-example inputs capped at 100 positive and 100 negative paper IDs.

Unknown paper or author identifiers can produce not-found errors, and malformed identifiers are rejected before a multi-recommendation request. Requests receiving 429, 502, or 503 responses retry automatically with backoff for the supported retrieval and recommendation operations. The release artifacts include SLSA build provenance, PyPI attestations, and a CycloneDX SBOM. The project is licensed under MIT.

_Full upstream README: https://allmcps.com/mcp/smaniches-semantic-scholar-mcp/readme_

