GDD (Giggly-Dazzling-Duckling) について
GDDは、分離されたChromiumブラウザーを実行し、デバイスをエミュレートしてウェブサイトをテストするMCPサーバーです。並列操作と診断に対応し、手動操作用のデスクトップ画面も利用できます。
主な機能
- 01Chromiumインスタンスの並列実行
- 0222種類のプリセットとカスタムエミュレーション
- 03ブラウザー操作とスクリーンショット
- 04ネットワークと位置情報の制御
- 05コンソールとパフォーマンス診断
- 06オプションのデスクトップブラウザーグリッド
活用シーン
- 01スマートフォンとデスクトップで登録フローをテスト
- 02低速またはオフライン時のページを確認
- 03スクリーンショット取得とJavaScriptエラーの確認
MCP 対応
HTTP経由で、ブラウザー管理、ナビゲーション、操作、エミュレーション、スクリーンショット、診断のツールをMCPクライアントに公開します。自動化向けにヘッドレスでも実行できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
docker run -i --rm ghcr.io/cap-of-tea/gdd:1.5.0ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ghcr.io/cap-of-tea/gdd:1.5.0stdioツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
GDD — Giggly-Dazzling-Duckling
お使いのマシン上で動作するAI制御のブラウザーファーム
22種類のデバイスタイプで複数の実ユーザーをシミュレートし、リリース当日のようにサイトをテストできます。
仕組み
あなた: iPhoneを3台とデスクトップを開き、myapp.comにアクセスして、すべてのデバイスで登録フォームをテストしてください
Claude Code はデバイスエミュレーション付きのブラウザーを4つ作成し、それぞれでアプリにアクセスして、フォームに入力し、スクリーンショットを撮り、コンソールにエラーがないか確認します。すべて並行して実行します。
gdd_add_players(3, device="iPhone 15 Pro") → players [1, 2, 3]
gdd_add_players(1, device="Desktop 1080p") → player [4]
gdd_navigate(1, "https://myapp.com") → all 4 browsers open your app
gdd_tap(1, "#signup-btn") → taps signup on iPhone
gdd_screenshot(1) → captures the result
gdd_get_console(1, level="error") → checks for JS errors
GDDは、N個の分離されたChromiumインスタンスを起動します。それぞれが独自のプロファイル、Cookie、デバイスエミュレーション、位置情報、ネットワーク条件を備えています。HTTP経由でlocalhost:9700上に39個のMCPツールを公開します。
インストール
GDD には 2 種類あります。サーバーはヘッドレスで、MCP バックエンドのみを備え、ディスプレイのない環境を含めどこでも実行でき、AI による自動化だけを行う場合に必要なのはこれだけです。デスクトップアプリには GUI が追加され、ブラウザーのサムネイルがリアルタイムで並ぶグリッドをクリックして、手動でセッションを引き継げます。サーバーはポート 9700、デスクトップアプリは 9800 で実行されるため、両方を並行して実行できます。
サーバー(ヘッドレス) — MCP バックエンド:
| プラットフォーム | ダウンロード | 実行 |
|---|---|---|
| Linux | GDD-Server-Linux.tar.gz | chmod +x GDD.Headless && ./GDD.Headless |
| macOS ARM | GDD-Server-macOS-ARM.tar.gz | bash Scripts/setup-macos.sh && ./GDD.Headless |
| macOS Intel | GDD-Server-macOS-Intel.tar.gz | bash Scripts/setup-macos.sh && ./GDD.Headless |
| Windows | GDD-Server-Windows.zip | .\GDD.Headless.exe |
| Docker | ghcr.io/cap-of-tea/gdd | docker run -p 9700:9700 ghcr.io/cap-of-tea/gdd |
| Claude Desktop | Win / Mac ARM / Mac Intel (.mcpb) | .mcpb ファイルを開くと、デスクトップ拡張機能としてインストールされます |
デスクトップアプリ(GUI) — ブラウザーのサムネイルがリアルタイムで並ぶグリッドをクリックできます:
| プラットフォーム | ダウンロード | 実行 |
|---|---|---|
| Windows | GDD-Desktop-Windows.zip | 展開して GDD.exe を実行(WebView2 が必要) |
| Linux | GDD-Desktop-Linux.tar.gz | bash Scripts/install-deps.sh && ./GDD.Desktop |
| macOS ARM | GDD-Desktop-macOS-ARM.tar.gz | bash Scripts/setup-macos.sh && ./GDD.Desktop |
| macOS Intel | GDD-Desktop-macOS-Intel.tar.gz | bash Scripts/setup-macos.sh && ./GDD.Desktop |
Windows アプリは WebView2 を使用します。Avalonia で構築された Linux/macOS アプリは、画面外に配置した Chromium ウィンドウを操作します。自己完結型バイナリで、サイズは約 70 MB です。.NET のインストールは不要です。Chromium は初回起動時に自動でダウンロードされます。
ワンライナー(Linux):
curl -sL https://github.com/Cap-of-tea/GDD/releases/latest/download/GDD-Server-Linux.tar.gz | tar xz && chmod +x GDD.Headless && ./GDD.Headless
Docker
# Run (headless, port 9700)
docker run -p 9700:9700 ghcr.io/cap-of-tea/gdd
# Or build locally
docker build -t gdd .
docker run -p 9700:9700 gdd
Docker イメージは、Chromium の依存関係がすべて事前にインストールされたヘッドレスモードで実行されます。
デフォルトでは、ブラウザーはヘッド付きモード(ウィンドウを表示)で起動します。CI/CD では --headless を追加してください。その他のフラグ:ボット対策のマスキングには --stealth と --stealth-max、自己更新には --update、バージョンとヘルプの表示には --version と --help を使用します。以下の設定セクションに、すべてのフラグと環境変数が記載されています。
AI クライアントに接続する
.mcp.json に追加し、AI クライアントを再起動します。
{
"mcpServers": {
"gdd": {
"url": "http://localhost:9700/mcp"
}
}
}
これで完了です。GDD を起動し、Claude または Cursor にアプリをテストするよう伝えてください。
Claude Desktop ユーザーの方へ: Releases から
.mcpbファイルをダウンロードして開くと、GDD がワンクリックでデスクトップ拡張機能としてインストールされます。手動での設定は不要です。
設定ファイルの場所
| クライアント | プロジェクト設定 | グローバル設定 |
|---|---|---|
| Claude Code | <project>/.mcp.json | ~/.claude/.mcp.json |
| Cursor | <project>/.cursor/mcp.json | ~/.cursor/mcp.json |
| VS Code / Windsurf / Antigravity | <project>/.vscode/mcp.json | IDE settings.json |
グローバル設定とプロジェクト設定は統合され、両方のサーバーを同時に利用できます。変更が反映されるのは、AI クライアントのセッションを再起動したときのみです。
VS Code ベースの IDE(Windsurf、Antigravity、Copilot)
VS Code ベースの IDE では、Claude Code / Cursor とは異なる形式の設定ファイルを使用します。
プロジェクト設定 — .vscode/mcp.json:
{
"servers": {
"gdd": {
"type": "http",
"url": "http://localhost:9700/mcp"
}
}
}
グローバル設定 — Cmd+Shift+P →「ユーザー設定を開く (JSON)」から開きます:
{
"mcp": {
"servers": {
"gdd": {
"type": "http",
"url": "http://localhost:9700/mcp"
}
}
}
}
グローバルな settings.json の場所:macOS — ~/Library/Application Support/<IDE>/User/settings.json、Linux — ~/.config/<IDE>/User/settings.json、Windows — %APPDATA%/<IDE>/User/settings.json。<IDE> はエディター名(Code、Windsurf、Antigravity など)に置き換えてください。
stdio-proxy の代替設定(.vscode/mcp.json):
{
"servers": {
"gdd": {
"type": "stdio",
"command": "bash",
"args": ["/absolute/path/to/Scripts/mcp-proxy.sh"]
}
}
}
権限(Claude Code)
デフォルトでは、Claude Code は MCP ツールを呼び出すたびに確認を求めます。確認なしで GDD ツールを使用できるようにするには、~/.claude/settings.json に追加します。
{
"permissions": {
"allow": [
"mcp__gdd__*"
]
}
}
このワイルドカードひとつで、GDD の全 39 ツールが対象になります。編集後、Claude Code を再起動してください。
stdio プロキシによる自動起動(代替方法)
プロキシスクリプトを使うと、AI クライアントの接続時に GDD が自動的に起動します。
Windows:
{
"mcpServers": {
"gdd": {
"command": "powershell",
"args": ["-ExecutionPolicy", "Bypass", "-File", "C:/path/to/Scripts/mcp-proxy.ps1"]
}
}
}
Linux / macOS:
{
"mcpServers": {
"gdd": {
"command": "bash",
"args": ["/path/to/Scripts/mcp-proxy.sh"]
}
}
}
CI/CD では、args 配列に "--headless" を追加してください。
ヒント: 初回起動時に、GDD は Chromium(約 80 MB)をダウンロードします。AI クライアントがタイムアウトする場合は、まず GDD を手動で起動してから再接続してください。
サービスとして自動起動(macOS / Linux)
macOS(launchd):
bash Scripts/install-launchd.sh # headed (default)
bash Scripts/install-launchd.sh --headless # for CI/CD
管理:launchctl list | grep gdd / bash Scripts/install-launchd.sh --uninstall
Linux(systemd):
mkdir -p ~/.config/systemd/user
cat > ~/.config/systemd/user/gdd.service << 'EOF'
[Unit]
Description=GDD Multi-Browser Testing Server
[Service]
ExecStart=/path/to/GDD.Headless
WorkingDirectory=/path/to/gdd-directory
Restart=on-failure
[Install]
WantedBy=default.target
EOF
systemctl --user daemon-reload
systemctl --user enable --now gdd
HTTP で直接接続(AI クライアントを使用しない場合)
curl -X POST http://localhost:9700/mcp -H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"gdd_add_players","arguments":{"count":1}}}'
GDD は標準の JSON-RPC 2.0 を使用するため、curl、Python、Node.js、その他任意の HTTP クライアントで動作します。
特長
- マルチデバイス — 22 種類のデバイスプリセット(スマートフォン、タブレット、デスクトップ)を使い、分離された Chromium インスタンスを N 個実行できます
- AI ネイティブ — Claude Code、Cursor、または MCP 互換クライアント向けの 39 個の MCP ツールを備えています
- クロスプラットフォーム — Windows、Linux、macOS でライブビデオウォールを備えたネイティブ GUI を利用でき、CI/CD 向けのヘッドレスサーバーも使用できます
- 幅広い操作に対応 — 移動、タップ、入力、キーやショートカットの押下、ドラッグ、スワイプ、スクロール、ホバー、ダイアログの操作、スクリーンショットの撮影ができます
- 実際のキーボード入力 — 入力では本物の信頼されたキーストローク(keydown→input の全チェーン)が送信されるため、入力マスク、オートコンプリート、
maxlengthは実際のユーザーと同じように動作し、リッチテキスト(contenteditable)エディターも使えます。gdd_pressは単一キーや、Enter、Tab、Escape、Ctrl+A などのショートカットを処理します - 物理キーボードレイアウト — キーストロークには、エミュレートされたロケールのキーボードに対応する実際の
code/keyCodeが付与されます。ロシア語のЙЦУКЕНでは「а」が物理キーKeyFに割り当てられ、フランス語のAZERTYとドイツ語のQWERTZではキーが再マッピングされます。デッドキーによるアクセントやAltGr記号も機能します。レイアウトはgdd_set_languageに自動的に従います(US、RU、DE、FR) - 人間らしい入力 —
humanize=trueを指定すると、クリック、ホバー、ドラッグの間で連続するカーソル経路(イージングと微細な揺らぎを伴う3次ベジェ曲線)が使われます。タップではデバイスに適した入力(タッチまたはマウス)のどちらか一方だけが発生し、両方が発生することはありません - ボット対策ステルス機能 —
--stealthを有効にすると、一般的な自動化の痕跡(navigator.webdriverなど)を隠します。--stealth-maxでは、ヘッドレス/データセンター環境での回避機能(整合性のあるユーザーエージェントのクライアントヒント、もっともらしいWebGLベンダー、現実的なデバイス指標)が追加されます。ヘッドレスコンテナーでは、CreepJSのヘッドレススコアが半減しました - プロキシ対応 —
GDD_PROXYを使って、すべてのブラウザーを上流プロキシ経由で接続できます(認証も任意で設定できます) - ヘッダーの書き換え —
gdd_set_headersでX-Frame-Options/CSPframe-ancestorsを削除してサイトをiframeに読み込んだり、レスポンスヘッダーを追加・置換したりできます - デバイスエミュレーション — 画面サイズ、DPR、タッチ、ユーザーエージェント、位置情報、タイムゾーン、言語に対応しています
- ネットワーク制御 — ブラウザーごとに4G、Fast 3G、Slow 3G、またはオフラインをシミュレートできます
- 診断機能 — コンソールエラー、ネットワークトラフィック、パフォーマンス指標、プッシュ通知に対応しています
- エラービーコン — すべてのツールのレスポンスで、全ブラウザーのJSエラーを自動的に警告します
- Docker対応 — 公式イメージをGHCR(
ghcr.io/cap-of-tea/gdd)で公開しており、MCP Registry に掲載されています - 自動更新 — バージョンチェック機能を内蔵し、1つのコマンドで更新できます
MCP ツール(39個)
プレイヤー管理
| ツール | 説明 |
|---|---|
gdd_add_players | オプションのデバイスプリセットを指定して、ブラウザーインスタンスをN個追加します |
gdd_remove_player | プレイヤーIDを指定してブラウザーインスタンスを削除します |
gdd_list_windows | 現在の状態とともに、アクティブなブラウザーをすべて一覧表示します |
ナビゲーション
| ツール | 説明 |
|---|---|
gdd_navigate | URLに移動します |
gdd_wait | CSSセレクターが表示されるまで待機します(タイムアウトあり) |
gdd_reload | ページを再読み込みします(hard=true を指定するとキャッシュを迂回します) |
gdd_back | 前のページに戻ります |
gdd_forward | 次のページに進みます |
操作
| ツール | 説明 |
|---|---|
gdd_tap | CSS セレクターまたは座標で要素をタップします。デバイスに適した入力を 1 回だけ送信します(タッチデバイスではタッチ、デスクトップではマウス)。両方を送信することはありません。humanize=true を指定すると、人間らしい連続したカーソル経路を追加します |
gdd_swipe | スワイプ操作(上/下/左/右) |
gdd_drag | 実際のポインターイベントを使って、要素を (x, y) にドラッグするか、別の要素の上にドラッグします(dnd-kit と HTML5 のドラッグ&ドロップを操作します) |
gdd_scroll | ページまたは要素をスクロールします |
gdd_type | 実際の信頼されたキーストロークでテキストを入力します(CDP dispatchKeyEvent — マスク、オートコンプリート、maxlength は実際のユーザー操作と同様に動作します。contenteditable でも動作します)。物理キーコードはエミュレートされたレイアウト(US/RU/DE/FR)に従います。humanize=true を指定するとキーごとの揺らぎを追加し、paste=true を指定すると一度に貼り付けます |
gdd_press | 修飾キー(Control/Alt/Shift/Meta)を任意で指定して、単一のキーまたはショートカット(Enter、Tab、Escape、矢印キー、F1–F12、または文字)を押します。文字キーはエミュレートされたレイアウトに従います |
gdd_hover | 要素にカーソルを合わせます。humanize=true を指定すると、人間らしい連続したカーソル経路を追加します |
gdd_select | <select> ドロップダウンからオプションを選択します |
gdd_dialog | JS の alert/confirm/prompt ダイアログを処理します |
読み取りとスクリーンショット
| ツール | 説明 |
|---|---|
gdd_read | 要素のテキストコンテンツを読み取ります |
gdd_read_all | 一致するすべての要素からテキストを読み取ります |
gdd_screenshot | CSS ピクセル解像度で JPEG スクリーンショットをキャプチャします |
エミュレーション
| ツール | 説明 |
|---|---|
gdd_set_device | デバイスプリセットを設定します(22 種類のデバイス:スマートフォン、タブレット、デスクトップ) |
gdd_set_viewport | カスタムのビューポート寸法を設定します |
gdd_set_location | 位置情報、タイムゾーン、ロケールを設定します |
gdd_set_network | ネットワーク環境を設定します(4G、3G、オフライン) |
gdd_set_language | ブラウザーの言語を設定します |
gdd_set_headers | レスポンスヘッダーを書き換えます — フレーム内表示を許可するために X-Frame-Options/CSP を取り除きます |
状態と診断
| ツール | 説明 |
|---|---|
gdd_get_state | ブラウザーの状態:URL、タイトル、デバイス、認証状態 |
gdd_get_console | コンソール出力と捕捉されていない例外 |
gdd_get_network | タイミングとステータスを含むネットワークリクエスト |
gdd_get_notifications | 受信したプッシュ通知 |
gdd_get_performance | パフォーマンス指標(JS ヒープ、DOM ノード、FPS) |
gdd_clear_logs | コンソールログやネットワークログを消去します |
認証と実行
| ツール | 説明 |
|---|---|
gdd_quick_auth | 生成した認証情報で自動登録してログインします |
gdd_execute_js | JavaScript を実行して結果を返します |
ブラウザーのストレージ
| ツール | 説明 |
|---|---|
gdd_storage | localStorage/sessionStorage の読み取り/書き込み/消去 |
gdd_cookies | ブラウザーの Cookie を読み取るか消去します |
ヘルプと更新
| ツール | 説明 |
|---|---|
gdd_get_manual | AI の自己学習用 GDD マニュアル全文 |
gdd_check_update | 新しいバージョンがあるか確認します |
gdd_update | 更新をダウンロードしてインストールします(GDD を再起動します) |
デバイスプリセット(22)
スマートフォン(11)
| デバイス | 解像度 | スケール | タッチ |
|---|---|---|---|
| iPhone SE | 375 x 667 | 2.0x | はい |
| iPhone 14 | 390 x 844 | 3.0x | はい |
| iPhone 15 Pro | 393 x 852 | 3.0x | はい |
| iPhone 15 Pro Max | 430 x 932 | 3.0x | はい |
| iPhone 16 Pro | 402 x 874 | 3.0x | はい |
| iPhone 16 Pro Max | 440 x 956 | 3.0x | はい |
| Pixel 9 | 412 x 915 | 2.625x | はい |
| Pixel 9 Pro | 412 x 915 | 2.625x | はい |
| Galaxy S24 | 360 x 780 | 3.0x | はい |
| Galaxy S24 Ultra | 412 x 915 | 3.0x | はい |
| OnePlus 12 | 412 x 915 | 3.5x | はい |
タブレット(6)
| デバイス | 解像度 | スケール |
|---|---|---|
| iPad Mini | 744 x 1133 | 2.0x |
| iPad Air | 820 x 1180 | 2.0x |
| iPad Pro 11" | 834 x 1194 | 2.0x |
| iPad Pro 13" | 1024 x 1366 | 2.0x |
| Galaxy Tab S9 | 800 x 1280 | 2.0x |
| Pixel Tablet | 800 x 1280 | 2.0x |
デスクトップ(5)
| デバイス | 解像度 | スケール |
|---|---|---|
| HD ノート PC | 1366 x 768 | 1.0x |
| HiDPI ノート PC | 1440 x 900 | 2.0x |
| 1080p デスクトップ | 1920 x 1080 | 1.0x |
| 1440p デスクトップ | 2560 x 1440 | 1.0x |
| 4K デスクトップ | 3840 x 2160 | 2.0x |
アーキテクチャ
Client (AI agent / curl / script)
│ POST /mcp (JSON-RPC 2.0)
▼
McpServer (:9700)
Streamable HTTP + SSE
│
▼
McpToolRegistry (39 tools)
Player · Navigation · Interaction · Read
Emulation · Auth · State · Diagnostics
│
▼
IPlayerManager
MainViewModel (WPF) / DesktopPlayerManager (Avalonia) / HeadlessPlayerManager
│
▼
IBrowserEngine Instances
WebView2 (Win GUI) | Playwright (Desktop GUI + headed/headless server)
Each: own profile, CDP session, emulation
エディション
GDD は、共通コアを使用する 3 つのアプリとして提供されます。2 つの GUI の違いはデスクトップツールキットのみです(Windows では WebView2、Linux/macOS では Avalonia)。3 つすべてが同じ 39 個の MCP ツールを提供します。
| Windows GUI | デスクトップ GUI | サーバー | |
|---|---|---|---|
| バイナリ | GDD.exe | GDD.Desktop | GDD.Headless(ウィンドウを表示しない場合は --headless を追加) |
| エンジン | WebView2 | Playwright(ヘッド付き) | Playwright(ヘッド付き/ヘッドレス) |
| UI | WPF ビデオウォール | Avalonia ビデオウォール | なし — HTTP API のみ |
| MCP ポート | 9700 | 9800 | 9700 |
| プラットフォーム | Windows | Linux、macOS | Windows、Linux、macOS |
技術スタック
| レイヤー | テクノロジー |
|---|---|
| ランタイム | .NET 8.0(自己完結型) |
| UI(Windows) | WPF + CommunityToolkit.Mvvm |
| UI(Linux/macOS) | Avalonia + CommunityToolkit.Mvvm |
| ブラウザー(Windows GUI) | Microsoft WebView2 |
| ブラウザー(デスクトップ GUI + サーバー) | Microsoft Playwright |
| プロトコル | MCP(Model Context Protocol) |
| ブラウザー制御 | Chrome DevTools Protocol(CDP) |
| ログ記録 | Serilog |
プロジェクト構成
BrowserXn.sln
├── src/
│ ├── GDD.Core/ ← Shared library (net8.0)
│ │ ├── Abstractions/ ← IBrowserEngine, IPlayerManager, ...
│ │ ├── Mcp/ ← MCP server, tools, protocol
│ │ ├── Models/ ← Device, Location, Network presets
│ │ ├── Services/ ← CDP, Emulation, Monitoring services
│ │ └── Collections/ ← RingBuffer
│ ├── BrowserXn/ ← Windows GUI (WPF + WebView2)
│ │ ├── Engines/ ← WebView2ControlAdapter
│ │ ├── ViewModels/ ← MVVM (MainViewModel : IPlayerManager)
│ │ ├── Views/ ← XAML + VideoWallPanel
│ │ └── ...
│ ├── GDD.Desktop/ ← Linux/macOS GUI (Avalonia + Playwright)
│ │ ├── Engines/ ← PlaywrightHeadedEngine (headed, parked off-screen)
│ │ ├── ViewModels/ ← MainViewModel (DesktopPlayerManager)
│ │ ├── Views/ ← AXAML + VideoWallPanel
│ │ └── Scripts/ ← mcp-proxy.sh, setup-macos.sh, install-deps.sh
│ └── GDD.Headless/ ← Cross-platform server (Playwright)
│ ├── Engines/ ← PlaywrightEngine
│ ├── Platform/ ← HeadlessPlayerManager
│ └── Scripts/ ← mcp-proxy.sh, mcp-proxy.ps1
└── .github/workflows/ ← CI/CD (8 build targets + auto-release)
設定
実行ファイルと同じ場所にある appsettings.json:
{
"GDD": {
"FrontendUrl": "about:blank",
"BackendUrl": "http://localhost:8080/api/v1",
"BotToken": "",
"McpPort": 9700,
"DataFolderRoot": "",
"Stealth": false
}
}
| キー | 説明 | デフォルト |
|---|---|---|
FrontendUrl | 新しいブラウザーのデフォルト URL | about:blank |
BackendUrl | 認証サービスのバックエンド API | http://localhost:8080/api/v1 |
BotToken | Telegram ボットトークン(TG テスト用) | — |
McpPort | MCP サーバーのポート(自動フォールバック +1..+9) | 9700 |
DataFolderRoot | ブラウザープロファイルの保存先ルート | %LOCALAPPDATA%\GDD\Profiles(Win)、~/.local/share/GDD/Profiles(Linux/macOS) |
Headed | ブラウザーウィンドウを表示 | true(--headless で上書き) |
Stealth | オプトインのボット対策マスキング — AutomationControlled を無効にして Chromium を起動し、一般的な自動化の兆候(navigator.webdriver など)を隠します。対象は Playwright エンジン(GDD.Desktop、GDD Server)のみです | false |
コマンドラインフラグ
| フラグ | 説明 |
|---|---|
--headed | ブラウザーウィンドウを表示(デフォルト) |
--headless | UI なし — CI/CD 用 |
--stealth | ボット対策マスキングを有効化(GDD_STEALTH=true と同じ) |
--stealth-max | 完全なステルス — client-hints の UA メタデータ、WebGL/デバイス/タイムゾーンの偽装。--stealth を含みます(GDD_STEALTH_MAX=true と同じ) |
--update | 新しいバージョンを確認し、利用可能な場合はインストール |
--version | バージョンを表示して終了 |
--help | 使用方法を表示して終了 |
環境変数
appsettings.json ファイルの使用が難しい Docker や CI で便利です。
| 変数 | 説明 |
|---|---|
GDD_STEALTH | true/1 にすると、ボット対策のマスキングを有効にします(--stealth と同じです) |
GDD_STEALTH_MAX | true/1 にすると、完全なステルスモードを有効にします(--stealth-max と同じです) |
GDD_PROXY | すべてのブラウザーに適用するアップストリームプロキシ。例:http://host:3128 または socks5://host:1080(Server/Playwright エンジン) |
GDD_PROXY_USER / GDD_PROXY_PASS | 認証が必要なプロキシの認証情報 |
GDD_CHROME_CHANNEL | バンドルされた Chromium の代わりに、インストール済みの Chrome ビルド(例:chrome、chrome-beta)を起動します |
GDD_PLAYER_IDLE_TIMEOUT_MINUTES | ヘッドレスサーバーのみ。指定した分数の間操作されていないプレーヤーを自動的に削除し、そのブラウザーを解放します。デフォルトは 30 です。0 にすると無効になります。リモートクライアントがプレーヤーを削除せずに切断した場合に、メモリが蓄積するのを防ぎます |
GDD_TRACE | true/1 にすると、詳細なトレースログを有効にします |
ソースからのビルド
.NET 8 SDK が必要です。
# Windows GUI (requires Windows 10/11 + WebView2)
dotnet publish src/BrowserXn/BrowserXn.csproj -c Release -p:PublishSingleFile=true -o ./publish/win-gui
# Cross-platform headless
dotnet publish src/GDD.Headless/GDD.Headless.csproj -c Release -r linux-x64 --self-contained -o ./publish/linux-x64
dotnet publish src/GDD.Headless/GDD.Headless.csproj -c Release -r osx-arm64 --self-contained -o ./publish/osx-arm64
dotnet publish src/GDD.Headless/GDD.Headless.csproj -c Release -r win-x64 --self-contained -o ./publish/win-x64
Chromium は初回実行時に自動的にインストールされます。
ドキュメント
- GDD-MANUAL.md — ワークフローの例を含む、使用方法の完全なマニュアル
- GDD-ARCHITECTURE.md — アーキテクチャの詳細
- GDD-PROMPT.md — MCP 統合のための Claude エージェント向け手順
- docker-compose.prod.yml — Caddy のベアラートークンプロキシの背後で、GDD をリモート MCP サーバーとしてセルフホストする方法
- CONTRIBUTING.md — 貢献ガイドライン
プライバシー
プライバシーポリシー
GDD はすべてローカルマシン上で動作します。テレメトリ、分析、データ収集は一切ありません。
- マシン外にデータが送信されることはありません — ブラウザープロファイル、スクリーンショット、ログ、Cookie はすべてローカルストレージに保存されます
- ブラウザープロファイル —
%LOCALAPPDATA%\GDD\Profiles(Windows)または~/.local/share/GDD/Profiles(Linux/macOS)に保存されます - サードパーティサービスはありません — GDD は、任意の更新確認のために GitHub Releases にアクセスする場合を除き、外部 API に接続しません
- 更新確認 —
gdd_check_updateはapi.github.comに読み取り専用のリクエストを1回送信します。このツールを呼び出さないか、appsettings.jsonでCheckForUpdates: falseに設定すると、更新確認を無効にできます - MCP サーバー —
localhostのみで待ち受けます(デフォルトポートは 9700)。ネットワークに公開されることはありません
お問い合わせ先:[email protected]
ライセンス
imVS©、個人利用は無料です。
ソース公開 — 非商用。個人利用、教育、研究は無料です。商用利用には有料ライセンスが必要です。詳細な条件については、LICENSE をご覧ください。
商用ライセンスに関するお問い合わせ:[email protected]
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。