laibniz avatar

ScholarFetch

laibniz/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 scholarfetch

Run 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 tools

Verified 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...

Parameters* required
enginesstring
default:
limitinteger
default: 20
query*string
scholarfetch_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.

Parameters* required
doi*string
enginesstring
default:
scholarfetch_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`.

Parameters* required
enginesstring
default:
limitinteger
default: 10
name*string
scholarfetch_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...

Parameters* required
author_idvalue
author_namevalue
candidate_indexinteger
default: 1
enginesstring
default:
filtersstring
default:
limitinteger
default: 50
scholarfetch_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.

Parameters* required
author_namevalue
candidate_indexinteger
default: 1
doivalue
enginesstring
default:
paper_indexinteger
default: 1
scholarfetch_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...

Parameters* required
author_namevalue
candidate_indexinteger
default: 1
doivalue
enginesstring
default:
paper_indexinteger
default: 1
scholarfetch_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...

Parameters* required
author_namevalue
candidate_indexinteger
default: 1
doivalue
enginesstring
default:
paper_indexinteger
default: 1
scholarfetch_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...

Parameters* required
author_namevalue
candidate_indexinteger
default: 1
collectionstring
default: default
doivalue
enginesstring
default:
paper_indexinteger
default: 1
paper_jsonvalue
queryvalue
result_indexinteger
default: 1
scholarfetch_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.

Parameters* required
collectionstring
default: default
scholarfetch_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.

Parameters* required
collectionstring
default: default
doivalue
titlevalue
scholarfetch_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.

Parameters* required
collectionstring
default: default
scholarfetch_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...

Parameters* required
collectionstring
default: default
enginesstring
default:
formatstring
default: citations
include_referencesboolean
default: false
stylestring
default: harvard

Sponsors

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

View the full README on GitHub

Details

Repository
github.com/laibniz/scholarfetch
Category
Search & Web Crawling
Transport
HTTP
Registry
MCP registry, active
Tools verified
Nov 6, 2026

Related Search & Web Crawling MCP servers

View all
1lignertys avatarReddit Insights Mcplignertys/reddit-insights-mcpAI-powered Reddit search. Search millions of posts, explore subreddits, discover trends.0stars
2ljdigital avatarAu Bizintel Mcpljdigital/au-bizintel-mcpAustralian business intelligence MCP — ABN lookup, business search & AI prospect assessment via ABR.0stars
3luisa-sys avatarLyra Mcp Serverluisa-sys/lyra-mcp-serverSearch and discover Lyra profiles.0stars
4evergrow-management-pte-ltd avatarpro.makeupevergrow-management-pte-ltd/pro-makeup-mcpSearch 214K+ certified makeup pros worldwide: artists, salons, schools, shops, brands.0stars
5malkreide avatarNews Monitor Mcpmalkreide/news-monitor-mcpNews monitoring via WorldNewsAPI: search, sentiment, headlines, trends, alerts (Swiss default)0stars
6malkreide avatarOpenlex Mcpmalkreide/openlex-mcpCanton Zurich legislation via ZH-Lex with full-text search and article extraction0stars