Render-fetch

Bản nâng cấp thay thế trực tiếp cho WebFetch của Claude, tự động phát hiện các trang được render bằng JS và tải chúng bằng trình duyệt headless Playwright

Tài liệu

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