academic-mcp
Searches and retrieves papers from arXiv, including direct DOI-to-arXiv resolution and title-based preprint lookup as a fallback for paywalled content.
Uses the Elsevier API for Scopus search and ScienceDirect paper downloads, including PDF retrieval for DOI-based lookups.
Searches academic literature via Scopus, merging results with OpenAlex and tracking referenced DOIs for session-scoped download authorization.
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., "@academic-mcpSearch for papers about graph neural networks published after 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.
academic-mcp
A local MCP service that is the whole backend of an academic research workflow:
literature search, citation chains, per-project research memory, paper download
and PDF→Markdown conversion. Any MCP client can drive it — the first one is the
DSH academic agent preset, which contains no Python at all.
client (any MCP host) ──JSON-RPC /mcp──▶ academic-mcp :8790
├─ Scopus + OpenAlex (search, citation chains)
├─ project memory JSON (notes, findings, progress)
├─ arXiv / Elsevier / browser → PDF
└─ MinerU cloud API (PDF → Markdown)Everything that needs Python lives here. A client only sends tool calls.
Tools
Tool | Purpose |
| Scopus + OpenAlex search, merged, deduplicated and hybrid-reranked. |
| Forward / backward citation expansion from seed DOIs (OpenAlex). |
| Per-project research memory: |
| Read a session's tool-call log. |
| DOI → full text (Markdown), cached under |
| DOI → PDF path only (no conversion). |
| Any document (local path or URL) → Markdown: PDF, Word, PPT, Excel, images, HTML. Returns path + outline + page→line map. |
| May this DOI be downloaded in this session? (no network) |
| Machine-readable tool contract: every tool with its required/optional arguments. Clients validate against it instead of assuming names. |
| Config + resolver stats (secrets masked). Call this first when something fails. |
convert_document is the one MinerU implementation for both the paper pipeline
and general document reading.
Related MCP server: scholar-mcp
Configuration
Settings come from the process environment, then <MCP_HOME>/.env (this
directory), then ~/.shellrc. Copy .env.example to .env and fill it in.
Nothing else is read — in particular, no client's directory is consulted.
The essentials:
Variable | Meaning | Default |
| library root: project memory JSON, |
|
| MinerU cloud PDF→Markdown (required for conversion) | — |
| Scopus search + ScienceDirect download | — |
| OpenAlex search + citation chains | — |
| publisher downloads and Scopus/OpenAlex search; empty = direct | — |
| arXiv / search-engine fallback only | — |
| listen address |
|
| local conversion cache |
|
Full list with defaults and tuning knobs: .env.example.
ELSEVIER_INSTTOKEN is an optional subscription-institution token — leave it
empty unless your library requires it.
Restart the service after editing (configuration is read once at startup):
systemctl --user restart academic-mcp # or however you run itInstall
python -m venv .venv && . .venv/bin/activate
pip install -e . # or: pip install academic-mcp
cp .env.example .env # then edit
academic-mcp # or: python -m academic_mcpThe browser fallback needs a one-time download and a display (Xvfb is fine):
camoufox fetchacademic-mcp.service and academic-mcp-xvfb.service in this directory are
examples — they assume Linux with systemd --user. Adjust the paths before
using them.
PDF → Markdown: MinerU only
There is deliberately no fallback converter. The previous backend tried local MinerU (GPU) and then PyMuPDF4LLM; both produced silently degraded text (lost formulas, broken tables, scrambled reading order) that a reading agent then summarised as authoritative. Failing loudly is better than fabricating structure.
Resolver order
Cheap and reliable first, expensive and fragile last:
arxiv-direct— the DOI is an arXiv ID (10.48550/...)elsevier-api—10.1016/+ ScienceDirect API keydirect-pdf— open-access publishers whose PDF needs no session cookies. Only entries verified to returnapplication/pdfbelong here. SciPost is deliberately excluded: it sits behind a proof-of-work gate, and dodging that with a non-browser User-Agent would evade a control someone installed on purpose — it goes through the browser instead.camoufox-browser— headful Firefox, CloudFlare bypass, paywallsarxiv-title-search— find the preprint by title (DDGS + verification)
The last one is a fallback for content, not access: when every publisher path is paywalled, an arXiv preprint of the same paper is still worth reading. It runs last so the version-of-record wins when reachable. Candidates are verified (title similarity + author) before use — fetching the wrong paper is worse than failing.
Display for the browser
Headful Firefox is required for CloudFlare Turnstile (headless is detected and
challenged harder). The resolver picks, in order: an existing Xvfb on :99–:96,
the ambient DISPLAY, a self-started Xvfb, otherwise headless.
Layout
academic-mcp/
├── academic-mcp.py # script entrypoint (kept for compatibility)
├── academic_mcp/
│ ├── __main__.py # python -m academic_mcp
│ ├── config.py # env + .env settings
│ ├── server.py # MCP tools (incl. contract / health)
│ ├── pipeline.py # cache → resolve → convert
│ ├── mineru.py # MinerU cloud API (the only converter)
│ ├── storage.py # DOI→key, cache validity
│ ├── httpclient.py # pooled client, retries, proxy policy
│ ├── validate.py # session-scoped DOI authorization
│ ├── markdown.py # outline + page→line map
│ ├── resolvers/ # arxiv, elsevier, publisher, camoufox
│ └── agent/ # search, snowball, memory + MCP wrappers
├── scripts/ # manual publisher / network diagnostics
└── tests/ # offline smoke testsDevelopment
pip install -e ".[dev]"
ruff check .
pytest -q # offline: no network, no browser, no MinerU quotaThe tests pin the parts clients depend on as a contract: the tool surface, the
argument names, the cwd → session_id rule and the memory round-trip.
Security notes
The service binds to
127.0.0.1by default and keeps its keys in.env(never returned over the wire;healthmasks them).validate_doionly authorises a DOI that appeared in this session's search results, so a stray DOI cannot trigger a download.The browser fallback drives a real Firefox for CloudFlare challenges and paywalled publishers. Use it in line with those sites' terms.
License
GPL-3.0-or-later — see LICENSE.
Copyright (C) 2026 cxxiao.
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. It is distributed in the hope that it will be useful, but without any warranty; without even the implied warranty of merchantability or fitness for a particular purpose.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
No tool schema history has been recorded yet.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Academic literature search, retrieval, and private library management on top of OpenAlex.
Search arXiv/Semantic Scholar/OpenAlex + medical evidence (PubMed/Europe PMC) + LaTeX/PDF tools.
Academic research MCP server for paper search, citation checks, graphs, and deep research.
Personal knowledge base MCP server with semantic search, auto-categorization, metadata extraction
Related MCP Servers
- AlicenseAqualityAmaintenanceComprehensive MCP server for academic research workflows, enabling paper searching across multiple sources, manuscript processing with citation placeholders, search caching, and citation export.11MIT
- AlicenseAqualityBmaintenanceMulti-source academic paper search, citation graph exploration, and PDF download as an MCP server, designed for LLM agents doing research.62Apache 2.0
- AlicenseNot gradedqualityAmaintenanceZero-auth multi-source research MCP server that enables web search, reading URLs, PDFs, GitHub repos, and querying Hacker News, Stack Overflow, Semantic Scholar, and YouTube transcripts without API keys.10Apache 2.0
- AlicenseNot gradedqualityAmaintenanceA local-first paper RAG server that enables searching and managing academic PDFs via MCP tools, supporting metadata enrichment and citation graphs.1MIT
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/longisland-icetea/academic-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server