Integration

Cloudflare Browser Run integration

Cloudflare Browser Run (formerly Browser Rendering) loads web pages in Cloudflare's headless Chrome and hands back what an agent needs: rendered HTML, Markdown, links, a screenshot or PDF file, the accessibility tree, CSS-selected elements, AI-extracted JSON, or a multi-format snapshot, from a URL or raw HTML. It also runs asynchronous site crawls (start, poll, cancel) that return each page as HTML, Markdown or JSON. Every call uses billed browser time (Workers Free: 10 minutes a day; Workers Paid: 10 hours a month, then 0.09 USD an hour), and JSON extraction also bills Workers AI. Interactive DevTools browser sessions (WebSocket CDP) and session recordings are not exposed. Authentication is a Cloudflare API token with the Browser Run - Edit permission, sent as a Bearer token; every tool also takes your account ID.

Ask it in chat

Say what should happen.
The workflow builds itself.

When this happens, do that in Cloudflare Browser Run.Built from the 12 Cloudflare Browser Run tools below, on the connection you add once.

What you can do with Cloudflare Browser Run

Each of these is one operation on one endpoint, available both as a workflow step and as a tool an AI agent can call on its own. Nothing bundles several operations into one action, so what a run did stays readable afterwards.

Most endpoints run on the free plan. A few, mainly the ones that publish on your behalf, need a paid plan.

Crawl job, 3 operations

  • cancel_crawlCancel crawlDELETECancels a running crawl job: its status becomes cancelled_by_user and every URL still queued is cancelled.
  • get_crawl_jobGet crawl jobGETReturns a crawl job (status running, completed, errored, cancelled_due_to_timeout, cancelled_due_to_limits or cancelled_by_user) with its page records. Pass limit=1 while polling; page on cursor.
  • start_crawlStart crawlPOSTStarts an asynchronous crawl from url, following links up to limit pages (default 10). Returns the job id in result: poll get_crawl_job with it until result.status is no longer running.

Accessibility tree, 1 operation

  • capture_accessibility_treeCapture accessibility treePOSTLoads a page (url or html) in a headless browser and returns its accessibility tree (roles, names, values, states) in result.accessibilityTree. Use interestingOnly and root to trim it.

Page data, 1 operation

  • extract_page_jsonExtract page jsonPOSTLoads a page (url or html) and extracts structured data with AI from a prompt, a JSON schema (response_format) or both; the data is in result. Uses Workers AI by default, billed as Workers AI usage.

Page element, 1 operation

  • scrape_page_elementsScrape page elementsPOSTLoads a page (url or html) and, for each CSS selector in elements, returns the matching elements' text, inner HTML, attributes and position in result (one entry per selector).

Page html, 1 operation

  • get_page_htmlGet page htmlPOSTLoads a page (url or html) in a headless browser, runs its JavaScript and returns the rendered HTML in result. For JavaScript-heavy pages set gotoOptions.waitUntil to networkidle0.

Page links, 1 operation

  • get_page_linksGet page linksPOSTLoads a page (url or html) in a headless browser and returns every link found on it as a list of URLs in result. Set visibleLinksOnly or excludeExternalLinks to filter.

Page markdown, 1 operation

  • get_page_markdownGet page markdownPOSTLoads a page (url or html) in a headless browser and returns its content as Markdown in result, with YAML frontmatter (such as title) first when the page provides it.

Page pdf, 1 operation

  • render_page_pdfRender page pdfPOSTLoads a page (url or html) in a headless browser and returns it printed as a PDF, stored as a file. Paper size, margins, header and footer go in pdfOptions.

Page screenshot, 1 operation

  • take_page_screenshotTake page screenshotPOSTLoads a page (url or html) in a headless browser and returns a screenshot stored as a file (PNG by default). Use selector for one element, screenshotOptions.fullPage for the whole page.

Page snapshot, 1 operation

  • capture_page_snapshotCapture page snapshotPOSTLoads a page once and returns several formats together in result: the HTML content and a base64 screenshot by default, or two or more of content, screenshot, markdown, accessibilityTree.

Use Cloudflare Browser Run from Claude Code, Cursor or Codex

Connect Cloudflare Browser Run in LiveContext, create an API key in Settings, then add the LiveContext MCP server to your client. Its Cloudflare Browser Run operations become tools the client can call, next to every other integration you connected.

Claude Code
claude mcp add --transport http livecontext https://livecontext.ai/mcp --header "X-API-Key: YOUR_API_KEY"
Codex (~/.codex/config.toml)
[mcp_servers.livecontext]
url = "https://livecontext.ai/mcp"

[mcp_servers.livecontext.http_headers]
"X-API-Key" = "YOUR_API_KEY"
Cursor, Claude Desktop and other JSON configs
{
  "mcpServers": {
    "livecontext": {
      "type": "http",
      "url": "https://livecontext.ai/mcp",
      "headers": {
        "X-API-Key": "YOUR_API_KEY"
      }
    }
  }
}

Set up the MCP server step by step

How to connect Cloudflare Browser Run

  1. Create your workspace

    Sign up free. Nothing to install.

  2. Connect Cloudflare Browser Run once

    Add your Cloudflare Browser Run connection in Settings. Every tool from this integration reuses it, and secrets are encrypted at rest and visible only to you.

  3. Describe the job in chat

    The workflow builds itself in front of you and picks the endpoints it needs. Drag the steps yourself on the canvas whenever you would rather be explicit.

Cloudflare Browser Run integration FAQ

What can you do with the Cloudflare Browser Run integration?

LiveContext exposes 12 operations on Cloudflare Browser Run, covering crawl job, accessibility tree, page data and page element.

Popular integrations

Browse the whole catalog