Data · Local MCP server
Scholar MCP
FastMCP server for scholarly papers, patents, books and standards with docling PDF conversion.
What the MCP Registry states
The entry as published to the official MCP Registry (read 2026-10-04), latest version.
- Registry name
io.github.pvliesdonk/scholar-mcp- Version
- 2.0.0
- Status
- Active
- Category
- data
- Transport
- stdio (local process), Streamable HTTP
- Package
- PyPI, OCI image (Docker)
- Published
- 2026-09-11
- Updated
- 2026-09-11
- Publisher
- pvliesdonk (GitHub) · 3 servers with pages here
- Website
- pvliesdonk.github.io/scholar-mcp/
- Repository
- github.com/pvliesdonk/scholar-mcp
- Source
- Registry API entry
Packages
| Registry | Package | Version | Transport |
|---|---|---|---|
| PyPIruntime: uvx | pvliesdonk-scholar-mcp | 2.0.0 | stdio |
| OCI image (Docker) | ghcr.io/pvliesdonk/scholar-mcp:v2.0.0 | — | HTTP |
How to connect Scholar MCP
Scholar MCP runs locally from a Python package published to PyPI: pvliesdonk-scholar-mcp version 2.0.0. It speaks MCP over stdio, so the client starts it as a program and talks to it through standard input and output. It needs Python; clients usually start it with uvx (from uv) or after pip install — the usual command is uvx pvliesdonk-scholar-mcp. It reads these environment variables: SCHOLAR_MCP_KV_STORE_URL, SCHOLAR_MCP_TOOLS_ALLOW, SCHOLAR_MCP_TOOLS_DENY, SCHOLAR_MCP_SERVER_NAME, SCHOLAR_MCP_INSTANCE_DESCRIPTION, SCHOLAR_MCP_INSTRUCTIONS_EXTRA, SCHOLAR_MCP_INSTRUCTIONS, FASTMCP_LOG_LEVEL, FASTMCP_ENABLE_RICH_LOGGING, SCHOLAR_GITHUB_TOKEN (secret), SCHOLAR_MCP_READ_ONLY, SCHOLAR_MCP_S2_API_KEY (secret), SCHOLAR_MCP_DOCLING_URL, SCHOLAR_MCP_VLM_API_URL, SCHOLAR_MCP_VLM_API_KEY (secret), SCHOLAR_MCP_VLM_MODEL, SCHOLAR_MCP_CACHE_DIR, SCHOLAR_MCP_CONTACT_EMAIL, SCHOLAR_MCP_EPO_CONSUMER_KEY and SCHOLAR_MCP_EPO_CONSUMER_SECRET (secret); set them in the client's configuration for this server.
Scholar MCP runs locally from a container image in an OCI registry such as Docker Hub or GitHub Container Registry: ghcr.io/pvliesdonk/scholar-mcp:v2.0.0. The package starts a local server that speaks MCP over Streamable HTTP; the client then connects to it by URL. It reads these environment variables: SCHOLAR_MCP_BASE_URL, SCHOLAR_MCP_BEARER_TOKEN (secret), SCHOLAR_MCP_OIDC_CONFIG_URL, SCHOLAR_MCP_OIDC_CLIENT_ID, SCHOLAR_MCP_OIDC_CLIENT_SECRET (secret), SCHOLAR_MCP_OIDC_AUDIENCE, SCHOLAR_MCP_OIDC_REQUIRED_SCOPES, SCHOLAR_MCP_OIDC_ADVERTISED_SCOPES, SCHOLAR_MCP_OIDC_JWT_SIGNING_KEY (secret), SCHOLAR_MCP_OIDC_VERIFY_ACCESS_TOKEN, SCHOLAR_MCP_KV_STORE_URL, SCHOLAR_MCP_APP_DOMAIN, SCHOLAR_MCP_TOOLS_ALLOW, SCHOLAR_MCP_TOOLS_DENY, SCHOLAR_MCP_AUTH_MODE, SCHOLAR_MCP_BEARER_TOKENS_FILE, SCHOLAR_MCP_BEARER_DEFAULT_SUBJECT, SCHOLAR_MCP_SERVER_NAME, SCHOLAR_MCP_INSTANCE_DESCRIPTION and SCHOLAR_MCP_INSTRUCTIONS_EXTRA; set them in the client's configuration for this server.
In the mcpServers JSON format that many desktop and editor MCP clients read, the entry looks like this (placeholders in angle brackets):
{
"mcpServers": {
"scholar-mcp": {
"command": "uvx",
"args": [
"pvliesdonk-scholar-mcp"
],
"env": {
"SCHOLAR_MCP_KV_STORE_URL": "<value>",
"SCHOLAR_MCP_TOOLS_ALLOW": "<value>",
"SCHOLAR_MCP_TOOLS_DENY": "<value>",
"SCHOLAR_MCP_SERVER_NAME": "<value>",
"SCHOLAR_MCP_INSTANCE_DESCRIPTION": "<value>",
"SCHOLAR_MCP_INSTRUCTIONS_EXTRA": "<value>",
"SCHOLAR_MCP_INSTRUCTIONS": "<value>",
"FASTMCP_LOG_LEVEL": "<value>",
"FASTMCP_ENABLE_RICH_LOGGING": "<value>",
"SCHOLAR_GITHUB_TOKEN": "<secret>",
"SCHOLAR_MCP_READ_ONLY": "<value>",
"SCHOLAR_MCP_S2_API_KEY": "<secret>",
"SCHOLAR_MCP_DOCLING_URL": "<value>",
"SCHOLAR_MCP_VLM_API_URL": "<value>",
"SCHOLAR_MCP_VLM_API_KEY": "<secret>",
"SCHOLAR_MCP_VLM_MODEL": "<value>",
"SCHOLAR_MCP_CACHE_DIR": "<value>",
"SCHOLAR_MCP_CONTACT_EMAIL": "<value>",
"SCHOLAR_MCP_EPO_CONSUMER_KEY": "<value>",
"SCHOLAR_MCP_EPO_CONSUMER_SECRET": "<secret>"
}
}
}
}Derived from the registry entry, not tested here. What the server does, and on what terms, is set by its publisher; check its repository or website before giving it access to your accounts or files. How to add an MCP server to an assistant · Before you connect
More from pvliesdonk (GitHub)
| Server | Runs |
|---|---|
| Logo.dev MCPLook up company logos and brand data via the logo.dev API. | Local · stdio, HTTP |
| Paperless MCPPaperless-NGX over MCP: search, read, upload and tag documents; manage correspondents and types. | Local · stdio, HTTP |
More data servers
| Server | Runs |
|---|---|
| Schelling Add ForwardCommunication and persistent state for AI agents: spaces, posts, search, mailbox, direct messages. | Remote & Local · HTTP, stdio |
| SchemaThe AI that understands raw data: Schema over your tables and databases, as MCP tools. | Remote · HTTP |
| ScholarHardened Scholar MCP for deep academic research (Scopus, OpenAlex, Unpaywall) with PDF vision. | Local · stdio |
| Scholar MCPFederated academic search, citation traversal, persistent PDF download, and temporary reading. | Local · stdio |
| Scholar RAG MCPAcademic paper knowledge-base MCP server: PDF ingest, vector search with reranking, KB management. | Local · stdio |
| ScholarFetchMulti-engine scholarly research server for search, traversal, full text, and reading lists. | Remote · HTTP |
| SchoolScopeCalifornia school data for AI agents — scores, profiles, comparisons, feeder paths, UC pipelines. | Remote · HTTP |
| Science News Tracker — latest research & discovery headlines (scinews)Latest science news: research & discoveries. $0.01/query. Register in-session — free testnet funds. | Remote · HTTP |