About ScholarFetch
ScholarFetch is an academic research environment for researchers and MCP-based agents. It combines a terminal CLI with MCP servers to search scholarly sources, follow references, collect papers and export research corpora.
Key features
- 01Parallel search across scholarly engines
- 02Resolve authors and find their papers
- 03Explore references and related authors
- 04Retrieve abstracts and available full text
- 05Save papers in session reading lists
- 06Export citations, BibTeX and corpora
Use cases
- 01Explore literature starting from a topic or DOI
- 02Trace references and author connections
- 03Collect papers for a focused reading list
- 04Export a corpus for downstream synthesis
MCP support
Provides classic stdio and FastMCP servers over stdio, SSE or streamable HTTP. MCP agents can search, traverse papers, save session reading lists and export them.
Configuration
Remote servers need no local install. Pick your client, then copy the config or install in one click.
https://laibniz-scholarfetch-web.hf.space/mcp/claude mcp add --transport http laibniz-scholarfetch https://laibniz-scholarfetch-web.hf.space/mcp/{"mcpServers":{"laibniz-scholarfetch":{"type":"http","url":"https://laibniz-scholarfetch-web.hf.space/mcp/"}}}Open in Cursor{"servers":{"laibniz-scholarfetch":{"type":"http","url":"https://laibniz-scholarfetch-web.hf.space/mcp/"}}}Open in VS Code{"mcpServers":{"laibniz-scholarfetch":{"type":"http","url":"https://laibniz-scholarfetch-web.hf.space/mcp/"}}}{"mcpServers":{"laibniz-scholarfetch":{"serverUrl":"https://laibniz-scholarfetch-web.hf.space/mcp/"}}}Run commands in a terminal; paste JSON into the client’s MCP config and restart. Servers that need sign-in will prompt on first connect.
Tools
12| Parameter | Type | Required | Description |
|---|---|---|---|
| limit | integer | No | |
| query | string | Yes | |
| engines | string | No |
Details
From the project READMEScholarFetch
ScholarFetch is a multi-engine academic research environment for:
- terminal-first literature exploration
- MCP-powered agent workflows
- building curated reading lists and exportable research corpora
It combines:
- a rich interactive CLI for humans
- a classic MCP server (stdio)
- a FastMCP server (
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.
What ScholarFetch Does
- Searches across multiple scholarly engines in parallel
- Resolves ambiguous author identities and expands author paper lists
- Traverses references as first-class research nodes
- Retrieves abstracts and machine-readable full text when available
- Tracks a saved paper set during an interactive research session
- Exports citations, abstracts, BibTeX, or full-text corpora
- Exposes the same research workflow to MCP agents
- Maintains stateful saved-paper collections inside one MCP session
Engines
- Elsevier (Scopus / Abstract / Article retrieval)
- OpenAlex
- Crossref
- arXiv
- Europe PMC
- Springer Nature (metadata + open access)
- Semantic Scholar (DOI enrichment path)
Installation
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-fastmcp
Alternative:
python3 scholarfetch.py
Credentials
ScholarFetch loads provider credentials server-side / client-side from environment.
Default env file:
.scholarfetch.env
Typical variables:
ELSEVIER_API_KEY=...
ELSEVIER_INSTTOKEN=...
SPRINGER_META_API_KEY=...
SPRINGER_OPENACCESS_API_KEY=...
Notes:
ELSEVIER_INSTTOKENis optional- provider entitlements and rate limits still apply
- MCP tools do not accept API keys in tool arguments
CLI Research Workflow
ScholarFetch CLI is designed for research traversal.
Typical flow:
- Start from a topic, DOI, or author.
- Inspect papers.
- Read abstracts or full text.
- Expand references.
- Jump to related authors.
- Save promising papers.
- Export a corpus for downstream work.
Example:
/search graph neural networks
/author Albert Einstein
/papers 1 has:abstract
/article 1
/refs 1
/saved
/export fulltext dummy corpus.txt
CLI Features
- Interactive picker with tree navigation
- Breadcrumbs for current research position
- Action bar for
OPEN,ABSTRACT,TEXT,REFS, andAUTHOR Backspaceto go to parent nodeEscto return to promptSto save a paper from paper lists or reference listsXto remove from the saved listAUTHORaction from a paper now lets you select:- a single author
ALL AUTHORS
- Reference lists behave like paper lists:
openabstracttextrefsauthor
- Automatic paper availability hints:
- abstract availability
- full-text availability
- Progress feedback for expensive transitions
- Interruptible reference preview building with partial results kept
Core CLI Commands
/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/help
Paper Filters
Use 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
Export Modes
ScholarFetch supports four export modes from the saved paper set.
bib- BibTeX for citation managers and bibliographic tooling
citations- citation-only export in
harvard,apa, orieee
- citation-only export in
abstracts- metadata + abstract for each saved paper
fulltext- metadata + abstract + full text when available
- optional inclusion of references
This makes ScholarFetch useful as a corpus builder for downstream synthesis agents.
MCP Server
ScholarFetch exposes the same research model through MCP.
Modes:
- Classic MCP (stdio):
python3 scholarfetch_mcp.py - FastMCP stdio:
python3 scholarfetch_fastmcp.py --transport stdio - FastMCP SSE:
python3 scholarfetch_fastmcp.py --transport sse --host 127.0.0.1 --port 8000 - FastMCP streamable HTTP:
python3 scholarfetch_fastmcp.py --transport streamable-http --host 127.0.0.1 --port 8000 --http-path /mcp
Validation:
python3 scholarfetch_mcp.py --self-test
python3 scholarfetch_fastmcp.py --self-test
Public demo endpoints:
- Web UI: https://huggingface.co/spaces/Laibniz/ScholarFetch_Web
- Public MCP endpoint: https://laibniz-scholarfetch-web.hf.space/mcp/
- MCP Registry listing:
io.github.laibniz/scholarfetch
MCP Research Model
The MCP server is designed for agent workflows, not only one-off calls.
An agent can:
- Search papers
- Resolve authors
- Expand to author papers
- Read abstracts / full text
- Expand references
- Save promising papers into a named in-memory reading list
- Export the reading list as:
- citations
- abstracts
- BibTeX
- full-text corpus
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.
Repository Files
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 notes
For Agents
If 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.
Contributing
See CONTRIBUTING.md.
Security
See SECURITY.md.
License
MIT License. See LICENSE.
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.