This is a stateful research environment that wraps eight scholarly engines (Scopus, OpenAlex, Crossref, arXiv, Europe PMC, Springer, Semantic Scholar) into a citation traversal workflow. You search by keyword or DOI, expand into references and author paper lists, pull abstracts and full text when available, then save promising papers to a session scoped reading list. The MCP server exposes the same model: agents can build a curated corpus over multiple turns, then export it as BibTeX, citation only, abstracts, or full text with references included. Reach for it when you need an agent to assemble a literature review or build a focused research corpus, not just run one off searches.
ScholarFetch is a multi-engine academic research environment for:
It combines:
stdio, sse, streamable-http)The core idea is simple: start from keywords, DOI, or authors, traverse papers and references, inspect abstracts and full text, save what matters, then export a compact corpus for synthesis.
git clone https://github.com/laibniz/scholarfetch.git
cd scholarfetch
python3 -m venv .venv
source .venv/bin/activate
pip install -e .
scholarfetch
Console scripts:
scholarfetchscholarfetch-mcpscholarfetch-fastmcpAlternative:
python3 scholarfetch.py
ScholarFetch loads provider credentials server-side / client-side from environment.
Default env file:
.scholarfetch.envTypical variables:
ELSEVIER_API_KEY=...
ELSEVIER_INSTTOKEN=...
SPRINGER_META_API_KEY=...
SPRINGER_OPENACCESS_API_KEY=...
Notes:
ELSEVIER_INSTTOKEN is optionalScholarFetch CLI is designed for research traversal.
Typical flow:
Example:
/search graph neural networks
/author Albert Einstein
/papers 1 has:abstract
/article 1
/refs 1
/saved
/export fulltext dummy corpus.txt
OPEN, ABSTRACT, TEXT, REFS, and AUTHORBackspace to go to parent nodeEsc to return to promptS to save a paper from paper lists or reference listsX to remove from the saved listAUTHOR action from a paper now lets you select:
ALL AUTHORSopenabstracttextrefsauthor/search <keywords|doi|person name>/author <name>/papers <author name|index> [filters]/doi <doi>/open <index>/abstract <doi|index>/article <doi|index>/refs <doi|index>/ref <index>/saved/export [format style path ...]/import [path]/pick [mode]/config/engines/helpUse with /papers:
year>=YYYY, year<=YYYY, year=YYYYhas:abstract, has:doi, has:pdf, has:fulltextvenue:<text>, title:<text>, doi:<text>Examples:
/papers 1 year>=2020 has:abstract
/papers 1 has:fulltext
/papers andrea de mauro venue:marketing
ScholarFetch supports four export modes from the saved paper set.
bib
citations
harvard, apa, or ieeeabstracts
fulltext
This makes ScholarFetch useful as a corpus builder for downstream synthesis agents.
ScholarFetch exposes the same research model through MCP.
Modes:
python3 scholarfetch_mcp.pypython3 scholarfetch_fastmcp.py --transport stdiopython3 scholarfetch_fastmcp.py --transport sse --host 127.0.0.1 --port 8000python3 scholarfetch_fastmcp.py --transport streamable-http --host 127.0.0.1 --port 8000 --http-path /mcpValidation:
python3 scholarfetch_mcp.py --self-test
python3 scholarfetch_fastmcp.py --self-test
Public demo endpoints:
io.github.laibniz/scholarfetchThe MCP server is designed for agent workflows, not only one-off calls.
An agent can:
This lets an agent build a focused research set inside one MCP session and then hand off an export artifact to another synthesis step.
See MCP_SERVER.md for the detailed tool model.
scholarfetch.py: CLI entrypointscholarfetch_cli.py: core CLI + retrieval logicscholarfetch_mcp.py: classic MCP serverscholarfetch_fastmcp.py: FastMCP serverMCP_SERVER.md: MCP usage guideAGENTS.md: agent-facing workflow guideSKILL.md: structured research skill guideSKILLS.md: index for agent-facing skill docsCONTRIBUTING.md: contributor notesIf you are running ScholarFetch from an MCP-compatible system, read:
These documents explain how to use ScholarFetch as a literature-research environment rather than as a flat search API.
See CONTRIBUTING.md.
See SECURITY.md.
MIT License. See LICENSE.
com.mcparmory/google-search
io.github.pipeworx-io/brave-search
marcopesani/mcp-server-serper
brave/brave-search-mcp-server
com.mcparmory/google-search-console
acamolese/google-search-console-mcp