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_EMAILSCIHUB_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 itemsoutput_dir(optional): target directory (default./downloads)parallel(optional): concurrent workers,1-6(default3)to_markdown(optional): convert PDF to Markdown (falseby 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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b7ae8156e063d207af2137adc9487ca2b67a1e8f708f9943eb5597a26ceb587e
|
|
| MD5 |
0f6e1bfddb390ea815465fb766a19596
|
|
| BLAKE2b-256 |
1e48527cf2b3734bb0a9ced325beca3f6f77e5fac11b06d5ebf8aa195f9e590e
|
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
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
paper_download_mcp-0.7.0.tar.gz -
Subject digest:
b7ae8156e063d207af2137adc9487ca2b67a1e8f708f9943eb5597a26ceb587e - Sigstore transparency entry: 953602588
- Sigstore integration time:
-
Permalink:
Oxidane-bot/paper-download-mcp@8dfcf1e444c21430ec8d472b69cdce319d41049d -
Branch / Tag:
refs/tags/v0.7.0 - Owner: https://github.com/Oxidane-bot
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@8dfcf1e444c21430ec8d472b69cdce319d41049d -
Trigger Event:
push
-
Statement type:
File details
Details for the file paper_download_mcp-0.7.0-py3-none-any.whl.
File metadata
- Download URL: paper_download_mcp-0.7.0-py3-none-any.whl
- Upload date:
- Size: 77.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
67de25dcce33fe6ac48f60f5befda059d491c98f4a24cc2b4678b69a6f9ba095
|
|
| MD5 |
d82881a2f47123524de8d46de11e0333
|
|
| BLAKE2b-256 |
35d3a7ebb9ac30fd3bd5e3c197e7515f1e503b143748c5edae0654af68ef6085
|
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
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
paper_download_mcp-0.7.0-py3-none-any.whl -
Subject digest:
67de25dcce33fe6ac48f60f5befda059d491c98f4a24cc2b4678b69a6f9ba095 - Sigstore transparency entry: 953602589
- Sigstore integration time:
-
Permalink:
Oxidane-bot/paper-download-mcp@8dfcf1e444c21430ec8d472b69cdce319d41049d -
Branch / Tag:
refs/tags/v0.7.0 - Owner: https://github.com/Oxidane-bot
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@8dfcf1e444c21430ec8d472b69cdce319d41049d -
Trigger Event:
push
-
Statement type: