Skip to main content
Glama
diplococcus94

Scopus MCP Server

README.md
# Scopus MCP Server

A local MCP server that wraps the Elsevier Scopus APIs, giving Claude Code four tools:

- `scopus_search` — search Scopus documents by keyword, title, author, affiliation, etc.
- `scopus_get_abstract` — fetch a full abstract + metadata by Scopus ID / DOI / EID
- `scopus_search_authors` — find author profiles by name/affiliation
- `scopus_get_author_profile` — full author profile (h-index, affiliation, ORCID, etc.) by Scopus Author ID
- `scopus_get_citation_overview` — year-by-year citation counts for one or more documents

## 1. Get an API key

Register at https://dev.elsevier.com/apikey to get a Scopus/Elsevier API key. Some
endpoints (especially abstract/citation data) require your key to be used from an
IP range or network your institution has registered with Elsevier — if you get
403 errors, that's usually why.

If you also have an institutional token, note it too (optional).

## 2. Install dependencies

```bash
cd "scopus-mcp-server"
pip install -r requirements.txt
```

## 3. Set your API key

Set it as an environment variable — never hardcode it in the source or paste it into
chat. Pick one option:

**Windows PowerShell (current session only):**
```powershell
$env:SCOPUS_API_KEY = "your-key-here"
```

**Windows (persistent, current user):**
```powershell
setx SCOPUS_API_KEY "your-key-here"
```
(Open a new terminal afterward for `setx` to take effect.)

Optional institutional token:
```powershell
setx SCOPUS_INSTTOKEN "your-insttoken-here"
```

## 4. Register the server with Claude Code

From an interactive terminal (this step needs `claude mcp`, which isn't available in
a non-interactive session):

```bash
claude mcp add scopus -- python "C:\Users\Hype AMD\OneDrive\Desktop\Claude Cowork\scopus-mcp-server\server.py"
```

This registers it as a stdio MCP server that Claude Code will launch on demand. Verify
with `claude mcp list`, then restart/reload Claude Code so it picks up the new server.

## 5. Try it

Ask Claude something like:
- "Search Scopus for papers on CRISPR gene editing published after 2022"
- "Get the abstract for Scopus ID 85123456789"
- "Find the Scopus author profile for John Smith at MIT"
- "How has paper 85123456789 been cited over the last 5 years?"

## Notes

- All tools are read-only (no writes to Scopus).
- Responses default to Markdown; pass `response_format: "json"` for structured output.
- If you see `Error: SCOPUS_API_KEY environment variable is not set`, the server process
  didn't inherit the env var — set it persistently (`setx`) and open a fresh terminal /
  restart Claude Code.
- If you see 403 errors, your key likely isn't entitled for that endpoint or needs to be
  called from your institution's registered network.