Skip to main content

docsend2pdf-mcp

MCP server for converting DocSend documents to PDF via docsend2pdf.com

Installation

Requires Python 3.10+.

pip install docsend2pdf-mcp

Configuration

{
    "mcpServers": {
        "docsend2pdf": {
            "command": "python",
            "args": ["-m", "docsend2pdf_mcp"],
            "env": {
                "DOCSEND2PDF_DOWNLOAD_DIR": "~/Downloads/docsend_pdfs"
            }
        }
    }
}

Usage

  • Convert: "Convert this DocSend to PDF: https://docsend.com/view/abc123"
  • With password: "Convert https://docsend.com/view/xyz789 (password: mypass)"
  • With email: "Convert https://docsend.com/view/doc456 (email: user@example.com)"
  • Custom filename: "Save https://docsend.com/view/doc789 as report.pdf"

Most decks ask for an email. The agent should ask for an address you can read before converting if you have not supplied one. The deck owner will see it. Email remains optional for public documents. Password-protected documents need passcode.

Both docsend.com/view/... and docsend.com/v/... document links work. Space links (/view/s/) do not: provide the individual document link instead.

Email verification

If DocSend sends a verification email, convert_docsend returns status: "email_verification_required", session_id, and expires_at. Copy the link behind the "Verify email address" button without opening it, then give it to the agent. The link is single-use.

The agent calls submit_verification_link(session_id, verification_url). The MCP server submits the link to the verification API, polls until the PDF is ready, and saves it using the original custom filename, if any. Queued conversions are also polled automatically.

Verification sessions are held in memory until expiry (normally 24 hours). If the MCP server restarts, the session expires, or you already opened the email link, start a new conversion for a fresh verification email.

Results

Results retain the human-readable message and the Saved to: <path> line. Every result also contains a fenced JSON block with status, error_code, retryable, recovery_action, task_id, session_id, and saved_path. Unavailable values are null. Successful conversions use status: "completed"; failures use "error". Verification handoffs also include expires_at and the exact copying instruction.

API failures preserve details.error_code, details.retryable, and recovery_action so agents can ask for missing email or credentials, restart verification, or stop retrying a dead link. Errors remain text, not MCP isError results, for compatibility with older clients.

Features

  • Password-protected documents
  • Email-gated documents, including completion of email verification inside MCP
  • Custom filenames, sanitized to stay inside the download directory
  • Rate limiting (5 req/sec)
  • Explicit blocking requests (async: false) with a versioned DocSend2PDF-MCP/0.2.0 User-Agent
  • Readable five-minute timeout errors

PDFs still default to ~/Downloads/docsend_pdfs; override this with DOCSEND2PDF_DOWNLOAD_DIR. Clients must be able to read that local path.

Upgrading

0.2.0 keeps the existing convert_docsend arguments and requires Python 3.10+ and MCP 1.x. Users of uvx docsend2pdf-mcp@latest pick up the release on their next client restart. Pinned pipx installations need an explicit upgrade:

pipx upgrade docsend2pdf-mcp

Development

pip install -e ".[dev]"
python -m pytest
python -m build

pyproject.toml is the only packaging file. The package is split into api.py (HTTP client, polling, verification sessions), files.py (PDF saving), server.py (MCP tools), and __main__.py (stdio entry point).

The tracked unit suite (tests/unit) uses mock HTTP responses, temporary download directories, and no live DocSend links or email. The build produces both a wheel and an sdist. The sdist includes only package sources, unit tests, and distribution metadata; anything else in the working tree is excluded.

License

MIT

Metadata

Release files for docsend2pdf-mcp 0.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for docsend2pdf-mcp 0.2.0
File Size Uploaded Provenance Actions
docsend2pdf_mcp-0.2.0.tar.gz 17.6 kB Without provenance Details for docsend2pdf_mcp-0.2.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for docsend2pdf-mcp 0.2.0
File Interpreter ABI Platform Actions
docsend2pdf_mcp-0.2.0-py3-none-any.whl Python 3 none any Details for docsend2pdf_mcp-0.2.0-py3-none-any.whl

Total release size: 30.9 kB

Release files / docsend2pdf_mcp-0.2.0.tar.gz

Download URL docsend2pdf_mcp-0.2.0.tar.gz
Size 17.6 kB
Tags Source
SHA-256 checksum
How to use checksums
905685cec81ea27a1eaabed3fe392186985a75115093f79a6d61dc16892a1d80
BLAKE2b-256 checksum
How to use checksums
f55504151f745191d0b3d6e0058abfedeef0fa1b1c2d1a19c78971237858775c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.10.16

Release files / docsend2pdf_mcp-0.2.0-py3-none-any.whl

Download URL docsend2pdf_mcp-0.2.0-py3-none-any.whl
Size 13.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
305a461ba0e533eaf2b8b06ed8dbf4baabfadd5d24098f01d269fbfc549b26d4
BLAKE2b-256 checksum
How to use checksums
65bcd68c966135c140404bb66e6e37f26b8acd32bae3d95cf283688d1fb46c1a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.10.16

Security for docsend2pdf-mcp 0.2.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page