Render-fetch

Drop-in upgrade to Claude's WebFetch that auto-detects JS-rendered pages and fetches them with Playwright headless browser

render-fetch

MIT License npm version CI

Drop-in upgrade to Claude Code's WebFetch — handles JS-rendered pages automatically.

Claude's built-in WebFetch doesn't execute JavaScript. Modern SPAs return empty skeletons. render-fetch auto-detects whether a page needs a real browser and routes accordingly — no config needed.

Installation

Add to your Claude Code settings (~/.claude/settings.json):

{
  "mcpServers": {
    "render-fetch": {
      "command": "npx",
      "args": ["-y", "render-fetch"]
    }
  }
}

First run installs Chromium (~150MB, one-time). Subsequent runs are instant.

How it works

URL in
  │
  ├─ GET page (fast, reuses response)
  │
  ├─ Score for JS-rendering signals
  │     <div id="root/app/__next">  +3
  │     thin body (<500 chars)      +2
  │     data-reactroot / ng-version +2
  │     window.__REDUX_STATE__      +2
  │     bundled JS patterns         +1
  │     .md / docs domain           -3
  │
  ├─ Score < 3 → Static path
  │     HTTP → cheerio → Readability → markdown
  │
  └─ Score ≥ 3 → Browser path
        Playwright headless → networkidle → Readability → markdown

Tools

ToolWhat it doesKey paramsReturns
fetchFetch page as markdown (auto-detects mode)url, mode (auto/static/browser), maxLength (default 50k), timeout (default 30s)Clean markdown
fetch_rawFetch page as raw HTMLurl, mode, timeoutRaw HTML string
screenshotTake a viewport screenshoturl, fullPage (default false), timeoutBase64 PNG (max 2MB)

Why not always use the browser? Static path averages ~200ms. Browser path averages 2–3s plus Chromium launch overhead on first request.

Known limitations

  • DNS rebinding: hostname validation happens before the request; a malicious server could theoretically redirect to a private IP after validation. Mitigation planned for v1.1.
  • Local use only: not designed for multi-tenant server deployments. For that, put a rate-limiting reverse proxy in front.
  • Chromium install: ~150MB one-time download on first browser-mode request.

Contributing

See CONTRIBUTING.md.

License

MIT © 2026 sub-techie09

संबंधित सर्वर