Skip to main content
Glama
pvliesdonk

scholar-mcp

by pvliesdonk

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
FASTMCP_LOG_LEVELNoLog level for FastMCP internals and app loggers (DEBUG / INFO / WARNING / ERROR). The -v CLI flag overrides to DEBUG.INFO
SCHOLAR_GITHUB_TOKENNoGitHub personal access token for Relaton sync; lifts unauthenticated GitHub rate limit from 60/hr to 5,000/hr.
SCHOLAR_MCP_ACL_PATHNoPath to a TOML ACL file for per-subject authorization.
SCHOLAR_MCP_BASE_URLNoPublic base URL, required for OIDC (e.g. https://mcp.example.com).
SCHOLAR_MCP_CACHE_DIRNoDirectory for the SQLite cache database and downloaded PDFs./data/scholar-mcp
SCHOLAR_MCP_READ_ONLYNoIf true, write-tagged tools (fetch_paper_pdf, convert_pdf_to_markdown, etc.) are hidden.true
SCHOLAR_MCP_VLM_MODELNoModel name for VLM-enriched conversion.gpt-4o
SCHOLAR_MCP_S2_API_KEYNoSemantic Scholar API key; optional but recommended for higher rate limits.
SCHOLAR_MCP_DOCLING_URLNoBase URL of a running docling-serve instance (e.g. http://localhost:5001).
SCHOLAR_MCP_VLM_API_KEYNoAPI key for the VLM endpoint.
SCHOLAR_MCP_VLM_API_URLNoOpenAI-compatible VLM endpoint for formula/figure-enriched PDF conversion.
SCHOLAR_MCP_BEARER_TOKENNoStatic bearer token for HTTP transport authentication.
SCHOLAR_MCP_CONTACT_EMAILNoIncluded in the OpenAlex User-Agent for polite pool access (faster rate limits); also enables Unpaywall PDF lookups.
SCHOLAR_MCP_OIDC_CLIENT_IDNoOIDC client ID.
FASTMCP_ENABLE_RICH_LOGGINGNoSet to false for plain / structured JSON log output.true
SCHOLAR_MCP_EVENT_STORE_URLNoEvent store backend for HTTP session persistence — memory:// (dev), file:///path (survives restarts).memory://
SCHOLAR_MCP_OIDC_CONFIG_URLNoOIDC discovery endpoint URL.
SCHOLAR_MCP_EPO_CONSUMER_KEYNoEPO OPS consumer key; both key and secret must be set for patent tools to appear.
SCHOLAR_MCP_BEARER_TOKENS_FILENoPath to a TOML file with mapped bearer tokens for multi-subject authentication.
SCHOLAR_MCP_OIDC_CLIENT_SECRETNoOIDC client secret.
SCHOLAR_MCP_EPO_CONSUMER_SECRETNoEPO OPS consumer secret.
SCHOLAR_MCP_GOOGLE_BOOKS_API_KEYNoGoogle Books API key for higher rate limits (1000 req/day without key).
SCHOLAR_MCP_OIDC_JWT_SIGNING_KEYNoJWT signing key; required on Linux/Docker to survive restarts (openssl rand -hex 32).
SCHOLAR_MCP_BEARER_DEFAULT_SUBJECTNoDefault subject string for single-token bearer auth (default: bearer-anon).

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": true
}
logging
{}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
extensions
{
  "io.modelcontextprotocol/ui": {}
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
search_papersB

Search Semantic Scholar for papers matching a query.

get_paperA

Fetch full metadata for a single paper.

get_authorA

Fetch author profile and publications, or search by name.

If identifier looks like a numeric S2 author ID, fetches the author directly. Otherwise performs a name search and returns up to 5 candidates for disambiguation.

get_citationsA

Fetch papers that cite the given paper (forward citations).

get_referencesA

Fetch papers referenced by the given paper (backward references).

get_citation_graphA

Traverse the citation graph from one or more seed papers.

Performs BFS up to depth hops. Returns nodes (paper records) and directed edges. Hard-caps at max_nodes to prevent runaway expansion.

find_bridge_papersA

Find the shortest citation path between two papers.

Uses BFS over the citation/reference graph. Leverages cached citation and reference lists to minimise API calls.

recommend_papersA

Recommend papers based on positive (and optionally negative) examples.

batch_resolveA

Resolve a list of paper, patent, or book identifiers to full records.

Uses the S2 batch endpoint for paper IDs/DOIs, with OpenAlex fallback. Patent numbers (e.g. EP1234567A1) are auto-detected and resolved via the EPO OPS API when configured. ISBNs (prefixed ISBN:) are resolved via Open Library.

enrich_paperA

Fetch OpenAlex metadata to supplement Semantic Scholar data.

Resolves the paper's DOI from S2, then queries OpenAlex for the requested enrichment fields. Results are cached for 30 days.

get_task_resultA

Poll for the result of a background task.

When a tool returns {"queued": true, "task_id": "..."} it means the operation was submitted for background processing. Call this tool with the task_id to check whether it has completed.

PDF conversion tasks typically take 1-5 minutes. Keep polling — the response includes elapsed_seconds and a hint with expected duration while the task is in progress.

list_tasksA

List all active background tasks.

Returns: JSON list of {"task_id": ..., "status": ...} dicts.

generate_citationsA

Generate formatted citations for one or more papers.

Resolves papers via Semantic Scholar, optionally enriches with OpenAlex metadata, and formats as BibTeX, CSL-JSON, or RIS.

search_booksA

Search for books by title, author, or free text.

Uses Open Library. Prefer title and author over query — they use dedicated indexes and return far better results.

get_bookA

Fetch book metadata by ISBN or Open Library ID.

get_book_excerptA

Get a book excerpt and preview info from Google Books.

Returns the publisher description, text snippet, and a link to the Google Books preview page. Google Books does not expose full chapter text via API -- the excerpt is a publisher-provided summary and/or search snippet.

recommend_booksA

Recommend books for a subject via Open Library.

Uses the Open Library subject API to find popular books on a topic, sorted by edition count (a proxy for popularity).

resolve_standard_identifierA

Normalise a messy standard citation string to its canonical form.

Tries local regex first (fast, no network). Falls back to querying source APIs when local patterns don't match. Returns all candidates when the input is ambiguous.

search_standardsA

Search technical standards by identifier, title, or free text.

Searches NIST, IETF, W3C, and ETSI. Use body to restrict to one source body.

get_standardA

Retrieve a standard by identifier (canonical or fuzzy).

Resolves fuzzy inputs (e.g. "rfc9000", "nist 800-53") to their canonical form before fetching. With fetch_full_text=True and docling configured, downloads and converts the full text.

get_sync_statusA

Report the last sync run for each standards body.

One row per body. started_at / finished_at are Unix timestamps (seconds). errors is a list of non-fatal error strings from the most recent run (empty on success).

Returns: JSON {"runs": [{body, upstream_ref, added, updated, unchanged, withdrawn, errors, started_at, finished_at}, ...]}. Empty runs list when no sync has been run yet.

get_server_infoA

Report wrapper and upstream version info for scholar-mcp. Returns server_name, server_version, core_version (fastmcp-pvl-core), and (when configured) an upstream version block. Useful for verifying a deployment matches the expected build.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/pvliesdonk/scholar-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server