
Render-fetch
β 2from sub-techie09
Drop-in upgrade to Claude's WebFetch that auto-detects JS-rendered pages and fetches them with Playwright headless browser
π₯π₯π₯π₯β VerifiedFreeQuick setup
render-fetch
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.
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 β markdownTools
| Tool | What it does | Key params | Returns |
|---|---|---|---|
fetch | Fetch page as markdown (auto-detects mode) | url, mode (auto/static/browser), maxLength (default 50k), timeout (default 30s) | Clean markdown |
fetch_raw | Fetch page as raw HTML | url, mode, timeout | Raw HTML string |
screenshot | Take a viewport screenshot | url, fullPage (default false), timeout | Base64 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.
Contributing
See CONTRIBUTING.md.
License
MIT Β© 2026 sub-techie09
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.
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.