Skip to content

Commit 26e7156

Browse files
rootclaude
andcommitted
chore(release): v0.2.7 — session tool suite, CDP Fetch interception, engine fixes
READMEs: tool count 18→23, document session_viewport/wait/screenshot/ console/storage in the capabilities list. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
1 parent ffb1781 commit 26e7156

4 files changed

Lines changed: 11 additions & 11 deletions

File tree

Cargo.lock

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "aginxbrowser"
3-
version = "0.2.6"
3+
version = "0.2.7"
44
edition = "2021"
55
authors = ["OpenCarrier Team"]
66
description = "Pure server-side browser engine with built-in V8. HTTP API for scraping, search, and interactive browsing. No Chromium required."

README.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ Most new "agent browsers" are stateless, fingerprint-less one-shot renderers —
4949

5050
- **🔐 Real TLS fingerprints** — stealth mode replicates the complete Chrome145 / Firefox133 / Safari / Edge TLS handshakes via BoringSSL (not just a UA string), switchable per request; Cloudflare Turnstile challenges wait automatically for `cf_clearance`. Fingerprint-less engines eat 403s — we get through.
5151
- **🤝 Stateful interactive sessions** — persistent sessions (8-minute idle keep-alive), login state injectable and exportable (`session_create(cookies=...)``session_cookies`), surviving pagination and multi-step flows. One-shot engines throw state away.
52-
- **🔌 MCP native**18 tools as first-class citizens (not a CDP shim). Claude Code / Cursor / Claude Desktop connect in one line. HTTP + MCP dual protocol — plus a CDP bridge, so the DevTools ecosystem works too.
52+
- **🔌 MCP native**23 tools as first-class citizens (not a CDP shim). Claude Code / Cursor / Claude Desktop connect in one line. HTTP + MCP dual protocol — plus a CDP bridge, so the DevTools ecosystem works too.
5353

5454
> Reference point: Cloudflare's Kitesurf explicitly ships neither real TLS-fingerprint negotiation nor persistent auth sessions — anti-bot and login territory is exactly where AginxBrowser plays.
5555
@@ -71,7 +71,7 @@ The [local cache](#capabilities) builds on the same idea: search hits come back
7171
- **Tiered rendering**: static pages over plain HTTP (~100ms); V8 spins up only when JS rendering is needed (~1-2s) — 90% of the [bench](bench/README.md) page set served without spinning up V8 at all; every response reports which tier served it (`tier` field)
7272
- **Multi-engine meta-search**: general web (Baidu / Bing / Sogou / WeChat / Google / DuckDuckGo), news (Bing News), code (Stack Overflow, GitHub), packages (npm, PyPI), academic (arXiv), AI models (Hugging Face) — 15 engines across 7 categories, queried concurrently, merged and deduplicated. Operators can plug a private Meilisearch index into the same `/search`. Search → read in one step
7373
- **Image search**: `categories=images` hits Baidu/Bing image indexes and returns direct binary `image_url` links (downloadable straight to jpg/png) plus `source_url` provenance
74-
- **Interactive sessions**: persistent browser sessions with indexed interaction (`state/click/input/scroll/eval`) — agents browse like humans do, and `session_export` turns what an agent figured out into a runnable curl replay script (zero model tokens on re-run)
74+
- **Interactive sessions**: persistent browser sessions with indexed interaction (`state/click/input/scroll/eval`) — agents browse like humans do, and `session_export` turns what an agent figured out into a runnable curl replay script (zero model tokens on re-run). Session tools also cover the acting part: `session_viewport` simulates device viewports (media queries respond), `session_wait` blocks on a selector or predicate with a timeout, `session_screenshot` renders the live state, `session_console` replays the page's console ring, and `session_storage` exports/restores cookies plus localStorage for login hand-off
7575
- **Playback-link sniffer**: `session_network(filter=media)` extracts the m3u8/mp4/dash URLs a page's player *actually requested* at runtime — links found only in page HTML are often decoys, so the request log is the source of truth. `GET /session/{id}/har` exports the same traffic as HAR 1.2 (retained bodies included)
7676
- **CDP bridge**: `/json/version` + `/devtools/{kind}/{id}` WebSocket — `chromium.connectOverCDP()` from Playwright, Puppeteer, or browser-use attaches with one line ([integration guide](docs/integrations.md)). DevTools ecosystem compatibility without becoming a CDP shim
7777
- **File download**: streaming to disk (no memory buffering), SHA-256 integrity, resume of interrupted transfers — for binaries, archives, datasets
@@ -80,7 +80,7 @@ The [local cache](#capabilities) builds on the same idea: search hits come back
8080
- **JS data extraction**: `js_extract` pulls `window.__INITIAL_STATE__` and other structured data out of SPAs
8181
- **Screenshot rendering**: `/screenshot` endpoint (opt-in `--features screenshot`) paints the JS-rendered DOM with the diting rendering engine — pure CPU, no Chromium — to PNG. Vision input for agents
8282
- **TLS fingerprint spoofing**: stealth mode impersonates Chrome145/Firefox133/Safari/Edge, switchable per request
83-
- **MCP server**: `--mcp` mode exposes 18 tools (fetch/eval/search/download/cache + session + screenshot tools) — Claude Code / Claude Desktop / Cursor call them directly
83+
- **MCP server**: `--mcp` mode exposes 23 tools (fetch/eval/search/download/cache + session + screenshot tools) — Claude Code / Claude Desktop / Cursor call them directly
8484
- **Firecrawl compatible**: `/v1/scrape` endpoint — existing Firecrawl clients migrate by changing the base URL
8585
- **DNS rebinding protection**: built-in SSRF guard + post-resolution IP validation
8686

@@ -203,7 +203,7 @@ aginxbrowser/
203203
├── main.rs # HTTP service entry & routing
204204
├── server.rs # Business layer (fetch/click/eval/search)
205205
├── session.rs # Interactive browser sessions
206-
├── mcp.rs # MCP server (18 tools)
206+
├── mcp.rs # MCP server (23 tools)
207207
├── render.rs # Tiered rendering (HTTP direct → diting browser engine)
208208
├── store.rs # Local fetch/search cache (SQLite FTS5, drift hashes)
209209
├── download.rs # Streaming file download (sha256, resume)

README.zh-CN.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ Agent 用浏览器要的是五件事:**看得见、读得懂、找得到、操
4949

5050
- **🔐 真实 TLS 指纹** — stealth 模式用 BoringSSL 复刻 Chrome145 / Firefox133 / Safari / Edge 的完整 TLS 握手(不是只改 UA),可按请求切换;Cloudflare Turnstile 挑战页自动等 `cf_clearance`。无指纹引擎碰反爬就是 403,我们穿过去。
5151
- **🤝 有状态交互 Session** — 持久化浏览器会话(8 分钟空闲保活),登录态可注入可导出(`session_create(cookies=...)``session_cookies`),跨翻页、跨多步流程不断。一次性引擎抓完即弃,做不了「登录 → 操作 → 再操作」。
52-
- **🔌 MCP 原生**18 个工具是一等公民(不是 CDP 套壳),Claude Code / Cursor / Claude Desktop 一行接入。HTTP + MCP 双协议之外还有 CDP 桥,DevTools 生态照样能用。
52+
- **🔌 MCP 原生**23 个工具是一等公民(不是 CDP 套壳),Claude Code / Cursor / Claude Desktop 一行接入。HTTP + MCP 双协议之外还有 CDP 桥,DevTools 生态照样能用。
5353

5454
> 参照:Cloudflare 的 Kitesurf 明确不做真实 TLS 指纹协商、不做持久认证会话——反爬与登录正是 AginxBrowser 的地盘。
5555
@@ -71,7 +71,7 @@ Agent 是照着浏览器说的话行事的,所以响应里要写清楚实际
7171
- **分层渲染**:静态页面纯 HTTP 直取(~100ms),需要 JS 渲染才启动 V8(~1-2s)——[bench](bench/README.md) 页面集里 90% 根本不用拉起 V8;每次响应带 `tier` 字段说明走的哪层
7272
- **多引擎聚合搜索**:通用网页(百度/Bing/搜狗/搜狗微信/Google/DuckDuckGo)、新闻(Bing News)、代码(Stack Overflow/GitHub)、包(npm/PyPI)、学术(arXiv)、AI 模型(Hugging Face)——15 引擎 7 分类,并发查询、合并去重;运维还可把私有 Meilisearch 索引接入同一 `/search`。Agent 一步完成"搜→读"
7373
- **图片搜索**`categories=images` 接百度图片/必应图片,返回 `image_url` 二进制直链(可直接下成 jpg/png)+ `source_url` 溯源
74-
- **交互式 Session**:持久化浏览器会话,索引化交互(state/click/input/scroll/eval),Agent 像人一样浏览;`session_export` 把 Agent 摸索出来的操作导出成能直接跑的 curl 回放脚本,重放零模型 token
74+
- **交互式 Session**:持久化浏览器会话,索引化交互(state/click/input/scroll/eval),Agent 像人一样浏览;`session_export` 把 Agent 摸索出来的操作导出成能直接跑的 curl 回放脚本,重放零模型 token。操作面也补齐了:`session_viewport` 模拟设备视口(media query 会响应)、`session_wait` 按 selector/谓词带超时等待、`session_screenshot` 截会话当前状态、`session_console` 回放页面 console 环形日志、`session_storage` 导出/恢复 cookie + localStorage 方便交接登录态
7575
- **播放链接嗅探**`session_network(filter=media)` 从页面播放器运行时真正发出的请求里挖 m3u8/mp4/dash 链接——写在 HTML 里的播放地址多半是诱饵,请求日志才是真相。`GET /session/{id}/har` 把同一份流量导出成 HAR 1.2(含已保留的响应体)
7676
- **CDP 桥**`/json/version` + `/devtools/{kind}/{id}` WebSocket——Playwright / Puppeteer / browser-use 的 `chromium.connectOverCDP()` 一行接入([集成指南](docs/integrations.md))。兼容 DevTools 生态,但自己不做 CDP 套壳
7777
- **文件下载**:流式落盘(不吃内存)、SHA-256 校验、断点续传——二进制、压缩包、数据集用这个
@@ -80,7 +80,7 @@ Agent 是照着浏览器说的话行事的,所以响应里要写清楚实际
8080
- **JS 数据提取**`js_extract` 参数,从 SPA 提 `window.__INITIAL_STATE__` 等结构化数据
8181
- **截图渲染**`/screenshot` 端点(`--features screenshot`),JS 渲染后的 DOM 用自有的 diting 引擎出 PNG——纯 CPU,无 Chromium,agent 的视觉输入
8282
- **TLS 指纹伪装**:stealth 模式模拟 Chrome145/Firefox133/Safari/Edge,可按请求切换
83-
- **MCP Server**`--mcp` 模式暴露 18 个工具(fetch/eval/click/search/download/cache + session + 截图工具),Claude Code / Claude Desktop / Cursor 直接调用
83+
- **MCP Server**`--mcp` 模式暴露 23 个工具(fetch/eval/click/search/download/cache + session + 截图工具),Claude Code / Claude Desktop / Cursor 直接调用
8484
- **Firecrawl 兼容**`/v1/scrape` 端点,现有 Firecrawl 客户端改 base URL 即可迁移
8585
- **DNS 重绑定防护**:内置 SSRF 防护 + 解析后 IP 校验
8686

@@ -203,7 +203,7 @@ aginxbrowser/
203203
├── main.rs # HTTP 服务入口与路由
204204
├── server.rs # 业务层(fetch/click/eval/search)
205205
├── session.rs # 交互式浏览器会话
206-
├── mcp.rs # MCP Server(18 个工具)
206+
├── mcp.rs # MCP Server(23 个工具)
207207
├── render.rs # 分层渲染(HTTP 直取 → diting 浏览器引擎)
208208
├── store.rs # 本地 fetch/搜索缓存(SQLite FTS5、漂移哈希)
209209
├── download.rs # 流式文件下载(sha256、断点续传)
@@ -299,7 +299,7 @@ cargo build --release --features stealth,screenshot
299299

300300
包含:
301301
- 全部 25 个 HTTP 端点(`/fetch``/search``/screenshot``/download``/v1/scrape``/doctor`、11 个 session 端点、CDP 发现、MCP 传输)
302-
- MCP Server 的 18 个工具及参数
302+
- MCP Server 的 23 个工具及参数
303303
- Claude Code / Claude Desktop / Cursor 客户端配置
304304
- 环境变量、错误码、站点抓取示例
305305

0 commit comments

Comments
 (0)