npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

sci-mcp-server

v1.0.0

Published

MCP Server for downloading PDFs from Sci-Hub

Readme

Sci-Hub MCP Server

A Model Context Protocol (MCP) server for accessing academic papers from Sci-Hub. Built with TypeScript and designed for Claude Desktop and other MCP clients.

🎯 Features

  • 🔗 Get PDF Links: Get direct PDF download links from Sci-Hub
  • 📄 Download PDFs: Download academic papers directly to specified locations
  • 🔍 Multi-Domain Support: Automatically tries multiple Sci-Hub domains (sci-hub.se, sci-hub.st, sci-hub.ru)
  • 📚 Flexible Input: Accepts DOIs and DOI URLs in various formats
  • 🛠️ MCP Integration: Full Model Context Protocol implementation
  • 📦 TypeScript: Full type safety and modern JavaScript features
  • 🚀 Production Ready: Built-in deployment scripts and configuration

🔧 Available Tools

get_paper_link

Gets direct PDF link for academic papers from Sci-Hub using DOI.

Input:

  • doi (string): DOI or DOI URL of the academic paper

Examples:

  • 10.1016/j.chb.2021.106974
  • https://doi.org/10.1016/j.chb.2021.106974

Output:

  • Direct PDF URL that can be accessed immediately
  • Faster response (no download required)

download_pdf

Downloads academic paper PDFs from Sci-Hub to a specified location.

Input:

  • doi (string): DOI or DOI URL of the academic paper
  • download_location (string): Full path where the PDF should be saved

Examples:

  • DOI: 10.1016/j.chb.2021.106974
  • Location: /Users/username/Documents/papers/paper.pdf

Output:

  • PDF file saved to the specified location
  • File size information and confirmation message

📋 Prerequisites

  • Node.js v18.0.0 or higher
  • npm or yarn package manager
  • MCP client (e.g., Claude Desktop)

🚀 Quick Start

Option 1: NPX (Recommended)

The fastest way to get started is using npx:

# Run directly with npx (no installation required)
npx sci-mcp-server help

For Claude Desktop Integration:

  1. Find your Claude Desktop config file:

    • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
    • Windows: %APPDATA%\Claude\claude_desktop_config.json
    • Linux: ~/.config/Claude/claude_desktop_config.json
  2. Add server configuration:

    {
      "mcpServers": {
        "sci-hub-server": {
          "command": "npx",
          "args": ["sci-mcp-server"]
        }
      }
    }
  3. Restart Claude Desktop

Option 2: Manual Installation

If you prefer to clone and build locally:

git clone https://github.com/yokowasis/sci-mcp-server.git
cd sci-mcp-server
npm install
npm run build

For Claude Desktop with local installation:

{
  "mcpServers": {
    "sci-hub-server": {
      "command": "node",
      "args": ["/path/to/your/sci-mcp-server/dist/index.js"]
    }
  }
}

🖥️ Server Modes

This server supports two modes of operation:

stdio Mode (Default)

For MCP client integration (like Claude Desktop):

npx sci-mcp-server          # Default stdio mode
npx sci-mcp-server stdio    # Explicit stdio mode

HTTP Mode

For web-based integrations and testing:

npx sci-mcp-server http               # Start HTTP server on port 3000
npx sci-mcp-server http --port 8080   # Start HTTP server on port 8080

HTTP Endpoints:

  • Health check: http://localhost:3000/health
  • SSE endpoint: http://localhost:3000/sse
  • Message endpoint: http://localhost:3000/message

💡 Usage Examples

Once integrated with Claude Desktop, you can:

"Get me the PDF link for DOI: 10.1016/j.chb.2021.106974"

"Download the paper with DOI 10.1038/nature12373 to ~/Downloads/nature-paper.pdf"

"Can you get me the paper for this DOI: https://doi.org/10.1126/science.abc1234"

📁 Project Structure

sci-mcp-server/
├── src/
│   └── index.ts              # Main MCP server implementation
├── dist/                     # Compiled JavaScript (generated)
├── scripts/                  # Build and deployment scripts
├── claude_desktop_config_example.json  # Claude Desktop config example
├── package.json              # Dependencies and scripts
├── tsconfig.json             # TypeScript configuration
└── README.md                 # This file

🛠️ Development Scripts

  • npm run build - Build for production
  • npm run dev - Start development server
  • npm run lint - Run ESLint
  • npm run clean - Clean build directory

⚙️ How It Works

  1. Input Processing: Accepts DOI identifiers in various formats
  2. Domain Fallback: Tries multiple Sci-Hub domains for reliability
  3. HTML Parsing: Extracts PDF download links from Sci-Hub pages
  4. PDF Access: Either returns direct links or downloads files locally

🚨 Troubleshooting

Common Issues

  1. "No PDF found" errors

    • The article may not be available on Sci-Hub
    • Try different DOI formats
  2. Network timeouts

    • Sci-Hub domains may be temporarily unavailable
    • The server automatically tries multiple domains
  3. Claude Desktop not recognizing server

    • Check the config file path and JSON syntax
    • Ensure the args path points to your dist/index.js
    • Restart Claude Desktop after config changes

⚖️ Legal & Ethical Considerations

This server is designed for educational and research purposes. Users are responsible for:

  • 📚 Complying with local laws and institutional policies
  • ⚖️ Respecting copyright and fair use principles
  • 🏛️ Following academic integrity guidelines
  • 🌍 Understanding that Sci-Hub availability varies by location

Recommendation: Use responsibly and consider supporting academic publishers when possible.

📄 License

MIT License - see LICENSE file for details.

🤝 Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Run tests: npm run lint && npm run build
  5. Submit a Pull Request

🔗 Resources


Ready to access academic papers? 🚀

Configure Claude Desktop and start asking for papers!