agent-in-browser について
agent-in-browserは、AIエージェント、スクリプト、テストランナー向けのブラウザー自動化サーバー、CLI、シナリオランナーです。CDPでChrome系ブラウザーを、BiDiでFirefoxを操作し、共通のツールカタログを使います。
主な機能
- 01Chrome系ブラウザーとFirefoxの自動操作
- 02スナップショットと要素参照によるページ確認
- 03フォーム、タブ、ページ操作の実行
- 04コンソールメッセージとネットワークリクエストの取得
- 05複数ブラウザーでのYAMLシナリオ再生
- 06MCP、CLI、エージェントスキルの提供
活用シーン
- 01エージェントによるフォーム入力とサイト操作
- 02ブラウザーのエラーや通信状況の確認
- 03複数エンジンでのシナリオテスト
MCP 対応
MCPサーバーはstdio経由でブラウザー操作と検査のツールを提供します。同じツールカタログはCLIとシナリオランナーからも利用できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
agent-in-browser
あらゆるAIエージェント、あらゆるモデル、あらゆるテストランナーで使える、本物のブラウザー — 依存関係のない単一バイナリです。

モックアップではなく、実際の録画です。エージェントはページを要素参照付きのスナップショットとして読み取り、テキストを入力し、フォームに値を設定してクリックします。まずChrome(CDP)、次にFirefox(WebDriver BiDi)で実行します。task demo で再生成できます。
agent-in-browser は「Claude in Chrome」をオープンに実現するものです。拡張機能やベンダー固有のランタイムは必要ありません。すでにお使いのブラウザーを、ネイティブの自動化プロトコル経由で操作します。
| ブラウザー | プロトコル | ステータス |
|---|---|---|
| Chrome、Chrome Beta/Canary、Chromium、Edge、Brave、Vivaldi、Opera | Chrome DevTools Protocol(CDP) | ✅ |
| Firefox、Firefox Developer Edition / Nightly | WebDriver BiDi | ✅ |
| Safari | WebDriver(safaridriver) | 🛣 検出済み、ロードマップ |
同じツールカタログを基盤として、3つの方法で利用できます。
- MCP サーバー(
agent-in-browser mcp):Claude Code、Claude Desktop、Cursor、Codex、Gemini CLI、Windsurf、VS Code/Copilot、Zed、opencode、その他あらゆるMCPクライアントに接続でき、背後で動作するモデルは問いません。 - シェル CLI(
agent-in-browser call <tool> …):MCPを使わないエージェント、スクリプト、そして人間向けです。呼び出し間で同じブラウザーを維持します。 - シナリオランナー(
agent-in-browser run test.yaml --browser chrome,firefox):ツール呼び出しをブラウザーマトリックスで自動テストとして再生し、JUnit/JSONレポートを生成します。
エージェントスキル(skills/agent-in-browser/SKILL.md)がバイナリに同梱されており、エージェントにワークフローを教えます。
インストール
# macOS / Linux
curl -fsSL https://raw.githubusercontent.com/Gwakko/agent-in-browser/main/scripts/install.sh | sh
# Windows (PowerShell)
irm https://raw.githubusercontent.com/Gwakko/agent-in-browser/main/scripts/install.ps1 | iex
# Homebrew (macOS / Linux)
brew install gwakko/tap/agent-in-browser
# With Go
go install github.com/gwakko/agent-in-browser/cmd/agent-in-browser@latest
# From a checkout (needs Task: https://taskfile.dev)
task install # → ~/.local/bin/agent-in-browser + alias `aib`
エージェントを接続する
agent-in-browser setup claude-code --write # runs `claude mcp add --scope user …`
agent-in-browser setup cursor --write # merges ~/.cursor/mcp.json (a .bak is kept)
agent-in-browser setup codex --write # appends to ~/.codex/config.toml
agent-in-browser setup gemini --write # ~/.gemini/settings.json
agent-in-browser setup vscode # prints the snippet for .vscode/mcp.json
agent-in-browser skill install --for claude # ~/.claude/skills/agent-in-browser (also: codex, agents, --dir)
Claude Desktopならワンクリック: 最新リリースから agent-in-browser-<version>.mcpb をダウンロードして開きます。MCP Registryにも io.github.Gwakko/agent-in-browser として掲載されています。
--write を指定しない場合、setup は設定を表示するだけです。ブラウザーオプションは --args "--browser firefox --headless" で渡します。すべてのクライアントについては、docs/integrations.md を参照してください。
シェルから使う
agent-in-browser call navigate url=localhost:3000
agent-in-browser call snapshot
# - textbox "Email" [ref=e3] (required, type=email)
# - button "Sign up" [ref=e7]
agent-in-browser call type ref=e3 [email protected]
agent-in-browser call click ref=e7
agent-in-browser call wait_for text=Welcome
agent-in-browser call console_messages level=error
agent-in-browser call screenshot # → prints PNG path
agent-in-browser stop
便利なフラグ(コマンドラインのどこでも使えます):--browser firefox、--headless、2つ目の独立したブラウザーを使うための --instance work、自分で起動したブラウザーに接続するための --endpoint http://127.0.0.1:9222、および --viewport 390x844。
シナリオをテストする
name: signup
browsers: [chrome, firefox]
steps:
- navigate: http://localhost:3000/signup
- fill_form:
fields:
- { selector: "#email", value: "[email protected]" }
- { match: "I accept the terms", value: true }
- click: Sign up
- wait_for: { text: "Welcome" }
- assert: { url_contains: "/dashboard", no_console_errors: true }
agent-in-browser run tests/*.yaml --browser chrome,firefox,edge --junit report.xml
形式の詳細は、skills/agent-in-browser/references/scenarios.md を参照してください。
ツール
browser_status · browsers_installed · tabs_list · tab_new · tab_select · tab_close · navigate · snapshot · find · click · hover · type · press_key · fill_form · scroll · wait_for · get_text · screenshot · evaluate · console_messages · network_requests · resize · browser_close
引数は docs/tools.md に記載されています。このファイルは task docs:tools で生成されます。
仕組み
agent ──MCP/stdio──┐
shell ──call───────┼──▶ tools ──▶ session ──▶ Driver ──CDP──────▶ Chrome / Edge / Brave / …
CI ────run yaml────┘ (one catalogue) (attach|launch) └─BiDi─────▶ Firefox
page lib (injected JS):
snapshot · refs · fill · find
- ブラウザーは専用プロファイル(
~/.agent-in-browser/profiles/<instance>-<browser>)で実行され、切り離されているため、MCP サーバーを再起動しても動作し続けます。個別の CLI 呼び出しは、~/.agent-in-browser/instances/<name>.jsonを介して同じブラウザーを再利用します。 - ページの理解(スナップショット、参照、フォーム入力)には、すべてのエンジンで同じように動作する挿入された JavaScriptを使用します。信頼された入力、スクリーンショット、タブ、コンソール/ネットワークのキャプチャは、各プロトコルのドライバーから取得します。
- 詳細:docs/architecture.md · ブラウザーに関する注意事項:docs/browsers.md · 計画:docs/roadmap.md。
開発
task build # bin/agent-in-browser
task test # unit tests
task test:e2e # scenario on every installed browser
task smoke # CLI scenario run, chrome+firefox
task inspect # MCP Inspector against the local build
task build:all # cross-compile 6 targets into dist/
task release TAG=v0.1.0 # tag → GitHub Actions → goreleaser
セキュリティに関する注意事項
- デバッグエンドポイントは
127.0.0.1のみで待ち受けます。それでも、ローカルのすべてのプロセスがそのブラウザーを操作できるため、エージェントに渡したくないアカウントにはサインインしないでください。 - Chrome 136以降、デフォルトのChromeプロファイルではリモートデバッグが拒否されます。agent-in-browserは常に独自のプロファイルを使用します。ログイン状態を引き継ぐには、エージェントのブラウザーウィンドウ内で一度サインインしてください。プロファイルにログイン状態が保持されます。
ライセンス:MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。