Releases: niol-zh/research-mcp
Release list
research-mcp v0.6.0
research-mcp v0.6.0
An MCP server for academic literature research. Combines Scopus search with free,
open scholarly APIs so you get abstracts, author metrics and open-access PDFs
without needing institutional Scopus entitlements.
Two headline changes: journal quartiles, and one-click installation.
One-click install
Releases now ship a .mcpb bundle. Download it, double-click, done — Claude
Desktop, Claude Code and MCP for Windows all install it. The bundle prompts for
the Scopus API key and contact email in a form and stores the key masked, so
there is no config file to hand-edit and no environment variable to set.
The bundle declares the uv runtime rather than vendoring dependencies. That
keeps it at ~23 KB and platform-independent: the MCP SDK depends on the compiled
pydantic-core, which cannot be bundled portably across macOS, Windows and
Linux, so the host resolves dependencies at first launch instead.
Journal quartiles
New tool get_journal_metrics(issn) returns the quartile (Q1–Q4) per subject
category, plus CiteScore, SJR and SNIP.
A journal usually sits in several categories with different quartiles, so
subject_areas is a list and best_quartile gives the strongest one. The
source field says whether the numbers came from the live Scopus Serial Title
API or the local fallback — the two differ slightly, and it is worth reporting
which you used.
The Serial Title API is entitlement-gated, the same limitation that pushed
get_citing_papers onto OpenAlex. When it is unavailable the tool falls back to
a Scimago table you place at research_mcp/data/scimago.csv; that file is not
shipped (yearly, ~5 MB, CC BY-NC) — see research_mcp/data/README.md.
search_scopus and get_abstract_details now also return issn and e_issn,
which feed straight into the new tool.
Tools
search_scopus— search Scopus by queryget_abstract_details— Scopus metadata + abstract text via CrossRefget_author_profile— h-index, citations, ORCID, affiliations via OpenAlexget_citing_papers— forward citationsget_references— backward citationsassess_relevance— screen papers against a research contextget_pdf_link— open-access PDF via Unpaywallget_journal_metrics— journal quartile, CiteScore, SJR, SNIP (new)get_quota_status— live Scopus rate-limit
Also in this release
- The release workflow builds and attaches the
.mcpb, and refuses to run when
the tag,pyproject.tomlandmanifest.jsondisagree on the version. - The README's manual
mcp-proxycommand now pinsmcp<2. Without it, uvx
resolves mcp 2.x into that environment and mcp-proxy dies on import — the same
bug already fixed inscripts/start-tunnel.ps1. - 77 offline unit tests (up from 41), CI on Python 3.10–3.13.
Install
Download research-mcp-v0.6.0.mcpb below and double-click it. To pin the source
instead:
{
"mcpServers": {
"research": {
"command": "uvx",
"args": ["--from", "git+https://github.com/niol-zh/research-mcp@v0.6.0", "research-mcp"],
"env": {
"SCOPUS_API_KEY": "your-key",
"UNPAYWALL_EMAIL": "you@example.com"
}
}
}
}Only dependencies: mcp and httpx. MIT licensed.
Full changelog: v0.5.1...v0.6.0
research-mcp v0.5.1
research-mcp v0.5.1
An MCP server for academic literature research. Combines Scopus search with free,
open scholarly APIs so you get abstracts, author metrics and open-access PDFs
without needing institutional Scopus entitlements.
Tools
search_scopus— search Scopus by queryget_abstract_details— Scopus metadata + abstract text via CrossRefget_author_profile— h-index, citations, ORCID, affiliations via OpenAlexget_citing_papers— forward citations (now defaults to OpenAlex)get_references— new: backward citations, the works a paper citesassess_relevance— new: screen papers against a research contextget_pdf_link— open-access PDF via Unpaywallget_quota_status— live Scopus rate-limit from response headers
Highlights in this release
- Backward citations —
get_referencesreturns a paper's reference list via
OpenAlex, so a citation network can be walked in both directions. - Relevance screening —
assess_relevancescores one or more papers against
a stated research context, for triaging large result sets before reading. - Forward citations moved to OpenAlex — Scopus
REFEID()is entitlement-
restricted and unavailable on standard API keys, soget_citing_papersnow
defaults to OpenAlex and works without special Scopus access. mcpcapped below 2.0.0 — the mcp 2.x rewrite drops the low-level
decorator API this server is built on; an unbounded requirement silently broke
fresh installs.- Tunnel startup fixed —
start-tunnel.ps1now pinsmcp<2for the
mcp-proxyenvironment as well. uvx resolves that environment independently,
so thepyproject.tomlcap did not reach it and the script died on
ImportError: cannot import name 'request_ctx'before the server came up. - New
scripts/diagnose.ps1— probes the local endpoint and, optionally, the
Cloudflare tunnel URL with a real MCPinitializerequest and reports which
layer is at fault. - Tested — 41 offline unit tests (
httpx.MockTransport), CI on Python
3.10–3.13.
Install (Claude Code / Desktop)
{
"mcpServers": {
"research": {
"command": "uvx",
"args": ["--from", "git+https://github.com/niol-zh/research-mcp@v0.5.1", "research-mcp"],
"env": {
"SCOPUS_API_KEY": "your-key",
"UNPAYWALL_EMAIL": "you@example.com"
}
}
}
}Only dependencies: mcp and httpx. See the README for the Cowork (remote
connector) setup. MIT licensed.
Full changelog: v0.4.0...v0.5.1
research-mcp v0.4.0
research-mcp v0.4.0
An MCP server for academic literature research. Combines Scopus search with free,
open scholarly APIs so you get abstracts, author metrics and open-access PDFs
without needing institutional Scopus entitlements.
Tools
search_scopus— search Scopus by queryget_abstract_details— Scopus metadata + abstract text via CrossRefget_author_profile— h-index, citations, ORCID, affiliations via OpenAlexget_citing_papers— forward citationsget_pdf_link— open-access PDF via Unpaywallget_quota_status— live Scopus rate-limit from response headers
Highlights in this release
- Correct data-source wiring — tool descriptions and comments now match the
implementation (OpenAlex for authors), so the model reads accurate metadata. - Real quota tracking — captures
X-RateLimit-*headers from every Scopus
call instead of returning a static string. - JSON output — all tools return indented JSON for reliable parsing.
- Resilience — retry/backoff on HTTP 429 and transient 5xx (honours
Retry-After); sharedhttpx.AsyncClientfor connection pooling. - Input safety —
countclamped to [1, 25]; sanitized error messages. - Tested — 16 offline unit tests (
httpx.MockTransport), CI on Python
3.10–3.13.
Install (Claude Code / Desktop)
{
"mcpServers": {
"research": {
"command": "uvx",
"args": ["--from", "git+https://github.com/niol-zh/research-mcp@v0.4.0", "research-mcp"],
"env": {
"SCOPUS_API_KEY": "your-key",
"UNPAYWALL_EMAIL": "you@example.com"
}
}
}
}Only dependencies: mcp and httpx. See the README for the Cowork (remote
connector) setup. MIT licensed.