Skip to main content

MCP server for downloading academic papers from multiple sources

Project description

Paper Download MCP Server

English | 简体中文

MCP server for downloading academic papers by DOI, arXiv ID, or URL.

What You Get

  • paper_download: Download one or more papers (1-50 per call)
  • paper_get_metadata: Get paper metadata without downloading
  • Optional PDF-to-Markdown conversion via to_markdown

Quick Start (MCP Clients)

Before configuration, make sure uvx is available:

uvx --version

Claude Code

Add as a project-scoped MCP server:

claude mcp add --transport stdio --scope project --env PAPER_DOWNLOAD_EMAIL=your-email@university.edu paper-download -- uvx paper-download-mcp

This writes .mcp.json in the current project. Equivalent config:

{
  "mcpServers": {
    "paper-download": {
      "command": "uvx",
      "args": ["paper-download-mcp"],
      "env": {
        "PAPER_DOWNLOAD_EMAIL": "your-email@university.edu"
      }
    }
  }
}

Codex

Add with CLI:

codex mcp add paper-download --env PAPER_DOWNLOAD_EMAIL=your-email@university.edu -- uvx paper-download-mcp

Equivalent ~/.codex/config.toml snippet:

[mcp_servers.paper-download]
command = "uvx"
args = ["paper-download-mcp"]

[mcp_servers.paper-download.env]
PAPER_DOWNLOAD_EMAIL = "your-email@university.edu"

Claude Desktop

Edit Claude Desktop MCP config:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\\Claude\\claude_desktop_config.json
{
  "mcpServers": {
    "paper-download": {
      "command": "uvx",
      "args": ["paper-download-mcp"],
      "env": {
        "PAPER_DOWNLOAD_EMAIL": "your-email@university.edu"
      }
    }
  }
}

Restart Claude Desktop after editing the file.

Configuration

Required

  • PAPER_DOWNLOAD_EMAIL: Required for Unpaywall API usage.

Optional (Advanced)

  • PAPER_DOWNLOAD_OUTPUT_DIR: Global fallback output directory.

In most cases, you do not need PAPER_DOWNLOAD_OUTPUT_DIR. Prefer passing output_dir in the paper_download tool call when you want a specific location.

Legacy env vars are still supported for compatibility:

  • SCIHUB_CLI_EMAIL
  • SCIHUB_OUTPUT_DIR

Tools

paper_download

Download papers with configurable concurrency (default parallel=10). If parallel=1, papers are processed sequentially with a 2-second delay between items. OA-first routing uses OpenAlex and Unpaywall first; CORE is disabled by default in MCP runtime.

Parameters:

  • identifiers (required): list[str], 1-50 items
  • output_dir (optional): target directory (default ./downloads)
  • parallel (optional): concurrent workers, 1-50 (default 10)
  • to_markdown (optional): convert PDF to Markdown (false by default)
  • md_output_dir (optional): Markdown directory (default <output_dir>/md)

Examples:

paper_download(["10.1038/nature12373"])
paper_download(["10.1038/nature12373", "2301.00001"], output_dir="/path/to/papers")
paper_download(["10.1038/nature12373", "10.1126/science.169.3946.635"], parallel=10)
paper_download(["10.1038/nature12373"], to_markdown=true)

paper_get_metadata

Get metadata quickly (no PDF download).

Parameters:

  • identifier (required): DOI, arXiv ID, or URL

Example:

paper_get_metadata("10.1038/nature12373")

Troubleshooting

PAPER_DOWNLOAD_EMAIL environment variable is required

Set PAPER_DOWNLOAD_EMAIL in your MCP server config.

uvx: command not found

Install uv, then re-run the MCP configuration.

Download path errors

Pass a writable directory with output_dir, for example:

paper_download(["10.1038/nature12373"], output_dir="/absolute/path")

Legal Notice

This tool can access papers from multiple sources, including Unpaywall and Sci-Hub. You are responsible for complying with copyright and local laws in your jurisdiction.

License

MIT. See LICENSE.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

paper_download_mcp-0.9.0.tar.gz (170.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

paper_download_mcp-0.9.0-py3-none-any.whl (96.5 kB view details)

Uploaded Python 3

File details

Details for the file paper_download_mcp-0.9.0.tar.gz.

File metadata

  • Download URL: paper_download_mcp-0.9.0.tar.gz
  • Upload date:
  • Size: 170.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for paper_download_mcp-0.9.0.tar.gz
Algorithm Hash digest
SHA256 069aaa5958d34339cfef9fb786829e9b3437971a395eac6125e960dfb882e353
MD5 13862a0bade1d7645586d706538dc633
BLAKE2b-256 78fd22f4d69e3e91c8bd9d3c64d02972f137c561dbf25134657768538287c52c

See more details on using hashes here.

Provenance

The following attestation bundles were made for paper_download_mcp-0.9.0.tar.gz:

Publisher: publish-pypi.yml on Oxidane-bot/paper-download-mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file paper_download_mcp-0.9.0-py3-none-any.whl.

File metadata

File hashes

Hashes for paper_download_mcp-0.9.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b772e39b300dfb1c5826dafe8137927e0eb93c0129e3b5aeabdcdd7826269807
MD5 1d49a216653badaac6b647142616c27c
BLAKE2b-256 2563d0472ae80df955bc77a317651e086c041ccf9dc758d70e333ad7281e2ca8

See more details on using hashes here.

Provenance

The following attestation bundles were made for paper_download_mcp-0.9.0-py3-none-any.whl:

Publisher: publish-pypi.yml on Oxidane-bot/paper-download-mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page