Labsco
MCP SERVER

Cloudflare Browser Rendering

by amotivv

Render web pages through your own Cloudflare Worker — fetch a page as clean context, pull fields out with CSS selectors, summarise, or take a screenshot.

Browser Automation, Control & ScreenshotsVerified
Summary
You run the browser, so the rendering is yours to control.

Because the Worker is deployed to your own Cloudflare account, page loads are billed and rate-limited by you rather than by a third-party scraping service, and a page that needs JavaScript to render actually renders. The cost is the setup: nothing works until the Worker is deployed with both bindings in place, and the two most common failures — no browser binding, no `SCREENSHOTS` KV namespace — are both fixed in the Cloudflare dashboard, not here. CSS-selector extraction is the tool worth reaching for first; it returns a fraction of the tokens a full page fetch does.

What it is

An MCP server that talks to a Cloudflare Worker you deploy, using Cloudflare's Browser Rendering API. Pages are loaded in a real browser on Cloudflare's edge and come back processed for use as model context, which means JavaScript-rendered sites work and the traffic originates from your own Cloudflare account rather than from your machine.

What you get
  • A page fetched and processed into context, with an optional cap on how much content comes back — `fetch_page`
  • Named parts of a page extracted with CSS selectors, so a table or a heading arrives as a value rather than as prose to be parsed — `extract_structured_content`
  • A page condensed to a length you specify, when the whole thing would not be worth the context — `summarize_content`
  • A screenshot at a viewport size you choose — 1280 by 800 by default — either the visible area or the full page — `take_screenshot`
  • Cloudflare's own documentation searched, with a cap on results — `search_documentation`
Requirements

A Cloudflare account with Browser Rendering API access, and the included `puppeteer-worker.js` deployed to Cloudflare Workers with `npx wrangler deploy`. That Worker needs two bindings: a Browser Rendering binding named `browser`, and a KV namespace binding named `SCREENSHOTS` — screenshots fail without the second. Put the deployed Worker's URL in `BROWSER_RENDERING_API`. Node.js v18 or higher; the npm package name is `cloudflare-browser-rendering` (1.0.0), built from a clone with `npm install` and `npm run build`, or installed through Smithery.

Setup effort

One command — npx -y github:amotivv/cloudflare-browser-rendering-mcp