Skip to main content
Glama
chackchang

elsevier-mcp

by chackchang

elsevier-mcp

MCP server for the Elsevier Developer APIs. Gives Claude Code access to Scopus, ScienceDirect, and other Elsevier academic databases.

Quick Start

Get a free API key at dev.elsevier.com, then pick an install method below.

This repository is a Claude Code plugin marketplace. Add it, then install the plugin — no clone or npm install required:

/plugin marketplace add kemalabuteliyte/elsevier-mcp
/plugin install elsevier-mcp@elsevier-tools

The plugin ships a self-contained server bundle, so it just works once installed. Provide your API key through your environment before launching Claude Code:

export ELSEVIER_API_KEY=your_api_key_here
# optional — institutional access unlocks all 14 tools:
# export ELSEVIER_INST_TOKEN=your_institutional_token
# export ELSEVIER_ENABLE_ALL_TOOLS=true

Restart Claude Code. The elsevier tools are now available. Done.

Claude Desktop — one-click install

Download the latest .mcpb file from Releases, then open it with Claude Desktop. You'll be prompted to enter your API key during setup.

Manual install (from source)

git clone https://github.com/kemalabuteliyte/elsevier-mcp.git
cd elsevier-mcp
npm install
npm run build

Then add to your Claude Code settings:

{
  "mcpServers": {
    "elsevier": {
      "type": "stdio",
      "command": "node",
      "args": ["/absolute/path/to/elsevier-mcp/dist/index.js"],
      "env": {
        "ELSEVIER_API_KEY": "your_api_key_here"
      }
    }
  }
}

Or via CLI:

claude mcp add elsevier -e ELSEVIER_API_KEY=your_key -- node /absolute/path/to/elsevier-mcp/dist/index.js

Related MCP server: classScopusMCP

Available Tools

These 6 tools work with a free Elsevier API key:

Tool

Description

scopus_search

Search Scopus for scholarly documents by query

abstract_retrieval

Retrieve abstract/metadata by DOI, Scopus ID, EID, PII, or PubMed ID

article_retrieval

Retrieve ScienceDirect article by DOI, PII, or EID

serial_title_search

Search for journals by title, ISSN, publisher, or subject

serial_title_retrieval

Retrieve journal details by ISSN

subject_classifications

Look up Scopus/ScienceDirect subject area codes and descriptions

Enabling All Tools (Institutional Access)

8 additional tools require institutional network access, an institutional token, or additional API subscriptions. Enable with ELSEVIER_ENABLE_ALL_TOOLS=true:

{
  "mcpServers": {
    "elsevier": {
      "type": "stdio",
      "command": "node",
      "args": ["/absolute/path/to/elsevier-mcp/dist/index.js"],
      "env": {
        "ELSEVIER_API_KEY": "your_api_key_here",
        "ELSEVIER_INST_TOKEN": "your_institutional_token",
        "ELSEVIER_ENABLE_ALL_TOOLS": "true"
      }
    }
  }
}

Tool

Description

Requires

author_search

Search for authors in Scopus

Institutional access

affiliation_search

Search for institutions and affiliations

Institutional access

author_retrieval

Retrieve author profile by ID, EID, or ORCID

Institutional access

affiliation_retrieval

Retrieve institution details by ID or EID

Institutional access

citation_count

Get citation counts (supports batch lookup)

API subscription

citations_overview

Detailed citation overview with yearly breakdowns

API subscription

plumx_metrics

PlumX altmetrics (usage, captures, social media)

Institutional access

fulltext_retrieval

Retrieve full text of a ScienceDirect article as plain text

Institutional access

To get institutional access:

  • Connect from a university/institutional network with a Scopus subscription

  • Or request an institutional token from apisupport@elsevier.com

  • The server automatically attempts IP-based authentication on 401 errors

Example Queries

Scopus search uses Boolean syntax with field codes:

  • TITLE(machine learning) AND PUBYEAR > 2020

  • AUTH(Einstein) AND TITLE(relativity)

  • AFFIL(MIT) AND KEY(quantum computing) AND PUBYEAR = 2024

  • DOI(10.1016/j.jclepro.2020.121092)

Environment Variables

Variable

Required

Description

ELSEVIER_API_KEY

Yes

API key from dev.elsevier.com

ELSEVIER_INST_TOKEN

No

Institutional token for expanded access

ELSEVIER_ENABLE_ALL_TOOLS

No

Set to true to enable all 13 tools

Troubleshooting

  • 401 error: Your API key lacks entitlements for this endpoint. You may need institutional access or an institutional token.

  • 403 error: Your API key doesn't have the required subscription for this resource.

  • 429 error: Rate limit exceeded. Elsevier quotas reset weekly.

  • No results: Try broadening your query or using different field codes.

License

MIT

Available Tools

6 tools
abstract_retrievalA

Retrieve detailed metadata and abstract for a specific Scopus document by its identifier. Supports lookup by Scopus ID, EID, DOI, PII, or PubMed ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
viewNoResponse detail level. META=metadata, META_ABS=metadata+abstract, FULL=all details, REF=references, ENTITLED=entitlement check.
fieldNoComma-separated list of specific fields to return.
id_typeYesType of identifier to use for retrieval.
id_valueYesThe identifier value. Examples: DOI '10.1016/j.jclepro.2020.121092', Scopus ID '85028623301', EID '2-s2.0-85028623301'.

TDQS

A3.7/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full transparency burden. 'Retrieve' signals a read operation and the description adds useful identifier-mode context, but it does not disclose response shape, whether abstracts are always available, or access/entitlement behavior beyond the schema's 'ENTITLED' enum.

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 short, front-loaded sentences with no filler. The first sentence states the action and resource; the second expands on identifier support. Every clause earns its place.

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

Completeness3/5

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

The schema is rich and covers parameter semantics, but the description lacks usage guidance, output-shape expectations, and any comparison with sibling tools. For a 4-parameter tool with no output schema and no annotations, the description is minimally adequate but leaves notable gaps.

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 schema already provides 100% coverage of the four parameters, including descriptions, enums, and examples. The description only restates the supported identifier types and does not add semantic details beyond what the schema provides, so the baseline score of 3 is appropriate.

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 uses a specific verb ('Retrieve') and identifies a clear resource: 'detailed metadata and abstract for a specific Scopus document.' It also enumerates supported identifier types. It distinguishes from search-like siblings by focusing on identifier-based lookup, but it does not explicitly contrast with article_retrieval, so it stops short of a 5.

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

Usage Guidelines4/5

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

The context is clear: use this tool when you have a document identifier (Scopus ID, EID, DOI, PII, PubMed ID) and need metadata/abstract. It does not explicitly state when not to use it or name alternatives such as scopus_search or article_retrieval, so it meets the 'clear context, no exclusions' level.

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

article_retrievalA

Retrieve full-text or metadata of a ScienceDirect article by DOI, PII, or EID. Access depends on your API key entitlements.

ParametersJSON Schema
NameRequiredDescriptionDefault
viewNoResponse detail level. META=metadata, META_ABS=metadata+abstract, FULL=full text, ENTITLED=entitlement check.
fieldNoComma-separated list of specific fields to return.
id_typeYesType of identifier to use for article retrieval.
id_valueYesThe identifier value. Example DOI: '10.1016/j.jclepro.2020.121092'.

TDQS

A3.7/5.0
Behavior3/5

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

With no annotations, the description must carry the behavioral burden. It discloses that access depends on API key entitlements, but omits failure modes, return format, and how the 'view' parameter affects output detail.

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, immediately states the primary action and object, and avoids filler. It is well-structured with no redundant content.

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

Completeness3/5

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

The description covers the core retrieval purpose and access constraint, but lacks guidance on choosing among the view options, handling field selection, or what the response will contain. Without an output schema, this leaves significant ambiguity for 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 coverage is 100% and every parameter has a description. The tool description adds only a high-level mention of identifier types without enriching beyond the schema's definitions, so the baseline score of 3 is appropriate.

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 specifies the verb 'Retrieve' and the resource 'full-text or metadata of a ScienceDirect article', with supported identifier types (DOI, PII, EID). This definitively distinguishes it from sibling search or serial title tools.

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

Usage Guidelines3/5

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

The description implies use when an article identifier is available, but does not explicitly state when to use this tool over alternatives like abstract_retrieval. The entitlement note gives a prerequisite but no exclusions or alternative references.

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

serial_title_retrievalA

Retrieve detailed information about a specific journal or serial publication by its ISSN. Includes publisher, subject areas, and CiteScore metrics.

ParametersJSON Schema
NameRequiredDescriptionDefault
issnYesISSN of the journal (e.g. '0140-6736' for The Lancet, '0028-0836' for Nature).
viewNoResponse detail level.

TDQS

A4/5.0
Behavior3/5

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

With no annotations provided, the description carries the burden of behavioral disclosure. It reveals what the response includes (publisher, subject areas, CiteScore), which is useful, but doesn't mention error behavior, authorization requirements, or whether the operation is read-only. While 'retrieve' strongly implies a safe read, the lack of any caveats about failures or access limits leaves some transparency gaps.

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

Conciseness5/5

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

The description is a single, well-structured sentence that immediately states the purpose and inclusions. It contains no redundant words, fulfills its role without overwhelming the reader, and front-loads the essential action and target.

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?

For a tool with two parameters and no output schema, the description provides sufficient context to understand the tool's basic behavior. It lists the key data points returned, which helps set expectations. However, it doesn't explain the differences between the view options or mention what happens when an ISSN is invalid or not found, which are minor completeness gaps.

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 input schema describes both parameters (issn and view) with 100% coverage, so the baseline is 3. The description adds no additional meaning about how the parameters behave or how to format them. The mention of CiteScore metrics hints at the view enum but doesn't clarify when to use STANDARD vs ENHANCED vs CITESCORE, which would have added value.

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 action ('Retrieve detailed information'), the resource ('specific journal or serial publication'), and the identifier needed ('by its ISSN'). It also lists included content (publisher, subject areas, CiteScore), which distinguishes it from sibling tools like serial_title_search that likely handle searching rather than targeted retrieval.

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 makes the use case clear: you should use this tool when you have a specific ISSN and need detailed metadata. It implies a contrast with search functions, but doesn't explicitly name alternatives or when not to use it. Since the context is clear and no exclusions are needed for this straightforward retrieval operation, a score of 4 is appropriate.

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

subject_classificationsA

Retrieve subject area classifications used in Scopus or ScienceDirect. Useful for finding subject codes to filter searches. Returns classification codes, abbreviations, and descriptions.

ParametersJSON Schema
NameRequiredDescriptionDefault
codeNoFilter by exact code. Scopus example: '1106', ScienceDirect example: '391'.
fieldNoSpecific fields to return (comma-delimited). Options: 'code', 'abbrev', 'detail', 'description'.
abbrevNoFilter by exact abbreviation. Examples: 'AGRI', 'COMP', 'MEDI'.
detailNoFilter by detail attribute (case-insensitive partial match).
sourceYesClassification source. 'scopus' for Scopus ASJC codes, 'scidir' for ScienceDirect subject areas.
descriptionNoFilter by description (case-insensitive partial match). Example: 'computer' to find Computer Science areas.

TDQS

A4/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden. It discloses that the tool returns 'classification codes, abbreviations, and descriptions,' which is a useful behavioral detail. However, it does not mention any additional behavior such as filtering logic, response size, or required permissions, leaving some gaps.

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

Conciseness5/5

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

Two concise sentences immediately state purpose and usefulness, with no redundant wording. The title and description are front-loaded, making it easy to scan.

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 simplicity and full schema coverage, the short description is largely sufficient. It mentions the return categories, partially compensating for the absence of an output schema. A bit more detail on filtering behavior would improve completeness, but it is generally complete for a metadata lookup tool.

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

Parameters3/5

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

The input schema has 100% coverage with descriptive parameter documentation, so the description need not add much. The description does not go beyond the schema's parameter descriptions, warranting the baseline score of 3.

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

Purpose5/5

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

The description clearly states the tool's function: 'Retrieve subject area classifications used in Scopus or ScienceDirect' with a specific resource and purpose. It distinguishes itself from sibling search/retrieval tools by focusing on classification metadata rather than documents.

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 phrase 'Useful for finding subject codes to filter searches' provides clear context for when to use the tool. While it does not explicitly name alternatives or exclusions, it implies integration with search tools like scopus_search.

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. Dates show when Glama detected each change.

  1. 6 tool updatesv1.0.0
    • First observedabstract_retrieval
    • First observedarticle_retrieval
    • First observedscopus_search
    • First observedserial_title_retrieval
    • First observedserial_title_search
    • First observedsubject_classifications

TDQS

A3.9/5.0
Disambiguation5/5

Each tool targets a distinct resource: scopus_search for querying documents, abstract_retrieval and article_retrieval for specific document metadata/full-text, serial_title_search/retrieval for journal info, and subject_classifications for taxonomy. While abstract_retrieval and article_retrieval could overlap, their descriptions clearly separate Scopus abstracts from ScienceDirect full-text.

Naming Consistency4/5

Names follow a consistent snake_case pattern with an entity-prefix and operation-suffix (e.g., serial_title_search, serial_title_retrieval). However, subject_classifications breaks the pattern by being a plain noun phrase instead of using an operation suffix like search or retrieval.

Tool Count5/5

Six tools are well-scoped for a bibliographic database server, covering search, retrieval, serial title lookup, and classifications without unnecessary duplication. This is within the ideal 3-15 tool range.

Completeness4/5

The set covers core workflows: searching documents, retrieving abstracts, accessing full text, finding serials, and looking up subject codes. Minor gaps exist such as no direct citation network or author search, but these can be approximated via the search tool.

Maintenance

ActivityMaintained
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

  • F
    license
    A
    quality
    D
    maintenance
    An MCP server that integrates Scopus, Crossref, and PubMed APIs to search academic papers and fetch abstracts, usable with any MCP-compatible AI client.
    2
    -
  • A
    license
    A
    quality
    C
    maintenance
    MCP server for the Elsevier Developer APIs. Gives Claude Code access to Scopus, ScienceDirect, and other Elsevier academic databases.
    6
    8
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    An MCP server for academic literature research that integrates Scopus, CrossRef, OpenAlex, and Unpaywall to search documents, get abstracts, author profiles, citing papers, and open-access PDF links.
    6
    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/chackchang/elsevier_mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server