scopus-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| LOG_LEVEL | No | Logging verbosity: DEBUG, INFO, WARNING, ERROR (default: INFO) | |
| SCOPUS_API_KEY | Yes | Your Elsevier API key (required) | |
| SCOPUS_CACHE_TTL | No | Cache TTL in seconds (default: 300, set 0 to disable) | |
| SCOPUS_INST_TOKEN | No | Institutional token for off-campus/full-text access | |
| SCOPUS_MAX_RETRIES | No | Max retries on rate-limit errors (default: 3) |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
You have access to the Elsevier Scopus academic database — one of the world's largest curated collections of research literature.
Tools
scopus_search — find papers by topic, author, journal, or year using Boolean queries
scopus_get_abstract — fetch full paper details (abstract, authors, keywords) by ID or DOI
scopus_get_author — retrieve researcher metrics (h-index, citations, publications)
scopus_search_authors — find author profiles by name or ORCID
scopus_search_affiliations — find institutional records
scopus_get_citation_count — quick citation count for a paper
scopus_get_citations_overview — year-by-year citation timeline
scopus_get_abstracts — bounded batch retrieval with per-record errors
scopus_check_access — live endpoint diagnostics (uses quota)
scopus_get_references — a paper's available bibliography
scopus_get_citing_documents — papers citing a document
scopus_analyze_results — aggregate an explicitly bounded corpus
Check truncated/stop_reason before claiming a complete corpus. Null metrics mean unknown, not zero. Access depends on Elsevier entitlements.
Prompts (3)
systematic_literature_review — structured SLR search strategy with PICO framework
author_impact_analysis — step-by-step researcher benchmarking workflow
research_trend_query — decade-by-decade trend analysis query set
Resources (3)
scopus://search-syntax — complete Boolean query reference
scopus://subject-areas — all SUBJAREA() discipline codes
scopus://api-reference — tool quota costs, identifier formats, workflow patterns
Start with the scopus://search-syntax resource for query syntax, or use a prompt to get a structured workflow for your research task.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| scopus_searchA | Search the Scopus academic database for papers using Boolean query syntax. Common field codes:
Boolean operators: AND, OR, AND NOT Example: TITLE-ABS-KEY("machine learning" AND cancer) AND PUBYEAR > 2020 Read the scopus://search-syntax resource for the full syntax reference. |
| scopus_search_authorsA | Search for author profiles in the Scopus author index. Query field codes:
Example: AUTHLASTNAME(Smith) AND AUTHFIRST(J) AND AFFIL(MIT) Use scopus_get_author with the returned author_id to fetch full metrics. |
| scopus_search_affiliationsA | Search for institution and affiliation records in Scopus. Query examples:
Returns affiliation_id needed for author searches and filtering. |
| scopus_get_abstractA | Retrieve full paper details from Scopus using any supported identifier. Identifier types:
Returns: title, full abstract, authors with affiliations, keywords, subject areas, citation count, DOI, and open access status. |
| scopus_get_abstractsA | Fetch metadata/abstracts for 1–25 identifiers of the same type. Returns each record or its error in input order; access depends on Elsevier entitlements. |
| scopus_get_authorA | Retrieve a researcher's full Scopus profile by their Scopus Author ID. Returns: h-index, total citation count, document count, current institutional affiliation, subject areas, ORCID (if available), and publication year range. To find an author's ID, first use scopus_search_authors. Example author IDs: '7401234567' or '57209123456'. |
| scopus_get_citation_countA | Get the current total citation count for a paper. Provide either a Scopus ID or a DOI — at least one is required. This endpoint is lightweight and cached; use it for quick citation lookups without fetching the full abstract. |
| scopus_get_citations_overviewA | Get a year-by-year citation timeline for a paper. Returns how many times the paper was cited in each calendar year within the specified date range. Useful for tracking research impact and citation trends over time. Requires a Scopus ID. Use scopus_search or scopus_get_abstract first to obtain the scopus_id. Prefer scopus_get_citation_count when you only need one total - it is a single cheap lookup. Use this when the shape of the citation curve over time matters. Access depends on your Elsevier endpoint entitlement. An institutional token or approved network may be required; use scopus_check_access to diagnose access before retrying authorization failures. |
| scopus_check_accessA | Test each Scopus endpoint independently using seven live requests. Uses API quota; bypasses cache. Never returns credentials. Run when access is uncertain, not before every search. |
| scopus_get_referencesA | Retrieve one page of a paper's bibliography using Elsevier REF view, with FULL bibliography fallback when REF metadata is absent. Requires appropriate entitlement. Missing references are reported as unavailable, never assumed to mean no references. Follow next_start when present. |
| scopus_get_citing_documentsA | Find Scopus documents citing a paper using REFEID. This search field requires specific Elsevier access permission. Returns a paginated corpus of indexed citing documents, not a universal citation census. |
| scopus_analyze_resultsA | Aggregate a bounded Scopus search corpus by cover year, publication source and affiliation. Defaults to 100 documents; at most 5000. Reports truncation, continuation and unknown metadata explicitly. Counts describe retrieved documents only; do not extrapolate to all literature. Each institution counts once per document. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| systematic_literature_review | Generate a structured Scopus search strategy for a systematic literature review (SLR). Produces PICO-framed Boolean queries, inclusion/exclusion criteria, and a step-by-step workflow using scopus_search and scopus_get_abstract tools. |
| author_impact_analysis | Generate a step-by-step analysis plan for evaluating a researcher's academic impact using Scopus. Returns a structured workflow covering h-index, citation trends, co-authorship, and institutional affiliation, with ready-to-run tool calls. |
| research_trend_query | Build a Scopus query set to map research trends over time for a given topic. Returns ready-to-run scopus_search queries grouped by decade and document type, plus a year-over-year publication count strategy. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| Scopus Search Syntax Guide | Complete reference for Scopus Boolean query syntax: field codes, operators, wildcards, document types, subject areas, and examples. |
| Scopus Subject Area Codes | Complete list of Scopus SUBJAREA() codes organized by discipline. Use these codes to filter searches to a specific academic field. |
| Scopus MCP API Reference | Quick reference for all 7 Scopus MCP tools: rate limits, quota costs, identifier formats, and recommended workflow patterns. |
TDQS
Scored across 12 tools
Each tool has a clearly distinct scope: search vs. retrieve vs. citation-graph vs. aggregate analysis. The only risky pairs are scopus_get_abstract vs. scopus_get_abstracts (singular/plural distinguished mostly by the batch size mentioned in the description) and scopus_get_citation_count vs. scopus_get_citations_overview, but the descriptions explicitly state when to prefer which, so an agent can disambiguate.
All twelve tools share a single scopus_ prefix followed by a snake_case verb_noun pattern (search_authors, get_abstract, get_citations_overview, analyze_results). No camelCase or verb-style mixing; the singular/plural distinction is the only naming subtlety and it is deliberate.
Twelve tools is well within the sweet spot and each maps to a genuine Elsevier/SCOPUS capability (paper search, author index, affiliation index, retrieval, citation metrics, reference graph, aggregation, access diagnostics). Nothing looks like filler or a redundant alias.
The surface covers the full research workflow: discovery (papers, authors, affiliations), detail retrieval (single and batch abstracts, author profiles), citation graph (count, timeline, references, citing documents), analysis, and access troubleshooting. Minor gaps: there is no get_affiliation detail tool despite affiliation_id being returned by search, and no direct lookup by ISSN/source title, but agents can work around both via scopus_search.