
GDD - AI-Controlled Browser Farm
io.github.imVSmirnov由 GitHub 账号 imVSmirnov 发布v1.5.0更新于 Oct 24, 2026
AI-controlled browser farm: N isolated Chromium instances with 36 MCP tools
概览
在本机运行多个相互隔离的 Chromium 浏览器,让助手并行地在模拟设备上测试网页应用。
- 可以做什么
- GDD 会启动 N 个相互隔离的 Chromium 实例,每个实例拥有独立的配置文件、Cookie、设备模拟、地理位置和网络条件,并通过 localhost 上的 HTTP 提供 39 个 MCP 工具。工具涵盖浏览器实例管理、导航、交互(点击、滑动、拖拽、滚动、输入、按键、悬停、下拉选择、对话框)、读取与截图、模拟预设、诊断(控制台、网络、性能、通知)、快速认证、JavaScript 执行以及浏览器存储与 Cookie。它提供无界面服务器、带实时浏览器网格的桌面 GUI 和 Windows GUI,三者暴露相同的工具。
- 适用场景
- 适合让助手像多个真实用户一样同时操作网页应用:多设备响应式检查、注册与表单流程、排查控制台和网络错误,或类似 CI 的浏览器运行。适合已经在使用 Claude Code、Cursor 或基于 VS Code 的 IDE 等 MCP 客户端的团队。
- 运行要求
- 在 Windows、Linux 或 macOS 上作为本地进程运行,或使用 Docker 镜像 ghcr.io/cap-of-tea/gdd。MCP 端点为 localhost:9700 上的 HTTP(桌面 GUI 为 9800);客户端通过 URL 或随附的 stdio 代理脚本连接。首次启动会自动下载 Chromium(约 80 MB)。从源码构建需要 .NET 8 SDK。未声明需要账户或 API 密钥。
安装
在 SourceWeft 中
- 打开 控制台中的 GDD - AI-Controlled Browser Farm,将其添加到工作区。
- 为需要使用其工具的对话启用该服务。
Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。
其他 MCP 客户端
参照 仓库 中的启动说明。
README
GDD — Giggly-Dazzling-Duckling
AI-controlled browser farm on your machine
Simulate multiple real users across 22 device types — test your site like it's launch day.
[Release] [Platforms] [MCP] [MCP Registry] [License]
How It Works
You: Open 3 iPhones and a desktop, navigate to myapp.com, test the signup form on all devices
Claude Code creates 4 browsers with device emulation, navigates each to your app, fills in the form, takes screenshots, checks console for errors — all in parallel.
GDD runs N isolated Chromium instances, each with its own profile, cookies, device emulation, geolocation, and network conditions. It exposes 39 MCP tools via HTTP on localhost:9700.
[GDD Video Wall — 3 devices testing simultaneously]
Install
GDD comes in two flavours. The Server is headless — it's just the MCP backend, runs anywhere (including boxes with no display), and is all you need for pure AI automation. The Desktop app adds a GUI: a live grid of browser thumbnails you can click into to take over a session by hand. The Server runs on port 9700, the Desktop app on 9800 — so you can run both side by side.
Server (headless) — the MCP backend:
Desktop app (GUI) — a live grid of browser thumbnails you can click into:
The Windows app uses WebView2; the Linux/macOS app (built with Avalonia) drives real Chromium windows parked off-screen. Self-contained binary, ~70 MB. No .NET installation needed. Chromium downloads automatically on first launch.
One-liner (Linux):
Docker
The Docker image runs in headless mode with all Chromium dependencies pre-installed.
By default, browsers launch in headed mode (visible windows). Add --headless for CI/CD. Other flags: --stealth and --stealth-max for anti-bot masking, --update to self-update, --version and --help. The Configuration section below lists every flag and environment variable.
Connect to Your AI Client
Add to .mcp.json and restart your AI client:
That's it. Start GDD, tell Claude or Cursor to test your app.
Claude Desktop users: Download the
.mcpbfile from Releases and open it — GDD installs as a one-click desktop extension. No manual config needed.
Config file locations
Global and project configs are merged — servers from both are available simultaneously. Changes are picked up only when restarting the AI client session.
VS Code-based IDEs (Windsurf, Antigravity, Copilot)
VS Code-based IDEs use a different config format than Claude Code / Cursor.
Project config — .vscode/mcp.json:
Global config — open via Cmd+Shift+P → "Open User Settings (JSON)":
Global settings.json location: macOS — ~/Library/Application Support/<IDE>/User/settings.json, Linux — ~/.config/<IDE>/User/settings.json, Windows — %APPDATA%/<IDE>/User/settings.json. Replace <IDE> with your editor name (Code, Windsurf, Antigravity, etc.).
stdio-proxy alternative (.vscode/mcp.json):
Permissions (Claude Code)
By default, Claude Code asks for confirmation on every MCP tool call. To allow GDD tools without prompts, add to ~/.claude/settings.json:
This single wildcard covers all 39 GDD tools. Restart Claude Code after editing.
Auto-launch via stdio proxy (alternative)
Proxy scripts start GDD automatically when your AI client connects:
Windows:
Linux / macOS:
Add "--headless" to the args array for CI/CD.
Tip: On first launch, GDD downloads Chromium (~80 MB). If your AI client times out, run GDD manually first, then reconnect.
Autostart as service (macOS / Linux)
macOS (launchd):
Manage: launchctl list | grep gdd / bash Scripts/install-launchd.sh --uninstall
Linux (systemd):
Direct HTTP (without AI client)
GDD uses standard JSON-RPC 2.0 — works with curl, Python, Node.js, or any HTTP client.
Features
- Multi-device — Run N isolated Chromium instances with 22 device presets (phones, tablets, desktops)
- AI-native — 39 MCP tools for Claude Code, Cursor, or any MCP-compatible client
- Cross-platform — Native GUI with a live video wall on Windows, Linux & macOS, plus a headless server for CI/CD
- Full interaction — Navigate, tap, type, press keys and shortcuts, drag, swipe, scroll, hover, handle dialogs, take screenshots
- Real keyboard — Typing sends genuine, trusted keystrokes (the full keydown→input chain), so input masks, autocomplete and
maxlengthbehave exactly as they do for a real user, and rich-text (contenteditable) editors work;gdd_presshandles single keys and shortcuts like Enter, Tab, Escape and Ctrl+A - Physical keyboard layouts — Keystrokes carry the real
code/keyCodeof the emulated locale's keyboard: Russian ЙЦУКЕН puts «а» on the physicalKeyF, French AZERTY and German QWERTZ remap their keys, dead-key accents and AltGr symbols work. The layout followsgdd_set_languageautomatically (US, RU, DE, FR) - Human-like input —
humanize=truedrives a continuous cursor path (cubic Bézier with easing and micro-jitter) that carries over between clicks, hovers and drags; taps fire a single device-appropriate input (touch or mouse), never both - Anti-bot stealth — opt-in
--stealthmasks the usual automation tells (navigator.webdriver, etc.);--stealth-maxadds headless/datacenter evasions (coherent user-agent client hints, a plausible WebGL vendor, realistic device metrics) — on a headless container this halved CreepJS's headless score - Proxy support — Route every browser through an upstream proxy with
GDD_PROXY(with optional auth) - Header rewriting —
gdd_set_headerscan stripX-Frame-Options/CSPframe-ancestorsto load a site in an iframe, or add/replace response headers - Device emulation — Screen size, DPR, touch, user agent, geolocation, timezone, language
- Network control — Simulate 4G, Fast 3G, Slow 3G, or offline per browser
- Diagnostics — Console errors, network traffic, performance metrics, push notifications
- Error beacon — Every tool response warns about JS errors across all browsers automatically
- Docker-ready — Official image on GHCR (
ghcr.io/cap-of-tea/gdd), listed on the MCP Registry - Self-updating — Built-in version check and one-command update
MCP Tools (39)
Player Management
Navigation
Interaction
Reading & Screenshots
Emulation
State & Diagnostics
Auth & Execution
Browser Storage
Help & Updates
Device Presets (22)
Phones (11)
Tablets (6)
Desktops (5)
Architecture
Editions
GDD ships as three apps over one shared core. The two GUIs differ only in the desktop toolkit (WebView2 on Windows, Avalonia on Linux/macOS); all three expose the same 39 MCP tools.
Tech Stack
Project Structure
Configuration
appsettings.json next to the executable:
Command-line flags
Environment variables
Handy for Docker and CI, where an appsettings.json file is awkward:
Documentation
- GDD-MANUAL.md — Full usage manual with workflow examples
- GDD-ARCHITECTURE.md — Architecture deep-dive
- GDD-PROMPT.md — Claude agent instructions for MCP integration
- docker-compose.prod.yml — Self-host GDD as a remote MCP server behind a Caddy bearer-token proxy
- CONTRIBUTING.md — Contribution guidelines
Privacy
Privacy Policy
GDD runs entirely on your local machine. No telemetry, no analytics, no data collection.
- No data leaves your machine — all browser profiles, screenshots, logs, and cookies stay in local storage
- Browser profiles — stored in
%LOCALAPPDATA%\GDD\Profiles(Windows) or~/.local/share/GDD/Profiles(Linux/macOS) - No third-party services — GDD does not contact any external APIs except GitHub Releases for optional update checks
- Update checks —
gdd_check_updatemakes a single read-only request toapi.github.com. Opt out by not calling the tool, or setCheckForUpdates: falseinappsettings.json - MCP server — listens on
localhostonly (default port 9700), never exposed to the network
Contact: [email protected]
License
imVS©, free for personal use.
Source Available — Non-Commercial. Free for personal use, education, and research. Commercial use requires a paid license. See LICENSE for full terms.
Commercial licensing: [email protected]
来源:README.md,提交 12a4e4f
工具
0版本历史
1- v1.5.0最新Sep 16, 2026
评分
已满足适用检查项的 40%
该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。
- 近 30 天内可连通25 分
请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。
- 已声明认证方式10 分
请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。
- 已列出工具15 分
请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。
- 描述必需15 分
- 图标10 分
- 文档15 分
- 许可证10 分
请在仓库或注册中心条目中声明许可证。