Scopus
NPM · SCOPUS-MCP
Scopus search, author and affiliation profiles, citation data, and PlumX metrics via Elsevier APIs.
Available components
Last scanned (3 hours ago)
Scores higher than 91% of npm servers
Category Education and Research
How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →
Supply Chain Security100
- No malware found by supply-chain analysis.Pass
- No known CVEs affecting this package version or its production dependencies.Pass
- No install/post-install scripts declared.Pass
- 0 of 4 dependencies flagged as unhealthy. View diagnostics → Pass
Provenance & Transparency97
- Source repository is publicly reachable at the declared URL. View diagnostics → Pass
- Cryptographically verified build provenance (signed, bound to Anddrrew/scopus-mcp). View diagnostics → Pass
- Clear OSI-approved license (MIT).Pass
- Actively maintained (last published 29 days ago).Pass
- Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
Schema Quality & AI Usability54
- AI-judged instruction clarity (good).Pass
- Context-footprint check failed: tool/resource definitions use about 2480 tokens (~310/item across 8 items; 8 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management73
- Stability observed for 22 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 100% of tool parameters carry a description.Pass
- Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Tool Safety100
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- We read all 8 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
- An AI judge read all 9 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a current MCP spec version (2026-07-28).Pass
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 3 Nov 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 63 to 67. That category is still filling its 30-day observation window: 19 days of observed history at the previous scan, 20 at this one. The score rises as the window fills, whether or not the server changes.
- 1 Nov 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 57 to 60. That category is still filling its 30-day observation window: 17 days of observed history at the previous scan, 18 at this one. The score rises as the window fills, whether or not the server changes.
- 30 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 50 to 53. That category is still filling its 30-day observation window: 15 days of observed history at the previous scan, 16 at this one. The score rises as the window fills, whether or not the server changes.
- 28 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 43 to 47. That category is still filling its 30-day observation window: 13 days of observed history at the previous scan, 14 at this one. The score rises as the window fills, whether or not the server changes.
- 26 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 37 to 40. That category is still filling its 30-day observation window: 11 days of observed history at the previous scan, 12 at this one. The score rises as the window fills, whether or not the server changes.
- 24 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 30 to 33. That category is still filling its 30-day observation window: 9 days of observed history at the previous scan, 10 at this one. The score rises as the window fills, whether or not the server changes.
- 22 Oct 26 +4
- Stability: unverified → 0.27 ▲ functional
- 14 Oct 26 +28
- Injection markers: unverified → pass ▲ security
- First check of Judged manipulation: pass security
- Stability: Stability not yet verified: not enough scan history yet (needs a 30-day window). security
- Tool coverage: unverified → 100 ▲ functional
- MCP protocol: unverified → pass ▲ functional
- First check of Schema quality: fail functional
- First check of Destructive annotations: pass functional
- First check of Schema quality: fail functional
- First check of Schema quality: good functional
- First check of Tool coverage: 100 functional
- First check of Tool coverage: 100 functional
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 5 Nov 2026 · Analysed npm/scopus-mcp@0.5.1
Provenance Verified
A signed build attestation was found and verified, binding this exact artifact to the source repository it claims to come from.
| Result | Verified |
|---|---|
| Ecosystem | npm |
| Reason | Verified |
| Discovered via | Registry attestation endpoint |
| Source repo | Anddrrew/scopus-mcp |
| Certificate issuer | https://token.actions.githubusercontent.com |
| Certificate SAN | https://github.com/Anddrrew/scopus-mcp/.github/workflows/release.yml@refs/heads/main |
| Rekor log index | 3115908822 |
| Predicate type | SLSA build provenance https://slsa.dev/provenance/v1 |
| Subject digest | sha512:ce62e056d0bf8574c1ce9e8c3969f52a5a5856b5620dea10e7a19c91693f381f655573a902b0805db76ed68428caf5624c6699112052d6be01611410e |
Background: How many MCP packages publish verified provenance →
Dependencies 4 packages
| Packages resolved | 4 |
|---|---|
| Tree resolution | Complete |
Background: SBOMs and build attestations, explained →
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
affiliation_retrieval Affiliation Retrieval ~241
Retrieve a Scopus institution profile by affiliation_id or eid. Returns the original Elsevier JSON, including profile data or one page of related documents/authors when requested through view. Access depends on entitlements; no linked records or additional pages are fetched automatically.
| Name | Type | Req | Description |
|---|---|---|---|
| affiliation_id | string | – | One Scopus affiliation ID. Provide exactly one of affiliation_id or eid; comma-separated lists are not supported. |
| eid | string | – | One affiliation electronic ID (EID). Use instead of affiliation_id; comma-separated lists are not supported. |
| field | string | – | Comma-separated response fields to include; unavailable with DOCUMENTS and AUTHORS views. |
| refcount | integer | – | Number of related documents or authors to return; API limits depend on service level. |
| reqId | string | – | Caller-supplied request identifier for Elsevier support. |
| startref | integer | – | Zero-based result offset for related documents or authors. No additional pages are fetched automatically. |
| ver | string | – | Elsevier resource version. |
| view | – | – | Response view (API default: LIGHT). DOCUMENTS and AUTHORS return related records. Availability depends on entitlements. |
| Name | Type | Req | Description |
|---|---|---|---|
| affiliation-retrieval-response | – | yes | Affiliation response in Elsevier’s native object, array, or null representation. May contain a profile or related documents/authors according to view; unrecognized fields are preserved. |
No examples provided.
affiliation_search Affiliation Search ~322
Search Scopus institution profiles using native affiliation query syntax. Returns one page of native Elsevier JSON, including search-results and pagination. Example: AFFIL(university) AND AFFIL(London). Credentials come from the server environment. Access depends on your Scopus entitlements.
| Name | Type | Req | Description |
|---|---|---|---|
| count | integer | – | Maximum results in this page, from 0 to 200. Defaults to 25. |
| facets | string | – | Native facet expression, e.g. affilcountry(count=10,sort=fd);affilcity. |
| field | string | – | Comma-separated response fields, e.g. identifier,affiliation-name. Overrides view; omitted fields remain absent in the response. |
| query | string | yes | Native affiliation query, e.g. AFFIL(university) AND AFFIL(London). |
| reqId | string | – | Caller-supplied request identifier for Elsevier support. |
| sort | string | – | Up to three comma-separated sort fields; + ascending, - descending, e.g. -document-count,+affiliation-name. |
| start | integer | – | Zero-based result offset. The requested window start + count must not exceed 5000; omitted count means 25. |
| suppressNavLinks | boolean | – | Suppress top-level navigation links. Omitted values use the API default of false. |
| ver | string | – | Resource version flags: facetexpand, allexpand, new; comma or semicolon separated. |
| view | string | – | Response view. STANDARD is the default and only supported view; overridden by field. |
| Name | Type | Req | Description |
|---|---|---|---|
| search-results | object | yes | Native affiliation search response, including page metadata and entries. |
No examples provided.
author_retrieval Author Retrieval ~307
Retrieve Scopus author profiles by author_id, eid, or orcid. Comma-separated author_id or eid values use one native batch request. Returns the original Elsevier JSON; view access depends on entitlements. Pagination and superseded-profile resolution are explicit.
| Name | Type | Req | Description |
|---|---|---|---|
| alias | boolean | – | Single profiles only: false requests a superseded profile instead of its replacement (API default: true). |
| author_id | string | – | Scopus author ID, or comma-separated IDs for one native batch request. Provide exactly one of author_id, eid, orcid. |
| eid | string | – | Author electronic ID (EID), or comma-separated EIDs for one native batch request. Use instead of author_id or orcid. |
| field | string | – | Comma-separated response fields to include. |
| orcid | string | – | One ORCID identifier; comma-separated lists are not accepted. Returns the Scopus author profile. Use instead of author_id or eid. |
| refcount | integer | – | Single profiles only: number of related documents to return; API limits depend on service level. |
| reqId | string | – | Caller-supplied request identifier for Elsevier support. |
| startref | integer | – | Single profiles only: zero-based offset for related documents. No additional pages are fetched automatically. |
| ver | string | – | Elsevier resource version. |
| view | – | – | Response view (API default: LIGHT). DOCUMENTS requires a single identifier. Access depends on entitlements. |
| Name | Type | Req | Description |
|---|---|---|---|
| author-retrieval-response | – | – | Author profile or profiles in Elsevier’s native object, array, or null representation. View-specific and unrecognized fields are preserved. |
| author-retrieval-response-list | – | – | Native batch response envelope. Inspect each profile’s @status for individual outcomes; HTTP success does not imply every author was found. |
No examples provided.
author_search Author Search ~400
Search Scopus author profiles using native queries, or supply co-author to find an author’s collaborators. Returns one page of native Elsevier JSON, including search-results and pagination. Example: AUTHLASTNAME(Smith) AND AUTHFIRST(John). Credentials come from the server environment. Access depends on your Scopus entitlements.
| Name | Type | Req | Description |
|---|---|---|---|
| alias | boolean | – | Whether author-ID searches include superseding profiles. Omitted values use the API default of true. |
| co-author | string | – | One numeric Scopus author ID as a string. Returns associated co-authors and takes precedence over query. |
| count | integer | – | Maximum results in this page, from 0 to 200. Defaults to 25. |
| facets | string | – | Native facet expression, e.g. affilcountry(count=10,sort=fd);active. |
| field | string | – | Comma-separated response fields, e.g. identifier,preferred-name. Overrides view; omitted fields remain absent in the response. |
| query | string | – | Native author query, e.g. AUTHLASTNAME(Smith) AND AUTHFIRST(John). Required unless co-author is supplied; Elsevier ignores query when both are present. |
| reqId | string | – | Caller-supplied request identifier for Elsevier support. |
| sort | string | – | Up to three comma-separated sort fields; + ascending, - descending, e.g. -document-count,+surname. |
| start | integer | – | Zero-based result offset. The requested window start + count must not exceed 5000; omitted count means 25. |
| suppressNavLinks | boolean | – | Suppress top-level navigation links. Omitted values use the API default of false. |
| ver | string | – | Resource version flags: facetexpand, subjexpand, allexpand, new; comma or semicolon separated. |
| view | string | – | Response view. STANDARD is the default and only supported view; overridden by field. |
| Name | Type | Req | Description |
|---|---|---|---|
| search-results | object | yes | Native author search response, including page metadata and entries. |
No examples provided.
citation_overview Citation Overview ~368
Retrieve yearly citation counts and summaries for Scopus documents. Supply one native document identifier type, with comma-separated values for multiple documents. Returns the original Elsevier JSON in one request. Citation Overview access must be enabled for your API key.
| Name | Type | Req | Description |
|---|---|---|---|
| author_id | string | – | Comma-separated author IDs whose citations should be excluded. Ignored when citation is exclude-books. |
| citation | – | – | Exclude self-citations or book citations; Elsevier includes all citations when omitted. |
| count | integer | – | Maximum number of results. Elsevier determines the default and maximum from your API service level. |
| date | string | – | Year or inclusive year range for citation counts, e.g. 2024 or 2020-2024. |
| doi | string | – | One or more comma-separated DOIs. Supply exactly one document identifier type. |
| field | string | – | Comma-separated native response fields to include. Omit to use the full STANDARD view. |
| pii | string | – | One or more comma-separated publication item identifiers. Supply exactly one document identifier type. |
| pubmed_id | string | – | One or more comma-separated PubMed IDs. Supply exactly one document identifier type. |
| reqId | string | – | Caller-supplied request identifier for tracing this request with Elsevier support. |
| scopus_id | string | – | One or more comma-separated Scopus document IDs. Supply exactly one document identifier type. |
| sort | – | – | One sort field: sort-year or rowTotal. Prefix with + for ascending or - for descending; no prefix means ascending. |
| start | integer | – | Zero-based result offset; Elsevier defaults to zero when omitted. |
| ver | string | – | Requested Elsevier resource version. |
| view | string | – | Citation Overview supports only the STANDARD view. |
| Name | Type | Req | Description |
|---|---|---|---|
| abstract-citations-response | object | yes | Native Elsevier Citation Overview response. Counts and years remain strings; requested fields may be omitted or null. |
No examples provided.
plumx_metrics PlumX Metrics ~151
Retrieve native PlumX metrics for one publication or artifact by identifier. Returns the original Elsevier JSON, including metric categories, count types and sources. Requires active Scopus access. HTTP 404 can mean that no metrics are available or that the identifier is unknown.
| Name | Type | Req | Description |
|---|---|---|---|
| idType | – | yes | Identifier namespace used to locate the publication or artifact in PlumX. |
| idValue | string | yes | Identifier in the selected namespace, e.g. 10.1103/physrevlett.116.061102 for doi. Supply the original value without URL encoding; a lone . or .. is not allowed. |
| reqId | string | – | Caller-supplied request identifier for tracing this request with Elsevier support. |
| Name | Type | Req | Description |
|---|---|---|---|
| count_categories | – | – | Available PlumX metric categories and their counts; may be absent or null. |
| id_type | string | yes | Identifier namespace returned by PlumX. |
| id_value | string | yes | Identifier value returned by PlumX. |
No examples provided.
scopus_search Scopus Search ~497
Search Scopus publications with its native query syntax. Returns one page of the original Elsevier JSON, including search-results, entry and pagination. Example: TITLE-ABS-KEY(machine learning) AND PUBYEAR > 2020. Credentials come from the server environment. Access to views and cursor pagination depends on your Scopus entitlements.
| Name | Type | Req | Description |
|---|---|---|---|
| alias | boolean | – | Whether author-ID searches include superseded profiles. Omitted values use the API default of true. |
| content | – | – | Scopus content collection to search: all, core, or dummy. |
| count | integer | – | Maximum results in this page. Defaults to 25; up to 200 for STANDARD or 25 for COMPLETE/COMPONENT. With field, Elsevier determines the effective view and limit. |
| cursor | string | – | Use * for the first cursor page, then search-results.cursor["@next"] from the previous response. Use instead of start; keep the query and other options unchanged. |
| date | string | – | Publication year or inclusive year range, e.g. 2024 or 2020-2024. |
| facets | string | – | Native facet expression, e.g. pubyear;subjarea(count=10,sort=fd). |
| field | string | – | Comma-separated response fields, e.g. identifier,title,doi. Overrides view; omitted fields remain absent in the response. |
| query | string | yes | Native Scopus publication query, e.g. TITLE-ABS-KEY(machine learning) AND PUBYEAR > 2020. |
| reqId | string | – | Caller-supplied request identifier for Elsevier support. |
| sort | string | – | Up to three comma-separated sort fields; + ascending, - descending, e.g. -coverDate,+creator. |
| start | integer | – | Zero-based result offset. Use instead of cursor. The requested window start + count must not exceed 5000; omitted count means 25. |
| subj | string | – | Scopus subject area code to filter by, e.g. COMP. |
| suppressNavLinks | boolean | – | Suppress top-level navigation links. Omitted values use the API default of false. |
| ver | string | – | Resource version flags: facetexpand, allexpand, new; comma or semicolon separated. |
| view | – | – | Response view. Defaults to STANDARD; COMPLETE and COMPONENT require the relevant Scopus entitlements. Overridden by field. |
| Name | Type | Req | Description |
|---|---|---|---|
| search-results | object | yes | Native Scopus search response, including page metadata and entries. |
No examples provided.
subject_classifications Scopus Subject Classifications ~168
Retrieve or filter Scopus subject classifications. Returns the original Elsevier JSON, including subject codes, descriptions, details, and abbreviations. Omit filters to list all classifications. This public endpoint does not require an API key.
| Name | Type | Req | Description |
|---|---|---|---|
| abbrev | string | – | Case-insensitive exact subject abbreviation, e.g. AGRI. |
| code | string | – | Exact subject classification code, e.g. 1106. |
| description | string | – | Case-insensitive partial match on the primary subject description, e.g. biological. |
| detail | string | – | Case-insensitive partial match on the subject detail, e.g. food. |
| field | string | – | Comma-separated response fields: code, abbrev, detail, description. Use exact names without spaces; omit to return all fields. |
| Name | Type | Req | Description |
|---|---|---|---|
| subject-classifications | object | yes | Native Elsevier subject classification response, including any no-results message. |
No examples provided.
How do I install the Scopus MCP server?
Scopus runs locally as an npm package, launched with npx -y scopus-mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
npm · scopus-mcp
claude mcp add anddrrew-scopus-mcp -- npx -y scopus-mcp
What is the Scopus MCP server?
Scopus is an MCP server listed in the public MCP registry as io.github.Anddrrew/scopus-mcp. Scopus search, author and affiliation profiles, citation data, and PlumX metrics via Elsevier APIs. This page covers its npm package (scopus-mcp).
Is the Scopus MCP server safe to use?
Scopus scores 87 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 5 November 2026. It declares no install or post-install scripts. Its build provenance is signed and verified. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the Scopus MCP server expose?
Scopus exposes 8 tools: scopus_search, author_search, affiliation_search, author_retrieval, affiliation_retrieval, and 3 more. Their descriptions and schemas cost roughly 2,454 tokens of context every time the server is loaded.
Is the Scopus MCP server still maintained?
Scopus is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.
What licence is the Scopus MCP server under?
Scopus declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.