Scopus MCP Server
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., "@Scopus MCP Serversearch for recent papers about climate change mitigation"
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.
Scopus MCP Server
δΈζ | English
π‘ Check out the Interaction Guide & Prompt Examples to see how to chat with this tool!
This is a Model Context Protocol (MCP) server that provides access to the Elsevier Scopus API. It allows AI assistants to search for academic papers, retrieve abstracts, and look up author profiles.
Please note that requesting an Elsevier Scopus API key generally requires that your organization or institution has a subscription to Elsevier database services. Additionally, to run this tool without manual setup, your device must have the uv package manager installed.
Configuration
Setup Steps
Go to Elsevier Developer Portal to apply for an API key.
Create a
config.jsonfile in the project root (or copy fromconfig.json.example) and fill in your key:{ "api_key": "YOUR_KEY_HERE" }Edit
MCP_tool_config.json, modifying the folder path (pay attention to the slash direction).Finally, import the configuration into your MCP client (e.g., Claude Desktop) by copying the content of
MCP_tool_config.json.
Related MCP server: MCP-scopus
π Quick Start (Zero Setup)
Prerequisite: You must have uv installed.
Windows:
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"macOS/Linux:
curl -LsSf https://astral.sh/uv/install.sh | sh
If you use Claude Desktop, you can skip downloading the code and just configure it directly:
Get Key: Get a free API Key from Elsevier Developer Portal. (β οΈ Note: Educational/Institutional email is recommended; public email domains may be rejected).
Configure: Edit
%APPDATA%\Claude\claude_desktop_config.json(Windows) or~/Library/Application Support/Claude/claude_desktop_config.json(macOS).Add:
{
"mcpServers": {
"scopus-assistant": {
"command": "uvx",
"args": [
"scopus-mcp"
],
"env": {
"SCOPUS_API_KEY": "PUT_YOUR_KEY_HERE"
}
}
}
}(If you don't have uv, see Installation for manual setup)
Using with Trae
In Trae Settings -> MCP Servers -> Click Add -> Select Manual Configuration (JSON), then paste:
{
"mcpServers": {
"scopus-assistant": {
"command": "uvx",
"args": [
"scopus-mcp"
],
"env": {
"SCOPUS_API_KEY": "PUT_YOUR_KEY_HERE"
}
}
}
}Using with Cursor
Open Cursor Settings -> Features -> MCP Servers.
Click + Add New MCP Server.
Fill in the details:
Name:
scopus-mcpType:
command(stdio)Command:
uvx scopus-mcp
Important: You need to set
SCOPUS_API_KEYin your system environment variables.
Installation
Ensure you have Python 3.10+ installed.
Install dependencies:
pip install .
Usage
Running the Server
You can run the server using uvx (recommended) or directly with python.
# Using uvx
uvx --from . scopus-mcp
# Or directly
python -m scopus_mcp.serverAvailable Tools
search_scopusSearches the Scopus database using the standard query syntax.
Arguments:
query(string): The search query (e.g.,TITLE("Artificial Intelligence")).count(integer): Number of results to return (default: 5).sort(string): Sort order (e.g.,coverDate).
get_abstract_detailsRetrieves detailed information for a specific document.
Arguments:
scopus_id(string): The Scopus ID of the document.
get_author_profileRetrieves an author's profile information.
Arguments:
author_id(string): The Scopus Author ID.
Development
Run tests with:
pytestLicense
This project is licensed under the MIT License - see the LICENSE file for details.
Acknowledgments & Contributors
thinktraveller - Initial Work & Core Development
qwe4559999 - Maintainer
Available Tools
5 toolsget_abstract_detailsC
Retrieve full details for a specific document by Scopus ID.
| Name | Required | Description | Default |
|---|---|---|---|
| scopus_id | Yes | The Scopus ID of the document. |
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 this is a retrieval operation, implying read-only behavior, but doesn't mention any constraints like rate limits, authentication needs, error handling, or what 'full details' entails. For a tool with no annotation coverage, this leaves significant gaps in understanding its behavior.
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 a single, clear sentence with zero wasted words. It's front-loaded with the core purpose and efficiently conveys the essential information without unnecessary elaboration, making it easy to parse 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 no annotations, no output schema, and a single parameter with good schema coverage, the description is incomplete. It doesn't explain what 'full details' includes in the response, potential errors, or usage constraints. For a retrieval tool, this lack of output and behavioral context is a significant shortfall.
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 100%, with the single parameter 'scopus_id' well-documented in the schema. The description adds minimal value beyond implying this is the primary identifier, but doesn't provide additional context like format examples or validation rules. Baseline 3 is appropriate when the schema does the heavy lifting.
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 action ('Retrieve full details') and resource ('for a specific document by Scopus ID'), making the purpose immediately understandable. However, it doesn't explicitly differentiate this from sibling tools like 'get_author_profile' or 'get_citing_papers' beyond the document focus, which prevents 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 like 'search_scopus' or other siblings. It mentions retrieving details for a 'specific document,' implying you need a known Scopus ID, but doesn't state this explicitly or provide any context about prerequisites or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_author_profileC
Retrieve an author's profile by Author ID.
| Name | Required | Description | Default |
|---|---|---|---|
| author_id | Yes | The Scopus Author ID. |
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 states it's a retrieval operation, implying read-only behavior, but doesn't disclose any traits like rate limits, authentication needs, error handling, or what the profile includes (e.g., fields returned). 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 a single, efficient sentence with zero waste. It's front-loaded with the core purpose ('Retrieve an author's profile'), and every word earns its place by specifying the key constraint ('by Author ID'). No unnecessary details 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 simplicity (1 parameter, 100% schema coverage) but lack of annotations and output schema, the description is incomplete. It doesn't explain what an 'author's profile' entails (e.g., fields like name, affiliation), potential errors, or return format. For a retrieval tool with no structured output, more context is needed.
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 minimal meaning beyond the input schema, which has 100% coverage and clearly documents the single parameter 'author_id' as 'The Scopus Author ID'. The description reiterates 'by Author ID' but doesn't provide additional context like format examples or validation rules. Baseline 3 is appropriate as the schema does the heavy lifting.
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 action ('Retrieve') and resource ('author's profile'), specifying it's by 'Author ID'. It distinguishes from siblings like 'get_citing_papers' or 'search_scopus' by focusing on profile retrieval rather than citations or searches. However, it doesn't explicitly differentiate from all siblings (e.g., 'get_abstract_details' might also retrieve data by ID), keeping it from 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 prerequisites (e.g., needing a valid Author ID), exclusions, or comparisons to sibling tools like 'search_scopus' for finding authors by name. Usage is implied by the action but lacks explicit context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_citing_papersC
Retrieve a list of papers that have cited the specified document (Forward Citations).
| Name | Required | Description | Default |
|---|---|---|---|
| scopus_id | Yes | The Scopus ID of the document to find citations for. | |
| count | No | Number of results to return (default 5, max 25). | |
| sort | No | Sort order (e.g., 'coverDate', 'relevancy'). | coverDate |
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 retrieval but doesn't disclose behavioral traits such as rate limits, authentication requirements, pagination behavior, error conditions, or what happens with invalid Scopus IDs. For a read operation with no annotation coverage, 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 a single, efficient sentence that front-loads the core purpose without unnecessary words. Every part earns its place by specifying the action, resource, and scope concisely, making it easy to parse 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 no annotations, no output schema, and 3 parameters, the description is incomplete. It lacks information on return values (e.g., paper details format), error handling, usage limits, or dependencies. For a retrieval tool with multiple parameters and no structured output documentation, more context is needed to ensure reliable use by an agent.
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 100%, so the schema already documents all parameters (scopus_id, count, sort) with descriptions, defaults, and constraints. The description adds no additional parameter semantics beyond implying the tool uses Scopus IDs, which is already stated in the schema. Baseline 3 is appropriate as the schema handles the heavy lifting.
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 verb ('Retrieve') and resource ('list of papers that have cited the specified document'), with specific scope indicated by 'Forward Citations'. It distinguishes from siblings like 'get_abstract_details' or 'search_scopus' by focusing on citation retrieval rather than document details or general search. However, it doesn't explicitly differentiate from potential citation-related tools not present in the sibling list.
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?
No guidance is provided on when to use this tool versus alternatives. While the description mentions 'Forward Citations', it doesn't specify prerequisites (e.g., needing a valid Scopus ID), contrast with other citation methods, or indicate scenarios where this tool is preferred over sibling tools like 'search_scopus' for citation-related queries.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_quota_statusA
Get the current API quota status (remaining/limit). Note: Values are updated only after making a request.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
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 discloses key behavioral traits: it's a read operation (implied by 'Get'), and it specifies that quota values are updated only after making a request, which is crucial for understanding its timing and accuracy. It does not cover other aspects like error handling or rate limits, but the added context is valuable given the lack of annotations.
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 two sentences, front-loaded with the core purpose and followed by an important behavioral note. Every sentence earns its place by providing essential information without waste, making it highly efficient and well-structured.
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 (0 parameters, no output schema, no annotations), the description is complete enough for a simple quota-checking tool. It explains what the tool does and a key behavioral constraint. However, without an output schema, it could benefit from specifying the return format (e.g., numeric values or a structured object), but the current description is adequate for the context.
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?
There are 0 parameters, and schema description coverage is 100%, so no parameter documentation is needed. The description adds no parameter-specific information, which is appropriate. A baseline of 4 is applied for zero parameters, as it avoids unnecessary details and focuses on the tool's purpose.
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') and resource ('current API quota status') with precise details about what information is returned ('remaining/limit'). It distinguishes itself from sibling tools (which focus on academic data like papers, authors, and citations) by addressing API quota monitoring.
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 clear context on when to use this tool: to check API quota status, with a note that values update only after making a request. This implies usage after API calls to monitor limits. However, it does not explicitly state when not to use it or name alternatives, though siblings are unrelated (e.g., no alternative quota-checking tool exists).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_scopusC
Search for documents in Scopus using a query string.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | The Scopus search query (e.g., 'TITLE(AI) AND PUBYEAR > 2020'). | |
| count | No | Number of results to return (default 5, max 25). | |
| sort | No | Sort order (e.g., 'coverDate', 'relevancy'). | coverDate |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but only states the basic action without disclosing behavioral traits like authentication requirements, rate limits, pagination, or error handling. It lacks critical context for a search operation in an academic database.
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 a single, efficient sentence with zero waste, front-loading the core purpose. It's appropriately sized for a simple tool, making it easy to parse 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 complexity of a search tool with no annotations and no output schema, the description is incomplete. It doesn't cover return values, error cases, or operational constraints, leaving significant gaps for an AI agent to understand full behavior.
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 no parameter-specific information beyond what the schema provides (schema coverage is 100%). It mentions 'using a query string' which aligns with the 'query' parameter but doesn't elaborate on semantics. Baseline 3 is appropriate as the schema handles documentation adequately.
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 action ('Search for documents') and resource ('in Scopus'), specifying the tool's purpose. However, it doesn't differentiate from sibling tools like 'get_citing_papers' or 'get_abstract_details' which might also involve document retrieval, making it clear but not sibling-distinctive.
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_citing_papers' or 'get_abstract_details', nor does it mention prerequisites such as authentication or quota limits. It's a basic statement without usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Each tool has a clearly distinct purpose with no overlap: get_abstract_details retrieves document details, get_author_profile gets author information, get_citing_papers finds citations, get_quota_status checks API limits, and search_scopus performs searches. The descriptions make it easy to differentiate between document, author, citation, quota, and search operations.
All tools follow a consistent verb_noun pattern using snake_case: get_abstract_details, get_author_profile, get_citing_papers, get_quota_status, and search_scopus. The naming is predictable and readable throughout the set, with 'get_' prefix for retrieval operations and 'search_' for the search function.
With 5 tools, this server is well-scoped for a Scopus API interface. Each tool serves a distinct and essential function for academic research workflows, such as retrieving documents, authors, citations, checking quotas, and searching. The count is neither too sparse nor bloated, fitting the domain appropriately.
The tool set covers core Scopus operations well: search, retrieve document details, author profiles, and citations, plus quota management. A minor gap is the lack of tools for related operations like backward citations (references) or advanced filtering options, but agents can work around this with the provided tools for most common tasks.
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 literature search, retrieval, and private library management on top of OpenAlex.
Search 340M+ academic papers β citation graphs, semantic similarity, and AI literature reviews.
Ground answers in scientific literature. Search full text, evaluate trust, access full-text articles
Search arXiv/Semantic Scholar/OpenAlex + medical evidence (PubMed/Europe PMC) + LaTeX/PDF tools.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceConnects Scopus to AI assistants for literature discovery. Provides tools for finding papers, experts, citation networks, and analyzing research trends.2GPL 2.0
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to search and retrieve real academic papers from Scopus, preventing citation hallucination by providing accurate paper metadata, author info, and citation analysis.3MIT
- AlicenseAqualityBmaintenanceEnables AI agents to search and retrieve academic papers, author profiles, and citation data from the Scopus database via MCP tools.7MIT
- AlicenseNot gradedqualityCmaintenanceEnables searching Elsevier's Scopus database for scientific literature, retrieving abstracts and metadata, and exporting results in RIS or BibTeX format.1MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/qwe4559999/scopus-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server