Built by Metorial, the integration platform for agentic AI.

Learn More

OPENAGS/paper-search-mcp

Paper Search

    Server Summary

    • Search for academic papers

    • Download papers from multiple sources

    • Access scholarly content

    • Integrate with large language models

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.

PyPI License Python smithery badge


Table of Contents


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, and Sci-Hub (optional).
  • 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"
          ]
        }
      }
    }
    

    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
  • 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 project is licensed under the MIT License. See the LICENSE file for details.


Happy researching with paper-search-mcp! If you encounter issues, open a GitHub issue.