Skip to main content
Glama
fegizii

Semantic Scholar MCP Server

by fegizii

Semantic Scholar MCP Server

A Model Context Protocol (MCP) server that provides access to the Semantic Scholar Academic Graph API. This server allows you to search for academic papers, authors, and get detailed information about citations and references.

Features

  • Paper Search: Search for academic papers with various filters

  • Paper Details: Get detailed information about specific papers

  • Batch Paper Retrieval: Get information for multiple papers at once

  • Author Search: Find authors by name

  • Author Details: Get detailed author information and their papers

  • Citation Analysis: Get papers that cite a specific paper

  • Reference Analysis: Get papers referenced by a specific paper

  • Citation Context: Get the context in which one paper cites another

  • Text Snippets: Search for text snippets across academic papers

  • PDF Download: Download open access PDFs with proper filenames and metadata

  • PDF Availability: Check if PDFs are available before downloading

  • Smart Naming: PDFs saved with paper title and year as filename

  • Metadata Support: Embeds title, authors, and year in PDF file properties

Related MCP server: semantic-scholar-mcp

Installation

  1. Clone this repository:

git clone <repository-url>
cd SemanticScholarMCP
  1. Install dependencies:

pip install -r requirements.txt
  1. (Optional but recommended) Set up your Semantic Scholar API key:

export SEMANTIC_SCHOLAR_API_KEY="your-api-key-here"

Note: The API key is optional. The server works without it, but you'll share the public rate limit (1000 requests per second across all unauthenticated users).

  1. (Optional) Install PDF metadata support:

pip install -e ".[metadata]"

Development

Setup Development Environment

# Install with development dependencies
pip install -e ".[test,dev]"

Running Tests

# Run all tests
make test

# Run only unit tests (fast, no API calls)
make test-unit

# Run integration tests (requires API key)
export SEMANTIC_SCHOLAR_API_KEY="your-api-key"
make test-integration

# Run performance tests
make test-performance

Code Quality

# Run linting
make lint

# Format code
make format

Configuration

Add this server to your MCP client configuration:

{
  "mcpServers": {
    "SemanticScholarMCP": {
      "command": "/Users/your-username/Desktop/SemanticScholarMCP/venv/bin/python",
      "args": ["/Users/your-username/Desktop/SemanticScholarMCP/src/semantic_scholar_mcp/server.py"],
      "env": {
        "SEMANTIC_SCHOLAR_API_KEY": "your-actual-api-key-here"
      }
    }
  }
}

Configuration without API key (shares public rate limit):

{
  "mcpServers": {
    "SemanticScholarMCP": {
      "command": "/Users/your-username/Desktop/SemanticScholarMCP/venv/bin/python",
      "args": ["/Users/your-username/Desktop/SemanticScholarMCP/src/semantic_scholar_mcp/server.py"]
    }
  }
}

Important:

  • Replace your-username with your actual username

  • The API key is optional but recommended for dedicated rate limits

  • Without an API key: Shared public rate limit (1000 requests/second across all users)

  • With a free API key: Dedicated higher rate limits for your usage

Available Tools

Paper Tools

search_papers

Search for academic papers with various filters.

Parameters:

  • query (required): Search query string

  • limit: Maximum number of results (default: 10, max: 100)

  • offset: Number of results to skip (default: 0)

  • fields: Comma-separated list of fields to return

  • publication_types: Filter by publication types

  • open_access_pdf: Filter for papers with open access PDFs

  • min_citation_count: Minimum citation count

  • year: Publication year or year range (e.g., "2020-2023")

  • venue: Publication venue

get_paper

Get detailed information about a specific paper.

Parameters:

  • paper_id (required): Paper ID (Semantic Scholar ID, DOI, ArXiv ID, etc.)

  • fields: Comma-separated list of fields to return

get_paper_batch

Get information for multiple papers in a single request.

Parameters:

  • paper_ids (required): Comma-separated list of paper IDs

  • fields: Comma-separated list of fields to return

Author Tools

search_authors

Search for authors by name.

Parameters:

  • query (required): Author name or search query

  • limit: Maximum number of results (default: 10, max: 1000)

  • offset: Number of results to skip (default: 0)

  • fields: Comma-separated list of fields to return

get_author

Get detailed information about a specific author.

Parameters:

  • author_id (required): Author ID

  • fields: Comma-separated list of fields to return

Citation and Reference Tools

get_paper_citations

Get papers that cite a specific paper.

Parameters:

  • paper_id (required): Paper ID to get citations for

  • limit: Maximum number of results (default: 10, max: 1000)

  • offset: Number of results to skip (default: 0)

  • fields: Comma-separated list of fields to return

get_paper_references

Get papers referenced by a specific paper.

Parameters:

  • paper_id (required): Paper ID to get references for

  • limit: Maximum number of results (default: 10, max: 1000)

  • offset: Number of results to skip (default: 0)

  • fields: Comma-separated list of fields to return

get_citation_context

Get the context in which one paper cites another.

Parameters:

  • paper_id (required): ID of the paper being cited

  • citing_paper_id (required): ID of the paper doing the citing

Text Search Tools

search_snippets

Search for text snippets across academic papers.

Parameters:

  • query (required): Search query for text snippets

  • limit: Maximum number of results (default: 10, max: 100)

  • offset: Number of results to skip (default: 0)

PDF Tools

get_paper_pdf_info

Check PDF availability for a paper.

Parameters:

  • paper_id (required): Paper ID to check PDF availability

download_paper_pdf

Download the PDF of a paper if available, using the paper title as filename and setting metadata.

Parameters:

  • paper_id (required): Paper ID to download PDF for

  • download_path: Directory to save PDF (default: ~/Downloads/semantic_scholar_papers)

Features:

  • Uses paper title as filename (e.g., "Machine Learning in Healthcare (2023).pdf")

  • Sets PDF metadata with title, authors, and publication year

  • Handles duplicate filenames automatically

  • Creates organized folder structure

Usage Examples

Search for papers on machine learning

search_papers("machine learning", limit=5, year="2023")

Get details about a specific paper

get_paper("10.1038/nature14539")

Find papers that cite a specific work

get_paper_citations("10.1038/nature14539", limit=10)

Search for an author

search_authors("Geoffrey Hinton")

Get citation context

get_citation_context("paper-id-1", "paper-id-2")

Check PDF availability

get_paper_pdf_info("10.1038/nature14539")

Download a paper PDF

download_paper_pdf("10.1038/nature14539")

This will save the PDF as something like:

"Deep learning (2015).pdf"

With embedded metadata including title, authors (LeCun, Y., Bengio, Y., Hinton, G.), and year (2015).

API Rate Limits

The Semantic Scholar API has the following rate limits:

  • Without API key: 1000 requests per second shared among all unauthenticated users (may be throttled during heavy usage)

  • With free API key: Dedicated higher rate limits for your personal usage

Getting a free API key is recommended for consistent performance.

Troubleshooting

Rate Limit Error

If you see this error:

Error: Rate limit exceeded. Please wait a moment and try again, or get an API key for higher limits.

This means you've hit the shared public rate limit or the API is being throttled due to heavy usage.

Immediate Solutions:

  1. Get a free API key (recommended):

    "env": {
      "SEMANTIC_SCHOLAR_API_KEY": "your-actual-api-key-here"
    }
    • Restart Claude Desktop

  2. Wait and retry: The shared public rate limit may be temporarily exceeded

  3. Use smaller result limits: Reduce the limit parameter in your queries

  4. Space out requests: Avoid making many requests in rapid succession

Configuration Issues

  • Ensure the Python path in your config points to the correct virtual environment

  • Verify the server script path is correct

  • Check that all dependencies are installed in the virtual environment

Testing the Connection

You can test if the server is working by asking Claude to search for a single paper with a small limit:

search_papers("machine learning", limit=1)

Error Handling

All tools include comprehensive error handling and will return descriptive error messages if requests fail or if the API returns errors.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Contributing

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

Available Tools

11 tools
download_paper_pdfA
Download the PDF of a paper if available, using title as filename and setting metadata.

Args:
    paper_id: Paper ID (Semantic Scholar ID, DOI, ArXiv ID, etc.)
    download_path: Directory to save the PDF (default: ~/Downloads/semantic_scholar_papers)

Returns:
    Status message with download location or error
ParametersJSON Schema
NameRequiredDescriptionDefault
paper_idYes
download_pathNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior3/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 reveals several important behaviors: conditional availability ('if available'), filename generation ('using title as filename'), metadata setting, default download path, and error handling through return status. However, it doesn't cover potential rate limits, authentication requirements, file size considerations, or what specific metadata is set.

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 efficiently structured with a clear purpose statement followed by dedicated Args and Returns sections. Every sentence adds value: the main purpose, parameter explanations, and return behavior. No redundant information is present, and the formatting enhances readability without unnecessary verbosity.

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

Completeness4/5

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

Given the tool's moderate complexity (2 parameters, conditional operation), no annotations, but with an output schema, the description provides good coverage. It explains the core operation, parameters, and return behavior. The output schema handles return value details, so the description appropriately focuses on operational context. However, it could better address sibling tool relationships and error scenarios.

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

Parameters4/5

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

The description adds significant semantic value beyond the 0% schema description coverage. It explains that 'paper_id' accepts multiple identifier types (Semantic Scholar ID, DOI, ArXiv ID, etc.) and clarifies that 'download_path' is a directory with a specific default value. This compensates well for the schema's lack of parameter descriptions, though it doesn't detail path format requirements or paper_id validation rules.

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 tool's purpose: 'Download the PDF of a paper if available, using title as filename and setting metadata.' This specifies the verb (download), resource (PDF of a paper), and key behaviors (filename handling, metadata setting). However, it doesn't explicitly differentiate from sibling tools like 'get_paper_pdf_info' which might provide PDF information without downloading.

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 minimal usage guidance. It mentions 'if available' which implies a precondition, but doesn't specify when to use this tool versus alternatives like 'get_paper_pdf_info' for checking availability first, or other sibling tools for different paper-related operations. No explicit when-not-to-use or alternative recommendations are provided.

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

get_authorC
Get detailed information about a specific author.

Args:
    author_id: Author ID
    fields: Comma-separated list of fields to return

Returns:
    Detailed author information
ParametersJSON Schema
NameRequiredDescriptionDefault
author_idYes
fieldsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. It states this is a 'Get' operation which implies read-only, but doesn't specify authentication requirements, rate limits, error conditions, or what happens with invalid author_id. The description mentions 'detailed information' but doesn't characterize what level of detail or typical response structure beyond what the output schema provides.

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?

The description is appropriately concise with a clear purpose statement followed by structured Args and Returns sections. Each sentence earns its place by providing essential information. The structure helps with readability, though the 'Returns' section is somewhat redundant given the existence of an output schema.

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 moderate complexity (2 parameters, 1 required), no annotations, but with an output schema, the description is minimally adequate. The output schema means the description doesn't need to explain return values, but it should provide more context about usage scenarios, error handling, and parameter details given the 0% schema description coverage.

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 0%, so the schema provides no parameter descriptions. The description adds basic semantics: author_id identifies 'a specific author' and fields is a 'comma-separated list of fields to return'. However, it doesn't explain what fields are available, format examples, or what happens when fields is null. This provides some value but leaves significant gaps in parameter understanding.

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 tool's purpose with 'Get detailed information about a specific author' - a specific verb (Get) and resource (author). It distinguishes from siblings like search_authors (which searches multiple authors) by focusing on a single specific author. However, it doesn't explicitly contrast with get_paper which might also return author information.

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. It doesn't mention when to use get_author versus search_authors (for finding authors) or get_paper (which might include author details). There's no context about prerequisites, limitations, or typical use cases for this specific retrieval operation.

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

get_citation_contextB
Get the context in which one paper cites another.

Args:
    paper_id: ID of the paper being cited
    citing_paper_id: ID of the paper doing the citing

Returns:
    Citation context information
ParametersJSON Schema
NameRequiredDescriptionDefault
paper_idYes
citing_paper_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool retrieves citation context but doesn't cover critical aspects like whether it's a read-only operation, potential rate limits, authentication needs, error conditions, or what 'context information' entails (e.g., text snippets, metadata). This leaves significant gaps in understanding how the tool behaves.

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 highly concise and well-structured: a clear purpose statement followed by brief sections for 'Args' and 'Returns'. Each sentence earns its place by providing essential information without redundancy, making it easy to scan and understand quickly.

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 has an output schema, the description doesn't need to detail return values. However, with no annotations and low parameter semantics coverage, it lacks completeness for a tool that involves data retrieval. It adequately states the purpose but misses behavioral and usage context that would help an agent use it effectively.

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 0%, so the schema provides no parameter descriptions. The description adds minimal semantics by naming the parameters ('paper_id' and 'citing_paper_id') and implying their roles, but it doesn't explain format (e.g., numeric IDs, strings), constraints, or examples. This compensates slightly but not fully for the lack of schema documentation.

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 tool's purpose: 'Get the context in which one paper cites another.' This specifies the verb ('Get') and resource ('context'), making it understandable. However, it doesn't explicitly differentiate from sibling tools like 'get_paper_citations' or 'get_paper_references', which might handle related citation data, so it falls short of a perfect score.

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. It doesn't mention sibling tools like 'get_paper_citations' or 'search_snippets', which could be relevant for citation-related queries. Without any context on usage scenarios or exclusions, the agent must infer when this tool is appropriate.

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

get_paperC
Get detailed information about a specific paper.

Args:
    paper_id: Paper ID (can be Semantic Scholar ID, DOI, ArXiv ID, etc.)
    fields: Comma-separated list of fields to return

Returns:
    Detailed paper information
ParametersJSON Schema
NameRequiredDescriptionDefault
paper_idYes
fieldsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/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 mentions that the tool returns 'detailed paper information' but lacks critical details such as authentication requirements, rate limits, error handling, or whether it's a read-only operation. This leaves significant gaps in understanding how the tool behaves beyond its basic function.

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?

The description is appropriately sized and front-loaded, starting with the core purpose. The use of sections for 'Args' and 'Returns' adds structure, but the 'Returns' section is redundant given the existence of an output schema, slightly reducing efficiency.

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 moderate complexity (2 parameters, no annotations, but with an output schema), the description is somewhat complete. It covers the basic purpose and parameters but lacks behavioral context and usage guidelines. The output schema reduces the need to explain return values, but overall, it's adequate with clear gaps in guidance and transparency.

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?

The description adds some meaning beyond the input schema by explaining that 'paper_id' can include various identifiers (Semantic Scholar ID, DOI, ArXiv ID) and that 'fields' is a comma-separated list. However, with 0% schema description coverage, it doesn't fully compensate for the lack of schema details, such as what specific fields are available or examples of valid inputs.

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 tool's purpose with a specific verb ('Get') and resource ('detailed information about a specific paper'), making it easy to understand what the tool does. However, it doesn't differentiate from siblings like 'get_paper_batch' or 'get_paper_citations', which also retrieve paper information but with different scopes or additional data.

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. It doesn't mention siblings like 'get_paper_batch' for multiple papers or 'search_papers' for broader queries, nor does it specify prerequisites or exclusions, leaving usage context unclear.

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

get_paper_batchB
Get information for multiple papers in a single request.

Args:
    paper_ids: Comma-separated list of paper IDs
    fields: Comma-separated list of fields to return

Returns:
    Batch paper information
ParametersJSON Schema
NameRequiredDescriptionDefault
paper_idsYes
fieldsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It states the tool retrieves information (implying read-only), but doesn't disclose behavioral traits like rate limits, authentication needs, error handling, or pagination. The description is minimal and lacks context about what 'information' includes or how results are structured, leaving significant gaps.

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 highly concise and well-structured: a clear purpose statement followed by brief, bullet-like sections for Args and Returns. Every sentence earns its place with no redundant information, making it easy to scan and understand quickly.

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 moderate complexity (2 parameters, no annotations, but with an output schema), the description is minimally adequate. The output schema likely covers return values, reducing the need for detailed Returns explanation. However, the description lacks context on error cases, batch size limits, or sibling tool differentiation, leaving room for improvement in completeness.

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 0%, so the description must compensate. It lists both parameters ('paper_ids' and 'fields') and explains their formats (comma-separated lists), adding meaning beyond the bare schema. However, it doesn't specify valid ID formats, field options, or default behavior when 'fields' is null, leaving some ambiguity. This partial compensation justifies a baseline score.

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 tool's purpose: 'Get information for multiple papers in a single request.' This specifies the verb ('get information') and resource ('multiple papers'), distinguishing it from single-paper tools like 'get_paper'. However, it doesn't explicitly differentiate from other batch-capable siblings like 'search_papers', which could also retrieve multiple papers.

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. It doesn't mention when to prefer this over 'get_paper' (for single papers) or 'search_papers' (for filtered batches), nor does it specify prerequisites or exclusions. The agent must infer usage from the name and parameters alone.

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

get_paper_citationsA
Get papers that cite a specific paper.

Args:
    paper_id: Paper ID to get citations for
    limit: Maximum number of results (default: 10, max: 1000)
    offset: Number of results to skip (default: 0)
    fields: Comma-separated list of fields to return

Returns:
    List of citing papers
ParametersJSON Schema
NameRequiredDescriptionDefault
paper_idYes
limitNo
offsetNo
fieldsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It mentions default values and limits for parameters, which adds some behavioral context (e.g., pagination with limit/offset), but it doesn't disclose other traits like rate limits, authentication needs, error handling, or whether the operation is read-only (implied by 'Get' but not explicit). The description is minimal beyond parameter defaults.

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 appropriately sized and front-loaded: the first sentence states the purpose, followed by a structured 'Args' and 'Returns' section. Every sentence earns its place by explaining parameters and output without redundancy. It's efficient and well-organized.

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

Completeness4/5

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

Given the tool's moderate complexity (4 parameters, 1 required) and the presence of an output schema (implied by 'Returns: List of citing papers'), the description is mostly complete. It explains all parameters and the return type. However, with no annotations, it could benefit from more behavioral details like safety or performance traits, but the output schema reduces the need to fully describe return values.

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

Parameters4/5

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

The schema description coverage is 0%, so the description must compensate. It adds meaning by explaining each parameter: paper_id ('Paper ID to get citations for'), limit ('Maximum number of results' with default and max), offset ('Number of results to skip' with default), and fields ('Comma-separated list of fields to return'). This covers all 4 parameters, providing clear semantics beyond the bare 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's purpose with a specific verb ('Get') and resource ('papers that cite a specific paper'), distinguishing it from siblings like get_paper_references (which gets papers cited by a paper) and get_paper (which gets paper details). The first sentence is direct and unambiguous.

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 implies usage by stating 'Get papers that cite a specific paper,' which suggests it's for citation analysis, but it doesn't explicitly say when to use this tool versus alternatives like get_citation_context (which might provide context around citations) or search_papers (which might find papers by other criteria). No exclusions or prerequisites are mentioned.

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

get_paper_pdf_infoB
Get PDF availability information for a paper.

Args:
    paper_id: Paper ID (Semantic Scholar ID, DOI, ArXiv ID, etc.)

Returns:
    PDF availability information
ParametersJSON Schema
NameRequiredDescriptionDefault
paper_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool gets 'PDF availability information,' which implies a read-only operation, but doesn't clarify aspects like rate limits, authentication needs, error handling, or what specific information is returned (e.g., URLs, access status). This leaves significant gaps for a tool with no annotation coverage.

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 highly concise and well-structured: a clear purpose statement followed by brief sections for 'Args' and 'Returns.' Each sentence earns its place by providing essential information without redundancy, making it easy to scan and understand quickly.

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 low complexity (1 parameter, no nested objects) and the presence of an output schema (which handles return value documentation), the description is adequate but has gaps. It covers the basic purpose and parameter semantics but lacks usage guidelines and behavioral details, making it minimally viable but not fully comprehensive for an agent's needs.

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

Parameters4/5

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

The description adds meaningful context for the single parameter 'paper_id' by specifying it as 'Paper ID (Semantic Scholar ID, DOI, ArXiv ID, etc.),' which clarifies acceptable formats beyond what the schema provides (schema description coverage is 0%). This compensates well for the low schema coverage, though it doesn't detail constraints like length or validation rules.

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 tool's purpose: 'Get PDF availability information for a paper.' It specifies the verb ('Get') and resource ('PDF availability information for a paper'), making it easy to understand what the tool does. However, it doesn't explicitly differentiate from sibling tools like 'download_paper_pdf' or 'get_paper', which would require a 5.

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. It doesn't mention sibling tools like 'download_paper_pdf' (which might download the PDF) or 'get_paper' (which might retrieve general paper info), leaving the agent to infer usage context without explicit direction.

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

get_paper_referencesA
Get papers referenced by a specific paper.

Args:
    paper_id: Paper ID to get references for
    limit: Maximum number of results (default: 10, max: 1000)
    offset: Number of results to skip (default: 0)
    fields: Comma-separated list of fields to return

Returns:
    List of referenced papers
ParametersJSON Schema
NameRequiredDescriptionDefault
paper_idYes
limitNo
offsetNo
fieldsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden but offers minimal behavioral disclosure. It mentions default values and limits (max: 1000), which is helpful, but doesn't cover important aspects like authentication requirements, rate limits, error conditions, pagination behavior beyond offset/limit, or what happens with invalid paper_id. For a read operation with zero annotation coverage, this leaves significant gaps.

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 efficiently structured with a clear purpose statement followed by organized parameter explanations and return value. Every sentence adds value: the first states the tool's function, the Args section documents all parameters, and the Returns section clarifies output. No wasted words or redundancy.

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

Completeness4/5

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

Given the tool's moderate complexity (4 parameters, 1 required) and the presence of an output schema (which handles return value documentation), the description is reasonably complete. It covers all parameters with semantics and mentions the return type. However, without annotations and with sibling tools present, it could better address usage context and behavioral constraints.

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

Parameters4/5

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

The description adds substantial value beyond the schema, which has 0% description coverage. It explains what each parameter means: paper_id identifies the source paper, limit controls result count with defaults and maximum, offset enables skipping results, and fields controls returned data. This compensates well for the schema's lack of descriptions, though it doesn't specify field format or examples.

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 specific action ('Get papers referenced by') and resource ('a specific paper'), distinguishing it from siblings like get_paper_citations (which likely gets papers citing this paper) or get_paper (which gets paper details). The verb 'get' combined with 'referenced by' precisely defines the tool's function.

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 like get_paper_citations or get_paper_batch. It doesn't mention prerequisites (e.g., needing a valid paper_id) or contextual factors that would help an agent choose between this and sibling tools.

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

search_authorsB
Search for authors by name.

Args:
    query: Author name or search query
    limit: Maximum number of results (default: 10, max: 1000)
    offset: Number of results to skip (default: 0)
    fields: Comma-separated list of fields to return

Returns:
    Formatted author search results
ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes
limitNo
offsetNo
fieldsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

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 mentions that the tool 'returns formatted author search results,' which hints at a read-only operation, but doesn't clarify aspects like authentication needs, rate limits, pagination behavior beyond offset/limit, or error handling. For a search tool with zero annotation coverage, this leaves significant gaps in understanding its operational traits.

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?

The description is well-structured with a clear purpose statement followed by parameter and return value sections. It's appropriately sized with no redundant information, though the 'Returns' section could be more specific given the output schema exists, making it slightly less efficient than ideal.

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 moderate complexity (4 parameters, 1 required), no annotations, and an output schema present, the description is adequate but has gaps. It covers parameter semantics well but lacks usage guidelines and detailed behavioral context. The output schema reduces the need to explain return values, but overall completeness is limited by missing operational guidance.

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

Parameters4/5

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

The description adds meaningful context beyond the input schema, which has 0% description coverage. It explains that 'query' is for 'author name or search query,' specifies default and max values for 'limit,' defines 'offset' as 'number of results to skip,' and describes 'fields' as a 'comma-separated list of fields to return.' This compensates well for the schema's lack of descriptions, though it doesn't detail what fields are available or query syntax nuances.

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 tool's purpose as 'Search for authors by name,' which is a specific verb+resource combination. However, it doesn't explicitly differentiate from sibling tools like 'get_author' or 'search_papers,' which would require more specific context about when to use each.

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 like 'get_author' (for specific authors) or 'search_papers' (for paper-based searches). There's no mention of prerequisites, typical use cases, or exclusions, leaving the agent to infer usage from the tool name alone.

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

search_papersB
Search for academic papers using Semantic Scholar.

Args:
    query: Search query string
    limit: Maximum number of results (default: 10, max: 100)
    offset: Number of results to skip (default: 0)
    fields: Comma-separated list of fields to return
    publication_types: Filter by publication types
    open_access_pdf: Filter for papers with open access PDFs
    min_citation_count: Minimum citation count
    year: Publication year or year range (e.g., "2020-2023")
    venue: Publication venue

Returns:
    Formatted search results
ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes
limitNo
offsetNo
fieldsNo
publication_typesNo
open_access_pdfNo
min_citation_countNo
yearNo
venueNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/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 mentions that results are 'formatted' but doesn't describe the format, pagination behavior, rate limits, authentication requirements, or error conditions. For a search tool with 9 parameters and no annotation coverage, this leaves significant behavioral aspects undocumented.

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 well-structured and appropriately sized. It begins with a clear purpose statement, then provides a comprehensive parameter list with helpful details, and ends with return information. Every sentence serves a clear purpose with no wasted words.

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

Completeness4/5

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

Given the tool's complexity (9 parameters, no annotations, but with output schema), the description is reasonably complete. It thoroughly documents all parameters and their semantics. The presence of an output schema means the description doesn't need to detail return values. However, it lacks behavioral context like rate limits or error handling that would be helpful for a search tool.

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

Parameters4/5

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

The description provides clear semantic explanations for all 9 parameters beyond what the schema offers (which has 0% description coverage). It explains what each parameter does, provides examples (e.g., year format '2020-2023'), and includes default values and constraints (e.g., 'max: 100' for limit). This effectively compensates for the schema's lack of descriptions.

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 tool's purpose: 'Search for academic papers using Semantic Scholar.' It specifies the verb ('search') and resource ('academic papers'), and mentions the data source (Semantic Scholar). However, it doesn't explicitly differentiate this tool from sibling tools like 'search_authors' or 'search_snippets' beyond the resource type.

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. It doesn't mention sibling tools like 'search_authors' (for author searches) or 'get_paper' (for retrieving specific papers by ID), nor does it provide any context about when this search tool is appropriate versus other search or retrieval methods.

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

search_snippetsC
Search for text snippets across academic papers.

Args:
    query: Search query for text snippets
    limit: Maximum number of results (default: 10, max: 100)
    offset: Number of results to skip (default: 0)

Returns:
    Text snippets from papers
ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes
limitNo
offsetNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. It mentions the tool 'returns text snippets from papers' but doesn't describe the search scope (full text? abstracts?), result format (snippet length, metadata included), performance characteristics, or any limitations. The description adds minimal behavioral context beyond the basic operation, leaving significant gaps for a search tool with no annotation coverage.

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?

The description is well-structured with clear sections (purpose, args, returns) and uses bullet-like formatting. Every sentence earns its place: the purpose statement is essential, parameter explanations are necessary given 0% schema coverage, and the return statement clarifies output. It could be slightly more concise by integrating defaults into the parameter descriptions more efficiently, but overall it's appropriately sized and front-loaded.

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 moderate complexity (search across academic papers), no annotations, and an output schema exists (though unspecified here), the description is minimally complete. It covers the basic operation and parameters but lacks important context: search scope, result format, limitations, and when to use versus siblings. The existence of an output schema means the description doesn't need to detail return values, but it should provide more behavioral context for effective use.

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 0%, so the description must compensate. It provides basic semantics for all three parameters: query is for 'search query for text snippets', limit specifies 'maximum number of results' with default/max values, and offset indicates 'number of results to skip' with default. However, it doesn't explain query syntax (exact matching? boolean operators?), what constitutes a 'result' (snippet length, paper context), or how offset interacts with pagination. The description adds value but doesn't fully compensate for the schema coverage gap.

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 tool's purpose as 'Search for text snippets across academic papers' with a specific verb ('search') and resource ('text snippets across academic papers'). It distinguishes itself from siblings like search_papers (which searches papers, not snippets) and get_citation_context (which retrieves specific citation contexts rather than searching across papers). However, it doesn't explicitly contrast with all siblings, keeping it at 4 rather than 5.

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. It doesn't mention when to prefer search_snippets over search_papers (for finding specific text passages versus paper metadata) or get_citation_context (for broader search versus focused citation retrieval). There's no discussion of prerequisites, limitations, or typical use cases beyond the basic purpose statement.

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. 11 tool updates
    • First observeddownload_paper_pdf
    • First observedget_author
    • First observedget_citation_context
    • First observedget_paper
    • First observedget_paper_batch
    • First observedget_paper_citations
    • First observedget_paper_pdf_info
    • First observedget_paper_references
    • First observedsearch_authors
    • First observedsearch_papers
    • First observedsearch_snippets

TDQS

A3.7/5.0

Scored across 11 tools

Disambiguation5/5

Every tool has a clearly distinct purpose with no ambiguity. Tools are organized around specific resources (papers, authors, citations) and actions (get, search, download), making it easy for an agent to select the right tool for each task without confusion.

Naming Consistency5/5

All tools follow a consistent verb_noun pattern with perfect uniformity. The naming convention uses clear action prefixes (get_, search_, download_) followed by specific resource identifiers, creating a predictable and readable structure throughout the toolset.

Tool Count5/5

With 11 tools, this server is well-scoped for academic research purposes. Each tool earns its place by covering distinct aspects of paper discovery, author information, citation analysis, and PDF access, providing comprehensive coverage without being overwhelming.

Completeness5/5

The toolset provides complete coverage for academic research workflows. It includes paper discovery (search_papers), detailed paper information (get_paper, get_paper_batch), citation analysis (get_paper_citations, get_paper_references, get_citation_context), author research (get_author, search_authors), and PDF access (get_paper_pdf_info, download_paper_pdf), with no obvious gaps in functionality.

Maintenance

ActivityInactive
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables searching and retrieving academic paper metadata from Semantic Scholar, including paper details, citations, and author information.
    21
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables AI agents to query the Semantic Scholar Academic Graph for scholarly paper data, supporting tools for search, retrieval, and analysis.
    14
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Enables searching academic literature via Semantic Scholar with relevance filters, batch metadata retrieval, and citation-graph recommendations.
    5
    AGPL 3.0