LabscoMCP early access ↗
amotivvMCP SERVER

Cloudflare Browser Rendering

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.

by amotivv ↗Browser Automation, Control & ScreenshotsCommunity

LABSCO 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

Build from source — git clone https://github.com/amotivv/cloudflare-browser-rendering-mcp.git