Skip to content

Releases: niol-zh/research-mcp

research-mcp v0.6.0

Choose a tag to compare

@github-actions github-actions released this 10 Sep 14:32

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 query
  • get_abstract_details — Scopus metadata + abstract text via CrossRef
  • get_author_profile — h-index, citations, ORCID, affiliations via OpenAlex
  • get_citing_papers — forward citations
  • get_references — backward citations
  • assess_relevance — screen papers against a research context
  • get_pdf_link — open-access PDF via Unpaywall
  • get_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.toml and manifest.json disagree on the version.
  • The README's manual mcp-proxy command now pins mcp<2. Without it, uvx
    resolves mcp 2.x into that environment and mcp-proxy dies on import — the same
    bug already fixed in scripts/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

Choose a tag to compare

@github-actions github-actions released this 08 Sep 07:27

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 query
  • get_abstract_details — Scopus metadata + abstract text via CrossRef
  • get_author_profile — h-index, citations, ORCID, affiliations via OpenAlex
  • get_citing_papers — forward citations (now defaults to OpenAlex)
  • get_referencesnew: backward citations, the works a paper cites
  • assess_relevancenew: screen papers against a research context
  • get_pdf_link — open-access PDF via Unpaywall
  • get_quota_status — live Scopus rate-limit from response headers

Highlights in this release

  • Backward citationsget_references returns a paper's reference list via
    OpenAlex, so a citation network can be walked in both directions.
  • Relevance screeningassess_relevance scores 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, so get_citing_papers now
    defaults to OpenAlex and works without special Scopus access.
  • mcp capped 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 fixedstart-tunnel.ps1 now pins mcp<2 for the
    mcp-proxy environment as well. uvx resolves that environment independently,
    so the pyproject.toml cap 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 MCP initialize request 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

Choose a tag to compare

@niol-zh niol-zh released this 30 Jun 18:41

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 query
  • get_abstract_details — Scopus metadata + abstract text via CrossRef
  • get_author_profile — h-index, citations, ORCID, affiliations via OpenAlex
  • get_citing_papers — forward citations
  • get_pdf_link — open-access PDF via Unpaywall
  • get_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); shared httpx.AsyncClient for connection pooling.
  • Input safetycount clamped 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.