scholar-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| S2_API_KEY | No | Semantic Scholar API key (https://www.semanticscholar.org/product/api#api-key-form) (1 req/s) | |
| CORE_API_KEY | No | CORE API key (https://core.ac.uk/services/api) | |
| OPENALEX_EMAIL | No | Email for Unpaywall + OpenAlex polite pool | |
| SCIHUB_ENABLED | No | Enable Sci-Hub as last-resort source | false |
| SCHOLAR_DOWNLOAD_DIR | No | PDF save directory | ./downloads |
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
| Capability | Details |
|---|---|
| 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
| Name | Description |
|---|---|
| search_papersA | Search for academic papers across many sources (OpenAlex, Semantic Scholar, arXiv, PubMed, OpenReview, Crossref and more), merge duplicates across DOI/arXiv/S2/OpenAlex identities, and rerank for relevance. Use this to find papers from a topic, a question, or a half-remembered title. Use paper_info when you already hold an identifier, recommend_papers to expand from one known paper, and search_authors for people. Read-only. Each call fans out to live APIs under a time budget; sources that time out are reported as degraded coverage instead of failing the call. Put years, venues and filters in the parameters, not in the query text. |
| paper_infoA | Get metadata for one known paper, optionally with the papers that cite it and the papers it references. Use this when you already have an identifier; use search_papers to find one first, and recommend_papers for related work that is not a direct citation. Read-only, one upstream lookup per requested section. An unresolvable identifier returns a not-found message rather than an error. Citation and reference lists are ordered by influence and cut at limit. |
| recommend_papersA | Find related papers by a chosen citation-graph relation. Use this when you hold one paper and want its neighbourhood. Use search_papers for a topic and paper_info for a paper's direct citation lists. Read-only; results come from embedding and citation data, so very new or uncited papers return few or no neighbours. "Related" is several different questions, and which one you want depends on what you are doing: |
| search_authorsA | Search for researchers by name and return profiles with affiliations, paper counts, h-index and identifiers. Use this for people, not papers: use search_papers for papers and paper_info for a paper's own author list. Read-only. Name matching is fuzzy, so common names return many candidates; add an affiliation or field word to the query and keep limit small to disambiguate. |
| download_paperA | Resolve one paper to an open-access PDF and save it to disk, optionally indexing it into a library collection. Writes a file under save_dir (default: the configured papers directory); a repeat call for the same paper overwrites the same path. Use read_paper instead when you only need the text once. Resolution tries the canonical archive (arXiv, Europe PMC), repository resolvers, preprint servers and Unpaywall in order; a paywalled paper with no open copy returns a clear failure and writes nothing. |
| read_paperA | Fetch a paper's PDF into a temporary file and return page-aware Markdown text plus selectors for its figures and tables. Use this to read; use download_paper to keep the PDF. Nothing persists after the call. Resolution follows the same open-access chain as download_paper, so paywalled papers without an open copy fail cleanly. Pass a selector from a previous response as visual to get one figure or table with its surrounding text. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| scholar_status | Return server capabilities without occupying the model's tool surface. |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/Liyux3/scholar-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server