MCP, CLI, Skills for searching and downloading academic papers from multiple sources like arXiv, ...
10K+
MCP, CLI, Skills for searching and downloading academic papers from multiple sources like arXiv, PubMed, bioRxiv, etc.
| Attribute | Details |
|---|---|
| Docker Image | mcp/paper-search |
| Author | openags |
| Repository | https://github.com/openags/paper-search-mcp |
| Attribute | Details |
|---|---|
| Dockerfile | https://github.com/openags/paper-search-mcp/blob/c8b642183bb725f0a7faec89e58b558df09079d1/Dockerfile |
| Commit | c8b642183bb725f0a7faec89e58b558df09079d1 |
| Docker Image built by | Docker Inc. |
| Docker Scout Health Score | |
| Verify Signature | COSIGN_REPOSITORY=mcp/signatures cosign verify mcp/paper-search --key https://raw.githubusercontent.com/docker/keyring/refs/heads/main/public/mcp/latest.pub |
| Licence | MIT License |
| Tools provided by this Server | Short Description |
|---|---|
download_arxiv | Download PDF of an arXiv paper. |
download_base | Download PDF for a paper from BASE. |
download_biorxiv | Download PDF of a bioRxiv paper. |
download_citeseerx | Download PDF for a paper from CiteSeerX. |
download_crossref | Attempt to download PDF of a CrossRef paper. |
download_dblp | Download PDF for a paper from dblp. |
download_doaj | Download PDF for a paper from DOAJ. |
download_hal | Download PDF for a paper from HAL. |
download_iacr | Download PDF of an IACR ePrint paper. |
download_medrxiv | Download PDF of a medRxiv paper. |
download_openaire | Download PDF for a paper from OpenAIRE. |
download_openalex | Download PDF for a paper from OpenAlex. |
download_pubmed | Attempt to download PDF of a PubMed paper. |
download_scihub | Download paper PDF via Sci-Hub (optional fallback connector). |
download_semantic | Download PDF of a Semantic Scholar paper. |
download_ssrn | Download PDF for a paper from SSRN. |
download_with_fallback | Try source-native download, OA repositories, Unpaywall, then optional Sci-Hub. |
download_zenodo | Download PDF for a paper from Zenodo. |
get_crossref_paper_by_doi | Get a specific paper from CrossRef by its DOI. |
read_arxiv_paper | Read and extract text content from an arXiv paper PDF. |
read_base_paper | Read and extract text content from a BASE paper. |
read_biorxiv_paper | Read and extract text content from a bioRxiv paper PDF. |
read_citeseerx_paper | Read and extract text content from a CiteSeerX paper. |
read_crossref_paper | Attempt to read and extract text content from a CrossRef paper. |
read_dblp_paper | Attempt to read and extract text content from a dblp paper. |
read_doaj_paper | Read and extract text content from a DOAJ paper. |
read_hal_paper | Read and extract text content from a HAL paper. |
read_iacr_paper | Read and extract text content from an IACR ePrint paper PDF. |
read_medrxiv_paper | Read and extract text content from a medRxiv paper PDF. |
read_openaire_paper | Attempt to read and extract text content from an OpenAIRE paper. |
read_openalex_paper | Attempt to read and extract text content from an OpenAlex paper. |
read_pubmed_paper | Read and extract text content from a PubMed paper. |
read_semantic_paper | Read and extract text content from a Semantic Scholar paper. |
read_ssrn_paper | Read paper content from SSRN. |
read_zenodo_paper | Read and extract text content from a Zenodo paper. |
search_arxiv | Search academic papers from arXiv. |
search_base | Search academic papers from BASE (Bielefeld Academic Search Engine). |
search_biorxiv | Search academic papers from bioRxiv. |
search_citeseerx | Search academic papers from CiteSeerX digital library. |
search_core | Search academic papers from CORE. |
search_crossref | Search academic papers from CrossRef database. |
search_dblp | Search academic papers from dblp computer science bibliography. |
search_doaj | Search academic papers from DOAJ (Directory of Open Access Journals). |
search_europepmc | Search academic papers from Europe PMC. |
search_google_scholar | Search academic papers from Google Scholar. |
search_hal | Search academic papers from HAL open archive. |
search_iacr | Search academic papers from IACR ePrint Archive. |
search_medrxiv | Search academic papers from medRxiv. |
search_openaire | Search academic papers from OpenAIRE European Open Access infrastructure. |
search_openalex | Search academic papers from OpenAlex. |
search_papers | Unified top-level search across all configured academic platforms. |
search_pmc | Search academic papers from PubMed Central (PMC). |
search_pubmed | Search academic papers from PubMed. |
search_semantic | Search academic papers from Semantic Scholar. |
search_ssrn | Search metadata records from SSRN. |
search_unpaywall | Lookup a DOI via Unpaywall and return OA metadata. |
search_zenodo | Search academic papers from Zenodo open repository. |
download_arxivDownload PDF of an arXiv paper.
| Parameters | Type | Description |
|---|---|---|
paper_id | string | arXiv paper ID (e.g., '2106.12345'). |
save_path | string optional | Directory to save the PDF (default: './downloads'). |
download_baseDownload PDF for a paper from BASE.
| Parameters | Type | Description |
|---|---|---|
paper_id | string | BASE paper identifier. |
save_path | string optional | Directory to save the PDF (default: './downloads'). |
download_biorxivDownload PDF of a bioRxiv paper.
| Parameters | Type | Description |
|---|---|---|
paper_id | string | bioRxiv DOI. |
save_path | string optional | Directory to save the PDF (default: './downloads'). |
download_citeseerxDownload PDF for a paper from CiteSeerX.
| Parameters | Type | Description |
|---|---|---|
paper_id | string | CiteSeerX paper identifier. |
save_path | string optional | Directory to save the PDF (default: './downloads'). |
download_crossrefAttempt to download PDF of a CrossRef paper.
| Parameters | Type | Description |
|---|---|---|
paper_id | string | CrossRef DOI (e.g., '10.1038/nature12373'). |
save_path | string optional | Directory to save the PDF (default: './downloads'). |
download_dblpDownload PDF for a paper from dblp.
Note: dblp doesn't provide direct PDF access.
This function returns an informative message.
| Parameters | Type | Description |
|---|---|---|
paper_id | string | dblp paper identifier. |
save_path | string optional | Directory to save the PDF (default: './downloads'). |
download_doajDownload PDF for a paper from DOAJ.
| Parameters | Type | Description |
|---|---|---|
paper_id | string | DOAJ paper identifier. |
save_path | string optional | Directory to save the PDF (default: './downloads'). |
download_halDownload PDF for a paper from HAL.
| Parameters | Type | Description |
|---|---|---|
paper_id | string | HAL paper identifier. |
save_path | string optional | Directory to save the PDF (default: './downloads'). |
download_iacrDownload PDF of an IACR ePrint paper.
| Parameters | Type | Description |
|---|---|---|
paper_id | string | IACR paper ID (e.g., '2009/101'). |
save_path | string optional | Directory to save the PDF (default: './downloads'). |
download_medrxivDownload PDF of a medRxiv paper.
| Parameters | Type | Description |
|---|---|---|
paper_id | string | medRxiv DOI. |
save_path | string optional | Directory to save the PDF (default: './downloads'). |
download_openaireDownload PDF for a paper from OpenAIRE.
| Parameters | Type | Description |
|---|---|---|
paper_id | string | OpenAIRE paper identifier. |
save_path | string optional | Directory to save the PDF (default: './downloads'). |
download_openalexDownload PDF for a paper from OpenAlex.
| Parameters | Type | Description |
|---|---|---|
paper_id | string | OpenAlex paper ID. |
save_path | string optional | Directory to save the PDF (default: './downloads'). |
download_pubmedAttempt to download PDF of a PubMed paper.
| Parameters | Type | Description |
|---|---|---|
paper_id | string | PubMed ID (PMID). |
save_path | string optional | Directory to save the PDF (default: './downloads'). |
download_scihubDownload paper PDF via Sci-Hub (optional fallback connector).
| Parameters | Type | Description |
|---|---|---|
identifier | string | DOI, title, PMID, or paper URL. |
base_url | string optional | Sci-Hub mirror URL. |
save_path | string optional | Directory to save the PDF. |
download_semanticDownload PDF of a Semantic Scholar paper.
| Parameters | Type | Description |
|---|---|---|
paper_id | string | Semantic Scholar paper ID, Paper identifier in one of the following formats: |
save_path | string optional | Directory to save the PDF (default: './downloads'). |
download_ssrnDownload PDF for a paper from SSRN.
Note: SSRN connector is metadata-only and download is not supported.
| Parameters | Type | Description |
|---|---|---|
paper_id | string | SSRN paper identifier. |
save_path | string optional | Directory to save the PDF (unused). |
download_with_fallbackTry source-native download, OA repositories, Unpaywall, then optional Sci-Hub.
| Parameters | Type | Description |
|---|---|---|
paper_id | string | Source-native paper identifier. |
source | string | Source name (arxiv, biorxiv, medrxiv, iacr, semantic, crossref, pubmed, pmc, core, europepmc, citeseerx, doaj, base, zenodo, hal, ssrn). |
doi | string optional | Optional DOI used for repository/unpaywall/Sci-Hub fallback. |
save_path | string optional | Directory to save downloaded files. |
scihub_base_url | string optional | Sci-Hub mirror URL for fallback. |
title | string optional | Optional title used for repository/Sci-Hub fallback when DOI is unavailable. |
use_scihub | boolean optional | Whether to fallback to Sci-Hub after OA attempts fail. |
download_zenodoDownload PDF for a paper from Zenodo.
| Parameters | Type | Description |
|---|---|---|
paper_id | string | Zenodo paper identifier. |
save_path | string optional | Directory to save the PDF (default: './downloads'). |
get_crossref_paper_by_doiGet a specific paper from CrossRef by its DOI.
| Parameters | Type | Description |
|---|---|---|
doi | string | Digital Object Identifier (e.g., '10.1038/nature12373'). |
read_arxiv_paperRead and extract text content from an arXiv paper PDF.
| Parameters | Type | Description |
|---|---|---|
paper_id | string | arXiv paper ID (e.g., '2106.12345'). |
save_path | string optional | Directory where the PDF is/will be saved (default: './downloads'). |
read_base_paperRead and extract text content from a BASE paper.
| Parameters | Type | Description |
|---|---|---|
paper_id | string | BASE paper identifier. |
save_path | string optional | Directory where the PDF is/will be saved (default: './downloads'). |
read_biorxiv_paperRead and extract text content from a bioRxiv paper PDF.
| Parameters | Type | Description |
|---|---|---|
paper_id | string | bioRxiv DOI. |
save_path | string optional | Directory where the PDF is/will be saved (default: './downloads'). |
read_citeseerx_paperRead and extract text content from a CiteSeerX paper.
| Parameters | Type | Description |
|---|---|---|
paper_id | string | CiteSeerX paper identifier. |
save_path | string optional | Directory where the PDF is/will be saved (default: './downloads'). |
read_crossref_paperAttempt to read and extract text content from a CrossRef paper.
| Parameters | Type | Description |
|---|---|---|
paper_id | string | CrossRef DOI (e.g., '10.1038/nature12373'). |
save_path | string optional | Directory where the PDF is/will be saved (default: './downloads'). |
read_dblp_paperAttempt to read and extract text content from a dblp paper.
Note: dblp doesn't provide direct paper content access.
This function returns an informative message.
| Parameters | Type | Description |
|---|---|---|
paper_id | string | dblp paper identifier. |
save_path | string optional | Directory where the PDF would be saved (unused). |
read_doaj_paperRead and extract text content from a DOAJ paper.
| Parameters | Type | Description |
|---|---|---|
paper_id | string | DOAJ paper identifier. |
save_path | string optional | Directory where the PDF is/will be saved (default: './downloads'). |
read_hal_paperRead and extract text content from a HAL paper.
| Parameters | Type | Description |
|---|---|---|
paper_id | string | HAL paper identifier. |
save_path | string optional | Directory where the PDF is/will be saved (default: './downloads'). |
read_iacr_paperRead and extract text content from an IACR ePrint paper PDF.
| Parameters | Type | Description |
|---|---|---|
paper_id | string | IACR paper ID (e.g., '2009/101'). |
save_path | string optional | Directory where the PDF is/will be saved (default: './downloads'). |
read_medrxiv_paperRead and extract text content from a medRxiv paper PDF.
| Parameters | Type | Description |
|---|---|---|
paper_id | string | medRxiv DOI. |
save_path | string optional | Directory where the PDF is/will be saved (default: './downloads'). |
read_openaire_paperAttempt to read and extract text content from an OpenAIRE paper.
| Parameters | Type | Description |
|---|---|---|
paper_id | string | OpenAIRE paper identifier. |
save_path | string optional | Directory where the PDF is/will be saved (default: './downloads'). |
read_openalex_paperAttempt to read and extract text content from an OpenAlex paper.
| Parameters | Type | Description |
|---|---|---|
paper_id | string | OpenAlex paper ID. |
save_path | string optional | Directory where the PDF is/will be saved (default: './downloads'). |
read_pubmed_paperRead and extract text content from a PubMed paper.
| Parameters | Type | Description |
|---|---|---|
paper_id | string | PubMed ID (PMID). |
save_path | string optional | Directory where the PDF would be saved (unused). |
read_semantic_paperRead and extract text content from a Semantic Scholar paper.
| Parameters | Type | Description |
|---|---|---|
paper_id | string | Semantic Scholar paper ID, Paper identifier in one of the following formats: |
save_path | string optional | Directory where the PDF is/will be saved (default: './downloads'). |
read_ssrn_paperRead paper content from SSRN.
Note: SSRN connector is metadata-only and read is not supported.
| Parameters | Type | Description |
|---|---|---|
paper_id | string | SSRN paper identifier. |
save_path | string optional | Directory where the PDF is/will be saved (unused). |
read_zenodo_paperRead and extract text content from a Zenodo paper.
| Parameters | Type | Description |
|---|---|---|
paper_id | string | Zenodo paper identifier. |
save_path | string optional | Directory where the PDF is/will be saved (default: './downloads'). |
search_arxivSearch academic papers from arXiv.
| Parameters | Type | Description |
|---|---|---|
query | string | Search query string (e.g., 'machine learning'). |
max_results | integer optional | Maximum number of papers to return (default: 10). |
sort_by | string optional | Sort criterion — 'relevance', 'submittedDate', or 'lastUpdatedDate' (default: 'relevance'). |
sort_order | string optional | Sort direction — 'descending' or 'ascending' (default: 'descending'). |
search_baseSearch academic papers from BASE (Bielefeld Academic Search Engine).
| Parameters | Type | Description |
|---|---|---|
query | string | Search query string (e.g., 'machine learning'). |
max_results | integer optional | Maximum number of papers to return (default: 10). |
search_biorxivSearch academic papers from bioRxiv.
Note: bioRxiv API filters by category name within the last 30 days, not full-text
keyword search. Use a category keyword such as 'bioinformatics', 'neuroscience',
'cell biology', etc.
| Parameters | Type | Description |
|---|---|---|
query | string | Category name to filter by (e.g., 'bioinformatics', 'neuroscience'). |
max_results | integer optional | Maximum number of papers to return (default: 10). |
search_citeseerxSearch academic papers from CiteSeerX digital library.
| Parameters | Type | Description |
|---|---|---|
query | string | Search query string (e.g., 'machine learning'). |
max_results | integer optional | Maximum number of papers to return (default: 10). |
search_coreSearch academic papers from CORE.
| Parameters | Type | Description |
|---|---|---|
query | string | Search query string (e.g., 'machine learning'). |
max_results | integer optional | Maximum number of papers to return (default: 10). |
search_crossrefSearch academic papers from CrossRef database.
CrossRef is a scholarly infrastructure organization that provides
persistent identifiers (DOIs) for scholarly content and metadata.
It's one of the largest citation databases covering millions of
academic papers, journals, books, and other scholarly content.
| Parameters | Type | Description |
|---|---|---|
query | string | Search query string (e.g., 'machine learning', 'climate change'). |
filter | string optional | CrossRef filter string (e.g., 'has-full-text:true,from-pub-date:2020'). |
max_results | integer optional | Maximum number of papers to return (default: 10, max: 1000). |
order | string optional | Sort order ('asc' or 'desc'). |
sort | string optional | Sort field ('relevance', 'published', 'updated', 'deposited', etc.). |
search_dblpSearch academic papers from dblp computer science bibliography.
| Parameters | Type | Description |
|---|---|---|
query | string | Search query string (e.g., 'machine learning'). |
max_results | integer optional | Maximum number of papers to return (default: 10). |
search_doajSearch academic papers from DOAJ (Directory of Open Access Journals).
| Parameters | Type | Description |
|---|---|---|
query | string | Search query string (e.g., 'machine learning'). |
max_results | integer optional | Maximum number of papers to return (default: 10). |
search_europepmcSearch academic papers from Europe PMC.
| Parameters | Type | Description |
|---|---|---|
query | string | Search query string (e.g., 'machine learning'). |
max_results | integer optional | Maximum number of papers to return (default: 10). |
search_google_scholarSearch academic papers from Google Scholar.
| Parameters | Type | Description |
|---|---|---|
query | string | Search query string (e.g., 'machine learning'). |
max_results | integer optional | Maximum number of papers to return (default: 10). |
search_halSearch academic papers from HAL open archive.
| Parameters | Type | Description |
|---|---|---|
query | string | Search query string (e.g., 'machine learning'). |
max_results | integer optional | Maximum number of papers to return (default: 10). |
search_iacrSearch academic papers from IACR ePrint Archive.
| Parameters | Type | Description |
|---|---|---|
query | string | Search query string (e.g., 'cryptography', 'secret sharing'). |
fetch_details | boolean optional | Whether to fetch detailed information for each paper (default: True). |
max_results | integer optional | Maximum number of papers to return (default: 10). |
search_medrxivSearch academic papers from medRxiv.
Note: medRxiv API filters by category name within the last 30 days, not full-text
keyword search. Use a category keyword such as 'infectious_diseases',
'cardiovascular_medicine', 'oncology', etc.
| Parameters | Type | Description |
|---|---|---|
query | string | Category name to filter by (e.g., 'infectious_diseases', 'oncology'). |
max_results | integer optional | Maximum number of papers to return (default: 10). |
search_openaireSearch academic papers from OpenAIRE European Open Access infrastructure.
| Parameters | Type | Description |
|---|---|---|
query | string | Search query string (e.g., 'machine learning'). |
max_results | integer optional | Maximum number of papers to return (default: 10). |
search_openalexSearch academic papers from OpenAlex.
| Parameters | Type | Description |
|---|---|---|
query | string | Search query string (e.g., 'machine learning'). |
max_results | integer optional | Maximum number of papers to return (default: 10). |
search_papersUnified top-level search across all configured academic platforms.
| Parameters | Type | Description |
|---|---|---|
query | string | Search query string. |
max_results_per_source | integer optional | Max results to fetch from each selected source. |
sources | string optional | Comma-separated source names or 'all'. |
year | string optional | Optional year filter for Semantic Scholar only. |
search_pmcSearch academic papers from PubMed Central (PMC).
| Parameters | Type | Description |
|---|---|---|
query | string | Search query string (e.g., 'machine learning'). |
max_results | integer optional | Maximum number of papers to return (default: 10). |
search_pubmedSearch academic papers from PubMed.
| Parameters | Type | Description |
|---|---|---|
query | string | Search query string (e.g., 'machine learning'). |
max_results | integer optional | Maximum number of papers to return (default: 10). |
sort | string optional | Sort order — 'relevance' or 'pub_date' (default: 'relevance'). |
search_semanticSearch academic papers from Semantic Scholar.
| Parameters | Type | Description |
|---|---|---|
query | string | Search query string (e.g., 'machine learning'). |
max_results | integer optional | Maximum number of papers to return (default: 10). |
year | string optional | Optional year filter (e.g., '2019', '2016-2020', '2010-', '-2015'). |
search_ssrnSearch metadata records from SSRN.
Note: SSRN connector is metadata-only and does not support direct PDF download.
| Parameters | Type | Description |
|---|---|---|
query | string | Search query string (e.g., 'machine learning'). |
max_results | integer optional | Maximum number of papers to return (default: 10). |
search_unpaywallLookup a DOI via Unpaywall and return OA metadata.
Unpaywall is DOI-centric and does not support generic keyword search.
This tool extracts the first DOI from `query` and returns at most one record.
| Parameters | Type | Description |
|---|---|---|
query | string | DOI string or text containing a DOI. |
max_results | integer optional | Kept for API consistency; Unpaywall returns max 1 record. |
search_zenodoSearch academic papers from Zenodo open repository.
| Parameters | Type | Description |
|---|---|---|
query | string | Search query string (e.g., 'machine learning'). |
max_results | integer optional | Maximum number of papers to return (default: 10). |
{
"mcpServers": {
"paper-search": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"mcp/paper-search"
]
}
}
}
Content type
Image
Digest
sha256:19d0af269…
Size
75.9 MB
Last updated
17 days ago
docker pull mcp/paper-searchPulls:
505
Last week