scholarfetch
Enables MCP agents to search academic literature across multiple scholarly engines, explore papers, authors, and references, inspect abstracts and full text, maintain saved paper collections, and export citations, BibTeX, abstracts, or full-text corpora.
README
ScholarFetch
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.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.
E2B
Using MCP to run code via e2b.