MCP Server Integration

Convert DocSend documents to PDF directly from Claude, Cursor, or any other MCP-compatible application. One config block, then just ask in plain English.

Quick start

1. Install uv

The recommended setup runs the server with uv's uvx runner. It is machine-independent (no usernames or install paths in the config) and picks up new server releases automatically. If your system lacks Python 3.11, uvx downloads a managed copy on first run.

brew install uv                                  # macOS
# or: curl -LsSf https://astral.sh/uv/install.sh | sh

2. Add the server to your client

Claude Desktop

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json · Windows: %APPDATA%\Claude\claude_desktop_config.json

Add the docsend2pdf entry inside your existing mcpServers object (create the object if the file is new; do not replace other servers you already have):

{
    "mcpServers": {
        "docsend2pdf": {
            "command": "uvx",
            "args": ["--python", "3.11", "docsend2pdf-mcp@latest"]
        }
    }
}

Claude Code (CLI)

claude mcp add --scope user docsend2pdf -- uvx --python 3.11 docsend2pdf-mcp@latest

Cursor

Add the same JSON block to ~/.cursor/mcp.json (all projects) or .cursor/mcp.json inside a project.

Other MCP clients

Any client that supports stdio MCP servers works: configure command uvx with args ["--python", "3.11", "docsend2pdf-mcp@latest"] wherever the client defines servers.

3. Restart and verify

Usage

Ask your AI assistant naturally:

Most decks ask viewers for an email address. If you have not given one, the assistant is told to ask for an address you can read before converting; the deck owner will see it. Public decks convert without an email.

docsend.com/view/... and docsend.com/v/... document links, the /view/<space>/d/<doc> links a Space uses for its documents, and docsend.com subdomains all work. A Space link (docsend.com/view/s/...) is forwarded to the service, which converts it when the Space holds a single document. A gated Space takes the same email, passcode and email-verification steps as a document. A Space that holds several documents, or that asks for something the service cannot answer, is reported back with a request for the individual document's link: open the Space in DocSend and copy that link.

Converted PDFs are saved to a docsend_pdfs folder inside your account's Downloads folder by default; the assistant replies with the exact file path.

Tool reference

The server exposes three tools. Your assistant fills the parameters in from your request, so you rarely need them directly.

convert_docsend

ParameterRequiredDescription
urlYesThe DocSend link: /view/, /v/, a Space document's /view/<space>/d/<doc> link, or a Space link (/view/s/)
emailNoAn email address you can read; the deck owner will see it. Needed for most decks, optional for public ones
passcodeNoPassword, for password-protected documents
filenameNoCustom filename for the saved PDF (always saved inside the download folder)

submit_verification_link

ParameterRequiredDescription
session_idYesThe session ID returned by convert_docsend when verification is required
verification_urlYesThe unopened link behind the "Verify email address" button in the DocSend email

fetch_conversion (new in 0.3.0)

ParameterRequiredDescription
task_idYesThe task ID reported by an earlier conversion that timed out before the PDF arrived
filenameNoCustom filename for the saved PDF (always saved inside the download folder)

Every reply ends with a small JSON block (status, error_code, retryable, recovery_action, task_id, session_id, saved_path, plus expires_at and the copying instruction on a verification handoff). You can ignore it; it lets the assistant recover without guessing, for example by asking for a document link when a Space holds several documents, by restarting verification, or by fetching a timed-out conversion instead of starting it again.

For agent builders

If you wire the server into your own agent, branch on the JSON block rather than on the prose. error_code and retryable follow the API error contract; recovery_action is one of:

A retryable timeout that carries a task_id means the conversion may still finish; call fetch_conversion with that ID instead of converting again. A 429 with a short Retry-After is waited out by the server; longer delays come back as rate_limited with a retry_after value.

Configuration

DOCSEND2PDF_DOWNLOAD_DIR controls where PDFs are saved. By default they go to a docsend_pdfs folder inside the Downloads folder your account actually uses (the registry known folder on Windows, XDG_DOWNLOAD_DIR on Linux, ~/Downloads on macOS), created on first save. To change it, add an env block to the server entry, using an absolute path; a blank value is ignored and a relative one is taken from your home directory:

"docsend2pdf": {
    "command": "uvx",
    "args": ["--python", "3.11", "docsend2pdf-mcp@latest"],
    "env": { "DOCSEND2PDF_DOWNLOAD_DIR": "/absolute/path/to/folder" }
}

A download never replaces an existing file unless you asked for that filename: a second deck.pdf is saved as deck (2).pdf. If the folder cannot be written to, the PDF is saved to a fresh private temporary folder and the reply says so, rather than the conversion being lost.

Pending verification sessions are kept in a private file under %LOCALAPPDATA%, ~/Library/Application Support or $XDG_STATE_HOME. Set DOCSEND2PDF_STATE_DIR to an absolute path to move it.

Alternative: pinned install with pipx

If you prefer a pinned installation (no automatic updates), install with pipx (requires Python 3.10+):

pipx install docsend2pdf-mcp

Then use the absolute path from which docsend2pdf-mcp as the command (no args). Upgrade manually with pipx upgrade docsend2pdf-mcp, remove with pipx uninstall docsend2pdf-mcp.

pipx installs stay on the version you installed. Run pipx upgrade docsend2pdf-mcp to get 0.3.0, which adds Space link support, verification sessions that survive a restart, and fetch_conversion. If your Downloads folder is not at ~/Downloads, PDFs now arrive in the real one; set DOCSEND2PDF_DOWNLOAD_DIR to keep the old location.

How it works

The server is a thin client for the same public API that powers this website (API documentation). Your document is converted by docsend2pdf.com and the PDF is saved to your local disk.

Limitations

Troubleshooting

Back to Home