pvliesdonk avatar

Scholar MCP

pvliesdonk/scholar-mcp

A FastMCP server that unifies scholarly search across papers, patents, books, and standards through Semantic Scholar, EPO OPS, Open Library, and standards bodies like NIST and IETF. You get full citation graphs with BFS traversal and shortest-path discovery, patent family lookups with NPL resolution, ISBN-based book enrichment, and RFC/ISO identifier resolution. It automatically enriches results with OpenAlex venue data and converts open-access PDFs to Markdown via docling-serve. Reach for this when you need to trace citation paths across domains, generate bibliographies with proper venue metadata, or cross-reference prior art that spans academic papers, patent claims, technical standards, and published books in a single workflow.

GitHub stars
3
tool
1
auth
Secret needed
transport
STDIO, HTTP
env vars
24
last updated
Nov 9, 2026

Tools

1 tools

Public tool metadata for what this MCP can expose to an agent.

search_papersSearch Google Scholar for academic papers, books, theses, and citations. Returns organic results with title, authors, snippet, citation count, and PDF links.8 params

Search Google Scholar for academic papers, books, theses, and citations. Returns organic results with title, authors, snippet, citation count, and PDF links.

Parameters* required
as_sdtstring
Search filter. '0,5' = articles excluding patents (default). '0,33' = case law. '4' = patents only.
as_yhiinteger
Latest publication year (inclusive).
as_ylointeger
Earliest publication year (inclusive). E.g. 2020.
hlstring
Language code (default 'en').
numinteger
Results per page (1-20, default 10).
qstring
Search query (paper title, author, topic, keywords).
scisbdinteger
Sort. 1 = include only abstracts; 2 = sort by date (most recent).one of 1 · 2
startinteger
Result offset for pagination (multiples of num).

Sponsors

Configuration

SCHOLAR_MCP_KV_STORE_URLdefault: file:///data/state

Persistent-state backend URL shared by every pvl-core subsystem that needs state. `memory://` is in-process and lost on restart; `file:///path` persists on one server; `redis://`, `dynamodb://` and `mongodb://` each need their matching extra. When unset, defaults to `file:///data

SCHOLAR_MCP_TOOLS_ALLOW

Comma-separated explicit tool names this instance exposes; every other tool is hidden from listings and cannot be invoked. Names matching no registered tool are inert. Mutually exclusive with `tools_deny`. Takes effect through `apply_tool_visibility`.

SCHOLAR_MCP_TOOLS_DENY

Comma-separated explicit tool names hidden from this instance (absent from listings, cannot be invoked). Names matching no registered tool are inert. Mutually exclusive with `tools_allow`. Takes effect through `apply_tool_visibility`.

SCHOLAR_MCP_SERVER_NAME

Rename this server instance; defaults to the project name.

SCHOLAR_MCP_INSTANCE_DESCRIPTION

Concise routing context that distinguishes this deployment's material or responsibility.

SCHOLAR_MCP_INSTRUCTIONS_EXTRA

Deployment-specific behavioral policy added to the generated MCP instructions.

SCHOLAR_MCP_INSTRUCTIONS

Legacy: replaces all generated MCP instructions (deprecated; use _INSTANCE_DESCRIPTION for routing and _INSTRUCTIONS_EXTRA for policy).

SCHOLAR_MCP_LOG_LEVELdefault: INFO

Log level for every logger in the process, FastMCP's included (DEBUG / INFO / WARNING / ERROR / CRITICAL). The -v CLI flag overrides to DEBUG. The unprefixed FASTMCP_LOG_LEVEL still works for one major version and logs a deprecation warning.

SCHOLAR_MCP_LOG_FORMAT

Log rendering. rich is one colour event key=value line per record, for a terminal; json is one JSON object per record, for a collector. Unset picks rich when stderr is a terminal and json everywhere else, so a container or journald gets JSON with no configuration.

SCHOLAR_GITHUB_TOKENsecret

GitHub token used to raise rate limits when fetching standards documents from GitHub. Optional; unauthenticated requests work at reduced limits.

SCHOLAR_MCP_READ_ONLYdefault: true

When true, write-tagged tools (PDF download and conversion cache writes) are hidden. Set false to enable them.

SCHOLAR_MCP_S2_API_KEYsecret

Semantic Scholar API key. Optional but strongly recommended: a key has an introductory 1 req/s allowance; anonymous users share capacity and may be throttled. Request one at https://www.semanticscholar.org/product/api#api-key-form.

SCHOLAR_MCP_DOCLING_URL

Base URL of a running docling-serve instance for PDF conversion (e.g. http://localhost:5001). When unset, PDF conversion tools return an error.

SCHOLAR_MCP_VLM_API_URL

OpenAI-compatible VLM endpoint for formula and figure enrichment during PDF conversion.

SCHOLAR_MCP_VLM_API_KEYsecret

API key for the VLM endpoint.

SCHOLAR_MCP_VLM_MODELdefault: gpt-4o

Model name to use with the VLM endpoint.

SCHOLAR_MCP_VLM_PARAMS

JSON object of extra request parameters for every VLM call, overriding the defaults, for a model that needs them (e.g. {"temperature": 1}).

SCHOLAR_MCP_CACHE_DIRdefault: /data/scholar-mcp

Directory for the SQLite cache database (cache.db) and downloaded PDFs (pdfs/, md/).

SCHOLAR_MCP_CONTACT_EMAIL

Contact email for the OpenAlex polite pool (improves rate limits). Also enables Unpaywall lookups as a PDF fallback source.

SCHOLAR_MCP_EPO_CONSUMER_KEY

EPO Open Patent Services consumer key. Optional; patent tools are hidden when unset. Register at https://developers.epo.org/user/register.

SCHOLAR_MCP_EPO_CONSUMER_SECRETsecret

EPO Open Patent Services consumer secret. Optional; patent tools are hidden when unset.

SCHOLAR_MCP_GOOGLE_BOOKS_API_KEYsecret

Google Books API key. Optional; book tools work unauthenticated at reduced rate limits.

SCHOLAR_MCP_ACCESS_LINKS

Links to a paper through your library, offered when no PDF can be fetched and with each paper lookup: a JSON list of objects with a label and an http(s) URL template, in priority order. Placeholders: {doi}, {doi_url} (the encoded doi.org URL, for wrapping), {openurl} (OpenURL 1.0

SCHOLAR_MCP_PDF_FETCH_ALLOW_PRIVATEdefault: false

When false (the default), a PDF download is refused if the host, or a redirect target, resolves to a loopback, private, link-local or other non-public address. This covers URLs the caller supplies and URLs taken from paper metadata. Set true to allow hosts on the server's own net

Readme

Details

Repository
github.com/pvliesdonk/scholar-mcp
Website
pvliesdonk.github.io/scholar-mcp
Category
Documents & Knowledge
Package
pvliesdonk-scholar-mcp
Transport
STDIO, HTTP
Auth
Required
Registry
MCP registry, active

More from pvliesdonk

Related Documents & Knowledge MCP servers

View all
1teampolarity avatarCosmos Mcpteampolarity/cosmos-mcpPersonal knowledge graph every MCP client reads from and writes to. Portable across agents.3stars
2adelaidasofia avatarFastMCP server for surgical queries against a vault knowledge graph (NetworkX noadelaidasofia/graph-query-mcpFastMCP server for surgical queries against a vault knowledge graph (NetworkX node-link JSON).…2stars
3sofya-co avatarSofyasofya-co/sofya-mcpWeb search, fetch, extract, and research for AI agents. Markdown output + AI-synthesized answers.2stars
4emcd avatarnb-mcp-serveremcd/nb-mcp-serverMCP server wrapping the nb CLI for LLM-friendly note-taking0stars
5calypso-so avatarCalypso Multimodal RAG MCPcalypso-so/calypso-mcp-serverCalypso multimodal RAG for grounded answers from docs, images, charts, and knowledge.2stars
6ddmanyes avatarsecond-brain MCPddmanyes/second-brain-mcpSelf-maintaining knowledge vault: figure-level search, auto-wikilinks, and memory compression.2stars