Skip to main content
Glama
FujishigeTemma

semantic-scholar-mcp

Semantic Scholar MCP Server

Note: A lightweight CLI alternative is available at semantic-scholar-cli. It is designed for LLM tool-use workflows with strict typed inputs, stable JSON envelopes, and small default payloads — usable without an MCP server.

A Model Context Protocol (MCP) server that provides access to Semantic Scholar's academic paper database through their API.

Features

  • Paper Search: Search for academic papers with filters for year, fields of study, and open access

  • Paper Details: Get comprehensive information about specific papers including abstracts, authors, and citation counts

  • Author Information: Retrieve detailed author data including affiliations, h-index, and citation metrics

  • Citation Export: Generate citations in multiple formats (BibTeX, APA, MLA, Chicago)

Related MCP server: semanticscholar-mcp

Usage

Get API Key

While the Semantic Scholar API can be used without authentication, having an API key provides higher rate limits. To get an API key:

  1. Visit Semantic Scholar API

  2. Request an API key

Add to Claude Code configuration

Run the following command to add the Semantic Scholar MCP server to your project-scope Claude Code configuration:

claude mcp add semantic-scholar-mcp -s project -e SEMANTIC_SCHOLAR_API_KEY="your-api-key-here" -- uv run --with "git+https://github.com/FujishigeTemma/semantic-scholar-mcp" semantic-scholar-mcp serve

Or manually add it to your .mcp.json configuration file:

{
  "mcpServers": {
    "semantic-scholar-mcp": {
      "type": "stdio",
      "command": "uv",
      "args": [
        "run",
        "--with",
        "git+https://github.com/FujishigeTemma/semantic-scholar-mcp",
        "semantic-scholar-mcp",
        "serve"
      ],
      "env": {
        "SEMANTIC_SCHOLAR_API_KEY": "your-api-key-here"
      }
    }
  }
}

Available Tools

  1. search_paper - Search for papers

    • Required: query (search terms)

    • Optional: fields, limit, offset, year, fieldsOfStudy, openAccessPdf

  2. get_paper - Get detailed paper information

    • Required: paper_id (supports multiple ID types: DOI, ArXiv ID, S2 Paper ID, etc.)

    • Optional: fields (customize returned data, see: Field Customization)

  3. get_authors - Get author information for a paper

    • Required: paper_id

    • Optional: fields, limit, offset

  4. get_citation - Generate formatted citations

    • Required: paper_id

    • Optional: format (bibtex, apa, mla, chicago)

CLI Examples

Search for papers:

semantic-scholar-mcp tools search_paper "machine learning" --limit 5 --year "2020-2023"

Get paper details:

semantic-scholar-mcp tools get_paper "10.1038/nature12373"

Get authors for a paper:

semantic-scholar-mcp tools get_authors "649def34f8be52c8b66281af98ae884c09aef38b"

Generate BibTeX citation:

semantic-scholar-mcp tools get_citation "649def34f8be52c8b66281af98ae884c09aef38b" --format bibtex

Field Customization

All tools support a fields parameter to customize the returned data. This allows you to request only the information you need, reducing response size and improving performance.

Paper Fields (for search_paper and get_paper)

Basic fields:

  • paperId - Unique paper identifier

  • title - Paper title

  • abstract - Paper abstract

  • year - Publication year

  • publicationDate - Full publication date

Author information:

  • authors - List of authors (returns authorId and name by default)

  • authors.authorId - Author's unique identifier

  • authors.name - Author's name

  • authors.affiliations - Author's institutional affiliations

  • authors.citationCount - Author's total citation count

  • authors.hIndex - Author's h-index

Citation and reference data:

  • citationCount - Number of times this paper has been cited

  • referenceCount - Number of references in this paper

  • citations - List of papers that cite this paper

  • references - List of papers referenced by this paper

Publication details:

  • journal - Journal information (name, volume, pages, etc.)

  • venue - Publication venue

  • publicationTypes - Types of publication (e.g., JournalArticle, Conference)

  • fieldsOfStudy - Academic fields (e.g., Computer Science, Medicine)

  • s2FieldsOfStudy - Semantic Scholar's field classifications

Additional metadata:

  • doi - Digital Object Identifier

  • arxivId - ArXiv identifier

  • url - Paper URL

  • openAccessPdf - Open access PDF information

  • embedding - Paper embedding vectors (for similarity analysis)

Author Fields (for get_authors)

  • authorId - Unique author identifier

  • name - Author's name

  • affiliations - Institutional affiliations

  • citationCount - Total citation count

  • hIndex - h-index metric

  • paperCount - Number of papers published

  • url - Author's profile URL

Example Field Usage

Get basic paper information:

semantic-scholar-mcp tools search_paper "machine learning" --fields "paperId,title,year,citationCount"

Get detailed paper with author affiliations:

semantic-scholar-mcp tools get_paper "10.1038/nature12373" --fields "title,abstract,authors.name,authors.affiliations,journal,year"

Get comprehensive author information:

semantic-scholar-mcp tools get_authors "649def34f8be52c8b66281af98ae884c09aef38b" --fields "authorId,name,affiliations,citationCount,hIndex,paperCount"

Development

Setting up the development environment

uv sync

uv run pytest tests/
uv run ruff format .
uv run ruff check . --fix
uv run ty check

Project Structure

semantic-scholar-mcp/
  src/
    semantic_scholar_mcp/
      __init__.py
      server.py      # Main server implementation
      cli.py         # CLI interface
  tests/                 # Test files
  pyproject.toml        # Project configuration
  README.md            # This file

API Rate Limits

  • Without API key: 100 requests per 5 minutes

  • With API key: 1 request per second (higher limits available on request)

Supported Paper ID Types

The API supports various paper identifier formats:

  • Semantic Scholar ID (e.g., "649def34f8be52c8b66281af98ae884c09aef38b")

  • DOI (e.g., "10.1038/nature12373")

  • ArXiv ID (e.g., "arXiv:2106.15928")

  • MAG ID

  • ACL ID

  • PubMed ID

  • Corpus ID

License

MIT License

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

Acknowledgments

This project uses the Semantic Scholar API to access academic paper data.

Available Tools

4 tools
get_authorsB

Get authors information for a specific paper. Use 'fields' parameter to customize author data returned.

ParametersJSON Schema
NameRequiredDescriptionDefault
paper_idYesThe following types of IDs are supported: - `<sha>` - a Semantic Scholar ID, e.g. `649def34f8be52c8b66281af98ae884c09aef38b` - `CorpusId:<id>` - a Semantic Scholar numerical ID, e.g. `CorpusId:215416146` - `DOI:<doi>` - a Digital Object Identifier, e.g. `DOI:10.18653/v1/N18-3011` - `ARXIV:<id>` - arXiv.rg, e.g. `ARXIV:2106.15928` - `MAG:<id>` - Microsoft Academic Graph, e.g. `MAG:112218234` - `ACL:<id>` - Association for Computational Linguistics, e.g. `ACL:W12-3903` - `PMID:<id>` - PubMed/Medline, e.g. `PMID:19872477` - `PMCID:<id>` - PubMed Central, e.g. `PMCID:2323736` - `URL:<url>` - URL from one of the sites listed below, e.g. `URL:https://arxiv.org/abs/2106.15928v1` URLs are recognized from the following sites: - semanticscholar.org - arxiv.org - aclweb.org - acm.org - biorxiv.org
fieldsNoA comma-separated list of the fields to be returned. The authorId field is always returned. See the resource 'semantic-scholar://fields/author' for available fields. Examples: - `name,affiliations,papers` - `url,papers.year,papers.authors` authorId,name,affiliations,citationCount,hIndex
offsetNoUsed for pagination. When returning a list of results, start with the element at this position in the list.
limitNoThe maximum number of results to return. Maximum is 1000.

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden for behavioral disclosure. It only states the purpose and that fields can be customized, but omits information on pagination, rate limits, return structure, or any side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise at two sentences, front-loading the purpose and essential customization hint without any superfluous information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (4 parameters, no output schema, no annotations), the description is insufficient. It fails to describe that the tool returns a list of authors, the default behavior of pagination, or what the response includes.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, providing clear descriptions for all 4 parameters. The description adds minor context about the fields parameter but does not substantially improve understanding beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves author information for a specific paper, differentiating it from siblings like get_citation, get_paper, and search_paper. It also mentions the fields parameter for customization.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives, nor does it mention any prerequisites or exclusions. The agent is left to infer usage from the name and siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_citationB

Get citation information in various formats.

ParametersJSON Schema
NameRequiredDescriptionDefault
paper_idYesThe following types of IDs are supported: - `<sha>` - a Semantic Scholar ID, e.g. `649def34f8be52c8b66281af98ae884c09aef38b` - `CorpusId:<id>` - a Semantic Scholar numerical ID, e.g. `CorpusId:215416146` - `DOI:<doi>` - a Digital Object Identifier, e.g. `DOI:10.18653/v1/N18-3011` - `ARXIV:<id>` - arXiv.rg, e.g. `ARXIV:2106.15928` - `MAG:<id>` - Microsoft Academic Graph, e.g. `MAG:112218234` - `ACL:<id>` - Association for Computational Linguistics, e.g. `ACL:W12-3903` - `PMID:<id>` - PubMed/Medline, e.g. `PMID:19872477` - `PMCID:<id>` - PubMed Central, e.g. `PMCID:2323736` - `URL:<url>` - URL from one of the sites listed below, e.g. `URL:https://arxiv.org/abs/2106.15928v1` URLs are recognized from the following sites: - semanticscholar.org - arxiv.org - aclweb.org - acm.org - biorxiv.org
formatNoCitation format: 'bibtex', 'apa', 'mla', or 'chicago'bibtex

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It only states 'Get citation information' with no mention of side effects, permissions, or response characteristics, leaving the agent uninformed about potential constraints.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, direct sentence with no superfluous words. It is front-loaded and efficiently communicates the tool's purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (2 parameters, no output schema), the description is adequate but could be more complete by indicating the return format (e.g., raw text string) or mentioning that citation text is returned.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the schema already provides thorough parameter descriptions for paper_id and format. The description adds no additional parameter semantics beyond what the schema offers, meeting the baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Get citation information' and the resource 'in various formats,' but does not explicitly distinguish from sibling tools like get_paper or get_authors, though the name implies a focus on citations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives such as get_paper for full paper details or search_paper for discovery. The description lacks context about appropriate use cases.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_paperB

Get detailed information about a specific paper. Use 'fields' parameter to customize returned data.

ParametersJSON Schema
NameRequiredDescriptionDefault
paper_idYesThe following types of IDs are supported: - `<sha>` - a Semantic Scholar ID, e.g. `649def34f8be52c8b66281af98ae884c09aef38b` - `CorpusId:<id>` - a Semantic Scholar numerical ID, e.g. `CorpusId:215416146` - `DOI:<doi>` - a Digital Object Identifier, e.g. `DOI:10.18653/v1/N18-3011` - `ARXIV:<id>` - arXiv.rg, e.g. `ARXIV:2106.15928` - `MAG:<id>` - Microsoft Academic Graph, e.g. `MAG:112218234` - `ACL:<id>` - Association for Computational Linguistics, e.g. `ACL:W12-3903` - `PMID:<id>` - PubMed/Medline, e.g. `PMID:19872477` - `PMCID:<id>` - PubMed Central, e.g. `PMCID:2323736` - `URL:<url>` - URL from one of the sites listed below, e.g. `URL:https://arxiv.org/abs/2106.15928v1` URLs are recognized from the following sites: - semanticscholar.org - arxiv.org - aclweb.org - acm.org - biorxiv.org
fieldsNoA comma-separated list of the fields to be returned. The paperId field is always returned. See the resource 'semantic-scholar://fields/paper' for available fields. Examples: - `title,url` - `title,embedding.specter_v2` - `title,authors,citations.title,citations.abstract` paperId,title,abstract,authors,year,citationCount,referenceCount,fieldsOfStudy,publicationTypes,publicationDate,journal,openAccessPdf

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden for transparency. It states the tool 'get[s] detailed information' but does not disclose potential error cases, return format, rate limits, or authentication needs. The input schema is detailed, but behavioral traits are lacking.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description consists of two short, front-loaded sentences with no unnecessary words. Every sentence contributes to understanding the tool's purpose and a key feature.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the absence of an output schema and annotations, the description should elaborate on what 'detailed information' includes (e.g., fields, structure). It lacks sufficient context about return values and error handling, making it incomplete for agents needing to interpret results.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already explains both parameters. The description adds minor value by mentioning the 'fields' parameter for customization, but it does not provide additional semantics beyond what the schema offers.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Get detailed information about a specific paper.' It also mentions a key parameter for customization, distinguishing it from siblings like 'search_paper' (for searching) and 'get_authors' (for authors).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description advises using the 'fields' parameter to customize data, which is helpful. However, it does not provide explicit guidance on when to use this tool versus alternatives like 'search_paper' or when not to use it (e.g., if only a count is needed).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_paperB

Search for papers using Semantic Scholar. Use 'fields' parameter to customize returned data

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesA plain-text search query string. - No special query syntax is supported - Hyphenated query terms yield no matches (replace it with space to find matches).
fieldsNoA comma-separated list of the fields to be returned. The paperId field is always returned. See the resource 'semantic-scholar://fields/paper' for available fields. Examples: - `title,url` - `title,embedding.specter_v2` - `title,authors,citations.title,citations.abstract` paperId,title,abstract,authors,year,citationCount
publicationTypesNoA comma-separated list of publication types to include. Available types: Review, JournalArticle, CaseReort, ClinicalTrial, Conference, Dataset, Editorial, LettersAndComments, MetaAnalysis, News, Study, Book, BookSection Example: `Review,JournalArticle` will return papers with publication types Review and/or JournalArticle
openAccessPdfNoRestricts results to only include papers with a public PDF.
minCitationCountNoRestricts results to only include papers with the minimum number of citations.
publicationDateOrYearNoRestricts results to the given range of publication dates or years (inclusive). Accepts the format `<startDate>:<endDate>` with each date in `YYYY-MM-DD` format. Each term is optional, allowing for specific dates, fixed ranges, or open-ended ranges. In addition, prefixes are suported as a shorthand, e.g. `2020-06` matches all dates in June 2020. Specific dates are not known for all papers, so some records returned with this filter will have a `null` value for publicationDate. `year`, however, will always be present. For records where a specific publication date is not known, they will be treated as if published on January 1st of their publication year. Examples: - `2019-03-05` on March 3rd, 2019 - `2019-03` during March 2019 - `2019` during 2019 - `2016-03-05:2020-06-06` as early as March 5th, 2016 or as late as June 6th, 2020 - `1981-08-25:` on or after August 25th, 1981 - `:2015-01` before or on January 31st, 2015 - `2015:2020` between January 1st, 2015 and December 31st, 2020
yearNoRestricts results to the given publication year or range of years (inclusive). Examples: - `2019` in 2019 - `2016-2020` as early as 2016 or as late as 2020 - `2010-` during or after 2010 - `-2015` before or during 2015
venueNoRestricts results to papers published in the given venues, formatted as a comma-separated list. Input could also be an ISO4 abbreviation. Examples include: - Nature - New England Journal of Medicine - Radiology - N. Engl. J. Med. Example: `Nature,Radiology` will return papers from venues Nature and/or Radiology.
fieldsOfStudyNoA Comma-separated list of fields of study to include. Available fields of study: Computer Science,Medicine,Chemistry,Biology,Materials Science,Physics,Geology,Psychology,Art,History,Geography,Sociology,Business,Political Science,Economics,Philosophy,Mathematics,Engineering,Environmental Science,Agricultural and Food Sciences,Education,Law,Linguistics Example: `Physics,Mathematics` will return papers with either Physics or Mathematics in their list of fields-of-study.
offsetNoStarting position in the list of results
limitNoMaximum number of results to return (max: 100)

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must cover behavioral traits. It mentions the API but omits details on rate limits, authentication, error handling, or sorting. The schema covers parameters but not behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is a single sentence, very concise and front-loaded. It wastes no words, though it could be slightly more structured to separate purpose from customization hint.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 11 parameters, no output schema, and no annotations, the description provides insufficient context. It does not explain output format, default behavior, or full capabilities. The schema partially compensates, but description lacks completeness for a complex search tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline is 3. The description adds minimal context (e.g., 'Use fields parameter to customize') beyond what the schema already provides. No parameter enums or additional value added.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states it searches papers using Semantic Scholar, specifying the resource and action. It distinguishes from sibling tools (get_authors, get_citation, get_paper) which are for individual retrieval, not search.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Description implies usage for searching papers but does not explicitly state when to prefer this tool over siblings or provide criteria for exclusion. The context is clear but lacks explicit guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

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

  1. 4 tool updatesv0.1.0
    • First observedget_authors
    • First observedget_citation
    • First observedget_paper
    • First observedsearch_paper

TDQS

A3.7/5.0

Scored across 4 tools

Disambiguation5/5

Each tool targets a distinct aspect of scholarly data: searching papers, retrieving paper details, fetching author info, and obtaining citation formats. No overlap in functionality.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern (get_authors, get_citation, get_paper, search_paper) using lowercase snake_case, making them predictable.

Tool Count5/5

Four tools cover the core operations for a semantic scholar client (search, detail, authors, citations) without being excessive or insufficient.

Completeness4/5

The set covers primary use cases but lacks tools for listing citations or references of a paper, which are common scholarly queries. Still, the essential workflows are supported.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    An MCP server that enables academic research by searching Google Scholar, fetching paper content, and converting web pages to clean Markdown.
    1
    MIT
  • A
    license
    B
    quality
    D
    maintenance
    MCP server that provides Semantic Scholar academic search capabilities, including paper search, detail query, citation analysis, author search, and intelligent recommendations.
    9
    59 npm
    7
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables searching and retrieving academic papers, authors, citations, and references from Semantic Scholar via an HTTP MCP server with caching and rate limiting.
    -