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 uses runtime fallback: PAPER_DOWNLOAD_OUTPUT_DIR or ./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.2.tar.gz (188.9 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.2-py3-none-any.whl (125.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: paper_download_mcp-0.9.2.tar.gz
  • Upload date:
  • Size: 188.9 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.2.tar.gz
Algorithm Hash digest
SHA256 332ee731876ac2d3006052c9973393cf4278d90d619e0312cdcbdbe4bda5a457
MD5 7e1c59f6ed55cc76607a14b78213750d
BLAKE2b-256 d0b86272ee9cbf9be34fa6ca6bc46c17da0530bd2b32d5a527195afcafde0806

See more details on using hashes here.

Provenance

The following attestation bundles were made for paper_download_mcp-0.9.2.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.2-py3-none-any.whl.

File metadata

File hashes

Hashes for paper_download_mcp-0.9.2-py3-none-any.whl
Algorithm Hash digest
SHA256 e7fd8960c5444b8ea476a23194cca009e2acbd626b9e85e7578bdafde706ecf8
MD5 1fa24f84f87ee0ad48f71b707e38c3aa
BLAKE2b-256 d545a532e056360df8a502ffa5e16cbcfcc6ecd4a62075983163205448a72dc4

See more details on using hashes here.

Provenance

The following attestation bundles were made for paper_download_mcp-0.9.2-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