About Scopus
Scopus is an MCP server for querying Elsevier Scopus data, intended for research and bibliometric workflows. It exposes search, profile, citation, and PlumX tools while returning the API's original JSON fields.
Key features
- 01Search publications, authors, and affiliations
- 02Retrieve author and institution profiles
- 03Get citation summaries by year
- 04Look up PlumX metrics
- 05Return original API JSON
Use cases
- 01Find publications and co-authors
- 02Review an author's or institution's profile
- 03Check yearly citation counts
- 04Retrieve publication metrics
MCP support
Exposes Elsevier Scopus API operations as tools for MCP clients, including publication search, profile retrieval, citations, and PlumX metrics.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
npx -y scopus-mcpELSEVIER_API_KEYSecretElsevier API key from https://dev.elsevier.com. Required for every tool except subject_classifications; data access depends on your subscription and institutional access.ELSEVIER_INST_TOKENSecretInstitutional token supplied by Elsevier, if available for your institution. Used alongside the API key for institutional access.Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.
Tools
8Saved tool list · updated 2w ago
| Parameter | Type | Required | Description |
|---|---|---|---|
| ver | string | No | Resource version flags: facetexpand, allexpand, new; comma or semicolon separated. |
| date | string | No | Publication year or inclusive year range, e.g. 2024 or 2020-2024. |
| sort | string | No | Up to three comma-separated sort fields; + ascending, - descending, e.g. -coverDate,+creator. |
| subj | string | No | Scopus subject area code to filter by, e.g. COMP. |
| view | any | No | Response view. Defaults to STANDARD; COMPLETE and COMPONENT require the relevant Scopus entitlements. Overridden by field. |
| alias | boolean | No | Whether author-ID searches include superseded profiles. Omitted values use the API default of true. |
| count | integer | No | 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. |
| field | string | No | 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 | No | Caller-supplied request identifier for Elsevier support. |
| start | integer | No | Zero-based result offset. Use instead of cursor. The requested window start + count must not exceed 5000; omitted count means 25. |
| cursor | string | No | 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. |
| facets | string | No | Native facet expression, e.g. pubyear;subjarea(count=10,sort=fd). |
| content | any | No | Scopus content collection to search: all, core, or dummy. |
| suppressNavLinks | boolean | No | Suppress top-level navigation links. Omitted values use the API default of false. |
Details
From the project READMEscopus-mcp
An MCP server for the Elsevier Scopus API. Runs over stdio with npx and keeps
the API's parameter names and JSON responses.
Quick start
Requires Node.js 22.22.0 or newer, npm, and an MCP client with stdio support. Get an API key from the Elsevier Developer Portal and add this server to your client's configuration:
{
"mcpServers": {
"scopus": {
"command": "npx",
"args": ["-y", "scopus-mcp"],
"env": {
"ELSEVIER_API_KEY": "your-elsevier-api-key"
}
}
}
}
Reload the client to connect. To pin a release, use scopus-mcp@<version> in args.
Configuration
| Environment variable | Description |
|---|---|
ELSEVIER_API_KEY | Required for all tools except subject_classifications. |
ELSEVIER_INST_TOKEN | Institutional token, if provided by your institution. |
Set credentials in the client's env object. The server does not load .env
files. Access to data and views depends on your Elsevier subscription and
institutional access.
The server reports its version in MCP serverInfo and the startup log on stderr.
Tools
| Tool | Description |
|---|---|
| scopus_search | Find publications. |
| author_search | Find authors and co-authors. |
| affiliation_search | Find institutions. |
| author_retrieval | Get author profiles by ID, EID, or ORCID. |
| affiliation_retrieval | Get an institution profile by ID or EID. |
| citation_overview | Get yearly citation counts and summaries. |
| plumx_metrics | Get publication metrics by identifier. |
| subject_classifications | Look up subject codes; no API key needed. |
Each call makes one API request. For additional pages, use the tool's pagination parameters. Requests support cancellation and a 30-second timeout; retries and redirects are not automatic.
Responses and errors
Results follow each tool's outputSchema. The original API JSON is returned in
both structuredContent and a text content block, without reshaping fields or
converting values.
Available quota headers are returned as strings in _meta["scopus-mcp/headers"]:
X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, and Retry-After.
API failures return isError: true and a JSON text error with code, message,
and, when available, an HTTP status. Credentials are redacted. Invalid arguments
are rejected before an API request.
| Error | What to check |
|---|---|
MISSING_API_KEY | Set ELSEVIER_API_KEY in the server's environment. |
| HTTP 401 or 403 | Check your key, subscription, institutional network, and token. |
| HTTP 429 | Check quota headers and Retry-After before retrying. |
TIMEOUT or NETWORK_ERROR | Check connectivity to api.elsevier.com. |
INVALID_RESPONSE | Elsevier returned invalid JSON or an unexpected response shape. |
API documentation
Development
See Contributing for local setup and changes, and Releases for publishing.
License
MIT © 2026 Andrii Baran. Independent project, not affiliated with Elsevier.
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.