browser-mcp について
browser-mcpは、Playwrightで操作するホスト型ChromiumブラウザーをMCP対応エージェントに提供します。ページ操作やスクリーンショットに加え、ユーザーごとの分離セッションと暗号化された認証情報でログインが必要なサイトも扱えます。
主な機能
- 01ページの移動、クリック、入力
- 02ページテキストとアクセシビリティスナップショットの取得
- 03スクリーンショットの撮影
- 04ユーザーごとに分離されたブラウザーセッション
- 05認証情報の暗号化保存と自動入力
活用シーン
- 01エージェントを介したウェブサイトの検索や操作
- 02ページ内容とアクセシビリティ要素の確認
- 03LLMにパスワードを見せずにログインが必要なサイトを利用
- 04確認用のブラウザースクリーンショットの取得
MCP 対応
Bearer認証を使うホスト型エンドポイントを通じて、MCPクライアントにブラウザーセッションと操作ツールを提供します。エージェントはページ移動、要素操作、内容の読み取り、保存済み認証情報の管理を行えます。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://browser.regiq.in/api/mcpclaude mcp add --transport http shreyas-profile-browser https://browser.regiq.in/api/mcp{"mcpServers":{"shreyas-profile-browser":{"type":"http","url":"https://browser.regiq.in/api/mcp"}}}Cursor で開く{"servers":{"shreyas-profile-browser":{"type":"http","url":"https://browser.regiq.in/api/mcp"}}}VS Code で開く{"mcpServers":{"shreyas-profile-browser":{"type":"http","url":"https://browser.regiq.in/api/mcp"}}}{"mcpServers":{"shreyas-profile-browser":{"serverUrl":"https://browser.regiq.in/api/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
https://browser.regiq.in/api/mcp認証が必要ツール
詳細
browser-mcp
ホスト型 Chrome を MCP スキルとして提供します。 MCP 互換のエージェント(Claude Desktop、Cursor、カスタムスクリプト)に、操作可能な実際の Chromium ブラウザーを提供します。移動、クリック、入力、スナップショットの取得、ページの読み取り、スクリーンショットの撮影ができます。人間らしい動作、ユーザーごとに分離されたセッション、暗号化された認証情報ストレージにより、パスワードを LLM に漏らすことなく、ログインが必要なサイトを利用できます。
- 実際の Chromium をサーバー上で Playwright 経由で実行します。ヘッドレス専用の小細工ではなく、完全なブラウザーコンテキストを使用します。
- ステルス設定がデフォルト — よくあるボット検出の手がかり(navigator.webdriver、plugins、chrome runtime)にパッチを適用します。Cloudflare Turnstile のような強力な防御を完全に突破できるわけではありません。v0.2 ではプロキシと CAPTCHA の解決機能を追加します。
- ユーザーごとの分離 — ユーザーごとに個別の BrowserContext を使用するため、Cookie と localStorage がアカウント間で漏れることはありません。
- 暗号化された認証情報 — 保存時に AES-256-GCM で暗号化します。
use_credentialsはサーバー側でページにパスワードを入力するため、LLM がパスワードを見ることはありません。 - スタックに LLM はありません — エージェントが頭脳となります。こちらはブラウザーを操作するだけです。
browser.regiq.in でホストされています。
使用方法
-
https://browser.regiq.in にアクセスし、Google または GitHub でサインインします。
-
ダッシュボードで MCP API キーを生成します。
-
Claude Desktop の
claude_desktop_config.jsonに追加します。{ "mcpServers": { "browser": { "url": "https://browser.regiq.in/api/mcp", "headers": { "Authorization": "Bearer YOUR_KEY_HERE" } } } } -
Claude Desktop を再起動します。「workit.info を開いて、Cambridge の就職先を検索して。」と依頼してください。エージェントがブラウザーツールを呼び出してページを操作します。
ツール
| ツール | 目的 |
|---|---|
browser_new_session() | セッションを開始し、sessionId を返します。アイドル状態が 15 分続くとタイムアウトします。 |
browser_close_session(sessionId) | セッションを終了します。 |
browser_navigate(sessionId, url) | URL に移動し、DOMContentLoaded を待ちます。 |
browser_snapshot(sessionId) | 要素ごとの uid を含むアクセシビリティツリーです。 |
browser_click(sessionId, uid) | uid を指定して要素をクリックします。 |
browser_type(sessionId, uid, text) | uid を指定して入力欄に入力します。 |
browser_press_key(sessionId, key) | キーを押します。Enter、Tab、Control+A などに対応します。 |
browser_wait_for(sessionId, selector) | CSS セレクターが表示されるまで待ちます。 |
browser_read_page(sessionId) | ページのプレーンテキストを取得します(上限 20 KB)。 |
browser_screenshot(sessionId) | PNG を base64 で取得します。 |
save_credentials(domain, username, password) | サイトのログイン情報を暗号化して保存します。 |
use_credentials(sessionId, domain, usernameSelector, passwordSelector) | 保存した認証情報をログインフォームに入力します。パスワードは返されません。 |
list_saved_credentials() | 保存されている情報(ドメインとユーザー名のみ)を確認します。 |
ログインが必要なサイトの利用
エージェントにログインフォームが表示されます。手順は次のとおりです。
- 保存済みの認証情報を確認 —
list_saved_credentials()を呼び出します。 - このドメインの認証情報が保存済みの場合 —
use_credentials(sessionId, "workit.info", "input[name=email]", "input[type=password]")を呼び出します。サーバーが復号して入力します。その後、送信ボタンをクリックします。 - 保存されていない場合 — ユーザーに次のように伝えます。「続行するには workit.info のログイン情報が必要です。https://browser.regiq.in/dashboard で保存してから、もう一度依頼してください。」
MVP では、ユーザーはダッシュボードから認証情報を保存する必要があります。v0.2 では、エージェントがペアリングされたチャネルを通じて認証情報を要求できるようになります(例:telegram-mcp 経由)。
セルフホスト
必要なもの:
- Docker + Compose
- Google または GitHub の OAuth クライアント
- 公開 HTTPS ドメイン(Cloudflare Tunnel または
ngrok http 3013) - 約 4 GB の RAM(Playwright + Chromium)
git clone https://github.com/globalion/browser-mcp
cd browser-mcp
cp .env.example .env
# fill NEXTAUTH_SECRET, GOOGLE_/GITHUB_*, PUBLIC_BASE_URL,
# and generate CRED_ENCRYPTION_KEY with `openssl rand -hex 32`
docker compose up -d
# open http://localhost:3013
アーキテクチャ
Your MCP agent → /api/mcp (Bearer auth) → In-memory session Map → Playwright BrowserContext
↕
Postgres (audit + credentials, AES-256-GCM)
セッションはコンテナーのメモリー上に保持されます。再起動するとアクティブなセッションはすべて終了します。ユーザーは browser_new_session を再度呼び出すだけです。RAM を解放するため、アイドル状態が 15 分続くとコンテキストは自動的に終了します。
ボット回避 — 現実的な見通し
ステルス初期化スクリプトは navigator.webdriver を削除し、偽のプラグインを追加し、window.chrome.runtime を公開して、通知権限に関する特有の問題にパッチを適用します。実際の Chromium バイナリ(ヘッドレス専用ではないもの)と、現実的なビューポート/UA/タイムゾーンを組み合わせることで、ほとんどの一般公開サイトを通過できます。
強力なボット対策(Cloudflare Turnstile、PerimeterX、DataDome)を導入しているサイトには、依然として検出されます。これらを回避するには、次のものが必要です。
- 住宅用プロキシ(Bright Dataのような、月額約$50のサービス)
- CAPTCHAの解決(2captcha経由で1回あたり約$0.001)
- より高度なフィンガープリント偽装
これらはv0.2の範囲です。現時点では、ボットを積極的に探していないサイトで browser-mcp を使用してください。
ライセンス
MIT。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。