
ScholarFetch
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.
- tools
- 12
- transport
- HTTP
- last updated
- Mar 23, 2026
Install
From registry metadata$ npx add-mcp https://laibniz-scholarfetch-web.hf.space/mcp/ --name scholarfetchRun in your terminal. add-mcp asks which agents to add it to (Claude Code, Codex, Cursor and more). Add -g to install it for every project.
Review the command, arguments and environment values before installing. MCP servers run with your local permissions.
Other ways
Claude Code
$ claude mcp add --transport http scholarfetch https://laibniz-scholarfetch-web.hf.space/mcp/Run in your terminal. Add --scope user to make it available in every project.
Tools
Verified live · 12 toolsVerified live against the running server on Nov 6, 2026.
scholarfetch_searchStart a research traversal from keywords, a DOI, or a person name. Returns deduplicated paper records that you can inspect, save, expand through references, or use as seeds for author exploration. If you pass `engines`, use a comma-separated subset of: elsevier, openalex, cros...3 params
Start a research traversal from keywords, a DOI, or a person name. Returns deduplicated paper records that you can inspect, save, expand through references, or use as seeds for author exploration. If you pass `engines`, use a comma-separated subset of: elsevier, openalex, cros...
enginesstringlimitintegerquery*stringscholarfetch_doi_lookupEnrich one known DOI with metadata, reading links, and full-text availability signals. If you pass `engines`, use a comma-separated subset of: elsevier, openalex, crossref, arxiv, europepmc, springer, semanticscholar.2 params
Enrich one known DOI with metadata, reading links, and full-text availability signals. If you pass `engines`, use a comma-separated subset of: elsevier, openalex, crossref, arxiv, europepmc, springer, semanticscholar.
doi*stringenginesstringscholarfetch_author_candidatesDisambiguate a human author name into ranked identity candidates. Use this before `scholarfetch_author_papers` when the name is ambiguous and you need a stable `candidate_index`. If you pass `engines`, it must include `openalex`.3 params
Disambiguate a human author name into ranked identity candidates. Use this before `scholarfetch_author_papers` when the name is ambiguous and you need a stable `candidate_index`. If you pass `engines`, it must include `openalex`.
enginesstringlimitintegername*stringscholarfetch_author_papersExpand one author into a deduplicated paper list. This is the main author->paper traversal tool and supports research filters. Use `author_id` when you already know the exact author, or `author_name` plus `candidate_index` after `scholarfetch_author_candidates`. Supported comm...6 params
Expand one author into a deduplicated paper list. This is the main author->paper traversal tool and supports research filters. Use `author_id` when you already know the exact author, or `author_name` plus `candidate_index` after `scholarfetch_author_candidates`. Supported comm...
author_idvalueauthor_namevaluecandidate_indexintegerenginesstringfiltersstringlimitintegerscholarfetch_abstractRead the best abstract available for a paper. Use with a DOI or with author_name + candidate_index + paper_index after author_papers. If you pass `engines`, use a comma-separated subset of: elsevier, openalex, crossref, arxiv, europepmc, springer, semanticscholar.5 params
Read the best abstract available for a paper. Use with a DOI or with author_name + candidate_index + paper_index after author_papers. If you pass `engines`, use a comma-separated subset of: elsevier, openalex, crossref, arxiv, europepmc, springer, semanticscholar.
author_namevaluecandidate_indexintegerdoivalueenginesstringpaper_indexintegerscholarfetch_article_textRead full paper text when machine-readable content is recoverable. Use with a DOI or with author_name + candidate_index + paper_index. Uses Elsevier first, then open-access fallbacks such as Springer OA, Europe PMC, arXiv PDF, and generic PDF URLs when text is recoverable. If...5 params
Read full paper text when machine-readable content is recoverable. Use with a DOI or with author_name + candidate_index + paper_index. Uses Elsevier first, then open-access fallbacks such as Springer OA, Europe PMC, arXiv PDF, and generic PDF URLs when text is recoverable. If...
author_namevaluecandidate_indexintegerdoivalueenginesstringpaper_indexintegerscholarfetch_referencesExpand a paper into its references. Use with a DOI or with author_name + candidate_index + paper_index. This is the main edge-expansion tool for traversing the literature graph. If you pass `engines`, use a comma-separated subset of: elsevier, openalex, crossref, arxiv, europe...5 params
Expand a paper into its references. Use with a DOI or with author_name + candidate_index + paper_index. This is the main edge-expansion tool for traversing the literature graph. If you pass `engines`, use a comma-separated subset of: elsevier, openalex, crossref, arxiv, europe...
author_namevaluecandidate_indexintegerdoivalueenginesstringpaper_indexintegerscholarfetch_saved_addAdd one paper to a named in-memory reading list on the MCP server. Best input is paper_json copied from another ScholarFetch tool result, but DOI, query+result_index, or author_name+candidate_index+paper_index also work. Reuse the same collection name across calls to keep one...9 params
Add one paper to a named in-memory reading list on the MCP server. Best input is paper_json copied from another ScholarFetch tool result, but DOI, query+result_index, or author_name+candidate_index+paper_index also work. Reuse the same collection name across calls to keep one...
author_namevaluecandidate_indexintegercollectionstringdoivalueenginesstringpaper_indexintegerpaper_jsonvaluequeryvalueresult_indexintegerscholarfetch_saved_listList all papers currently saved in a named in-memory reading list. Use this to inspect the working set before exporting or removing items.1 params
List all papers currently saved in a named in-memory reading list. Use this to inspect the working set before exporting or removing items.
collectionstringscholarfetch_saved_removeRemove one paper from a named in-memory reading list by DOI or exact title.3 params
Remove one paper from a named in-memory reading list by DOI or exact title.
collectionstringdoivaluetitlevaluescholarfetch_saved_clearClear all papers from a named in-memory reading list. Useful when restarting a research branch.1 params
Clear all papers from a named in-memory reading list. Useful when restarting a research branch.
collectionstringscholarfetch_saved_exportExport the current reading list as citations, abstracts, BibTeX, or an aggregated full-text corpus. Valid `format` values: citations, abstracts, bib, fulltext. Valid `style` values when `format=citations`: harvard, apa, ieee. Use `include_references=true` with `format=fulltext...5 params
Export the current reading list as citations, abstracts, BibTeX, or an aggregated full-text corpus. Valid `format` values: citations, abstracts, bib, fulltext. Valid `style` values when `format=citations`: harvard, apa, ieee. Use `include_references=true` with `format=fulltext...
collectionstringenginesstringformatstringinclude_referencesbooleanstylestringSponsors
Readme
ScholarFetch
ScholarFetch Logo
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
Details
- Repository
- github.com/laibniz/scholarfetch
- Category
- Search & Web Crawling
- Transport
- HTTP
- Registry
- MCP registry, active
- Tools verified
- Nov 6, 2026