Semantic Scholar MCP Server
Supports paper retrieval using ArXiv IDs, enabling access to scientific papers and preprints from the ArXiv repository as part of the academic search capabilities.
Enables paper lookup and retrieval using DOI identifiers, allowing access to published academic papers across various publishers and journals.
Provides filtering capability to find papers with open access PDFs, making it easier to discover freely available academic content.
Provides access to the Semantic Scholar Academic Graph API, allowing for searching and retrieving academic papers, author information, citation analysis, reference tracking, and text snippet search across scholarly publications.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Semantic Scholar MCP Serversearch for papers about large language models from 2023 with open access PDFs"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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
Clone this repository:
git clone <repository-url>
cd SemanticScholarMCPInstall dependencies:
pip install -r requirements.txt(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).
(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-performanceCode Quality
# Run linting
make lint
# Format code
make formatConfiguration
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-usernamewith your actual usernameThe 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 stringlimit: Maximum number of results (default: 10, max: 100)offset: Number of results to skip (default: 0)fields: Comma-separated list of fields to returnpublication_types: Filter by publication typesopen_access_pdf: Filter for papers with open access PDFsmin_citation_count: Minimum citation countyear: 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 IDsfields: Comma-separated list of fields to return
Author Tools
search_authors
Search for authors by name.
Parameters:
query(required): Author name or search querylimit: 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 IDfields: 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 forlimit: 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 forlimit: 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 citedciting_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 snippetslimit: 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 fordownload_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:
Get a free API key (recommended):
Sign up for a free account
Get your API key
Add it to your Claude Desktop config:
"env": { "SEMANTIC_SCHOLAR_API_KEY": "your-actual-api-key-here" }Restart Claude Desktop
Wait and retry: The shared public rate limit may be temporarily exceeded
Use smaller result limits: Reduce the
limitparameter in your queriesSpace 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 toolsdownload_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
| Name | Required | Description | Default |
|---|---|---|---|
| paper_id | Yes | ||
| download_path | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| author_id | Yes | ||
| fields | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| paper_id | Yes | ||
| citing_paper_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| paper_id | Yes | ||
| fields | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| paper_ids | Yes | ||
| fields | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| paper_id | Yes | ||
| limit | No | ||
| offset | No | ||
| fields | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| paper_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| paper_id | Yes | ||
| limit | No | ||
| offset | No | ||
| fields | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | ||
| limit | No | ||
| offset | No | ||
| fields | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | ||
| limit | No | ||
| offset | No | ||
| fields | No | ||
| publication_types | No | ||
| open_access_pdf | No | ||
| min_citation_count | No | ||
| year | No | ||
| venue | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | ||
| limit | No | ||
| offset | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
11 tool updates
- First observed
download_paper_pdf - First observed
get_author - First observed
get_citation_context - First observed
get_paper - First observed
get_paper_batch - First observed
get_paper_citations - First observed
get_paper_pdf_info - First observed
get_paper_references - First observed
search_authors - First observed
search_papers - First observed
search_snippets
TDQS
Scored across 11 tools
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.
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.
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.
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
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
Academic paper search, scientific literature, citation analysis, arXiv & semantic related-work.
Search 340M+ academic papers — citation graphs, semantic similarity, and AI literature reviews.
Access the OpenAlex academic research catalog — 270M+ publications.
Search biomedical papers, inspect publication records, and traverse citation or semantic graphs.
Related MCP Servers
- AlicenseCqualityCmaintenanceSemantic Scholar API, providing comprehensive access to academic paper data, author information, and citation networks.16166MIT
- AlicenseNot gradedqualityDmaintenanceEnables searching and retrieving academic paper metadata from Semantic Scholar, including paper details, citations, and author information.21MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to query the Semantic Scholar Academic Graph for scholarly paper data, supporting tools for search, retrieval, and analysis.14MIT
- AlicenseAqualityCmaintenanceEnables searching academic literature via Semantic Scholar with relevance filters, batch metadata retrieval, and citation-graph recommendations.5AGPL 3.0