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.1.tar.gz (171.1 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.1-py3-none-any.whl (97.0 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: paper_download_mcp-0.9.1.tar.gz
  • Upload date:
  • Size: 171.1 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.1.tar.gz
Algorithm Hash digest
SHA256 0838e118e42a77b95559e34c9cc12db490bc4338244b3b98c64d0a4f7383e7d3
MD5 a09976bdea946196ac8a013a5f30fdc3
BLAKE2b-256 31d3231fad752b84f29ce778dc48828d009301a7c9a49c4a0136e4bd6c6241d3

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for paper_download_mcp-0.9.1-py3-none-any.whl
Algorithm Hash digest
SHA256 bc5011cd2e4f118c697d928a7f13265c4389c42a3497417e8e33e1be91c4ac1e
MD5 e8391fa0151647deb402c2ee06adc944
BLAKE2b-256 31b77835e0ec7664924f9dcc510b4ce95435b38ce36ddd712ecc54cb67edbdd9

See more details on using hashes here.

Provenance

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