Agent-native browser and MCP server for lightweight, Chrome-free web discovery, with explicit escalation to Unchained for browser-only flows.
claude mcp add unbrowser -- python -m pyunbrowser{
"mcpServers": {
"unbrowser": {
"command": "python",
"args": ["-m", "pyunbrowser"]
}
}
}Resumen de MCP Servers
# unbrowser
**The cheap browser pass for agents. One native binary. No Chrome.**
[](https://glama.ai/mcp/servers/protostatis/unbrowser)
**Official MCP Registry identity:** `mcp-name: io.github.protostatis/unbrowser`
`unbrowser` is a stateful, non-visual web runtime for agents. It sits between `curl`/WebFetch and a real browser: it retains cookies and DOM state, returns queryable element refs, handles links and HTML forms, detects challenge and SPA signals, and can run bounded QuickJS page scripts when static HTML is not enough.
> **Default `navigate` is a fast static/SSR pass.** Set `exec_scripts: true` only when you need bounded QuickJS execution. Heavy SPAs, pixels, V8 fidelity, extensions, and interactive anti-bot challenges belong in a real Chrome tier.
Try the [live public-web demo](https://unchainedsky.com/unbrowser?utm_source=github&utm_medium=repository&utm_campaign=unbrowser_readme&ref=readme_live_demo) before installing. It accepts only the fixed public source sets shown on the page; do not send private data, cookies, or authenticated tasks through it. A shared Streamable HTTP MCP endpoint is available at [`https://unchainedsky.com/unbrowser-mcp`](https://unchainedsky.com/unbrowser-mcp) for public smoke tests; production sessions should use a local install.
## Pick the right tier
| Need | curl / WebFetch | unbrowser | Real Chrome |
|---|---|---|---|
| Static / SSR HTML | raw response | structured BlockMap + DOM queries | full browser |
| Cookies, links, HTML forms | DIY | built in | built in |
| Client-side page scripts | ❌ | bounded QuickJS, opt-in | V8 |
| Pixels, Canvas, WebGL, Workers, extensions | ❌ | ❌ | ✅ |
| Agent-oriented output | DIY parsing | element refs, page signals, structured extraction | DIY CDP / DOM parsing |
| Hard bot challenge | ❌ | detect + cookie replay | browser / human / solver |
Use `unbrowser` when HTTP alone is too dumb and a full browser is too expensive. When the page needs Chrome, the output tells the agent to escalate rather than pretending compatibility it does not have.
## Quick start
### Docker — Linux amd64/arm64, ~13 MiB pull
```bash
docker pull ghcr.io/protostatis/unbrowser:latest
# One-shot navigation
docker run --rm ghcr.io/protostatis/unbrowser:latest \
navigate https://example.com --json
# Default mode: MCP over stdio
docker run --rm -i ghcr.io/protostatis/unbrowser:latest
```
The image is distroless and runs as non-root: no shell, package manager, or persistent state. Pin `:vX.Y.Z` or an image digest in production.
### Python
```bash
pipx install pyunbrowser # recommended on macOS / modern Linux
# or, inside a Python 3.10+ virtual environment:
pip install pyunbrowser
```
```python
from unbrowser import Client
with Client() as ub:
ub.navigate("https://news.ycombinator.com")
for link in ub.query(".titleline > a")[:3]:
print(link["text"], link["attrs"]["href"])
```
On macOS, `/usr/bin/python3` is 3.9 and cannot install the wheel; use `pipx` or a Homebrew Python. The PyPI distribution is `pyunbrowser`, while the import and executable remain `unbrowser`.
### MCP
```json
{
"mcpServers": {
"unbrowser": {
"command": "unbrowser",
"args": ["--mcp"]
}
}
}
```
<details>
<summary>Docker MCP configuration</summary>
```json
{
"mcpServers": {
"unbrowser": {
"command": "docker",
"args": [
"run", "--rm", "-i",
"ghcr.io/protostatis/unbrowser:latest"
]
}
}
}
```
</details>
See [installation and interface reference](docs/usage.md#installation) for Cargo, release archives, source builds, persistent shell sessions, raw JSON-RPC, and all MCP options.
## What an agent gets
- **`navigate` returns a BlockMap**: page title, landmarks, headings, interactives, density signals, and an ASCII outline. Its size is page-dependent; it is structured for planning rather than a fixed-token promise.
- **Stable element refs** (`e:142`): query an element once, then `click`, `type`, or `submit` it without re-parsing HTML.
- **Stateful cookies and forms**: cookie jar, GET and URL-encoded POST form submission, links, and redirects persist within a session.
- **Page and challenge signals**: `density.likely_js_filled`, `thin_shell`, and `challenge.provider` tell an agent whether to run scripts, inspect embedded data, replay a clearance cookie, or escalate.
- **Structured helpers**: route discovery, card extraction, table normalization, `text_main`, and selector debugging cover common extraction workflows.
## Script mode and escalation
```json
{"id":1,"method":"navigate","params":{"url":"https://example.com","exec_scripts":true}}
```
With `exec_scripts: true`, inline and external scripts run in QuickJS under a bounded watchdog. This can materialize light hydration and fetch-visible data; it is not V8 or a rendering engine. Heavy React/Vue/Ember apps may still leave an empty shell.
Escalate to [`unchainedsky-cli`](https://github.com/protostatis/unchainedsky-cli) or [Unchained](https://unchainedsky.com) when a task needs real pixels, Canvas/WebGL, Workers, browser extensions, V8 compatibility, or active challenge solving. For many bot walls, solve once in Chrome and replay the resulting clearance cookie with `cookies_set` until it expires.
## Documentation
| Need | Read |
|---|---|
| Install paths, session CLI, one-shot CLI, raw RPC, MCP, shims, full RPC table | [Usage reference](docs/usage.md) |
| Script compatibility, SPA signals, challenge handling, cookie solver, escalation | [Compatibility and escalation](docs/compatibility.md) |
| Distribution and supported directory listings | [Distribution notes](docs/distribution.md) |
| Build the native binary | [Build instructions](docs/usage.md#build-from-source) |
## License
Apache-2.0 — see [LICENSE](./LICENSE).
Lo que la gente pregunta sobre unbrowser
¿Qué es protostatis/unbrowser?
+
protostatis/unbrowser es mcp servers para el ecosistema de Claude AI. Agent-native browser and MCP server for lightweight, Chrome-free web discovery, with explicit escalation to Unchained for browser-only flows. Tiene 13 estrellas en GitHub y se actualizó por última vez today.
¿Cómo se instala unbrowser?
+
Puedes instalar unbrowser clonando el repositorio (https://github.com/protostatis/unbrowser) o siguiendo las instrucciones del README en GitHub. ClaudeWave también te ofrece bloques de instalación rápida en esta misma página.
¿Es seguro usar protostatis/unbrowser?
+
protostatis/unbrowser aún no ha sido auditado por nuestro agente de seguridad. Revisa el repositorio original en GitHub antes de usarlo en producción.
¿Quién mantiene protostatis/unbrowser?
+
protostatis/unbrowser es mantenido por protostatis. La última actividad registrada en GitHub es de today, con 1 issues abiertos.
¿Hay alternativas a unbrowser?
+
Sí. En ClaudeWave puedes explorar mcp servers similares en /categories/mcp, ordenados por popularidad o actividad reciente.
Despliega unbrowser en tu cloud
Lleva este repo a producción en minutos. Cada plataforma genera su propio entorno con variables de entorno editables.
¿Mantienes este repo? Añade un badge a tu README
Pega el badge en tu README de GitHub para mostrar que está auditado por ClaudeWave. Cada badge enlaza de vuelta a esta página y muestra el Trust Score actual.
[](https://claudewave.com/repo/protostatis-unbrowser)<a href="https://claudewave.com/repo/protostatis-unbrowser"><img src="https://claudewave.com/api/badge/protostatis-unbrowser" alt="Featured on ClaudeWave: protostatis/unbrowser" width="320" height="64" /></a>Más MCP Servers
Fair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.
User-friendly AI Interface (Supports Ollama, OpenAI API, ...)
An open-source AI agent that brings the power of Gemini directly into your terminal.
The fastest path to AI-powered full stack observability, even for lean teams.
Real-time global intelligence dashboard. AI-powered news aggregation, geopolitical monitoring, and infrastructure tracking in a unified situational awareness interface
🕷️ An adaptive Web Scraping framework that handles everything from a single request to a full-scale crawl!