
Paper Search MCP Setup for Claude Code, Cursor and Other Apps
Lets Claude and other assistants search and download academic papers from arXiv, PubMed, Semantic Scholar and many more sources.
Paper Search MCP is a community server that looks for papers across more than 20 free scholarly sources and can save their PDFs or read them for you. It runs on your computer and needs no account, though a few sources work better with a free key. Downloads go to a folder on your machine. The published release can fall back to Sci-Hub when a paper is not open access, so tell the assistant not to use it if that is a problem for you.
Good for
- Researchers who want Claude to find and summarize papers across sources
- Students doing literature reviews on arXiv, PubMed or bioRxiv
- Biomedical teams who need PubMed, PMC and Europe PMC in one place
- Developers who also want the project's command-line tool
Works in
12 should work
Tap an app to see how to set it up and any known problems.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Client does not support this transport.
Client does not support this transport.
Install paper-search MCP
Claude Code
- 1
Copy this prompt.
Add the paper-search MCP server to Claude Code. Run this command: claude mcp add paper-search -- uvx paper-search-mcp Then check that it loaded and tell me if I need to sign in or restart.
- 2
Paste it into Claude Code. It shows the change and asks before running it.
Requires uv (Python).
Built from the package data we hold. Not yet tested by us.
Tools
Searches many paper sources at once and removes duplicates
Runs one query across several academic sources at the same time, merges the results and drops duplicates. You can choose which sources to use, and a failing source is reported without hiding the others.
Try: “Search all sources for recent papers on retrieval augmented generation.”
Network ·
search_papersSearches arXiv for papers
Searches preprints in physics, maths and computer science for your query and returns matching papers with titles, authors and links.
Try: “Search arXiv for attention is all you need.”
Network ·
search_arxivSearches PubMed for papers
Searches biomedical literature for your query and returns matching papers with titles, authors and links.
Try: “Search PubMed for GLP-1 and cardiovascular outcomes.”
Network ·
search_pubmedSearches bioRxiv for papers
Searches biology preprints for your query and returns matching papers with titles, authors and links.
Try: “Search bioRxiv for CRISPR base editing.”
Network ·
search_biorxivSearches medRxiv for papers
Searches medical preprints for your query and returns matching papers with titles, authors and links.
Try: “Search medRxiv for long COVID symptoms.”
Network ·
search_medrxivSearches Google Scholar for papers
Searches Google Scholar results, which can be blocked by CAPTCHAs or rate limits for your query and returns matching papers with titles, authors and links.
Try: “Search Google Scholar for retrieval augmented generation.”
Network ·
search_google_scholarSearches IACR for papers
Searches cryptography papers in the IACR ePrint archive for your query and returns matching papers with titles, authors and links.
Try: “Search IACR for zero knowledge proofs.”
Network ·
search_iacrDownloads a arXiv paper as a PDF
Saves the PDF of a arXiv paper to a folder you choose, ./downloads by default, and returns the file path. It returns an error message when no PDF is available.
Try: “Download the arXiv paper with ID 12345 to my papers folder.”
Write ·
download_arxivExplains that PubMed has no direct PDF download
PubMed does not provide direct PDF downloads through this server, so this returns a message instead of a file. Use the fallback download tool to look for an open-access copy.
Try: “Download the PubMed paper with ID 12345.”
Read ·
download_pubmedDownloads a bioRxiv paper as a PDF
Saves the PDF of a bioRxiv paper to a folder you choose, ./downloads by default, and returns the file path. It returns an error message when no PDF is available.
Try: “Download the bioRxiv paper with ID 12345 to my papers folder.”
Write ·
download_biorxivDownloads a medRxiv paper as a PDF
Saves the PDF of a medRxiv paper to a folder you choose, ./downloads by default, and returns the file path. It returns an error message when no PDF is available.
Try: “Download the medRxiv paper with ID 12345 to my papers folder.”
Write ·
download_medrxivDownloads a IACR paper as a PDF
Saves the PDF of a IACR paper to a folder you choose, ./downloads by default, and returns the file path. It returns an error message when no PDF is available.
Try: “Download the IACR paper with ID 12345 to my papers folder.”
Write ·
download_iacrReads the text of a arXiv paper
Downloads the PDF of a arXiv paper if needed and returns its extracted text so the assistant can read and summarize it.
Try: “Read the arXiv paper with ID 12345 and summarize it.”
Write ·
read_arxiv_paperExplains that PubMed papers cannot be read directly
PubMed gives metadata but not full text through this server, so this returns a message instead of the paper.
Try: “Read the PubMed paper with ID 12345.”
Read ·
read_pubmed_paperReads the text of a bioRxiv paper
Downloads the PDF of a bioRxiv paper if needed and returns its extracted text so the assistant can read and summarize it.
Try: “Read the bioRxiv paper with ID 12345 and summarize it.”
Write ·
read_biorxiv_paperReads the text of a medRxiv paper
Downloads the PDF of a medRxiv paper if needed and returns its extracted text so the assistant can read and summarize it.
Try: “Read the medRxiv paper with ID 12345 and summarize it.”
Write ·
read_medrxiv_paperReads the text of a IACR paper
Downloads the PDF of a IACR paper if needed and returns its extracted text so the assistant can read and summarize it.
Try: “Read the IACR paper with ID 12345 and summarize it.”
Write ·
read_iacr_paperSearches Semantic Scholar for papers
Searches Semantic Scholar's index of papers for your query and returns matching papers with titles, authors and links.
Try: “Search Semantic Scholar for graph neural networks.”
Network ·
search_semanticDownloads a Semantic Scholar paper as a PDF
Saves the PDF of a Semantic Scholar paper to a folder you choose, ./downloads by default, and returns the file path. It returns an error message when no PDF is available.
Try: “Download the Semantic Scholar paper with ID 12345 to my papers folder.”
Write ·
download_semanticReads the text of a Semantic Scholar paper
Downloads the PDF of a Semantic Scholar paper if needed and returns its extracted text so the assistant can read and summarize it.
Try: “Read the Semantic Scholar paper with ID 12345 and summarize it.”
Write ·
read_semantic_paperSearches Crossref for papers
Searches Crossref's DOI and citation records for your query and returns matching papers with titles, authors and links.
Try: “Search Crossref for transformer language models.”
Network ·
search_crossrefLooks up one paper by its DOI
Fetches the Crossref record for a DOI, with title, authors and publication details.
Try: “Look up the paper with DOI 10.1038/nature14539.”
Network ·
get_crossref_paper_by_doiExplains that Crossref has no direct PDF download
Crossref does not provide direct PDF downloads through this server, so this returns a message instead of a file. Use the fallback download tool to look for an open-access copy.
Try: “Download the Crossref paper with ID 12345.”
Read ·
download_crossrefDownloads a paper PDF from Sci-Hub
Tries to fetch a PDF from a Sci-Hub mirror using a DOI, title, PubMed ID or URL, and saves it to a folder. Sci-Hub access can break the law or publisher terms where you live, so use it only if you choose to.
Try: “Download 10.1016/j.cell.2020.01.001 with Sci-Hub.”
Write ·
download_scihubDownloads a paper, trying open-access sources before Sci-Hub
Tries the source's own download first, then open-access repositories and Unpaywall using the DOI. In this release the Sci-Hub fallback is switched on by default, so the assistant can end up using it unless it passes use_scihub as false.
Try: “Download this arXiv paper, and do not use Sci-Hub.”
Write ·
download_with_fallbackExplains that Crossref papers cannot be read directly
Crossref gives metadata but not full text through this server, so this returns a message instead of the paper.
Try: “Read the Crossref paper with ID 12345.”
Read ·
read_crossref_paperSearches OpenAlex for papers
Searches the OpenAlex catalog of scholarly works for your query and returns matching papers with titles, authors and links.
Try: “Search OpenAlex for protein folding.”
Network ·
search_openalexSearches PubMed Central for papers
Searches open-access full-text articles in PubMed Central for your query and returns matching papers with titles, authors and links.
Try: “Search PubMed Central for gut microbiome and depression.”
Network ·
search_pmcSearches CORE for papers
Searches open-access papers gathered from repositories by CORE for your query and returns matching papers with titles, authors and links.
Try: “Search CORE for open access publishing.”
Network ·
search_coreSearches Europe PMC for papers
Searches life-science literature in Europe PMC for your query and returns matching papers with titles, authors and links.
Try: “Search Europe PMC for mRNA vaccines.”
Network ·
search_europepmcSearches dblp for papers
Searches the dblp computer science bibliography for your query and returns matching papers with titles, authors and links.
Try: “Search dblp for distributed consensus.”
Network ·
search_dblpSearches OpenAIRE for papers
Searches European open-access research outputs in OpenAIRE for your query and returns matching papers with titles, authors and links.
Try: “Search OpenAIRE for climate adaptation.”
Network ·
search_openaireSearches CiteSeerX for papers
Searches the CiteSeerX digital library for your query and returns matching papers with titles, authors and links.
Try: “Search CiteSeerX for information retrieval.”
Network ·
search_citeseerxSearches DOAJ for papers
Searches open-access journal articles in DOAJ for your query and returns matching papers with titles, authors and links.
Try: “Search DOAJ for urban planning.”
Network ·
search_doajSearches BASE for papers
Searches the BASE academic search engine, which may return nothing without institutional access for your query and returns matching papers with titles, authors and links.
Try: “Search BASE for digital humanities.”
Network ·
search_baseSearches Zenodo for papers
Searches research records on Zenodo for your query and returns matching papers with titles, authors and links.
Try: “Search Zenodo for dataset papers.”
Network ·
search_zenodoSearches HAL for papers
Searches papers in the HAL open archive for your query and returns matching papers with titles, authors and links.
Try: “Search HAL for machine learning theory.”
Network ·
search_halSearches SSRN for papers
Searches SSRN working papers, found through OpenAlex metadata for your query and returns matching papers with titles, authors and links.
Try: “Search SSRN for behavioral economics.”
Network ·
search_ssrnSearches Unpaywall for papers
Searches open-access copies found by DOI through Unpaywall for your query and returns matching papers with titles, authors and links.
Try: “Search Unpaywall for a DOI.”
Network ·
search_unpaywallExplains that dblp papers cannot be read directly
dblp gives metadata but not full text through this server, so this returns a message instead of the paper.
Try: “Read the dblp paper with ID 12345.”
Read ·
read_dblp_paperExplains that dblp has no direct PDF download
dblp does not provide direct PDF downloads through this server, so this returns a message instead of a file. Use the fallback download tool to look for an open-access copy.
Try: “Download the dblp paper with ID 12345.”
Read ·
download_dblpReads the text of a OpenAIRE paper
Downloads the PDF of a OpenAIRE paper if needed and returns its extracted text so the assistant can read and summarize it.
Try: “Read the OpenAIRE paper with ID 12345 and summarize it.”
Write ·
read_openaire_paperDownloads a OpenAIRE paper as a PDF
Saves the PDF of a OpenAIRE paper to a folder you choose, ./downloads by default, and returns the file path. It returns an error message when no PDF is available.
Try: “Download the OpenAIRE paper with ID 12345 to my papers folder.”
Write ·
download_openaireReads the text of a CiteSeerX paper
Downloads the PDF of a CiteSeerX paper if needed and returns its extracted text so the assistant can read and summarize it.
Try: “Read the CiteSeerX paper with ID 12345 and summarize it.”
Write ·
read_citeseerx_paperDownloads a CiteSeerX paper as a PDF
Saves the PDF of a CiteSeerX paper to a folder you choose, ./downloads by default, and returns the file path. It returns an error message when no PDF is available.
Try: “Download the CiteSeerX paper with ID 12345 to my papers folder.”
Write ·
download_citeseerxReads the text of a DOAJ paper
Downloads the PDF of a DOAJ paper if needed and returns its extracted text so the assistant can read and summarize it.
Try: “Read the DOAJ paper with ID 12345 and summarize it.”
Write ·
read_doaj_paperDownloads a DOAJ paper as a PDF
Saves the PDF of a DOAJ paper to a folder you choose, ./downloads by default, and returns the file path. It returns an error message when no PDF is available.
Try: “Download the DOAJ paper with ID 12345 to my papers folder.”
Write ·
download_doajReads the text of a BASE paper
Downloads the PDF of a BASE paper if needed and returns its extracted text so the assistant can read and summarize it.
Try: “Read the BASE paper with ID 12345 and summarize it.”
Write ·
read_base_paperDownloads a BASE paper as a PDF
Saves the PDF of a BASE paper to a folder you choose, ./downloads by default, and returns the file path. It returns an error message when no PDF is available.
Try: “Download the BASE paper with ID 12345 to my papers folder.”
Write ·
download_baseReads the text of a Zenodo paper
Downloads the PDF of a Zenodo paper if needed and returns its extracted text so the assistant can read and summarize it.
Try: “Read the Zenodo paper with ID 12345 and summarize it.”
Write ·
read_zenodo_paperDownloads a Zenodo paper as a PDF
Saves the PDF of a Zenodo paper to a folder you choose, ./downloads by default, and returns the file path. It returns an error message when no PDF is available.
Try: “Download the Zenodo paper with ID 12345 to my papers folder.”
Write ·
download_zenodoReads the text of a HAL paper
Downloads the PDF of a HAL paper if needed and returns its extracted text so the assistant can read and summarize it.
Try: “Read the HAL paper with ID 12345 and summarize it.”
Write ·
read_hal_paperDownloads a HAL paper as a PDF
Saves the PDF of a HAL paper to a folder you choose, ./downloads by default, and returns the file path. It returns an error message when no PDF is available.
Try: “Download the HAL paper with ID 12345 to my papers folder.”
Write ·
download_halExplains that SSRN papers cannot be read directly
SSRN gives metadata but not full text through this server, so this returns a message instead of the paper.
Try: “Read the SSRN paper with ID 12345.”
Read ·
read_ssrn_paperExplains that SSRN has no direct PDF download
SSRN does not provide direct PDF downloads through this server, so this returns a message instead of a file. Use the fallback download tool to look for an open-access copy.
Try: “Download the SSRN paper with ID 12345.”
Read ·
download_ssrnExplains that OpenAlex papers cannot be read directly
OpenAlex gives metadata but not full text through this server, so this returns a message instead of the paper.
Try: “Read the OpenAlex paper with ID 12345.”
Read ·
read_openalex_paperExplains that OpenAlex has no direct PDF download
OpenAlex does not provide direct PDF downloads through this server, so this returns a message instead of a file. Use the fallback download tool to look for an open-access copy.
Try: “Download the OpenAlex paper with ID 12345.”
Read ·
download_openalex
Read from the source code
Permissions
medium risk · 4 things to watch
Medium risk
The assistant can save PDFs into folders on your computer, and the published release can fetch papers from Sci-Hub when open-access sources fail. Ask it not to use Sci-Hub, and give it a downloads folder you do not mind filling.
What it can do
- Read your data
- Create and change things
- Delete things
- Read-only mode
Watch out for
Sci-Hub fallback is on by default
In the published release the fallback download tool uses Sci-Hub unless told otherwise. The README says legal and policy risks vary by country and that using it is your responsibility, so tell the assistant to skip it. github.com
It writes files wherever the save path points
Download and read tools take a folder path and default to ./downloads in the server's working folder. Name a dedicated folder in your prompt. github.com
Some sources are rate-limited or blocked
Google Scholar can return CAPTCHAs and the README lists several sources with limits. Results report these as source errors rather than empty lists. github.com
The README describes a newer version than the one published
The main branch README lists newer behavior, such as Sci-Hub off by default. This page follows the published 0.1.4 release. pypi.org
Security advisories
No published security advisories as of Nov 1, 2026.
Technical details
| Turning on read-only | No read-only mode is documented. Download and read tools write PDFs to the save path. |
|---|---|
| Talks to | Each scholarly source you search (arXiv, PubMed, Semantic Scholar, Crossref, OpenAlex and others). Sci-Hub mirrors, when the fallback is used |
| Sign-in and keys | No account needed. Optional API keys and an Unpaywall email are read from environment variables or ~/.config/paper-search-mcp/.env. |
Questions
Is Paper Search MCP official?
No. It is a community project by openags and is not made by arXiv, PubMed or any other source it searches.
Do I need API keys?
No. Keys are optional and mainly raise rate limits for sources like Semantic Scholar, CORE and OpenAlex. Unpaywall needs only a contact email.
Will it download paywalled papers?
Only through open-access sources, or through Sci-Hub if the fallback reaches it. The published release enables that fallback by default, so ask the assistant to skip it if you do not want it.
How many tools does it have?
57 in a default install. Six more for IEEE Xplore and ACM Digital Library appear only if you set their API keys.
Why do some download tools only return a message?
PubMed, Crossref, dblp, OpenAlex and SSRN supply records but not PDFs through this server. The message says so, and the fallback download tool can look for an open-access copy.
Where do downloaded PDFs go?
To the folder in the save path, which defaults to ./downloads relative to where the server runs.
Why does Google Scholar sometimes fail?
Google Scholar blocks automated access with CAPTCHAs and rate limits. The server does not solve CAPTCHAs, so use another source when it fails.
Information
updated Nov 2, 2026
- Publisher
- Community
- Package
paper-search-mcp- Registry
- PyPI
- Transport
- stdio
- Auth
- None
- Version
- 0.1.4
- License
- MIT
- Last commit
- Oct 2, 2026
- Open issues
- 11
- Listed in
- Docker MCP Catalog
Sources
Docs, issue trackers and discussions this page is built from. Issues, quotes and findings above link to their own source.
Show all 3Hide
- github.com · github.com
- github.com · github.com
- pypi.org · pypi.org