Render-fetch

Actualización directa para WebFetch de Claude que detecta automáticamente páginas renderizadas con JS y las obtiene con el navegador headless Playwright

Documentación

render-fetch

MIT License npm version CI

Mejora directa para WebFetch de Claude Code: maneja páginas renderizadas con JavaScript automáticamente.

La función WebFetch integrada de Claude no ejecuta JavaScript. Las SPA modernas devuelven esqueletos vacíos. render-fetch detecta automáticamente si una página necesita un navegador real y enruta en consecuencia, sin necesidad de configuración.

Instalación

Agrega a la configuración de Claude Code (~/.claude/settings.json):

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

La primera ejecución instala Chromium (~150MB, una sola vez). Las ejecuciones posteriores son instantáneas.

Cómo funciona

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

Herramientas

HerramientaQué haceParámetros claveDevuelve
fetchObtiene la página como markdown (detecta el modo automáticamente)url, mode (auto/static/browser), maxLength (por defecto 50k), timeout (por defecto 30s)Markdown limpio
fetch_rawObtiene la página como HTML crudourl, mode, timeoutCadena HTML crudo
screenshotToma una captura de pantalla del viewporturl, fullPage (por defecto false), timeoutPNG en Base64 (máx. 2MB)

¿Por qué no usar siempre el navegador? La ruta estática promedia ~200ms. La ruta del navegador promedia 2–3s más la sobrecarga de iniciar Chromium en la primera solicitud.

Limitaciones conocidas

  • Rebinding de DNS: la validación del nombre de host ocurre antes de la solicitud; un servidor malicioso podría teóricamente redirigir a una IP privada después de la validación. Mitigación planificada para v1.1.
  • Solo uso local: no está diseñado para despliegues de servidor multi-tenant. Para eso, coloca un proxy inverso con límite de tasa al frente.
  • Instalación de Chromium: descarga única de ~150MB en la primera solicitud en modo navegador.

Contribuciones

Consulta CONTRIBUTING.md.

Licencia

MIT © 2026 sub-techie09