Skip to main content
Glama
qwe4559999

Scopus MCP Server

by qwe4559999

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

  1. Go to Elsevier Developer Portal to apply for an API key.

  2. Create a config.json file in the project root (or copy from config.json.example) and fill in your key:

    {
      "api_key": "YOUR_KEY_HERE"
    }
  3. Edit MCP_tool_config.json, modifying the folder path (pay attention to the slash direction).

  4. 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:

  1. Get Key: Get a free API Key from Elsevier Developer Portal. (⚠️ Note: Educational/Institutional email is recommended; public email domains may be rejected).

  2. Configure: Edit %APPDATA%\Claude\claude_desktop_config.json (Windows) or ~/Library/Application Support/Claude/claude_desktop_config.json (macOS).

  3. 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

  1. Open Cursor Settings -> Features -> MCP Servers.

  2. Click + Add New MCP Server.

  3. Fill in the details:

    • Name: scopus-mcp

    • Type: command (stdio)

    • Command: uvx scopus-mcp

  4. Important: You need to set SCOPUS_API_KEY in your system environment variables.

Installation

  1. Ensure you have Python 3.10+ installed.

  2. 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.server

Available Tools

  1. search_scopus

    • Searches 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).

  2. get_abstract_details

    • Retrieves detailed information for a specific document.

    • Arguments:

      • scopus_id (string): The Scopus ID of the document.

  3. get_author_profile

    • Retrieves an author's profile information.

    • Arguments:

      • author_id (string): The Scopus Author ID.

Development

Run tests with:

pytest

License

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

Acknowledgments & Contributors

Available Tools

5 tools
get_abstract_detailsC

Retrieve full details for a specific document by Scopus ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
scopus_idYesThe Scopus ID of the document.

TDQS

C2.9/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 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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

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 '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.

ParametersJSON Schema
NameRequiredDescriptionDefault
author_idYesThe Scopus Author ID.

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 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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

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 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).

ParametersJSON Schema
NameRequiredDescriptionDefault
scopus_idYesThe Scopus ID of the document to find citations for.
countNoNumber of results to return (default 5, max 25).
sortNoSort order (e.g., 'coverDate', 'relevancy').coverDate

TDQS

C2.9/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 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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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

Schema description coverage is 100%, so the schema already 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.

Purpose4/5

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.

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. 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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior4/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 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.

Conciseness5/5

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.

Completeness4/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 (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.

Parameters4/5

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.

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') 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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesThe Scopus search query (e.g., 'TITLE(AI) AND PUBYEAR > 2020').
countNoNumber of results to return (default 5, max 25).
sortNoSort order (e.g., 'coverDate', 'relevancy').coverDate

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 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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

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_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

A3.6/5.0
Disambiguation5/5

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.

Naming Consistency5/5

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.

Tool Count5/5

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.

Completeness4/5

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

ActivityInactive
ResponsivenessSyncing

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
    Connects Scopus to AI assistants for literature discovery. Provides tools for finding papers, experts, citation networks, and analyzing research trends.
    2
    GPL 2.0
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI assistants to search and retrieve real academic papers from Scopus, preventing citation hallucination by providing accurate paper metadata, author info, and citation analysis.
    3
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    Enables AI agents to search and retrieve academic papers, author profiles, and citation data from the Scopus database via MCP tools.
    7
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables searching Elsevier's Scopus database for scientific literature, retrieving abstracts and metadata, and exporting results in RIS or BibTeX format.
    1
    MIT

Latest Blog Posts

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