Price Per TokenPrice Per Token
Paper Search

Paper Search

by adamamer20

GitHub 9 5,643 uses Remote
0

About

Paper Search is an MCP server that enables comprehensive academic literature discovery by searching and downloading papers from multiple scholarly platforms. It aggregates results from arXiv, PubMed, bioRxiv, medRxiv, Google Scholar, Semantic Scholar, IACR ePrint Archive, and optional Sci-Hub access. Key features of Paper Search: - Unified search interface across 7+ major academic repositories - PDF download and full-text extraction capabilities - Standardized metadata format for consistent citation and analysis - Asynchronous network requests for efficient performance - Deep Research compatibility with standardized `search` and `fetch` tools for OpenAI and ChatGPT connectors - Extensible architecture to add new academic platforms - Direct integration with Claude Desktop and other MCP-compatible LLM clients

Tools 25

search

Deep Research compatible search tool aggregating across sources.

fetch

Fetch full document content for a search result.

search_arxiv

Search academic papers from arXiv. Args: query: Search query string (e.g., 'machine learning'). max_results: Maximum number of papers to return (default: 10). Returns: List of paper metadata in dictionary format.

search_pubmed

Search academic papers from PubMed. Args: query: Search query string (e.g., 'machine learning'). max_results: Maximum number of papers to return (default: 10). Returns: List of paper metadata in dictionary format.

search_biorxiv

Search academic papers from bioRxiv. Args: query: Search query string (e.g., 'machine learning'). max_results: Maximum number of papers to return (default: 10). Returns: List of paper metadata in dictionary format.

search_medrxiv

Search academic papers from medRxiv. Args: query: Search query string (e.g., 'machine learning'). max_results: Maximum number of papers to return (default: 10). Returns: List of paper metadata in dictionary format.

search_google_scholar

Search academic papers from Google Scholar. Args: query: Search query string (e.g., 'machine learning'). max_results: Maximum number of papers to return (default: 10). Returns: List of paper metadata in dictionary format.

search_iacr

Search academic papers from IACR ePrint Archive. Args: query: Search query string (e.g., 'cryptography', 'secret sharing'). max_results: Maximum number of papers to return (default: 10). fetch_details: Whether to fetch detailed information for each paper (default: True). Returns: List of paper metadata in dictionary format.

download_arxiv

Download PDF of an arXiv paper. Args: paper_id: arXiv paper ID (e.g., '2106.12345'). save_path: Directory to save the PDF (default: './downloads'). Returns: Path to the downloaded PDF file.

download_pubmed

Attempt to download PDF of a PubMed paper. Args: paper_id: PubMed ID (PMID). save_path: Directory to save the PDF (default: './downloads'). Returns: str: Message indicating that direct PDF download is not supported.

download_biorxiv

Download PDF of a bioRxiv paper. Args: paper_id: bioRxiv DOI. save_path: Directory to save the PDF (default: './downloads'). Returns: Path to the downloaded PDF file.

download_medrxiv

Download PDF of a medRxiv paper. Args: paper_id: medRxiv DOI. save_path: Directory to save the PDF (default: './downloads'). Returns: Path to the downloaded PDF file.

download_iacr

Download PDF of an IACR ePrint paper. Args: paper_id: IACR paper ID (e.g., '2009/101'). save_path: Directory to save the PDF (default: './downloads'). Returns: Path to the downloaded PDF file.

read_arxiv_paper

Read and extract text content from an arXiv paper PDF. Args: paper_id: arXiv paper ID (e.g., '2106.12345'). save_path: Directory where the PDF is/will be saved (default: './downloads'). Returns: str: The extracted text content of the paper.

read_pubmed_paper

Read and extract text content from a PubMed paper. Args: paper_id: PubMed ID (PMID). save_path: Directory where the PDF would be saved (unused). Returns: str: Message indicating that direct paper reading is not supported.

read_biorxiv_paper

Read and extract text content from a bioRxiv paper PDF. Args: paper_id: bioRxiv DOI. save_path: Directory where the PDF is/will be saved (default: './downloads'). Returns: str: The extracted text content of the paper.

read_medrxiv_paper

Read and extract text content from a medRxiv paper PDF. Args: paper_id: medRxiv DOI. save_path: Directory where the PDF is/will be saved (default: './downloads'). Returns: str: The extracted text content of the paper.

read_iacr_paper

Read and extract text content from an IACR ePrint paper PDF. Args: paper_id: IACR paper ID (e.g., '2009/101'). save_path: Directory where the PDF is/will be saved (default: './downloads'). Returns: str: The extracted text content of the paper.

search_semantic

Search academic papers from Semantic Scholar. Args: query: Search query string (e.g., 'machine learning'). year: Optional year filter (e.g., '2019', '2016-2020', '2010-', '-2015'). max_results: Maximum number of papers to return (default: 10). Returns: List of paper metadata in dictionary format.

download_semantic

Download PDF of a Semantic Scholar paper. Args: paper_id: Semantic Scholar paper ID, Paper identifier in one of the following formats: - Semantic Scholar ID (e.g., "649def34f8be52c8b66281af98ae884c09aef38b") - DOI:<doi> (e.g., "DOI:10.18653/v1/N18-3011") - ARXIV:<id> (e.g., "ARXIV:2106.15928") - MAG:<id> (e.g., "MAG:112218234") - ACL:<id> (e.g., "ACL:W12-3903") - PMID:<id> (e.g., "PMID:19872477") - PMCID:<id> (e.g., "PMCID:2323736") - URL:<url> (e.g., "URL:https://arxiv.org/abs/2106.15928v1") save_path: Directory to save the PDF (default: './downloads'). Returns: Path to the downloaded PDF file.

read_semantic_paper

Read and extract text content from a Semantic Scholar paper. Args: paper_id: Semantic Scholar paper ID, Paper identifier in one of the following formats: - Semantic Scholar ID (e.g., "649def34f8be52c8b66281af98ae884c09aef38b") - DOI:<doi> (e.g., "DOI:10.18653/v1/N18-3011") - ARXIV:<id> (e.g., "ARXIV:2106.15928") - MAG:<id> (e.g., "MAG:112218234") - ACL:<id> (e.g., "ACL:W12-3903") - PMID:<id> (e.g., "PMID:19872477") - PMCID:<id> (e.g., "PMCID:2323736") - URL:<url> (e.g., "URL:https://arxiv.org/abs/2106.15928v1") save_path: Directory where the PDF is/will be saved (default: './downloads'). Returns: str: The extracted text content of the paper.

search_crossref

Search 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. Args: query: Search query string (e.g., 'machine learning', 'climate change'). max_results: Maximum number of papers to return (default: 10, max: 1000). **kwargs: Additional search parameters: - filter: CrossRef filter string (e.g., 'has-full-text:true,from-pub-date:2020') - sort: Sort field ('relevance', 'published', 'updated', 'deposited', etc.) - order: Sort order ('asc' or 'desc') Returns: List of paper metadata in dictionary format. Examples: # Basic search search_crossref("deep learning", 20) # Search with filters search_crossref("climate change", 10, filter="from-pub-date:2020,has-full-text:true") # Search sorted by publication date search_crossref("neural networks", 15, sort="published", order="desc")

get_crossref_paper_by_doi

Get a specific paper from CrossRef by its DOI. Args: doi: Digital Object Identifier (e.g., '10.1038/nature12373'). Returns: Paper metadata in dictionary format, or empty dict if not found. Example: get_crossref_paper_by_doi("10.1038/nature12373")

download_crossref

Attempt to download PDF of a CrossRef paper. Args: paper_id: CrossRef DOI (e.g., '10.1038/nature12373'). save_path: Directory to save the PDF (default: './downloads'). Returns: str: Message indicating that direct PDF download is not supported. Note: CrossRef is a citation database and doesn't provide direct PDF downloads. Use the DOI to access the paper through the publisher's website.

read_crossref_paper

Attempt to read and extract text content from a CrossRef paper. Args: paper_id: CrossRef DOI (e.g., '10.1038/nature12373'). save_path: Directory where the PDF is/will be saved (default: './downloads'). Returns: str: Message indicating that direct paper reading is not supported. Note: CrossRef is a citation database and doesn't provide direct paper content. Use the DOI to access the paper through the publisher's website.

README

Paper Search MCP

A Model Context Protocol (MCP) server for searching and downloading academic papers from multiple sources, including arXiv, PubMed, bioRxiv, and Sci-Hub (optional). Designed for seamless integration with large language models like Claude Desktop.

[](https://smithery.ai/server/@openags/paper-search-mcp)

---

Table of Contents

  • Overview
  • Features
  • Installation
  • - Quick Start - Install Package - Configure Claude Desktop - For Development - Setup Environment - Install Dependencies
  • Contributing
  • Demo
  • License
  • TODO
  • ---

    Overview

    paper-search-mcp is a Python-based MCP server that enables users to search and download academic papers from various platforms. It provides tools for searching papers (e.g., search_arxiv) and downloading PDFs (e.g., download_arxiv), making it ideal for researchers and AI-driven workflows. Built with the MCP Python SDK, it integrates seamlessly with LLM clients like Claude Desktop.

    ---

    Features

  • Multi-Source Support: Search and download papers from arXiv, PubMed, bioRxiv, medRxiv, Google Scholar, IACR ePrint Archive, Semantic Scholar.
  • Deep Research Ready: Provides the standardized search and fetch tools required by OpenAI Deep Research and ChatGPT connectors.
  • Standardized Output: Papers are returned in a consistent dictionary format via the Paper class.
  • Asynchronous Tools: Efficiently handles network requests using httpx.
  • MCP Integration: Compatible with MCP clients for LLM context enhancement.
  • Extensible Design: Easily add new academic platforms by extending the academic_platforms module.
  • ---

    Installation

    paper-search-mcp can be installed using uv or pip. Below are two approaches: a quick start for immediate use and a detailed setup for development.

    Installing via Smithery

    To install paper-search-mcp for Claude Desktop automatically via Smithery:

    npx -y @smithery/cli install @openags/paper-search-mcp --client claude
    

    Quick Start

    For users who want to quickly run the server:

    1. Install Package:

       uv add paper-search-mcp
       

    2. Configure Claude Desktop: Add this configuration to ~/Library/Application Support/Claude/claude_desktop_config.json (Mac) or %APPDATA%\Claude\claude_desktop_config.json (Windows):

       {
         "mcpServers": {
           "paper_search_server": {
             "command": "uv",
             "args": [
               "run",
               "--directory",
               "/path/to/your/paper-search-mcp",
               "-m",
               "paper_search_mcp.server"
             ],
             "env": {
               "SEMANTIC_SCHOLAR_API_KEY": "" // Optional: For enhanced Semantic Scholar features
             }
           }
         }
       }
       
    > Note: Replace /path/to/your/paper-search-mcp with your actual installation path.

    For Development

    For developers who want to modify the code or contribute:

    1. Setup Environment:

       # Install uv if not installed
       curl -LsSf https://astral.sh/uv/install.sh | sh

    # Clone repository git clone https://github.com/openags/paper-search-mcp.git cd paper-search-mcp

    # Create and activate virtual environment uv venv source .venv/bin/activate # On Windows: .venv\Scripts\activate

    2. Install Dependencies:

       # Install project in editable mode
       uv add -e .

    # Add development dependencies (optional) uv add pytest flake8

    ---

    Contributing

    We welcome contributions! Here's how to get started:

    1. Fork the Repository: Click "Fork" on GitHub.

    2. Clone and Set Up:

       git clone https://github.com/yourusername/paper-search-mcp.git
       cd paper-search-mcp
       pip install -e ".[dev]"  # Install dev dependencies (if added to pyproject.toml)
       

    3. Make Changes:

    - Add new platforms in academic_platforms/. - Update tests in tests/.

    4. Submit a Pull Request: Push changes and create a PR on GitHub.

    ---

    Demo

    TODO

    Planned Academic Platforms

  • [√] arXiv
  • [√] PubMed
  • [√] bioRxiv
  • [√] medRxiv
  • [√] Google Scholar
  • [√] IACR ePrint Archive
  • [√] Semantic Scholar
  • [ ] PubMed Central (PMC)
  • [ ] Science Direct
  • [ ] Springer Link
  • [ ] IEEE Xplore
  • [ ] ACM Digital Library
  • [ ] Web of Science
  • [ ] Scopus
  • [ ] JSTOR
  • [ ] ResearchGate
  • [ ] CORE
  • [ ] Microsoft Academic
  • ---

    License

    This proj

    Related MCP Servers

    AI Research Assistant

    AI Research Assistant

    hamid-vakilzadeh

    AI Research Assistant provides comprehensive access to millions of academic papers through the Semantic Scholar and arXiv databases. This MCP server enables AI coding assistants to perform intelligent literature searches, citation network analysis, and paper content extraction without requiring an API key. Key features include: - Advanced paper search with multi-filter support by year ranges, citation thresholds, field of study, and publication type - Title matching with confidence scoring for finding specific papers - Batch operations supporting up to 500 papers per request - Citation analysis and network exploration for understanding research relationships - Full-text PDF extraction from arXiv and Wiley open-access content (Wiley TDM token required for institutional access) - Rate limits of 100 requests per 5 minutes with options to request higher limits through Semantic Scholar

    Web & Search
    12 8
    Linkup

    Linkup

    LinkupPlatform

    Linkup is a real-time web search and content extraction service that enables AI assistants to search the web and retrieve information from trusted sources. It provides source-backed answers with citations, making it ideal for fact-checking, news gathering, and research tasks. Key features of Linkup: - Real-time web search using natural language queries to find current information, news, and data - Page fetching to extract and read content from any webpage URL - Search depth modes: Standard for direct-answer queries and Deep for complex research across multiple sources - Source-backed results with citations and context from relevant, trustworthy websites - JavaScript rendering support for accessing dynamic content on JavaScript-heavy pages

    Web & Search
    2 24
    Math-MCP

    Math-MCP

    EthanHenrickson

    Math-MCP is a computation server that enables Large Language Models (LLMs) to perform accurate numerical calculations through the Model Context Protocol. It provides precise mathematical operations via a simple API to overcome LLM limitations in arithmetic and statistical reasoning. Key features of Math-MCP: - Basic arithmetic operations: addition, subtraction, multiplication, division, modulo, and bulk summation - Statistical analysis functions: mean, median, mode, minimum, and maximum calculations - Rounding utilities: floor, ceiling, and nearest integer rounding - Trigonometric functions: sine, cosine, tangent, and their inverses with degrees and radians conversion support

    Developer Tools
    22 81