# HTML to PDF in Claude Code Convert HTML or any public URL to PDF from Claude Code with the html-pdf.com remote MCP server. Run one command to connect, then just ask Claude. **Quick answer:** run `claude mcp add --transport http html-pdf https://html-pdf.com/mcp --header "Authorization: Bearer $HTML_PDF_KEY"`, then ask Claude "Render invoice.html to a PDF". ## Get an API key You need a key before you connect. Sign up with one call and copy the `api_key` from the response (it is shown once). Then open the link we email you to confirm your address. That adds 100 free credits, and 1 credit = 1 PDF page. ```bash curl -X POST https://html-pdf.com/v1/signup \ -H "Content-Type: application/json" \ -d '{"email": "you@example.com"}' ``` You can also get a key by email at https://html-pdf.com/login. Then export it: ```bash export HTML_PDF_KEY=hp_live_... ``` ## Connect This step adds the remote MCP server (Streamable HTTP) to Claude Code. There is nothing to install and no `npx`. ```bash claude mcp add --transport http html-pdf https://html-pdf.com/mcp \ --header "Authorization: Bearer $HTML_PDF_KEY" ``` Run `/mcp` inside Claude Code to check that `html-pdf` is connected. You get four tools: `html_to_pdf`, `url_to_pdf`, `get_credits`, and `buy_credits`. No key yet? Add the server without the header and Claude Code opens an html-pdf.com login in your browser. New accounts get 100 free credits. ## Try it Once connected, you just ask in plain words. You don't write any code. For example: - "Render `invoice.html` in this repo to an A4 PDF with 15mm margins and page numbers in the footer." - "Make a PDF of https://example.com in landscape Letter, using screen styles." - "Turn the README into a styled PDF report and give me the download link. How many html-pdf credits do I have left?" The tool returns a download link valid for 24 hours, the page count and your remaining credits. ## Tips These requests help you get cleaner PDFs and repeatable builds. - **Page breaks:** ask Claude to add `break-before: page` before each section and `break-inside: avoid` on tables and cards. - **Page numbers:** footers use `` and ``. Ask for a margin too, or the footer has no room. - **Guard against runaway documents:** tell Claude to set `max_pages` (for example 10). If the PDF would be longer, the render fails and costs nothing. - **Scripts in your repo:** for repeatable builds, ask Claude to write a script that calls `POST https://html-pdf.com/v1/pdf` directly with `"response": "url"` or the binary response. ## Troubleshooting Most issues come from an empty key variable or pages that need more time to load. - **`html-pdf` shows as failed in `/mcp`:** check that `$HTML_PDF_KEY` was set in the shell where you ran `claude mcp add`. The header value is stored as you typed it, so re-add the server if the variable was empty. - **`insufficient_credits` (402):** ask Claude to call `buy_credits`. It returns a Stripe payment link. Purchased credits never expire. - **403 `email_not_confirmed`:** the email behind the key isn't confirmed yet. Click the link we emailed you (it adds the 100 free credits), then try again. - **Blank or half-rendered page from a URL:** the page needs JavaScript time. Ask for `wait_delay` of 2 to 3 seconds. Pages behind a login won't work, so send their HTML instead. ## FAQ ### How do I add a PDF MCP server to Claude Code? Run `claude mcp add --transport http html-pdf https://html-pdf.com/mcp` with an `Authorization: Bearer` header holding your key. Then check it with `/mcp`. ### Do I need to install anything locally? No. html-pdf.com is a remote MCP server, so there is no `npx`, Chrome or Puppeteer to install. Rendering happens on our servers. ### Is there a free tier? Yes. Every new account gets 100 free credits once you confirm your email, with no card. 1 credit = 1 PDF page, and failed renders cost nothing. ### Does it support page numbers? Yes. Use `` and `` in the footer and set a bottom margin so the footer has room. Full reference: [API docs](https://html-pdf.com/docs) ยท [MCP server](https://html-pdf.com/mcp)