
Zendriver MCP
io.github.bituq由 GitHub 帳號 bituq 發布v0.3.4更新於 Nov 3, 2026
Undetectable browser automation for LLM agents, spoken over MCP.
概覽
本機 MCP 伺服器,讓 AI 助理操作真實的 Chrome 瀏覽器上網,並內建反偵測、DevTools、Lighthouse 與 Cookie 工作階段工具。
- 可以做什麼
- 啟動、停止並查看 Chrome 瀏覽器狀態,進行導覽、上一頁下一頁、重新載入與分頁管理
- 尋找並操作頁面元素:點擊、輸入、清空、聚焦、選取、上傳、填寫並送出表單
- 讀取頁面內容:HTML、文字、精簡互動樹、附穩定 uid 的無障礙快照、截圖、執行 JS
- 檢視網路與主控台日誌,封鎖 URL、加入請求標頭、模擬或讓請求失敗、授予權限、設定代理
- 管理工作階段:匯出匯入 Cookie 與 localStorage,覆寫 UA、語言、時區與地理位置,模擬裝置與網路條件
- 效能與錄製:效能追蹤、堆積快照、Lighthouse 稽核、螢幕錄影輸出為 JPEG/PNG 或 MP4
- 適用情境
- 適合需要讓助理在真實網站上操作瀏覽器的情境:登入一次後重複使用工作階段、執行多步驟流程,或對頁面做效能與無障礙稽核。也適用於會阻擋以 WebDriver 為基礎之自動化的網站。
- 執行需求
- 以 PyPI 套件 zendriver-mcp 透過 stdio 在本機執行,可用 uvx 啟動,或以 uv tool、pipx、pip 安裝。需要 Python 3.10+ 以及已安裝的 Chrome 或 Chromium;可用選用參數指定 Chrome 執行檔路徑。Lighthouse 與 MP4 錄影輸出需依賴外部命令列工具。
安裝
在 SourceWeft 中
- 開啟 儀表板中的 Zendriver MCP,將其新增到工作區。
- 為需要使用其工具的對話啟用該服務。
Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。
其他 MCP 客戶端
參照 儲存庫 中的啟動說明。
README
zendriver-mcp
Undetectable browser automation for LLM agents, spoken over MCP.
zendriver-mcp is an MCP server that gives
your coding agent (Claude, Cursor, Gemini, Copilot) a real Chrome browser it
can actually use on the real web - behind Cloudflare, behind login walls, on
pages that detect and block WebDriver.
It's built on Zendriver, which speaks
the Chrome DevTools Protocol directly instead of going through WebDriver. That
means no navigator.webdriver flag, no headless telltales, and a fingerprint
that looks like an ordinary Chrome install.
On top of that foundation, zendriver-mcp layers everything an agent needs
to get work done: a token-efficient DOM walker, an accessibility tree with
stable uids, performance traces, Lighthouse audits, heap snapshots, human-like
input, device emulation, cookie round-tripping, and more - 96 tools across
22 modules.
Highlights
- Undetectable by design. Zendriver keeps a clean fingerprint; we ship a Cloudflare Turnstile solver, identity overrides (UA, locale, timezone, geolocation), and bezier-curve mouse movement plus gaussian typing timing.
- Token-efficient DOM. Two ways to see the page - the upstream DOM walker that reports 96% fewer tokens than raw HTML, and a CDP accessibility tree keyed by stable uids that survive re-renders.
- Full DevTools parity. Performance traces that load in Chrome DevTools,
heap snapshots in the standard
.heapsnapshotformat, Lighthouse audits via the Lighthouse CLI reusing the same browser. - Session round-tripping. Export all cookies (including HTTP-only ones) to JSON, re-import on the next session. Log in once, reuse everywhere.
- Emulation. iPhone 15 Pro, Pixel 8, iPad Pro, and desktop presets; CPU
throttling; Slow 3G / Fast 3G / 4G / offline network profiles; force
prefers-color-scheme. - Screencasts. Write frames to disk as JPEG or PNG at configurable FPS.
Tool catalogue
Full signatures live in the docstrings of src/tools/*.py and are auto-listed
by the MCP handshake.
Install
Published on PyPI: https://pypi.org/project/zendriver-mcp/.
Requires Python 3.10+ and a Chrome / Chromium install.
Use with Claude Desktop / Claude Code
No clone, no --directory, no absolute path. If you prefer a permanent
install instead, swap "command": "uvx" for "command": "zendriver-mcp"
after running uv tool install zendriver-mcp.
Development checkout
Working on zendriver-mcp itself? Clone + uv sync, then point your MCP
client at the checkout:
Optional flags on the CLI:
--browser-path /path/to/chrome- point at a specific Chrome binary--transport stdio- only stdio for now; SSE/HTTP arrive when upstreammcpships stable support
The 30-second tour
Token-optimised DOM walker
The interaction tree emits compact rows like
{"id": 1, "t": "btn", "l": "Search", "r": "hdr"}:
- Compact keys:
t(type),l(label),r(region) - Smart labels: inferred from
aria-label,aria-labelledby, associated<label>,placeholder, text,title,alt - Noise filtering: SVG internals, nested interactive children skipped
- Region tagging:
hdr,nav,main,side,ftr,dlg - Type compression:
button->btn,checkbox->chk, etc.
Reported reduction on perplexity.ai: ~96% fewer tokens than raw HTML (~11k -> ~400).
For flows that span multiple actions, prefer get_accessibility_snapshot +
click_by_uid - the uids stay valid as long as the underlying backend node
survives, even across re-renders.
Development
CI runs the same four on every push and PR.
Roadmap
Everything on the original roadmap shipped in the 0.2 / 0.3 releases:
- Stealth: Cloudflare solver, UA / locale / timezone / geolocation
- Human-like input: bezier mouse paths, gaussian keystroke timing
- DevTools parity: traces, heap snapshots, Lighthouse
- Screencast + mp4 export via ffmpeg
- Accessibility tree with stable uids
- Cookie import/export, blocking, extra headers, permissions
- Request interception + response mocking (
Fetch.enable) - Proxy configuration (restart with
--proxy-server) -
ToolResponseenvelope adopted in rich-output tools - PyPI publish workflow (Trusted Publishing)
Documentation site: https://bituq.github.io/zendriver-mcp/
What's next is driven by actual usage. Ideas on deck:
- Per-request proxy routing via Fetch interception
- Binary body support in
mock_response Fetch.enablewith patterns (faster than our "match all then filter")
License
MIT. See LICENSE.
Acknowledgements
- Zendriver does the heavy lifting underneath.
- The token-optimised DOM walker and the original 49-tool foundation come from ShubhamChoulkar/Zendriver-MCP. This project started as a fork and has since grown its own identity and feature set.
來源:README.md,提交 f360eb2
工具
0版本歷史
1- v0.3.4最新Sep 16, 2026
評分
已滿足適用檢查項的 50%
該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。
- 近 30 天內可連通25 分
請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。
- 已宣告認證方式10 分
請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。
- 已列出工具15 分
請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。
- 描述必需15 分
- 圖示10 分
- 文件15 分
- 授權條款10 分