Browser Automation について
Browser Automationは、ブラウザーの状態を確認・再利用したいユーザー向けの、日常的なWeb操作用MCPサーバーです。表示可能なブラウザーセッションで、ページスナップショット、スクリーンショット、操作ツールを提供します。
主な機能
- 01ページ移動とタブ管理
- 02ページテキストとアクセシビリティスナップショット
- 03クリック、入力、キー操作、スクロール
- 04スクリーンショットとPDF出力
- 05永続ブラウザーセッションと手動ログイン
活用シーン
- 01ページを開いてタイトルや内容を確認する
- 02管理画面でフォーム入力やボタン操作を行う
- 03ログイン後に同じブラウザーセッションを使い続ける
- 04Webページを画像またはPDFで保存する
MCP 対応
MCPサーバーとして、ページ移動、観察、操作、ファイル、セッション管理のツールをMCPクライアントに提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
npx -y @mindstone/mcp-server-browser-automationAGENT_BROWSER_SESSION_NAMESession name for browser persistenceAGENT_BROWSER_SHOW_WINDOWSet to 'false' to run the browser headless. Default is visible (true).AGENT_BROWSER_AUTOSAVE_INTERVAL_MSPeriodic session autosave interval in ms (agent-browser >=0.31.2). Default 0 (off).MCP_WORKSPACE_PATHWorkspace directory for browser_pdf outputs and browser_upload sources. Defaults to os.tmpdir() when unset.ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
21掲載時のツール一覧 · 今日に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| url | string | はい | 移動先の URL(http://、https://、または about:blank) |
詳細
@mindstone/mcp-server-browser-automation
操作を確認できるブラウザー制御:ページを開き、サインインし、画面をクリックして操作し、フォームに入力し、スクリーンショットを撮影して、再利用可能なブラウザーセッションを維持できます。
ブラウザーのテスト環境一式を動かすのではなく、ユーザーがブラウザーの状態を確認、承認、または再利用する必要がある実用的なウェブタスクに最適です。
ステータス
- バージョン: 0.2.3 · npm
- 認証: なし(
server.json) - ツール: 21(ナビゲーション、状態確認、操作、セッション、ファイル)
- 領域: browser-automation
- 機械可読:
STATUS.json
開発の背景
Microsoft の Playwright MCP は、幅広いブラウザー自動化やテストに適した優れた選択肢です。このコネクターは、意図的に機能を絞り、操作を見やすくしています。
ユーザーが一連の操作を追える形で、アシスタントに一般的なウェブサイトを操作させたい場合に使用します。実際のブラウザーを開き、ユーザーがログインを完了できるようにし、管理画面をクリックして進み、フォームに入力し、スクリーンショットを撮影して、後から同じセッションに戻ります。あらゆるブラウザーテスト機能を公開することではなく、信頼性と日常的な使いやすさを重視しています。
操作例
「https://example.com を開いて、ページのタイトルを教え、スクリーンショットを撮ってください。」
ホストが呼び出すツール:
browser_navigate— 設定されたブラウザーセッションで URL を開きます。browser_get_page_info— 現在の URL とページタイトルを返します。browser_screenshot— PNG スクリーンショットを撮影します。
応答(一部省略):
{
"ok": true,
"url": "https://example.com/",
"title": "Example Domain"
}
要件
- Node.js 20+
- npm
PATH上にagent-browserCLI があること。または、サーバーが自動的にインストールできるようにnpxが利用可能であること。
ワンクリックインストール
ボタンをクリックすると、ホストから次の値を入力するよう求められます:AGENT_BROWSER_SESSION_NAME、AGENT_BROWSER_SHOW_WINDOW。
Claude Desktop / Claude Code / Goose / Continue.dev 用の手動設定(Browser Automation)
{
"mcpServers": {
"Browser Automation": {
"command": "npx",
"args": [
"-y",
"@mindstone/mcp-server-browser-automation"
],
"env": {
"AGENT_BROWSER_SESSION_NAME": "mcp",
"AGENT_BROWSER_SHOW_WINDOW": "true"
}
}
}
}
クイックスタート
npx
npx -y @mindstone/mcp-server-browser-automation
または、グローバルにインストールします:
npm install -g @mindstone/mcp-server-browser-automation
mcp-server-browser-automation
このサーバーでブラウザーを制御するには、agent-browser CLI バイナリが必要です。
バイナリの解決方法
- PATH の検索(推奨):
agent-browserが PATH 上にある場合は、それを直接使用します。 - npx へのフォールバック:バイナリが見つからない場合、サーバーは自動的に
npx -y [email protected]に切り替えます。
agent-browser のインストール
npm install -g agent-browser
または、npx のフォールバックに自動で処理させることもできます(初回はダウンロードが必要なため、時間がかかります)。
設定
API キーや認証情報は不要です。サーバーは agent-browser CLI を介してブラウザーと通信します。
| 変数 | 必須 | 説明 |
|---|---|---|
AGENT_BROWSER_SESSION_NAME | いいえ | ブラウザーのセッション永続化に使うセッション名(デフォルト:mcp) |
AGENT_BROWSER_SHOW_WINDOW | いいえ | false に設定すると、ブラウザーウィンドウを表示せずに実行します。デフォルトでは表示されます(true)。 |
AGENT_BROWSER_AUTOSAVE_INTERVAL_MS | いいえ | セッションを定期的に自動保存する間隔(ミリ秒単位。agent-browser 0.31.2 以降が必要です)。デフォルトは 0(オフ)です。定期保存のたびにタブが一時的に開き、表示中のブラウザーウィンドウがほかのアプリより前面に表示されるためです。ブラウザーを閉じたとき(browser_close)にもセッションは保存されます。設定した値はそのまま渡されます。空の値または数値以外の値を指定すると、CLI のデフォルトである 30 秒が使われます。agent-browser デーモンは起動時にこの値を読み込むため、すでに実行中のデーモンは終了するまで以前の設定を使い続けます(たとえば、browser_close の実行後)。 |
MCP_WORKSPACE_PATH | いいえ | browser_pdf の保存先、および browser_upload がファイルを読み込むワークスペースディレクトリです。デフォルトではシステムの一時ディレクトリが使われます。セキュリティに関する注意を参照してください。 |
MCP ホストの設定
{
"mcpServers": {
"browser-automation": {
"command": "npx",
"args": ["-y", "@mindstone/mcp-server-browser-automation"]
}
}
}
利用可能なツール(21)
ナビゲーション
- browser_navigate — URL に移動します
- browser_back — ブラウザーの履歴を戻ります
- browser_forward — ブラウザーの履歴を進みます
- browser_wait — 要素が表示されるまで、または指定した時間が経過するまで待機します
表示
- browser_snapshot — インタラクティブ要素の参照情報を含む、ページのアクセシビリティツリーを取得します
- browser_screenshot — 現在のページのスクリーンショットを撮影します
- browser_get_page_info — 現在のページの URL とタイトルを取得します
- browser_get_text — ページ全体または単一要素のテキストコンテンツを取得します
- browser_pdf — 現在のページをワークスペースディレクトリ内に PDF として保存します(
overwrite: trueを指定しない限り、既存ファイルへの上書きは行いません)
操作
- browser_click — @ref または CSS セレクターを使って要素をクリックします
- browser_fill — フィールドをクリアしてテキストを入力します
- browser_type — テキストを一文字ずつ入力します(実際のキー入力)
- browser_press_key — キーを押します
- browser_scroll — 指定した方向にページをスクロールします
- browser_select — ドロップダウンから項目を選択します
- browser_hover — 要素にカーソルを合わせます
- browser_upload — ワークスペース内のファイルをファイル入力欄にアップロードします(通常のファイルのみ。アップロード前に非公開の場所にステージングされます)
- browser_evaluate — ページのコンテキストで JavaScript を実行します(デフォルトで有効です。
destructiveHint: trueのため、ホスト側で確認を必須にできます。セキュリティに関する注意を参照してください)
セッション管理
- browser_tabs — 開いているタブを一覧表示するか、タブを切り替えます
- browser_close — ブラウザーセッションを閉じます
- browser_authenticate — 手動ログイン用に、表示状態のブラウザーを開きます
ワークフロー
一般的なワークフローでは、アクセシビリティスナップショットを使って要素を確実に特定します。
browser_navigate→ ページを開くbrowser_snapshot→ @ref ID が付いたインタラクティブ要素を確認するbrowser_click/browser_fill→ @ref を使って操作するbrowser_screenshot→ 視覚的に確認する
セキュリティに関する注意
ブラウザーの自動化には大きな攻撃対象領域があります。agent-browser CLI は実際のヘッドレスブラウザーを操作し、指定された URL を読み込み、ページ内の JavaScript を実行し、実行間で Cookie とセッション状態を保持します。デプロイする前に、このセクションをお読みください。
browser_evaluateはデフォルトで実行されます — ホストの確認がゲートとなります
browser_evaluateを使うと、モデルはページのコンテキスト内で任意のJavaScriptを実行できます。これは、直前に移動したサイト上でモデルにシェルを与えるのと同等のセキュリティリスクがあります。このツールは無条件に(機能を優先して)登録されます。安全対策は、ホストのツール承認レイヤーが担います。このツールにはdestructiveHint: trueが設定されているため、MCPホストは呼び出しごとにユーザーの明示的な確認を求めるべきです。このツールを自動承認するようホストを設定しないでください。
URLスキームの拒否リスト
browser_navigateとbrowser_authenticateで受け付けるのは、http:とhttps:のURL、および特別なabout:blankのみです。それ以外のURLスキームは、基盤となるagent-browser CLIを呼び出す前に拒否されます。
file:— ページからローカルファイルシステムのパスを読み取れるようになりますchrome:とchrome-extension:— ブラウザーの内部ページとインストール済み拡張機能ですjavascript:— 現在のドキュメントに対してeval()を実行するのと同等ですdata:— 攻撃者が制御するHTML/JSのインラインペイロードですview-source:— レンダリングされたコンテンツに対する同一オリジンポリシーを無効化しますabout:— 特権的な内部ページ(about:config、about:cache、about:debugging、…)です。許可されるのはabout:blankのみです
Cookieとセッションの永続化
このコネクターはAGENT_BROWSER_SESSION_NAMEを介して、名前付きの永続セッション(デフォルト値:mcp)を使用するようagent-browserに指示します。すべてのCookie、localStorageデータ、およびbrowser_authenticate経由で行われたログインは、そのセッション名でディスクに保存され、実行のたびに再利用されます。セッションストレージを読み取れる人(ローカルユーザー、同じユーザーとして実行されているほかのツール、バックアップなど)は、保存済みのログインセッションも利用できます。
セッション名を変更する場合(たとえば、プロジェクトごとにプロファイルを分ける場合)は、ホストのMCPサーバー設定でAGENT_BROWSER_SESSION_NAMEを明示的に設定してください。状態を消去するには、browser_closeでブラウザーを閉じ、agent-browserが管理するセッションディレクトリを削除してください。
推奨されるデプロイ方法
- コネクターは専用のブラウザープロファイルで実行してください — MCPホストごとに専用の
AGENT_BROWSER_SESSION_NAMEを使用します。普段使いのブラウザープロファイルは再利用しないでください。コネクターは指定されたプロファイルのCookieを読み取り、上書きします。また、悪意のあるページは、ログイン済みのサイトで既存のセッションを利用する可能性があります。 browser_evaluateにはホストの確認を必須にしてください — このツールはデフォルトで実行され、呼び出すたびにページのコンテキスト内で任意のJavaScriptが実行されます。browser_authenticateと、認証済みサイトに移動する可能性のあるフローにはホストの確認を必須にしてください — そうしないと、取得したコンテンツに含まれるプロンプトインジェクションによって、ブラウザーがユーザーのログイン済みサイトを操作するおそれがあります。- 返されるページコンテンツは、信頼できないデータとして囲まれます — アクセシビリティスナップショット、ページテキスト、タイトル、URL、タブ一覧、
browser_evaluateの出力は、任意のウェブサイトから取得され、プロンプトインジェクションを試みる内容を含む場合があります。このコネクターは、ホストとモデルがこれらを指示ではなくデータとして扱うよう、<untrusted-content source="…">エンベロープで囲みます(閉じタグの突破を防ぐエスケープ処理を含みます)。この扱いを維持してください。エンベロープを取り除いたり、ページテキストだけを根拠に取り消し不能な操作を実行させたりしないでください。
ファイルツール用ワークスペースサンドボックス
browser_pdf は PDF ファイルを書き込み、browser_upload はファイルを読み込みます。どちらもワークスペースディレクトリに制限されています。ワークスペースディレクトリは、MCP_WORKSPACE_PATH が設定されている場合はそのパス、それ以外の場合はシステムの一時ディレクトリです。パスは使用前に正規化されるため、.. による遡り、ワークスペース外への絶対パス、ワークスペース内にあるワークスペース外を指すシンボリックリンクは、いずれも agent-browser CLI の実行前に拒否されます。ページのキャプチャを保存する場所と、モデルがページに添付できるファイルを正確に制御するには、MCP_WORKSPACE_PATH を明示的に設定してください。MCP_WORKSPACE_PATH を解決できない場合はフェイルクローズとなり、ファイルツールはより弱いチェックに切り替えて実行するのではなく、実行を拒否します。
どちらのツールも destructiveHint: true に設定されているため、ホスト側でユーザーの確認を必須にできます。browser_upload は、ファイル入力の変更時に送信するページで即時のリモートアップロードを引き起こす可能性があり、browser_pdf はローカルファイルを書き込みます。
追加の強化策:
- ステージングによるファイル受け渡し。 検証済みのファイルをパス名から再度開くことはありません。
browser_uploadのソースは一度だけ開かれ(O_NOFOLLOWとO_NONBLOCKを使用するため、検証後に末尾のシンボリックリンクが差し替えられても失敗し、仕掛けられた FIFO によってオープンが停止することもありません)、通常ファイルであることが確認されます(ディレクトリ、デバイス、FIFO は拒否されます)。新たに制約された解決結果とデバイス番号および inode で照合されるため(検証後に中間ディレクトリが差し替えられて解決先が変わった場合は、UPLOAD_SOURCE_CHANGEDで拒否されます)、CLI が読み取る新しい非公開ステージングディレクトリにコピーされます。browser_pdfでは、CLI に新しい非公開ステージングディレクトリへ書き込ませてから、要求されたパスに PDF を配置します。CLI の実行前に保存先ディレクトリの正規化された識別情報を固定し、配置前に再検証するため、呼び出し中に中間ディレクトリがシンボリックリンクに差し替えられた場合は拒否されます。また、排他的な新規作成を行うため、保存先の末尾にファイルまたはシンボリックリンクが仕掛けられていた場合は、そこを経由して書き込まずに拒否されます。 - 無断で上書きしません。 呼び出し元が
overwrite: trueを明示的に渡さない限り、browser_pdfは既存のfile_pathをFILE_EXISTSエラーで拒否します。その場合でも、保存先がディレクトリであれば拒否されます(DESTINATION_IS_DIRECTORY)。上書き時の削除にはunlinkのみを使用し、再帰的な削除は行いません。 - エラーのラップ。
agent-browserCLI のエラー出力にはページが作成したテキストが含まれることがあるため、モデルに渡す前に<untrusted-content>の囲みでラップします(閉じタグによる脱出もエスケープします)。タイムアウトエラーにはコマンドの引数値を含めません。
ライセンス
FSL-1.1-MIT — Functional Source License, Version 1.1。将来的に MIT ライセンスとなるライセンスです。本ソフトウェアは 2030-04-08 に MIT ライセンスに切り替わります。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。