
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 toolsPublic 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.
as_sdtstringas_yhiintegeras_ylointegerhlstringnumintegerqstringscisbdinteger1 · 2startintegerSponsors
Configuration
SCHOLAR_MCP_KV_STORE_URLdefault: file:///data/statePersistent-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_ALLOWComma-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_DENYComma-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_NAMERename this server instance; defaults to the project name.
SCHOLAR_MCP_INSTANCE_DESCRIPTIONConcise routing context that distinguishes this deployment's material or responsibility.
SCHOLAR_MCP_INSTRUCTIONS_EXTRADeployment-specific behavioral policy added to the generated MCP instructions.
SCHOLAR_MCP_INSTRUCTIONSLegacy: replaces all generated MCP instructions (deprecated; use _INSTANCE_DESCRIPTION for routing and _INSTRUCTIONS_EXTRA for policy).
SCHOLAR_MCP_LOG_LEVELdefault: INFOLog 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_FORMATLog 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_TOKENsecretGitHub token used to raise rate limits when fetching standards documents from GitHub. Optional; unauthenticated requests work at reduced limits.
SCHOLAR_MCP_READ_ONLYdefault: trueWhen true, write-tagged tools (PDF download and conversion cache writes) are hidden. Set false to enable them.
SCHOLAR_MCP_S2_API_KEYsecretSemantic 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_URLBase 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_URLOpenAI-compatible VLM endpoint for formula and figure enrichment during PDF conversion.
SCHOLAR_MCP_VLM_API_KEYsecretAPI key for the VLM endpoint.
SCHOLAR_MCP_VLM_MODELdefault: gpt-4oModel name to use with the VLM endpoint.
SCHOLAR_MCP_VLM_PARAMSJSON 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-mcpDirectory for the SQLite cache database (cache.db) and downloaded PDFs (pdfs/, md/).
SCHOLAR_MCP_CONTACT_EMAILContact email for the OpenAlex polite pool (improves rate limits). Also enables Unpaywall lookups as a PDF fallback source.
SCHOLAR_MCP_EPO_CONSUMER_KEYEPO Open Patent Services consumer key. Optional; patent tools are hidden when unset. Register at https://developers.epo.org/user/register.
SCHOLAR_MCP_EPO_CONSUMER_SECRETsecretEPO Open Patent Services consumer secret. Optional; patent tools are hidden when unset.
SCHOLAR_MCP_GOOGLE_BOOKS_API_KEYsecretGoogle Books API key. Optional; book tools work unauthenticated at reduced rate limits.
SCHOLAR_MCP_ACCESS_LINKSLinks 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: falseWhen 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