ScholarMCP
Allows resolving and retrieving papers via DOI (Digital Object Identifier) for full-text ingestion and metadata extraction.
Allows searching Google Scholar by keywords or advanced filters (author, year, phrase) to retrieve academic papers and their metadata.
Supports generating citations and bibliography in IEEE style for manuscripts.
Allows searching papers via Semantic Scholar's API as part of federated search for literature.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@ScholarMCPsearch for papers about transformer architectures"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.

ScholarMCP
ScholarMCP is an MCP server for literature research workflows in coding agents. Official documentation: https://scholar-mcp.lstudlo.com/
Early Development Notice
This project is still in early development, and rough edges or bugs may occur. If you run into a problem, please open an issue and include:
the agent used
screenshots, if applicable
steps to reproduce the issue
ScholarMCP gives your agent tools to:
search papers across multiple sources
ingest and parse full-text PDFs
extract structured paper details
suggest citations and build references
validate manuscript citations
ScholarMCP is for...
Use this if you want Claude Code, Codex, or any MCP-compatible coding agent to run research tasks directly from chat.
Quick Start
1. Prerequisites
Node.js
>=20npm(for install/publish)pnpm(for contributors working from source)
2. Install as an npm package (recommended)
npm install -g scholar-mcpOne-off run without global install:
npx -y scholar-mcp --transport=stdioInstall from GitHub Packages (scoped mirror package):
npm install -g @lstudlo/scholar-mcp --registry=https://npm.pkg.github.com3. Run
Stdio mode:
scholar-mcp --transport=stdioHTTP mode:
scholar-mcp --transport=httpHealth check (HTTP mode):
curl http://127.0.0.1:3000/health4. Run from source (contributors)
pnpm install
pnpm dev:stdioRelated MCP server: scholar-toolkit-mcp
Use with Coding Agents
ScholarMCP works best over stdio for local coding agents. The docs site has full step-by-step guides for Claude Code, OpenAI Codex, and OpenCode. Anthropic officially documents claude mcp add ... -- <command>, and OpenAI officially documents codex mcp add ...; the short forms below keep those CLI flows as the primary setup path.
Shared environment values used below:
SCHOLAR_MCP_TRANSPORT=stdio
SCHOLAR_REQUEST_DELAY_MS=350
RESEARCH_ALLOW_REMOTE_PDFS=true
RESEARCH_ALLOW_LOCAL_PDFS=trueClaude Code
Add with the Claude CLI:
claude mcp add -s user \
--transport stdio \
-e SCHOLAR_MCP_TRANSPORT=stdio \
-e SCHOLAR_REQUEST_DELAY_MS=350 \
-e RESEARCH_ALLOW_REMOTE_PDFS=true \
-e RESEARCH_ALLOW_LOCAL_PDFS=true \
scholar_mcp -- npx -y scholar-mcp --transport=stdioVerify:
claude mcp get scholar_mcpManual fallback:
add
scholar_mcpundermcpServersin~/.claude.jsonuse project-local
.mcp.jsonif you want the config scoped to the repokeep the
--separator in the CLI form; Claude needs it to stop parsing flags
OpenAI Codex
Add with the Codex CLI:
codex mcp add scholar_mcp \
--env SCHOLAR_MCP_TRANSPORT=stdio \
--env SCHOLAR_REQUEST_DELAY_MS=350 \
--env RESEARCH_ALLOW_REMOTE_PDFS=true \
--env RESEARCH_ALLOW_LOCAL_PDFS=true \
-- npx -y scholar-mcp --transport=stdioVerify:
codex mcp list
codex mcp get scholar_mcp --jsonManual fallback:
add the server to
~/.codex/config.tomlunder[mcp_servers.scholar_mcp]Codex CLI and the Codex app share that MCP config model
OpenCode
Add with the OpenCode CLI:
opencode mcp addRecommended interactive values:
name:
scholar_mcptype:
localcommand:
npx -y scholar-mcp --transport=stdioenabled:
trueenv: use the four shared variables above
Verify:
opencode mcp listManual fallback:
add the server to
~/.config/opencode/opencode.jsonuse
"type": "local"and a command array like["npx", "-y", "scholar-mcp", "--transport=stdio"]
Run from source
If you are developing ScholarMCP locally, use this launcher instead of npx -y scholar-mcp --transport=stdio:
pnpm --filter scholar-mcp dev:stdioUse the same environment values shown above in whichever client you register.
Generic MCP clients
stdiocommand:scholar-mcp --transport=stdioOr:
npx -y scholar-mcp --transport=stdio
HTTP endpoint:
Start server with
SCHOLAR_MCP_TRANSPORT=http scholar-mcpConnect client to
http://127.0.0.1:3000/mcpOptional auth: set
SCHOLAR_MCP_API_KEYand send bearer auth header from your client
MCP Tools
Tool | Purpose |
| Federated search over OpenAlex/Crossref/Semantic Scholar (+ optional scholar scrape). |
| Keyword search on Google Scholar. |
| Scholar search with author/year/phrase filters. |
| Resolve author profile and top publications. |
| Start async full-text ingestion from DOI/URL/PDF/local path. |
| Poll ingestion job status and parsed summary. |
| Extract methods, claims, datasets, metrics, and references. |
| Suggest citations from manuscript context. |
| Generate formatted bibliography and BibTeX. |
| Detect missing/uncited/duplicate citation issues. |
Example Agent Prompts
"Find 10 recent papers on retrieval-augmented generation and summarize methods and datasets."
"Ingest full text for DOI
10.1038/s41467-024-55563-6, then extract claims and limitations.""Given this draft section, suggest citations in IEEE style and generate BibTeX."
"Validate my manuscript citations against this reference list and show missing citations."
Configuration
Most users only need these:
SCHOLAR_MCP_TRANSPORT:stdio|http|both(default:stdio)SCHOLAR_REQUEST_DELAY_MS: request pacing to reduce rate-limit risk (default:250)RESEARCH_ALLOW_REMOTE_PDFS: allow remote PDF downloads for ingestion (default:true)RESEARCH_ALLOW_LOCAL_PDFS: allow local PDF ingestion (default:true)SCHOLAR_MCP_API_KEY: optional bearer token for HTTP modeRESEARCH_GROBID_URL: optional GROBID endpoint
The CLI loads .env from the current working directory automatically at startup.
Advanced options exist in src/config.ts for timeouts, retries, HTTP session capacity/TTL, provider tuning, and cache behavior.
Troubleshooting
Invalid environment variable formatinclaude mcp add:Add
--before the MCP server name (see Claude setup command above).
Unable to resolve a downloadable PDF URL from inputon DOI ingestion:The DOI and landing page may not expose an accessible PDF URL.
Retry with
pdf_url(direct PDF) orlocal_pdf_path.
Too many Scholar failures or throttling:
Increase
SCHOLAR_REQUEST_DELAY_MS(for example500to1000).
Usage Notes
Google Scholar may throttle automated traffic. Use conservative request pacing, respect provider terms, and avoid abusive query patterns.
Publishing
Releases publish to two registries:
npm:
scholar-mcpvia.github/workflows/publish.ymlGitHub Packages:
@lstudlo/scholar-mcpvia.github/workflows/publish-github-packages.yml
Release with a minimal command set:
Validate release readiness:
pnpm release:checkCut and publish a release:
pnpm release(patch),pnpm release minor, orpnpm release majorStart from a clean git working tree (no unstaged/staged/untracked files).
The release command runs checks, bumps
packages/scholar-mcp/package.json, creates a release commit/tag, pushes branch/tag, then creates a GitHub Release.GitHub Actions publishes to npm and GitHub Packages from that release tag.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
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/lstudlo/ScholarMCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server