mcpField
U
url-to-pdf

url-to-pdf

Remote
url-pdf.hammbox.comBrowser Automation0Updated 3w ago

About url-to-pdf

url-to-pdf is a hosted service that converts public web pages into PDFs, full-page screenshots, Markdown, or structured JSON. It can be used through an MCP-compatible client or HTTP API, and returns download links with render receipts; small outputs can also be returned inline over MCP.

Key features

  1. 01Convert pages to PDF
  2. 02Capture full-page PNG or JPEG screenshots
  3. 03Extract Markdown or structured JSON
  4. 04Set viewport, dark mode, and render waits
  5. 05Return download links and render receipts

Use cases

  1. 01Save a web page as a PDF
  2. 02Create a full-page screenshot
  3. 03Extract page text and links
  4. 04Call the rendering API from scripts or backends

MCP support

The service exposes capability listing, PDF, screenshot, Markdown, and structured extraction tools over a Streamable HTTP MCP server. Clients authenticate with an API key; artifacts up to 1 MB can also be returned inline.

Configuration

Remote servers need no local install. Pick your client, then copy the config or install in one click.

Endpointhttps://url-pdf.hammbox.com/mcp
Copy install command
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

Run commands in a terminal; paste JSON into the client’s MCP config and restart. Servers that need sign-in will prompt on first connect.

All endpoints
Streamable HTTPhttps://url-pdf.hammbox.com/mcpAuth required

Tools

5

This tool takes no parameters.

Details

From the project README

url-to-pdf

Turn any public web page into a PDF, a full-page screenshot, or clean Markdown — with one API key.

No browser farm to run, no headless Chrome to babysit. url-to-pdf renders pages on Cloudflare's infrastructure and hands you a download link. Use it from any MCP-compatible AI client (Claude Desktop, Cursor, and friends) by just talking, or call the HTTP API directly from your scripts.

url-to-pdf preview


Why you'll like it

  • Four outputs, one key. PDF (A4 / Letter / Legal, portrait or landscape), full-page PNG/JPEG screenshots, clean Markdown (navigation stripped out), and structured JSON (title, description, canonical URL, language, main text, links).
  • Your assistant actually sees the result. Small outputs (≤1 MB) are returned inline — screenshots come back as images the model can look at, not just a link it has to read out loud.
  • Every render comes with a receipt. Final URL after redirects, HTTP status, capture time, duration, byte size and a SHA-256 of the artifact, so a result can be quoted and verified later.
  • Just talk to it. Connect it as an MCP server and say "turn https://example.com into a PDF" — your client does the rest. No curl, no JSON to hand-write.
  • Also a plain HTTP API. Every tool is a single POST with your x-api-key. Great for scripts, backends, and low-code platforms.
  • Mobile, retina and dark mode. Set any viewport (320–3840 × 240–2160), device pixel ratio up to 3, and render with prefers-color-scheme: dark.
  • SSRF-protected. Only public http(s) URLs are accepted; internal and reserved addresses are rejected at the edge.
  • Private by design. Outputs are kept for 1 hour then auto-deleted. We never see your card (Paddle handles payments) and your email is used only to recover your key.

Get your API key

  1. Go to url-pdf.hammbox.com/buy and complete checkout (Paddle — major credit cards).
  2. Your key appears on screen the moment payment completes. Copy it and keep it safe.
  3. Lost it? Recover it anytime at /portal/claim with the email you used at checkout. No password, no support ticket.

Use it as an MCP server (recommended for AI clients)

Add url-to-pdf to your client's MCP configuration. With Claude Desktop, Cursor, or any client that supports Streamable HTTP:

{
  "mcpServers": {
    "url-to-pdf": {
      "type": "http",
      "url": "https://url-pdf.hammbox.com/mcp",
      "headers": { "x-api-key": "YOUR_API_KEY" }
    }
  }
}

That's it — no local install. Then just ask your assistant in natural language:

"Convert https://news.ycombinator.com to a PDF and give me the download link."

The client calls the tool, passes your key, and shows you the result.


Use it as an HTTP API (for scripts & backends)

Every render is a POST to a /tools/* endpoint with your key in the header.

# Web page → PDF
curl -X POST https://url-pdf.hammbox.com/tools/url-to-pdf \
  -H "Content-Type: application/json" \
  -H "x-api-key: YOUR_API_KEY" \
  -d '{"url":"https://example.com","format":"A4"}'

# Full-page screenshot
curl -X POST https://url-pdf.hammbox.com/tools/url-to-screenshot \
  -H "Content-Type: application/json" \
  -H "x-api-key: YOUR_API_KEY" \
  -d '{"url":"https://example.com","fullPage":true,"format":"png"}'

# Extract Markdown
curl -X POST https://url-pdf.hammbox.com/tools/url-to-markdown \
  -H "Content-Type: application/json" \
  -H "x-api-key: YOUR_API_KEY" \
  -d '{"url":"https://example.com"}'

# Structured data as JSON
curl -X POST https://url-pdf.hammbox.com/tools/url-to-extract \
  -H "Content-Type: application/json" \
  -H "x-api-key: YOUR_API_KEY" \
  -d '{"url":"https://example.com","maxLinks":50}'

# Mobile screenshot, retina, dark mode
curl -X POST https://url-pdf.hammbox.com/tools/url-to-screenshot \
  -H "Content-Type: application/json" \
  -H "x-api-key: YOUR_API_KEY" \
  -d '{"url":"https://example.com","width":390,"height":844,"deviceScaleFactor":2,"darkMode":true,"blockAds":true}'

The response includes a downloadUrl valid for 1 hour:

{
  "downloadUrl": "https://url-pdf.hammbox.com/f/pdf/<id>.pdf",
  "contentType": "application/pdf",
  "sizeBytes": 456494,
  "title": "Example Domain",
  "ttlSeconds": 3600,
  "meta": { "format": "A4", "landscape": false },
  "receipt": {
    "renderId": "<uuid>",
    "url": "https://example.com",
    "finalUrl": "https://example.com/",
    "capturedAt": "2026-10-09T06:20:11.482Z",
    "durationMs": 2140,
    "bytes": 456494,
    "sha256": "9f2c…",
    "format": "pdf",
    "httpStatus": 200
  }
}

Over MCP, artifacts of 1 MB or less are additionally returned inline next to the JSON above — as an image content block for screenshots, or an embedded resource for PDF / Markdown / JSON.

curl -O "<downloadUrl>"

Tools & parameters

MCP toolHTTP endpointWhat it does
list_capabilities (free)GET /openapi.jsonLists capabilities, prices, and where to buy a key
url_to_pdfPOST /tools/url-to-pdfRender a page to PDF
url_to_screenshotPOST /tools/url-to-screenshotCapture a full-page screenshot
url_to_markdownPOST /tools/url-to-markdownExtract the page as clean Markdown
url_to_extractPOST /tools/url-to-extractStructured JSON: title, description, canonical, language, main text, links

url_to_pdf — url (required), format (A4 / Letter / Legal, default A4), landscape, printBackground, scale (0.1–2), margin, preferCssPageSize.

url_to_screenshot — url (required), fullPage (default true), format (png / jpeg), quality (0–1), selector (capture one element), clip ("x,y,width,height").

url_to_markdown — url (required), removeSelectors (e.g. ["nav",".ads","footer"]), keepImages.

url_to_extract — url (required), maxTextChars (500–200000, default 20000), maxLinks (0–500, default 100).

Options available on every render tool
OptionRange / valuesWhat it does
width / height320–3840 / 240–2160Viewport size (default 1280 × 900)
deviceScaleFactor0.5–3Set 2 for retina / HiDPI output
darkModebooleanRender with prefers-color-scheme: dark
blockAdsbooleanBlock requests to major ad and analytics domains
hideCookieBannersbooleanRemove cookie-consent looking elements
clickSelectorCSS selectorClick before capturing (expand, dismiss modal, switch tab)
waitUntilload / domcontentloaded / networkidle0 / networkidle2Navigation wait condition (default networkidle2)
waitForSelectorCSS selectorWait for an element before capturing
waitMs0–10000Extra settle time after load
timeoutMs5000–100000Navigation timeout (default 45000)

Pricing

$5 / month — one subscription, one API key, all four render tools included. Billed and managed by Paddle (our Merchant of Record); cancel anytime from your Paddle customer portal.

Fair-use note: rendering runs on Cloudflare Browser Rendering. Under the free tier, a short burst of heavy concurrent load may be briefly rate-limited (HTTP 429) — just retry in a few seconds.


Links

License

MIT

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.