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=3). If parallel=1, papers are processed sequentially with a 2-second delay between items.

Parameters:

  • identifiers (required): list[str], 1-50 items
  • output_dir (optional): target directory (default ./downloads)
  • parallel (optional): concurrent workers, 1-6 (default 3)
  • 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=3)
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.7.0.tar.gz (152.5 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.7.0-py3-none-any.whl (77.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: paper_download_mcp-0.7.0.tar.gz
  • Upload date:
  • Size: 152.5 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.7.0.tar.gz
Algorithm Hash digest
SHA256 b7ae8156e063d207af2137adc9487ca2b67a1e8f708f9943eb5597a26ceb587e
MD5 0f6e1bfddb390ea815465fb766a19596
BLAKE2b-256 1e48527cf2b3734bb0a9ced325beca3f6f77e5fac11b06d5ebf8aa195f9e590e

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for paper_download_mcp-0.7.0-py3-none-any.whl
Algorithm Hash digest
SHA256 67de25dcce33fe6ac48f60f5befda059d491c98f4a24cc2b4678b69a6f9ba095
MD5 d82881a2f47123524de8d46de11e0333
BLAKE2b-256 35d3a7ebb9ac30fd3bd5e3c197e7515f1e503b143748c5edae0654af68ef6085

See more details on using hashes here.

Provenance

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