scopus-mcp
The Scopus MCP server connects AI agents to the Elsevier Scopus academic database, enabling scholarly research tasks across 100+ million records.
Search academic papers (
scopus_search): Perform Boolean searches using field codes likeTITLE-ABS-KEY,AUTH,AFFIL,PUBYEAR, andDOCTYPEto find relevant scholarly publications.Retrieve full paper details (
scopus_get_abstract): Fetch complete records including title, abstract, authors, affiliations, keywords, subject areas, citation count, DOI, and open-access status — via Scopus ID, DOI, EID, or PubMed ID.Get researcher profiles (
scopus_get_author): Look up an author's h-index, total citations, document count, institutional affiliation, subject areas, ORCID, and publication year range.Search for authors (
scopus_search_authors): Find researchers by name, ORCID, or institution.Search for institutions (
scopus_search_affiliations): Discover affiliation records by name or country to support filtering.Get citation counts (
scopus_get_citation_count): Quickly retrieve a paper's total citation count via Scopus ID or DOI.Analyze citation trends (
scopus_get_citations_overview): Get a year-by-year citation timeline to track a paper's research impact over time.Pre-defined workflows: Access prompts for systematic literature reviews, author impact analyses, and research trend queries.
Reference resources: Consult Boolean query syntax guides, Scopus subject area codes, and API usage guidelines.
CLI utility: Use as a standalone command-line tool for one-off queries, API key validation, and scripting.
Automatic rate limit handling: The server manages API rate limits, pausing requests as needed to avoid exceeding quotas.
Provides tools to search and retrieve academic papers, author profiles, and citation data from the Scopus database.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@scopus-mcpsearch for papers on machine learning in cancer from 2020"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Scopus MCP Server
Connects any MCP-compatible AI agent to the Elsevier Scopus academic database — search 100+ million scholarly records, retrieve full abstracts, analyze author impact, and track citation trends.
Works with: Claude Desktop · Claude Code · Cursor · VS Code Copilot · Windsurf · Zed · Continue.dev · any MCP client
Quickstart (2 minutes)
1. Get your Scopus API key (free) at dev.elsevier.com → Register → Create API Key
2. Install and run — pick one method:
# Option A: uvx (recommended — no environment setup needed)
uvx scopus-mcp
# Option B: pip
pip install scopus-mcp
scopus-mcp3. Add to your AI client — see the Configuration section below.
Related MCP server: Strato Scopus MCP
Prerequisites
Python 3.11+
python --version # needs 3.11 or higher
# Install if missing: https://python.org/downloadsuv (recommended)
# Windows
winget install astral-sh.uv
# macOS / Linux
curl -LsSf https://astral.sh/uv/install.sh | shInstallation
Option A — uvx (zero configuration)
# Install and run in a single command
uvx scopus-mcp
# Upgrade later
uv tool upgrade scopus-mcpOption B — pip
pip install scopus-mcp
# Verify installation
scopus-mcp --helpOption C — From source (development)
git clone https://github.com/JOSETRA44/scopus-mcp.git
cd scopus-mcp
uv sync # installs all dependencies
cp .env.example .env # edit .env with your API key
uv run scopus-mcp # run directly from sourceTerminal CLI
Besides running as an MCP server, scopus-mcp also installs three equivalent commands — scopus-mcp, scopus, and the short alias scps — as a standalone command-line tool for one-off lookups, testing your API key, or scripting, no MCP client required.
# Install globally as a uv tool (adds scopus / scps / scopus-mcp to PATH)
uv tool install --editable /path/to/scopus-mcp
scopus --help # list all subcommands
scopus check # validate your API key live against each endpoint
scopus search 'TITLE-ABS-KEY("machine learning")' --count 5
scps abstract 85180904906 --type scopus_id
scopus author 7401234567
scopus search-authors "AUTHLASTNAME(Smith)"
scopus search-affiliations "AFFIL(MIT)"
scopus citation-count --doi 10.1016/j.cell.2023.01.001
scopus citations 85180904906 --start-year 2020 --end-year 2024Add --json to any subcommand for raw structured output (useful for piping into jq or scripts).
Running any of the three commands with no subcommand starts the MCP stdio server instead — the mode MCP clients (Claude Desktop, Claude Code, etc.) use. It will sit waiting for input on stdin; that's expected, not a hang.
Subcommand | Equivalent MCP tool |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| (CLI-only) diagnostic — live-checks your key against every endpoint |
Environment Variables
Variable | Required | Default | Description |
| Yes | — | Your Elsevier API key |
| No | — | Institutional token (for off-campus / full-text access) |
| No |
| Response cache duration in seconds (0 = disabled) |
| No |
| Retries on rate-limit errors (HTTP 429) |
| No |
| Verbosity: |
Using a
.envfile? Copy.env.example→.envand fill in your key. Never commit it.
Configuration by Client
Replace YOUR_API_KEY_HERE with your actual Elsevier API key in every config block below.
Claude Desktop
Config file:
Windows:
%APPDATA%\Claude\claude_desktop_config.jsonmacOS:
~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"scopus": {
"command": "uvx",
"args": ["scopus-mcp"],
"env": {
"SCOPUS_API_KEY": "YOUR_API_KEY_HERE"
}
}
}
}Restart Claude Desktop after saving. A hammer icon (🔨) in the input bar confirms tools are loaded.
Claude Code (CLI)
Add to your project's .mcp.json (or .antigravity.json):
{
"mcpServers": {
"scopus": {
"command": "uvx",
"args": ["scopus-mcp"],
"env": {
"SCOPUS_API_KEY": "YOUR_API_KEY_HERE"
}
}
}
}From source (local development):
{
"mcpServers": {
"scopus": {
"command": "uv",
"args": [
"--directory", "/absolute/path/to/scopus-mcp",
"run", "scopus-mcp"
],
"env": {
"SCOPUS_API_KEY": "YOUR_API_KEY_HERE"
}
}
}
}Run /mcp in the Claude Code prompt to verify — you should see scopus with 7 tools.
Cursor
Global config: %APPDATA%\Cursor\User\globalStorage\cursor.mcp\mcp.json (Windows)
{
"mcpServers": {
"scopus": {
"command": "uvx",
"args": ["scopus-mcp"],
"env": {
"SCOPUS_API_KEY": "YOUR_API_KEY_HERE"
}
}
}
}VS Code + GitHub Copilot
Create .vscode/mcp.json in your workspace:
{
"servers": {
"scopus": {
"type": "stdio",
"command": "uvx",
"args": ["scopus-mcp"],
"env": {
"SCOPUS_API_KEY": "YOUR_API_KEY_HERE"
}
}
}
}Windsurf
Config: %APPDATA%\Codeium\windsurf\mcp_config.json (Windows)
{
"mcpServers": {
"scopus": {
"command": "uvx",
"args": ["scopus-mcp"],
"env": {
"SCOPUS_API_KEY": "YOUR_API_KEY_HERE"
}
}
}
}Zed
Edit ~/.config/zed/settings.json:
{
"context_servers": {
"scopus": {
"command": {
"path": "uvx",
"args": ["scopus-mcp"],
"env": {
"SCOPUS_API_KEY": "YOUR_API_KEY_HERE"
}
}
}
}
}Continue.dev
Edit .continue/config.yaml:
mcpServers:
- name: scopus
command: uvx
args:
- scopus-mcp
env:
SCOPUS_API_KEY: "YOUR_API_KEY_HERE"Generic stdio (any MCP client)
command: uvx
args: ["scopus-mcp"]
env: SCOPUS_API_KEY=YOUR_API_KEY_HEREAutomated Setup Script
# Interactive setup (auto-detects installed clients)
python setup_mcp.py
# Non-interactive
python setup_mcp.py --key YOUR_API_KEY_HERE --yes
# Dry-run preview
python setup_mcp.py --key YOUR_API_KEY_HERE --dry-run --yesAvailable Tools (7)
Tool | Description |
| Search papers with Boolean queries — TITLE-ABS-KEY, AUTH, AFFIL, PUBYEAR, DOCTYPE… |
| Full paper record by Scopus ID, DOI, EID, or PubMed ID |
| Researcher profile: h-index, total citations, document count, affiliation, ORCID |
| Find researchers by name, ORCID, or institution |
| Find institution records by name or country |
| Quick citation count by Scopus ID or DOI |
| Year-by-year citation timeline for a paper |
Available Prompts (3)
Prompts are reusable research workflows that generate structured query strategies.
Prompt | Arguments | Description |
|
| Generates a PICO-framed SLR search strategy with Boolean queries and PRISMA flow template |
|
| Step-by-step plan to evaluate a researcher's h-index, citation trends, and collaboration network |
|
| Decade-by-decade publication trend queries with document type breakdown and OA analysis |
Available Resources (3)
Resources are reference documents agents can read at any time.
Resource URI | Contents |
| Complete Boolean query reference — field codes, operators, wildcards, examples |
| All |
| Tool quota costs, identifier formats, and recommended workflow patterns |
Example Queries
# Find recent papers on a topic
TITLE-ABS-KEY("machine learning" AND cancer) AND PUBYEAR > 2020
# Reviews only
TITLE-ABS-KEY("federated learning") AND DOCTYPE(re)
# By author ID
AU-ID(7401234567) AND SUBJAREA(COMP)
# From a specific institution
AF-ID(60022195) AND TITLE-ABS-KEY("robotics")
# Open access papers in a specific journal
SRCTITLE("Nature Medicine") AND OPENACCESS(1) AND PUBYEAR > 2022
# Cross-disciplinary topic
TITLE-ABS-KEY("climate change") AND (SUBJAREA(ECON) OR SUBJAREA(ENVI))Rate Limits
The server tracks rate limits from response headers and sleeps automatically before making calls when quota is exhausted.
Endpoint | Weekly Quota |
Scopus Search | 20,000 |
Abstract Retrieval | 5,000 |
Author Retrieval | 5,000 |
Citation Count | 50,000 |
Citations Overview | 5,000 |
Tip: Use
scopus_get_citation_count(50K quota) for bulk citation checks. Reservescopus_get_abstract(5K quota) for the papers you actually need in detail.
Verify It's Working
# Fastest check: validates your API key live against every endpoint
scopus check
# Interactive browser UI (recommended for MCP-specific debugging)
npx @modelcontextprotocol/inspector uvx scopus-mcp
# Quick smoke test (server starts and exits cleanly)
echo "" | SCOPUS_API_KEY=your_key uvx scopus-mcp
# Unit tests (from source)
uv sync --group dev
uv run pytest tests/ -v
# Expected: 19 passedTroubleshooting
command not found: uvx
Install uv: https://docs.astral.sh/uv/getting-started/installation/
Configuration error: Missing required environment variable: SCOPUS_API_KEY
Make sure your config's "env" block has "SCOPUS_API_KEY": "your_actual_key" — not a placeholder.
Tools fail with HTTP 401 API key is invalid or expired. Regenerate at dev.elsevier.com.
Tools fail with HTTP 403
Your key may lack Scopus access. An institutional subscription is required for most endpoints. Ask your librarian about SCOPUS_INST_TOKEN.
First run is slow uv downloads and caches the package on first run. Subsequent starts take ~0.2s.
Tools appear but return empty results
Try broadening your query: replace TITLE(...) with TITLE-ABS-KEY(...) or remove PUBYEAR constraints.
Project Structure
scopus-mcp/
├── src/scopus_mcp/
│ ├── server.py # Entry point — dispatches to CLI or FastMCP stdio server
│ ├── cli.py # Terminal CLI (scopus / scps): subcommands + check diagnostic
│ ├── config.py # Env var configuration (pydantic-settings)
│ ├── client.py # Async HTTP client + TTL cache + rate limiter
│ ├── exceptions.py # Error hierarchy
│ ├── formatters.py # Raw Scopus JSON → clean AI-friendly dicts
│ ├── tools/ # 7 MCP tools (search, abstract, author, citations)
│ ├── prompts/ # 3 MCP prompts (SLR, author analysis, trend query)
│ └── resources/ # 3 MCP resources (syntax, subject areas, API reference)
├── scopus-researcher/ # Agent skill (npx skills add JOSETRA44/scopus-mcp@scopus-researcher)
│ ├── SKILL.md
│ └── references/
├── tests/ # Unit tests (19 cases, no network required)
├── setup_mcp.py # Automated config installer for all clients
├── .env.example # Environment variable template
└── pyproject.toml # Package definitionLicense
MIT — © 2026 JOSETRA44
Maintenance
Related MCP Servers
- AlicenseAqualityFmaintenanceProvides access to the Elsevier Scopus API, enabling AI assistants to search for academic papers, retrieve detailed abstracts, and look up author profiles. It facilitates bibliometric research and scholarly data analysis through natural language commands.Last updated4537MIT
- Alicense-qualityDmaintenanceConnects Scopus to AI assistants for literature discovery. Provides tools for finding papers, experts, citation networks, and analyzing research trends.Last updated2GPL 2.0
- AlicenseAqualityDmaintenanceMCP server enabling AI agents to search and retrieve scientific papers, citations, and author profiles from Crossref, OpenAlex, and Semantic Scholar with no API keys required.Last updated53MIT
- Alicense-qualityDmaintenanceEnables AI agents to access academic citations, fetch metadata, and generate BibTeX entries directly from Google Scholar via MCP tools.Last updated1MIT
Related MCP Connectors
Academic research MCP server for paper search, citation checks, graphs, and deep research.
Search peer-reviewed papers and research methodology guidance from your AI agent.
Shared, peer-validated knowledge archive for AI agents — search, contribute, and validate via MCP
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/JOSETRA44/scopus-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server