Skip to main content
Glama

🌐 Agent Browser API

Un navegador headless universal y totalmente funcional para agentes de IA. Dale a cualquier agente — Zapier Agents, Custom GPTs, Claude, Cursor, LangChain, CrewAI, n8n, Make, o tu propio código — un navegador Chromium real: renderizado de JavaScript, búsqueda web, clics, escritura, relleno de formularios, menús desplegables, capturas de pantalla, extracción de tablas y datos, y generación de PDF.

🇮🇳 Hindi TL;DR: Yeh ek real browser hai jo koi bhi AI agent use kar sakta hai — 3 tarike: simple REST API, OpenAPI import (Custom GPT), ya native MCP (Claude/Cursor/ChatGPT). Deploy karo, API key set karo, ho gaya. ✅ 26/26 tests passing.

🔌 Funciona con CUALQUIER agente — tres formas de conectarse

Modo

Para

Cómo

REST API

Agentes de Zapier, n8n, Make, LangChain, CrewAI, cualquier código

POST /v1/browse {"url": "..."} con cabecera X-API-Key. Auto-descubrimiento vía GET /v1/tools (formato de función de OpenAI).

OpenAPI

Custom GPTs de OpenAI (Acciones), herramientas de API

Importa /openapi.yaml — cada endpoint documentado.

MCP 🆕

Claude Desktop/Code, Cursor, Windsurf, ChatGPT, VS Code, n8n MCP

Apunta tu cliente MCP a https://YOUR-URL/mcp (HTTP Streamable) — 22 herramientas de navegador aparecen de forma nativa.

Guías completas de copiar y pegar por plataforma: INTEGRATIONS.md · Específicos de Zapier: ZAPIER_SETUP.md

Related MCP server: project-tendril

✨ Características

Capacidad

Endpoint

Qué hace

📖 Navegar

POST /v1/browse

Renderiza cualquier página (incluido JS) → Markdown limpio + título + enlaces + metadatos. Listo para LLM.

🔍 Buscar

POST /v1/search

Búsqueda web vía Brave/Bing/DDG con respaldo automático. No se necesita clave de API de búsqueda.

📸 Captura de pantalla

POST /v1/screenshot

PNG de la página, página completa o un elemento único; viewport personalizado; binario o base64.

🧲 Extraer

POST /v1/extract

Datos estructurados vía selectores CSS → JSON.

📊 Tablas

POST /v1/tables

Todas las tablas de datos de una página → JSON (cabeceras + filas), se omiten tablas de diseño/ocultas.

🖱️ Elementos

POST /v1/elements

Enlaces/botones/entradas visibles con selectores CSS listos para usar — los agentes pueden ver qué es clicable.

📄 PDF

POST /v1/pdf

Renderiza cualquier página a PDF (vertical/horizontal).

🧭 Sesiones

POST /v1/sessions + acciones

Flujos multi-paso con estado: goto, click, type, fill, press, select, scroll, navigate (atrás/adelante/recargar), wait, evaluate, content, elements, screenshot.

🤝 MCP

POST /mcp

Todo lo anterior como herramientas MCP nativas (las capturas de pantalla se devuelven como imágenes reales).

Además: autenticación por clave de API, CORS, limitación de tasa, protección SSRF, caducidad automática de sesiones + expulsión LRU, conceptos básicos de stealth, esperas de asentamiento SPA, truncamiento de salida para seguridad del contexto LLM, hints de error útiles, /llms.txt y una especificación OpenAPI completa.

🚀 Inicio rápido

Despliegue gratuito (Render) — recomendado

  1. Haz fork/sube este repositorio a GitHub.

  2. Ve a render.com → Nuevo → Blueprint → elige este repositorio (render.yaml se detecta automáticamente).

  3. Copia la API_KEY generada desde la pestaña Entorno del servicio.

  4. En vivo en https://your-service.onrender.com 🎉

También funciona en Railway, Fly.io o cualquier host Docker.

Docker

docker build -t agent-browser .
docker run -p 8080:8080 -e API_KEY=your-secret-key agent-browser

Ejecutar localmente

npm install            # installs deps + Chromium
API_KEY=your-secret-key npm start
# → agent-browser v2.0.0 listening on :8080

🧪 Pruébalo

BASE=http://localhost:8080; KEY=your-secret-key

# Read a JS-heavy page as markdown
curl -X POST $BASE/v1/browse -H "X-API-Key: $KEY" -H "Content-Type: application/json" \
  -d '{"url":"https://news.ycombinator.com"}'

# Search the web
curl -X POST $BASE/v1/search -H "X-API-Key: $KEY" -H "Content-Type: application/json" \
  -d '{"query":"best CRM for startups","limit":5}'

# Extract every table on a page as JSON
curl -X POST $BASE/v1/tables -H "X-API-Key: $KEY" -H "Content-Type: application/json" \
  -d '{"url":"https://www.scrapethissite.com/pages/forms/"}'

# Multi-step: search Wikipedia interactively
SID=$(curl -s -X POST $BASE/v1/sessions -H "X-API-Key: $KEY" -H "Content-Type: application/json" \
  -d '{"url":"https://en.wikipedia.org"}' | jq -r .sessionId)
curl -X POST $BASE/v1/sessions/$SID/fill -H "X-API-Key: $KEY" -H "Content-Type: application/json" \
  -d '{"fields":{"input[name=search]":"Artificial intelligence"}}'
curl -X POST $BASE/v1/sessions/$SID/press -H "X-API-Key: $KEY" -H "Content-Type: application/json" \
  -d '{"key":"Enter"}'
curl $BASE/v1/sessions/$SID/content -H "X-API-Key: $KEY"
curl -X DELETE $BASE/v1/sessions/$SID -H "X-API-Key: $KEY"

Ejecuta la suite completa de pruebas de humo: npm test — 26 comprobaciones que cubren cada endpoint y un viaje de ida y vuelta real con un cliente MCP.

⚙️ Configuración (variables de entorno)

Variable

Por defecto

Descripción

API_KEY

(vacío = autenticación desactivada, ¡solo desarrollo!)

Clave requerida para todos los endpoints no públicos.

PORT

8080

Puerto HTTP.

MAX_SESSIONS

10

Máximo de sesiones con estado concurrentes (expulsión LRU).

SESSION_TTL_MS

600000

Caducidad de sesión inactiva (10 min).

NAV_TIMEOUT_MS

30000

Tiempo de espera de navegación.

RATE_LIMIT_PER_MIN

120

Solicitudes/min por clave de API o IP (0 = desactivado).

CORS_ORIGIN

*

Origen CORS permitido.

ALLOW_PRIVATE_URLS

false

Permitir navegación a direcciones privadas/internas (protección SSRF desactivada).

🔒 Notas de seguridad

  • Siempre establece API_KEY en producción (el blueprint de Render genera una automáticamente).

  • Solo se permiten URLs http/https; las direcciones localhost/privadas/metadatos están bloqueadas por defecto.

  • Ejecuta detrás de HTTPS (Render/Railway te dan TLS gratis).

  • evaluate ejecuta JS arbitrario dentro de la página sandbox — mantén tu clave de API en secreto.

  • Los endpoints públicos (sin clave) son información de solo lectura: /, /health, /openapi.yaml, /llms.txt, /v1/tools.

📁 Estructura del proyecto

src/server.js         # Express API: auth, CORS, rate limit, routes
src/actions.js        # Shared high-level actions (used by REST + MCP)
src/browser.js        # Chromium lifecycle, sessions, TTL/LRU, SSRF guard
src/extract.js        # HTML → markdown, CSS extraction, tables, elements
src/search.js         # Multi-engine web search with fallback
src/mcp.js            # MCP server (Streamable HTTP, 22 tools)
src/tools-manifest.js # GET /v1/tools (OpenAI function format)
openapi.yaml          # Full API specification
test/run-tests.sh     # 26-check smoke-test suite (incl. MCP round-trip)
Dockerfile            # Production image (Playwright base, version-pinned)
render.yaml           # One-click Render deploy

Licencia

MIT

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    C
    maintenance
    Headless browser automation for LLM agents via REST API or MCP tools. Enables navigating pages, reading structured content, clicking elements, filling forms, and executing JavaScript.
    -
  • A
    license
    Not graded
    quality
    A
    maintenance
    Enables AI agents to operate an isolated local Chromium browser through MCP, with semantic snapshots, ref-based actions, search, research, crawling, and CDP access.
    Apache 2.0
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables AI agents to drive a live Chromium browser through MCP tools for reading pages as markdown, clicking and typing with element refs, taking screenshots, and downloading files, while enforcing safety rules like stale-ref refusal, irreversible-action blocking, robots.txt compliance, request pacing, and configurable proxies. It also supports site skills for structured data extraction.
    Apache 2.0
  • A
    license
    B
    quality
    C
    maintenance
    Enables an LLM to control a hosted headless Chromium browser over HTTP, navigating pages, clicking, typing, and reading structured accessibility snapshots so any MCP client can perform browser automation without local installation.
    23
    6,908,874 npm
    Apache 2.0