Releases: claude-world/cf-browser
v2.0.0 — Browser Interaction + REST API Params
What's New
Browser Interaction (Worker Mode only)
5 new MCP tools for clicking, typing, form submission, JavaScript execution, and multi-step action chains. Requires BROWSER binding (Workers Paid plan, $5/mo).
| Tool | What it does |
|---|---|
browser_click |
Click an element, return resulting page |
browser_type |
Type text into input fields |
browser_evaluate |
Execute JavaScript, get return value |
browser_interact |
Chain up to 20 actions (click, type, wait, screenshot, evaluate, select, scroll) |
browser_submit_form |
Fill and submit forms in one call |
REST API Parameters (Direct + Worker Mode)
All 10 read-only tools now support:
add_script_tag— inject JavaScript before capture (modify DOM without full interaction)add_style_tag— inject CSS before capturereject_resource_types— block images/stylesheets for faster loading
Other
DELETE /crawl/:id— clean up cached crawl resultsuvx cf-browser-mcpsupport — install and run with one command- Health endpoint reports
capabilities.interactbased on BROWSER binding
Security
- SSRF: request interception blocks redirects to private IPs
- IPv6 private range blocking (fc00::/7, fe80::/10, ::ffff mapped)
- Selector/script injection prevention with runtime validation
- Action chain timeout enforcement (50s budget, per-action limits)
Install
# Direct Mode (read-only, no Worker needed)
uvx cf-browser-mcp
# Or with pip
pip install cf-browser cf-browser-mcpFull Changelog: https://github.com/claude-world/cf-browser/blob/main/CHANGELOG.md
v1.2.0 — Fix CF API parameter mapping, add SPA support
What's Changed
Critical Fixes
All prior versions had silently broken parameters — wait_for, headers, and timeout were sent using wrong names that Cloudflare's Browser Rendering REST API silently ignored. This release fixes the mapping across all 3 layers (Worker, SDK, MCP Server).
| User API | CF REST API (actual) | Status |
|---|---|---|
wait_for="h1" |
waitForSelector: {selector: "h1"} |
Fixed (was ignored) |
headers={"X-Auth":"tok"} |
setExtraHTTPHeaders: {...} |
Fixed (was ignored) |
timeout=5000 |
gotoOptions.timeout: 5000 |
Fixed (was ignored) |
New Parameters
Added to all 10 MCP tools:
wait_until— Navigation completion strategy:networkidle0,networkidle2,load,domcontentloaded. Critical for SPA sites.user_agent— Custom User-Agent string per request.
SPA Support Verified
| Site | Before | After |
|---|---|---|
| X/Twitter | Black splash screen | Full profile render (bio, followers, tweets) |
Use wait_until="networkidle0" for React, Next.js, Angular, and other SPA sites.
Stats
- 23 files changed, 594 insertions, 96 deletions
- Worker: 50 tests ✅ | SDK: 68 tests ✅ | TypeScript: 0 errors ✅
- Live integration: all 10 MCP tools verified ✅
Full Changelog: https://github.com/claude-world/cf-browser/blob/main/CHANGELOG.md
v1.0.0 — Cloudflare Browser Rendering Proxy
cf-browser v1.0.0
Open-source Cloudflare Browser Rendering proxy — 10 MCP tools for Claude Code.
Features
- 10 MCP tools: markdown, content, screenshot, PDF, snapshot (a11y), scrape, JSON AI extraction, links, crawl, crawl_status
- Python SDK (
pip install cf-browser) + MCP Server (pip install cf-browser-mcp) - One-command deployment (
bash setup.sh) - Cloudflare Workers + Browser Rendering API
- Auth support (cookies/headers for authenticated pages)
- Smart caching (KV 1hr text, R2 24hr binary)
- Rate limiting (60 req/min)
- CI/CD with PyPI auto-publish
Quick Start
bash setup.sh # Deploy Worker
pip install cf-browser-mcp # Install MCP ServerFull documentation: README.md