Scholar MCP
概要
作者による説明(英語の原文)
Scholarly papers, patents, books, standards and PDF conversion
PopNx MCPの3つの柱
この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。
- 利用者の声iレビューはまだありませんログインした利用者のレビュー。レビューが付くと平均が表示されます
- 私たちの基本チェックi2項目中2項目に合格公開情報からチェック。コードはまだスキャンしていません
- 利用状況i初期↓ 1063/週 · ★ 3
できること
このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。
- 接続方法: パソコンで動く
- トランスポート: stdio, Streamable HTTP
- カテゴリ: 検索・AIの記憶
- 入力が必要なもの:SCHOLAR_GITHUB_TOKEN, SCHOLAR_MCP_S2_API_KEY, SCHOLAR_MCP_VLM_API_KEY, SCHOLAR_MCP_EPO_CONSUMER_SECRET, SCHOLAR_MCP_GOOGLE_BOOKS_API_KEY
インストール
使っているAIアプリを選んで、設定をコピーしてください。
インストールの前に
- 基本チェック:2項目中2項目に合格
- あなたのパソコンで、あなたのユーザーと同じ権限(ファイル、ネットワーク、アプリ)で動きます。
- 自分で入力するもの:
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,SCHOLAR_MCP_LOG_LEVEL,SCHOLAR_MCP_LOG_FORMAT,SCHOLAR_GITHUB_TOKEN,SCHOLAR_MCP_READ_ONLY,SCHOLAR_MCP_S2_API_KEY,SCHOLAR_MCP_DOCLING_URL,SCHOLAR_MCP_VLM_API_URL,SCHOLAR_MCP_VLM_API_KEY,SCHOLAR_MCP_VLM_MODEL,SCHOLAR_MCP_VLM_PARAMS,SCHOLAR_MCP_CACHE_DIR,SCHOLAR_MCP_CONTACT_EMAIL,SCHOLAR_MCP_EPO_CONSUMER_KEY,SCHOLAR_MCP_EPO_CONSUMER_SECRET,SCHOLAR_MCP_GOOGLE_BOOKS_API_KEY,SCHOLAR_MCP_ACCESS_LINKS,SCHOLAR_MCP_PDF_FETCH_ALLOW_PRIVATE,SCHOLAR_MCP_JOBS_SOFT_DEADLINE_S,SCHOLAR_MCP_JOBS_RESULT_TTL_S,SCHOLAR_MCP_JOBS_MAX_PER_SUBJECT,SCHOLAR_MCP_TRANSFER_TTL_DEFAULT_S,SCHOLAR_MCP_TRANSFER_TTL_MAX_S,SCHOLAR_MCP_TRANSFER_GRACE_TTL_S,SCHOLAR_MCP_TRANSFER_LEASE_S,SCHOLAR_MCP_TRANSFER_MAX_UPLOAD_BYTES
「秘密」と表示された値は、あなたのアカウントの鍵です。絶対に人に教えたり、チャットに貼り付けたりしないでください。
必要なもの
どのアプリを使っていますか?
上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。
Claude Desktop → Settings → Developer → Edit Config を開き、claude_desktop_config.json にこれを貼り付けます
{
"mcpServers": {
"scholar": {
"command": "uvx",
"args": [
"pvliesdonk-scholar-mcp"
],
"env": {
"SCHOLAR_MCP_KV_STORE_URL": "your-value",
"SCHOLAR_MCP_TOOLS_ALLOW": "your-value",
"SCHOLAR_MCP_TOOLS_DENY": "your-value",
"SCHOLAR_MCP_SERVER_NAME": "your-value",
"SCHOLAR_MCP_INSTANCE_DESCRIPTION": "your-value",
"SCHOLAR_MCP_INSTRUCTIONS_EXTRA": "your-value",
"SCHOLAR_MCP_INSTRUCTIONS": "your-value",
"SCHOLAR_MCP_LOG_LEVEL": "your-value",
"SCHOLAR_MCP_LOG_FORMAT": "your-value",
"SCHOLAR_GITHUB_TOKEN": "your-value",
"SCHOLAR_MCP_READ_ONLY": "your-value",
"SCHOLAR_MCP_S2_API_KEY": "your-value",
"SCHOLAR_MCP_DOCLING_URL": "your-value",
"SCHOLAR_MCP_VLM_API_URL": "your-value",
"SCHOLAR_MCP_VLM_API_KEY": "your-value",
"SCHOLAR_MCP_VLM_MODEL": "your-value",
"SCHOLAR_MCP_VLM_PARAMS": "your-value",
"SCHOLAR_MCP_CACHE_DIR": "your-value",
"SCHOLAR_MCP_CONTACT_EMAIL": "your-value",
"SCHOLAR_MCP_EPO_CONSUMER_KEY": "your-value",
"SCHOLAR_MCP_EPO_CONSUMER_SECRET": "your-value",
"SCHOLAR_MCP_GOOGLE_BOOKS_API_KEY": "your-value",
"SCHOLAR_MCP_ACCESS_LINKS": "your-value",
"SCHOLAR_MCP_PDF_FETCH_ALLOW_PRIVATE": "your-value",
"SCHOLAR_MCP_JOBS_SOFT_DEADLINE_S": "your-value",
"SCHOLAR_MCP_JOBS_RESULT_TTL_S": "your-value",
"SCHOLAR_MCP_JOBS_MAX_PER_SUBJECT": "your-value",
"SCHOLAR_MCP_TRANSFER_TTL_DEFAULT_S": "your-value",
"SCHOLAR_MCP_TRANSFER_TTL_MAX_S": "your-value",
"SCHOLAR_MCP_TRANSFER_GRACE_TTL_S": "your-value",
"SCHOLAR_MCP_TRANSFER_LEASE_S": "your-value",
"SCHOLAR_MCP_TRANSFER_MAX_UPLOAD_BYTES": "your-value"
}
}
}
}ターミナルでこれを実行します
claude mcp add scholar --env SCHOLAR_MCP_KV_STORE_URL=your-value --env SCHOLAR_MCP_TOOLS_ALLOW=your-value --env SCHOLAR_MCP_TOOLS_DENY=your-value --env SCHOLAR_MCP_SERVER_NAME=your-value --env SCHOLAR_MCP_INSTANCE_DESCRIPTION=your-value --env SCHOLAR_MCP_INSTRUCTIONS_EXTRA=your-value --env SCHOLAR_MCP_INSTRUCTIONS=your-value --env SCHOLAR_MCP_LOG_LEVEL=your-value --env SCHOLAR_MCP_LOG_FORMAT=your-value --env SCHOLAR_GITHUB_TOKEN=your-value --env SCHOLAR_MCP_READ_ONLY=your-value --env SCHOLAR_MCP_S2_API_KEY=your-value --env SCHOLAR_MCP_DOCLING_URL=your-value --env SCHOLAR_MCP_VLM_API_URL=your-value --env SCHOLAR_MCP_VLM_API_KEY=your-value --env SCHOLAR_MCP_VLM_MODEL=your-value --env SCHOLAR_MCP_VLM_PARAMS=your-value --env SCHOLAR_MCP_CACHE_DIR=your-value --env SCHOLAR_MCP_CONTACT_EMAIL=your-value --env SCHOLAR_MCP_EPO_CONSUMER_KEY=your-value --env SCHOLAR_MCP_EPO_CONSUMER_SECRET=your-value --env SCHOLAR_MCP_GOOGLE_BOOKS_API_KEY=your-value --env SCHOLAR_MCP_ACCESS_LINKS=your-value --env SCHOLAR_MCP_PDF_FETCH_ALLOW_PRIVATE=your-value --env SCHOLAR_MCP_JOBS_SOFT_DEADLINE_S=your-value --env SCHOLAR_MCP_JOBS_RESULT_TTL_S=your-value --env SCHOLAR_MCP_JOBS_MAX_PER_SUBJECT=your-value --env SCHOLAR_MCP_TRANSFER_TTL_DEFAULT_S=your-value --env SCHOLAR_MCP_TRANSFER_TTL_MAX_S=your-value --env SCHOLAR_MCP_TRANSFER_GRACE_TTL_S=your-value --env SCHOLAR_MCP_TRANSFER_LEASE_S=your-value --env SCHOLAR_MCP_TRANSFER_MAX_UPLOAD_BYTES=your-value -- uvx pvliesdonk-scholar-mcp動かす前に、空欄の値を入力してください。
または、設定を自分でコピーする
プロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます
{
"mcpServers": {
"scholar": {
"command": "uvx",
"args": [
"pvliesdonk-scholar-mcp"
],
"env": {
"SCHOLAR_MCP_KV_STORE_URL": "your-value",
"SCHOLAR_MCP_TOOLS_ALLOW": "your-value",
"SCHOLAR_MCP_TOOLS_DENY": "your-value",
"SCHOLAR_MCP_SERVER_NAME": "your-value",
"SCHOLAR_MCP_INSTANCE_DESCRIPTION": "your-value",
"SCHOLAR_MCP_INSTRUCTIONS_EXTRA": "your-value",
"SCHOLAR_MCP_INSTRUCTIONS": "your-value",
"SCHOLAR_MCP_LOG_LEVEL": "your-value",
"SCHOLAR_MCP_LOG_FORMAT": "your-value",
"SCHOLAR_GITHUB_TOKEN": "your-value",
"SCHOLAR_MCP_READ_ONLY": "your-value",
"SCHOLAR_MCP_S2_API_KEY": "your-value",
"SCHOLAR_MCP_DOCLING_URL": "your-value",
"SCHOLAR_MCP_VLM_API_URL": "your-value",
"SCHOLAR_MCP_VLM_API_KEY": "your-value",
"SCHOLAR_MCP_VLM_MODEL": "your-value",
"SCHOLAR_MCP_VLM_PARAMS": "your-value",
"SCHOLAR_MCP_CACHE_DIR": "your-value",
"SCHOLAR_MCP_CONTACT_EMAIL": "your-value",
"SCHOLAR_MCP_EPO_CONSUMER_KEY": "your-value",
"SCHOLAR_MCP_EPO_CONSUMER_SECRET": "your-value",
"SCHOLAR_MCP_GOOGLE_BOOKS_API_KEY": "your-value",
"SCHOLAR_MCP_ACCESS_LINKS": "your-value",
"SCHOLAR_MCP_PDF_FETCH_ALLOW_PRIVATE": "your-value",
"SCHOLAR_MCP_JOBS_SOFT_DEADLINE_S": "your-value",
"SCHOLAR_MCP_JOBS_RESULT_TTL_S": "your-value",
"SCHOLAR_MCP_JOBS_MAX_PER_SUBJECT": "your-value",
"SCHOLAR_MCP_TRANSFER_TTL_DEFAULT_S": "your-value",
"SCHOLAR_MCP_TRANSFER_TTL_MAX_S": "your-value",
"SCHOLAR_MCP_TRANSFER_GRACE_TTL_S": "your-value",
"SCHOLAR_MCP_TRANSFER_LEASE_S": "your-value",
"SCHOLAR_MCP_TRANSFER_MAX_UPLOAD_BYTES": "your-value"
}
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
または、設定を自分でコピーする
プロジェクトの .vscode/mcp.json に貼り付けます
{
"servers": {
"scholar": {
"type": "stdio",
"command": "uvx",
"args": [
"pvliesdonk-scholar-mcp"
],
"env": {
"SCHOLAR_MCP_KV_STORE_URL": "your-value",
"SCHOLAR_MCP_TOOLS_ALLOW": "your-value",
"SCHOLAR_MCP_TOOLS_DENY": "your-value",
"SCHOLAR_MCP_SERVER_NAME": "your-value",
"SCHOLAR_MCP_INSTANCE_DESCRIPTION": "your-value",
"SCHOLAR_MCP_INSTRUCTIONS_EXTRA": "your-value",
"SCHOLAR_MCP_INSTRUCTIONS": "your-value",
"SCHOLAR_MCP_LOG_LEVEL": "your-value",
"SCHOLAR_MCP_LOG_FORMAT": "your-value",
"SCHOLAR_GITHUB_TOKEN": "your-value",
"SCHOLAR_MCP_READ_ONLY": "your-value",
"SCHOLAR_MCP_S2_API_KEY": "your-value",
"SCHOLAR_MCP_DOCLING_URL": "your-value",
"SCHOLAR_MCP_VLM_API_URL": "your-value",
"SCHOLAR_MCP_VLM_API_KEY": "your-value",
"SCHOLAR_MCP_VLM_MODEL": "your-value",
"SCHOLAR_MCP_VLM_PARAMS": "your-value",
"SCHOLAR_MCP_CACHE_DIR": "your-value",
"SCHOLAR_MCP_CONTACT_EMAIL": "your-value",
"SCHOLAR_MCP_EPO_CONSUMER_KEY": "your-value",
"SCHOLAR_MCP_EPO_CONSUMER_SECRET": "your-value",
"SCHOLAR_MCP_GOOGLE_BOOKS_API_KEY": "your-value",
"SCHOLAR_MCP_ACCESS_LINKS": "your-value",
"SCHOLAR_MCP_PDF_FETCH_ALLOW_PRIVATE": "your-value",
"SCHOLAR_MCP_JOBS_SOFT_DEADLINE_S": "your-value",
"SCHOLAR_MCP_JOBS_RESULT_TTL_S": "your-value",
"SCHOLAR_MCP_JOBS_MAX_PER_SUBJECT": "your-value",
"SCHOLAR_MCP_TRANSFER_TTL_DEFAULT_S": "your-value",
"SCHOLAR_MCP_TRANSFER_TTL_MAX_S": "your-value",
"SCHOLAR_MCP_TRANSFER_GRACE_TTL_S": "your-value",
"SCHOLAR_MCP_TRANSFER_LEASE_S": "your-value",
"SCHOLAR_MCP_TRANSFER_MAX_UPLOAD_BYTES": "your-value"
}
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
これはパソコンで動くサーバーですが、ChatGPTがつなげるのはインターネット上のサーバーだけです。ほかのアプリを選んでください。
選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。
自分で入力する値
SCHOLAR_MCP_KV_STORE_URLenvPersistent-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 `…SCHOLAR_MCP_TOOLS_ALLOWenvComma-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_…SCHOLAR_MCP_TOOLS_DENYenvComma-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 effe…SCHOLAR_MCP_SERVER_NAMEenvRename this server instance; defaults to the project name.SCHOLAR_MCP_INSTANCE_DESCRIPTIONenvConcise routing context that distinguishes this deployment's material or responsibility.SCHOLAR_MCP_INSTRUCTIONS_EXTRAenvDeployment-specific behavioral policy added to the generated MCP instructions.SCHOLAR_MCP_INSTRUCTIONSenvLegacy: replaces all generated MCP instructions (deprecated; use _INSTANCE_DESCRIPTION for routing and _INSTRUCTIONS_EXTRA for policy).SCHOLAR_MCP_LOG_LEVELenvLog 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 maj…SCHOLAR_MCP_LOG_FORMATenvLog 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…- GitHub token used to raise rate limits when fetching standards documents from GitHub. Optional; unauthenticated requests work at reduced limits.
SCHOLAR_MCP_READ_ONLYenvWhen true, write-tagged tools (PDF download and conversion cache writes) are hidden. Set false to enable them.- 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.semanticschol…
SCHOLAR_MCP_DOCLING_URLenvBase 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_URLenvOpenAI-compatible VLM endpoint for formula and figure enrichment during PDF conversion.- API key for the VLM endpoint.
SCHOLAR_MCP_VLM_MODELenvModel name to use with the VLM endpoint.SCHOLAR_MCP_VLM_PARAMSenvJSON 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_DIRenvDirectory for the SQLite cache database (cache.db) and downloaded PDFs (pdfs/, md/).SCHOLAR_MCP_CONTACT_EMAILenvContact email for the OpenAlex polite pool (improves rate limits). Also enables Unpaywall lookups as a PDF fallback source.SCHOLAR_MCP_EPO_CONSUMER_KEYenvEPO Open Patent Services consumer key. Optional; patent tools are hidden when unset. Register at https://developers.epo.org/user/register.- EPO Open Patent Services consumer secret. Optional; patent tools are hidden when unset.
- Google Books API key. Optional; book tools work unauthenticated at reduced rate limits.
SCHOLAR_MCP_ACCESS_LINKSenvLinks 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:…SCHOLAR_MCP_PDF_FETCH_ALLOW_PRIVATEenvWhen 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 an…SCHOLAR_MCP_JOBS_SOFT_DEADLINE_SenvSeconds a long-running tool call may run in the foreground before it is promoted to a background job and a job handle is returned instead.SCHOLAR_MCP_JOBS_RESULT_TTL_SenvSeconds a background-job record (working or finished) is retained for polling before it expires from the store.SCHOLAR_MCP_JOBS_MAX_PER_SUBJECTenvMaximum live background jobs per calling subject; further promotions are rejected until older records expire.SCHOLAR_MCP_TRANSFER_TTL_DEFAULT_SenvLink lifetime in seconds when the caller requests no explicit TTL.SCHOLAR_MCP_TRANSFER_TTL_MAX_SenvCeiling in seconds a caller-requested link TTL is clamped to.SCHOLAR_MCP_TRANSFER_GRACE_TTL_SenvPost-success grace window in seconds: a served token's TTL shrinks to this so a stalled transfer can retry within it.SCHOLAR_MCP_TRANSFER_LEASE_SenvCrashed-handler reclaim window in seconds for an in-flight reservation.SCHOLAR_MCP_TRANSFER_MAX_UPLOAD_BYTESenvMaximum size in bytes of a single upload.
この設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。
使えるアプリ
このサーバーのつなぎ方と、各アプリの公式ドキュメントに基づきます。2026年11月10日に確認。
パソコン上で動かせるアプリ
ClaudeGooseLM StudioMsty StudioCherry StudioCursorVS Code + GitHub CopilotVisual StudioWindsurf (Devin Desktop)ZedKiroClineContinueJetBrains AI AssistantClaude CodeCodex CLIGemini CLIOpenCodenodecodeWarpLibreChatRaycast
できること
パソコンで動くサーバーです。インストールすると、ツール一覧がAIアプリに表示されます。
基本チェックi
誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月11日にチェック
- ✓ 合格
作者とリポジトリが一致
レジストリ名は、リポジトリを所有するGitHubアカウント pvliesdonk で確認済みです
- ✓ 合格
今もメンテナンスされている
コードの最終更新:昨日
- … 未チェック
ライセンスがある
このリポジトリはまだGitHubから読み取っていません
- – 対象外
エンドポイントが応答する
これはパソコンで動くため、インターネット上のエンドポイントはありません
- – 対象外
OAuthでサインイン
パソコンで動き、代わりにローカルの設定を使います
- … 未チェック
ツールの説明に隠れた指示がない
パソコンで動くサーバーです。ツール一覧を読み取れるのは、インターネット上のエンドポイントがある場合だけです
ユーザーレビュー
まだレビューはありません
検索・AIの記憶のほかのサーバーとの比較i
- このカテゴリのほかの5867件のうち84%よりスターが多い
- このカテゴリのほかの5867件のうち96%より最近レジストリに公開
- 基本チェックの結果が、このカテゴリのほかの5867件のうち100%と同じかそれ以上
レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。
よくある質問
Scholar MCPは安全ですか?
当てはまる基本チェック2項目のうち2項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。
どんなキーやコードが必要ですか?
入力が必要なもの:SCHOLAR_GITHUB_TOKEN, SCHOLAR_MCP_S2_API_KEY, SCHOLAR_MCP_VLM_API_KEY, SCHOLAR_MCP_EPO_CONSUMER_SECRET, SCHOLAR_MCP_GOOGLE_BOOKS_API_KEY
パソコンで動きますか、それともクラウドですか?
あなたのパソコンで動きます。必要なときにAIアプリが起動し、データは作者のサーバーを通りません(サーバー自体がオンラインサービスを呼び出す場合を除きます)。
今もメンテナンスされていますか?
GitHubリポジトリの最終更新は昨日、最新バージョン(3.2.0)がレジストリに届いたのは昨日です。
どのアプリで使えますか?
Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。パソコンにPython (uv), Dockerも必要です。
代わりに使えるものは?
同じカテゴリには:Ruflo, Context7, Metabase
代わりの候補
同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。
カードの見方:↓ 週あたりのダウンロードi★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i
作者のREADME
READMEを開く
作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。
Scholar MCP
Scholarly papers, patents, books, standards and PDF conversion
[Documentation](https://pvliesdonk.github.io/scholar-mcp/) | [Config wizard](https://pvliesdonk.github.io/scholar-mcp/latest/reference/configuration-generator/) | [PyPI](https://pypi.org/project/pvliesdonk-scholar-mcp/) | [Docker](https://github.com/pvliesdonk/scholar-mcp/pkgs/container/scholar-mcp)
29 tools, organised by scholarly source type.
Source domains
- Papers: full-text search with year/venue/field/citation filters; single-paper lookup by DOI, S2 ID, arXiv ID, ACM ID, or PubMed ID; author profile and name search; forward citations, backward references, BFS graph traversal, shortest-path bridge discovery; recommendations from positive/negative examples; BibTeX/CSL-JSON/RIS citation generation with OpenAlex venue enrichment.
- Patents: search across 100+ patent offices via EPO OPS with CPC/applicant/inventor/jurisdiction filters; bibliographic, claims, description, family, legal, and citations sections; NPL-to-paper resolution via Semantic Scholar and paper-to-patent citation discovery. EPO credentials are optional; other domains work without them.
- Books: Open Library search by title/author/keywords, no API key required; lookup by ISBN-10/13 or by Open Library work/edition ID; subject-based recommendations sorted by popularity; Google Books excerpts and preview links; WorldCat permalinks for library discovery; cover image caching. Papers with an ISBN in
externalIdsare automatically enriched with publisher, edition, cover URL, and subject data from Open Library. - Standards: identifier resolution, search, and metadata retrieval for NIST, IETF, W3C, and ETSI standards, with optional full-text fetch and Markdown conversion via docling. Tier 2 ISO, IEC, IEEE, Common Criteria (CC), and CEN/CENELEC metadata (including ISO/IEC/IEEE joint standards and the CC ↔ ISO/IEC 15408 cross-link) is synced locally via
sync-standards. ISO, IEC, IEEE have a live-fetch fallback for unsynced identifiers; CC and CEN have no live API and require a sync first. Citations matching standards patterns (RFC, ISO, NIST SP, IEEE, EN, CC) are automatically enriched with structuredstandard_metadataincluding identifier, title, body, status, and full-text URL when available (see docs/use/standards.md).
Cross-cutting
- Enrichment pipeline: phased enrichment from multiple sources: OpenAlex (OA status, affiliations, funders, concepts), CrossRef (publisher, page ranges, container titles), Google Books (preview links, excerpts), and Open Library (book metadata). Runs automatically on paper and book results.
- PDF conversion: download open-access PDFs and convert to Markdown via docling-serve, with optional VLM enrichment for formulas and figures; automatic fallback to ArXiv, PubMed Central, and Unpaywall when Semantic Scholar has no OA link; direct URL download for PDFs found elsewhere; converted text is paged so large documents fit in MCP responses.
- Intelligent caching: SQLite-backed cache with per-table TTLs (30 days for papers/authors, 7 days for citations/references) and identifier aliasing.
Coverage by domain
Per-domain depth is uneven. Papers currently have the richest tool surface (citation graph, recommendations, cross-referencing to all three other domains); standards are the leanest. That reflects public data availability, not a value hierarchy: writing a paper typically needs all four source types for citations and prior art. Parity work is tracked in GitHub issues and milestones; the roadmap shows intent, not a completeness commitment.
Does it fit?
What the server can reach, what it changes and who gets in is set out in the security model; the block below says who it serves and where it stops.
With this server mounted in an MCP client (Claude, etc.), you can:
- Survey a field: "Find the 20 most-cited papers on graph neural networks from 2020 to 2024 and draft a literature review outline." Composes
search_papers+get_citations+enrich_paper. - Trace a citation path: "What's the shortest citation path from 'Attention is All You Need' to 'RLHF for dialogue agents'?" Uses
find_bridge_papers+get_citation_graph. - Cross-reference prior art: "For this patent family, list academic papers it cites and any books or standards that show up in the description." Composes
get_patent+batch_resolve+ standards/book enrichment. - Generate a bibliography: "Emit BibTeX for these 30 DOIs with OpenAlex venue data." Uses
generate_citations. - Look up a standard: "What's the latest status of RFC 9000, and fetch the Markdown full text." Uses
resolve_standard_identifier+get_standard.
It reaches public scholarly metadata and open-access full text; it doesn't get past paywalls, and paywalled standards (ISO, IEC, IEEE) come back as metadata only. Patent tools need your own EPO OPS credentials.
Quick start
Pick the client you use. Each line installs the released version; the Get started tutorials carry on from there.
Claude Desktop. Download the .mcpb bundle from the releases page and open it with Claude Desktop (or Settings › Extensions › Advanced settings › Install Extension…). Claude Desktop asks for the required settings itself. Tutorial.
Claude Code. Two commands inside Claude Code; the second asks for a scope. Tutorial.
/plugin marketplace add pvliesdonk/claude-plugins
/plugin install scholar-mcp@pvliesdonk
A client that runs a command (stdio). To register it in Claude Code, see the Claude Code tutorial.
uv tool install "pvliesdonk-scholar-mcp"
scholar-mcp serve
A server for remote clients (streamable HTTP). A remote server connects the clients.
docker run --rm -p 8000:8000 --env-file .env ghcr.io/pvliesdonk/scholar-mcp:latest
A compose.yml ships at the repository root and runs as-is: copy .env.example to .env, then docker compose up -d. Deploy covers authentication, OIDC, a reverse proxy and system packages (.deb/.rpm on the releases page). The server answers /health and /health/ready outside the MCP mount, and its get_server_info tool reports the running version.
- `[all]`: every production feature in one extra; the Linux packages and the Claude Desktop bundle install it.
- `[debug]`: adds the remote debugger (
debugpy); see Remote debugging.
The base package already carries FastMCP through fastmcp-pvl-core, so pip install pvliesdonk-scholar-mcp is enough to run scholar-mcp serve. The older [mcp] extra is kept so existing install commands keep working; it adds nothing beyond the base package.
Configuration
Everything is configured through environment variables with the SCHOLAR_MCP_ prefix. The ones most installs set:
| Variable | Default | Required | Description |
|---|---|---|---|
SCHOLAR_MCP_READ_ONLY | true | No | When true, write-tagged tools (PDF download and conversion cache writes) are hidden. Set false to enable them. |
SCHOLAR_MCP_S2_API_KEY | (none) | No | 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 | (none) | No | Base URL of a running docling-serve instance for PDF conversion (such as http://localhost:5001). When unset, PDF conversion tools return an error. |
SCHOLAR_MCP_CACHE_DIR | /data/scholar-mcp | No | Directory for the SQLite cache database (cache.db) and downloaded PDFs (pdfs/, md/). |
SCHOLAR_MCP_CONTACT_EMAIL | (none) | No | Contact email for the OpenAlex polite pool (improves rate limits). Also enables Unpaywall lookups as a PDF fallback source. |
Every variable the server reads, the shared ones included, is in the configuration reference; .env.example lists the same surface in copy-paste form, and the config wizard writes one for your deployment.
Documentation
- Security model: what the server can reach, what it changes and who gets in.
- Get started: a first success with your client.
- Deploy: Docker, authentication, OIDC, reverse proxy.
- Use: the features, for real tasks.
- Reference: configuration, tools, resources, prompts, command line.
- Upgrade: release channels, and what an upgrade changes for your clients and your data.
- Contribute: local development, secrets, where a fix belongs;
CONTRIBUTING.mdandSECURITY.mdat the root.
Design decisions
- Domain logic apart from the MCP layer. The upstream clients (Semantic Scholar, OpenAlex, EPO, Open Libr