PluginBench
MCP Server
Active
MIT

Scholar Sidekick MCP Server

io.github.mlava/scholar-sidekick-mcp

Catch AI-fabricated citations and audit bibliographies with retraction checks, open-access lookup, and 10,000+ citation styles.

What is the Scholar Sidekick MCP server?

Scholar Sidekick MCP is a citation verification and bibliography management server that detects AI-fabricated citations (real DOI + invented title), audits entire reference lists, and resolves scholarly identifiers into multiple citation formats and export styles. It integrates retraction tracking, open-access status checks, and supports 10,000+ CSL citation styles across eight identifier types.

Scholar Sidekick helps researchers and writers catch hallucinated citations that AI systems generate—a pattern where the DOI is real but the title is invented. Beyond verification, it audits whole bibliographies, checks retraction and open-access status, and formats citations in any of 10,000+ styles (Vancouver, APA, AMA, IEEE, CSE, Chicago, Harvard, MLA, Nature, BMJ, Lancet, and more). Works with DOIs, PubMed IDs, ISBNs, arXiv IDs, and other scholarly identifiers.

How to install Scholar Sidekick

Copy-paste configuration for popular MCP clients.

transport: stdio
Config generated by PluginBench — verify against the source before use.
~/Library/Application Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "scholar-sidekick-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "scholar-sidekick-mcp"
      ]
    }
  }
}

Tools & capabilities

Tools this server exposes to the agent.

  • verifyCitation — Verify a claimed citation against the resolved record at its identifier, detecting real DOI + invented title fabrication patterns. Returns verdict (matched/mismatch/ambiguous/not_found) with per-field similarity scores and the resolved record.
  • auditBibliography — Run citation verification and retraction lookup across an entire bibliography in one call. Accepts BibTeX, RIS, or CSL JSON; returns per-entry verdicts and corpus summary (capped at 25 entries).
  • resolveIdentifier — Resolve DOIs, PMIDs, PMCIDs, ISBNs, arXiv IDs, ISSNs, NASA ADS bibcodes, and WHO IRIS URLs to structured bibliographic metadata (CSL JSON). Accepts single or batch input.
  • formatCitation — Format one or many identifiers into Vancouver, AMA, APA, IEEE, CSE, or any of 10,000+ CSL styles. Output as text, HTML, or JSON with provenance metadata.
  • exportCitation — Export one or many identifiers to BibTeX, RIS, CSL JSON, EndNote (XML/Refer), RefWorks, MEDLINE, Zotero RDF, CSV, or plain text.
  • checkRetraction — Check whether a work has been retracted, corrected, or had an expression of concern raised. Sourced from Crossref and Retraction Watch. One identifier per call.
  • checkOpenAccess — Check whether a work is openly accessible and return the best legal landing or PDF URL. Sourced from Unpaywall; returns OA status (gold/green/hybrid/bronze/closed), license, and version.

Use cases

  • Detect AI-hallucinated citations in academic papers and manuscripts before submission
  • Audit entire reference lists for fabrication, retraction, and open-access status in one call
  • Format and export bibliographies in any of 10,000+ citation styles for journals, theses, or reference managers
  • Resolve scholarly identifiers (DOI, PMID, ISBN, arXiv, etc.) to structured metadata and export formats
  • Build end-to-end citation workflows: resolve identifiers → format in target style → export to BibTeX or RIS

Scholar Sidekick MCP server FAQ

What does Scholar Sidekick detect?

Scholar Sidekick detects the dominant AI-fabrication pattern: a real DOI paired with an invented or incorrect title. It cross-checks the claimed citation against the actual record at that DOI, returning a verdict (matched, mismatch, ambiguous, or not found) with per-field similarity scores.

Is Scholar Sidekick free?

Yes. The server works anonymously at a rate-limited free tier with no key required. For higher rate limits, create a free first-party `ssk_` key at scholar-sidekick.com/account. Paid tiers are available via RapidAPI.

How do I install it in Claude Desktop?

Add to your Claude Desktop config file: `{"mcpServers": {"scholar-sidekick": {"command": "npx", "args": ["-y", "scholar-sidekick-mcp@latest"]}}}`. Optionally add `"env": {"SCHOLAR_API_KEY": "ssk_your-key"}` for higher limits.

How do I use it in Cursor or VS Code?

Add to `.cursor/mcp.json` or `.vscode/mcp.json` with the same npx command as Claude Desktop. No key is required; add one via the `env` block if you want higher rate limits.

What citation styles does it support?

Scholar Sidekick supports 10,000+ CSL styles, including Vancouver, APA, AMA, IEEE, CSE, Chicago, Harvard, MLA, Turabian, Nature, BMJ, and Lancet. Any CSL style ID from the Citation Style Language repository can be used.

What identifiers does it accept?

It supports DOIs, PubMed IDs (PMID), PubMed Central IDs (PMCID), ISBNs, arXiv IDs, ISSNs, NASA ADS bibcodes, and WHO IRIS URLs. All tools accept single identifiers or comma/newline-separated batches.

README (reference)

Source of truth, from the repository.

Scholar Sidekick MCP Server

MCP server for Scholar Sidekick — catch AI-fabricated citations, one at a time or across a whole bibliography, from any AI assistant. It also checks retraction and open-access status, and resolves any scholarly identifier (DOI, PMID, PMCID, ISBN, arXiv, ISSN, NASA ADS bibcode, WHO IRIS URL) into 10,000+ CSL styles or nine export formats.

Highlights

  • Citation-fabrication detection — verifyCitation cross-checks a claimed citation against the resolved record at its identifier, detecting the dominant AI-driven fabrication pattern documented by Topaz et al. (Lancet 2026) — real DOI + invented title — that simple identifier resolution cannot catch. Long-form explainer at scholar-sidekick.com/citation-integrity.
  • Whole-bibliography audit — auditBibliography runs that same check plus a retraction lookup across an entire reference list in one call, taking raw BibTeX, RIS, or CSL JSON and returning a per-entry verdict table with a corpus summary.
  • Retraction & open-access checks — checkRetraction surfaces retractions, corrections, and expressions of concern (Crossref / Retraction Watch); checkOpenAccess returns OA status and the best legal landing or PDF URL (Unpaywall). Both accept any identifier type and resolve it to a DOI under the hood.
  • Eight identifier types out of the box — DOIs, PMIDs, PMCIDs, ISBNs, arXiv IDs, ISSNs, NASA ADS bibcodes, and WHO IRIS URLs (rare in citation tooling).
  • Batch-friendly resolve / format / export — each accepts a single identifier or a comma- or newline-separated list; the server normalises the list and resolves them in one round trip.
  • 10,000+ citation styles — five hand-tuned builtins (Vancouver, AMA, APA, IEEE, CSE) plus any CSL style ID, with alias and dependent-style resolution.
  • Nine export formats — BibTeX, RIS, CSL JSON, EndNote (XML/Refer), RefWorks, MEDLINE, Zotero RDF, CSV, plain text.
  • Composable workflow — chain resolveIdentifier → formatCitation → exportCitation in one prompt for an end-to-end "raw IDs → exportable bibliography" pipeline.
  • Provenance metadata on every response — formatted output is followed by a metadata block (requestId, formatter, styleUsed, warnings) so the assistant can show users which engine produced each citation.
  • No key required — works anonymously against the public Scholar Sidekick API (rate-limited free tier); add a free first-party ssk_ key for higher limits, or a RapidAPI key for paid/managed tiers.
  • Hosted HTTP endpoint (no install) — prefer not to run a local stdio server? Connect any HTTP-capable MCP client straight to https://scholar-sidekick.com/api/mcp (Streamable HTTP, same 7 tools). See Hosted HTTP endpoint.
  • REST API twin — the same endpoints are available as the Scholar Sidekick REST API for non-MCP integrations.

Tools

ToolDescription
verifyCitationVerify a claimed citation against the resolved record at its identifier. Detects the Topaz et al. (Lancet 2026) fabrication pattern — real DOI + invented title — that resolveIdentifier alone cannot catch. Returns one of four verdicts (matched / mismatch / ambiguous / not_found) plus per-field similarity scores and the resolved record so the user can see where the cited title and the actual paper diverged. Optional Stage 3 LLM screen rescues informal-abbreviation false positives (paid plans / first-party authentication only). One citation per call.
auditBibliographyRun the verifyCitation check plus a retraction lookup across a whole bibliography in one call. Accepts raw BibTeX, RIS, or CSL-JSON text, or a pre-parsed claims[] array; returns a per-entry verdict table and a corpus summary. Capped at 25 entries per call.
resolveIdentifierResolve DOIs, PMIDs, PMCIDs, ISBNs, arXiv IDs, ISSNs, ADS bibcodes, and WHO IRIS URLs to structured bibliographic metadata (CSL JSON). Accepts a single identifier or a comma/newline-separated batch.
formatCitationFormat one or many identifiers into Vancouver, AMA, APA, IEEE, CSE, or any of 10,000+ CSL styles. Output as text, HTML, or JSON. Returns formatted citations plus a provenance metadata block.
exportCitationExport one or many identifiers to BibTeX, RIS, CSL JSON, EndNote (XML/Refer), RefWorks, MEDLINE, Zotero RDF, CSV, or plain text — ready to write to disk or hand to a reference manager.
checkRetractionCheck whether a single work has been retracted, corrected, or had an expression of concern raised. Sourced from Crossref updated-by (Retraction Watch). Resolves DOI/PMID/PMCID/arXiv/ADS inputs to a DOI before lookup. One identifier per call.
checkOpenAccessCheck whether a single work is openly accessible and where to find the best legal version. Sourced from Unpaywall. Returns OA status (gold/green/hybrid/bronze/closed), best landing/PDF URL, license, and version. Resolves DOI/PMID/PMCID/arXiv/ISBN/ADS inputs to a DOI before lookup. One identifier per call.

All seven tools are read-only (readOnlyHint: true, destructiveHint: false). The exact tools/list payload — descriptions, JSON Schemas, and annotations — is committed as tools.json and ships in the npm tarball, so you can review the full tool surface without running anything.

Setup

No key required. The server works anonymously against the public Scholar Sidekick API (https://scholar-sidekick.com) at a rate-limited free tier — just install and go. To raise your limits, create a free first-party ssk_ key at scholar-sidekick.com/account and set SCHOLAR_API_KEY. For paid/managed tiers, subscribe on RapidAPI and set RAPIDAPI_KEY (which routes calls through the RapidAPI gateway).

Prefer zero install? There's also a hosted HTTP endpoint at https://scholar-sidekick.com/api/mcp (Streamable HTTP) — connect any HTTP-capable MCP client directly, no npx needed. See Hosted HTTP endpoint below. The stdio package documented here is the local-install alternative (and the path for RapidAPI-keyed users).

Claude Desktop

Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows). No key, no env block:

{
  "mcpServers": {
    "scholar-sidekick": {
      "command": "npx",
      "args": ["-y", "scholar-sidekick-mcp@latest"]
    }
  }
}

Only if you want higher rate limits, add an env block with a free ssk_ key from scholar-sidekick.com/account:

"env": { "SCHOLAR_API_KEY": "ssk_your-first-party-key" }

Claude Code

# Anonymous (no key):
claude mcp add scholar-sidekick -- npx -y scholar-sidekick-mcp@latest

# With a free first-party key for higher limits:
claude mcp add scholar-sidekick \
  -e SCHOLAR_API_KEY=ssk_your-first-party-key \
  -- npx -y scholar-sidekick-mcp@latest

Claude Code plugin (server + skill in one step)

This repo is also a Claude Code plugin marketplace. Installing the plugin wires up the MCP server and the companion agent skill together — no separate claude mcp add, no env block:

/plugin marketplace add mlava/scholar-sidekick-mcp
/plugin install scholar-sidekick@scholar-sidekick

The plugin runs the server anonymously (no key). For higher rate limits, add a free ssk_ key from scholar-sidekick.com/account via claude mcp add as shown above, or use the hosted endpoint below.

Cursor / VS Code / Windsurf

Add to .cursor/mcp.json or .vscode/mcp.json. No key needed:

{
  "mcpServers": {
    "scholar-sidekick": {
      "command": "npx",
      "args": ["-y", "scholar-sidekick-mcp@latest"]
    }
  }
}

For higher rate limits, add "env": { "SCHOLAR_API_KEY": "ssk_your-first-party-key" }.

Run in a container (sandboxed)

The server speaks MCP over stdio and needs outbound HTTPS to the Scholar Sidekick API and nothing else — no filesystem access, no shell. If your policy is that MCP servers don't get host access, build the image in this repo and run it isolated:

docker build -t scholar-sidekick-mcp .
{
  "mcpServers": {
    "scholar-sidekick": {
      "command": "docker",
      "args": [
        "run", "-i", "--rm",
        "--read-only", "--cap-drop", "ALL", "--security-opt", "no-new-privileges",
        "scholar-sidekick-mcp"
      ]
    }
  }
}

-i is required — that's the stdio pipe. Add "-e", "SCHOLAR_API_KEY", to the args only if you are passing a key for higher limits. No image is published to a registry; build it locally so you're running a bundle you built from source you can read.

Agent skill (optional)

Install a companion Agent Skill that teaches Claude Code, Cline, and other agents when and how to use these tools — it complements the server config above:

npx skills add mlava/scholar-sidekick-mcp

Hosted HTTP endpoint (no install)

Don't want to run a local stdio server? Scholar Sidekick is also a hosted Streamable HTTP MCP at https://scholar-sidekick.com/api/mcp — the same seven tools, no npx, no local process. It works anonymously (rate-limited free tier); add an Authorization: Bearer ssk_… header (a free key from scholar-sidekick.com/account) for higher limits.

Point any HTTP-capable MCP client at it:

{
  "mcpServers": {
    "scholar-sidekick": {
      "type": "http",
      "url": "https://scholar-sidekick.com/api/mcp"
    }
  }
}

In Claude Desktop, use Settings → Connectors → Add custom connector (or "Add HTTP server") and paste the URL. Add the bearer token in the client's header/auth field if you have one.

Discovery: /.well-known/mcp.json (SEP-1649 server card) lists this endpoint plus the no-auth ChatGPT Apps endpoint at /api/apps/mcp. The stdio package above remains the local-install alternative and the path for RapidAPI-keyed users.

Environment Variables

VariableRequiredDescription
SCHOLAR_API_KEYNoFree first-party ssk_ key from scholar-sidekick.com/account; raises rate limits and enables the verifier's LLM screen. Sent as Authorization: Bearer.
RAPIDAPI_KEYNoRapidAPI subscription key for paid/managed tiers; when set, calls route through the RapidAPI gateway.
RAPIDAPI_HOSTNoRapidAPI host (defaults to scholar-sidekick.p.rapidapi.com)
SCHOLAR_SIDEKICK_URLNoOverride the API base URL (defaults to https://scholar-sidekick.com, or the RapidAPI gateway when RAPIDAPI_KEY is set).
SCHOLAR_SIDEKICK_TIMEOUT_MSNoRequest timeout in milliseconds (default: 30000)

No key at all → anonymous, rate-limited free tier. With both SCHOLAR_API_KEY and RAPIDAPI_KEY set, RapidAPI takes precedence.

Supported Citation Styles

Scholar Sidekick supports 10,000+ CSL styles, including all major formats used in academic publishing:

StyleKeyword
Vancouvervancouver
APA (7th ed.)apa
AMAama
IEEEieee
CSEcse
Chicago (author-date)chicago-author-date
Harvardharvard-cite-them-right
MLAmodern-language-association
Turabianturabian-fullnote-bibliography
Naturenature
BMJbmj
Lancetthe-lancet

Any CSL style ID can be passed as the style parameter.

Example Usage

Once connected, ask your AI assistant:

Single identifier

  • "Format 10.1056/NEJMoa2033700 in Vancouver style"
  • "Resolve PMID:30049270 and export as BibTeX"
  • "Give me a Chicago citation for arXiv:2301.08745"

Batch input (comma- or newline-separated — every tool handles it)

  • "Format these as APA: 10.1056/NEJMoa2033700, PMID:30049270, ISBN:9780192854087"
  • "Resolve all of these and tell me which are journal articles vs books: 10.1056/NEJMoa2033700, ISBN:9780192854087, PMC7793608"

End-to-end workflow (the assistant chains resolveIdentifier → formatCitation → exportCitation in one prompt)

  • "Resolve these three identifiers, format each in AMA, and export the set as BibTeX: 10.1056/NEJMoa2033700, PMID:30049270, ISBN:9780192854087"
  • "Build me a Nature-style bibliography from this list and give me a .bib file at the end: PMID:30049270, arXiv:2301.08745, 10.1038/s41586-021-03819-2"

Retraction & open-access checks (one identifier per call)

  • "Has 10.1016/S0140-6736(20)31180-6 been retracted?" → returns isRetracted: true with the retraction notice and date
  • "Is the NumPy paper (10.1038/s41586-020-2649-2) open access? Where can I read it for free?" → returns OA status plus the best legal PDF URL with license and version
  • "Check whether arXiv:2301.08745 has any corrections or expressions of concern." → resolves arXiv → DOI, then queries Retraction Watch

Supported Identifiers

  • DOIs (e.g. 10.1056/NEJMoa2033700)
  • PubMed IDs (e.g. PMID:30049270)
  • PubMed Central IDs (e.g. PMC7793608)
  • ISBNs (e.g. ISBN:9780192854087)
  • arXiv IDs (e.g. 2301.08745)
  • ISSNs and eISSNs
  • NASA ADS bibcodes
  • WHO IRIS URLs

Provenance & Determinism

Every formatCitation and exportCitation response is followed by a metadata block so the assistant — and the user — can see exactly which engine produced each citation:

  • formatter — builtin (one of Vancouver, AMA, APA, IEEE, CSE — hand-tuned in TypeScript) or csl (citeproc-js with a CSL stylesheet).
  • styleUsed — the canonical style ID after alias and dependent-style resolution (e.g. asking for harvard resolves to harvard-cite-them-right).
  • requestId — for support, reproducibility, and log correlation.
  • warnings — populated when a fallback was used or the requested style was a dependent of another.

Identifier resolution is deterministic given the same inputs and pinned upstream metadata. Repeated identical requests are cache-hit on the underlying REST API and surface that via the x-scholar-cache header.

REST API

For programmatic access outside of MCP clients, the same capabilities are available as a REST API at scholar-sidekick.com — anonymously, with a free first-party ssk_ key (Authorization: Bearer), or via RapidAPI for paid tiers. Whichever credential you use here works there too.

Development

npm install
npm run build    # Bundle to dist/mcp-server.mjs
npm test         # Run tests
npm run typecheck

License

MIT

MCP Badge M8ven Verified

Related MCP servers

AGAgent Ready logo

Scan any URL for AI agent readability — Vercel Spec, llmstxt.org, and agent-protocol manifests.

1
TypeScript
MIT
View repository →

Input/output safety for AI agents: known-pattern injection and obfuscation scan, URL/IP, secrets.

0
JavaScript
MIT
View repository →

All six agent guard suites in one local MCP server, with optional cloud intelligence.

0
JavaScript
MIT
View repository →

Security scan for AI-generated code: injection, SSRF, secrets, weak crypto, unsafe deserialization.

0
JavaScript
MIT
View repository →

Email safety for AI agents: scan inbound for prompt-injection/phishing + outbound for secret leaks.

0
JavaScript
MIT
View repository →

Supply-chain guard for AI coding agents: verify packages, check vulns/malware, detect typosquats.

0
JavaScript
MIT
View repository →