Selenium MCP について
Selenium MCP は、Selenium WebDriver で実ブラウザーを自動操作する TypeScript 製サーバーです。ブラウザー操作に加え、ページスナップショット、セレクターのヒント、複数セッション、操作の一括実行に対応します。
主な機能
- 01ブラウザーの移動と操作ツール
- 02安定した要素参照付きページスナップショット
- 03ドメインごとのセレクターヒント保存
- 04並行ブラウザーセッション
- 05複数手順の一括実行
- 06アサーションと任意の呼び出しトレース
活用シーン
- 01ブラウザーベースのワークフロー自動化
- 02アサーションを使ったページテスト
- 03保存済みセレクターによる作業の反復
- 04ブラウザーツール呼び出しのデバッグ
MCP 対応
ブラウザー自動化ツールと `browser-status://current`、`accessibility://current` リソースを MCP クライアントに公開します。クライアントはツールを使ってセッション管理、ページ移動、要素操作、スクリーンショット取得を行えます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
41掲載時のツール一覧 · 3 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| browser | enum | いいえ | 起動するブラウザー:chrome(デフォルト)、firefox、または edge。このコンピューターにインストールされている必要があります。chrome | firefox | edge |
| headless | boolean | いいえ | ウィンドウを表示せずに実行します(デフォルトは false)。CI やバックグラウンド実行では true、ユーザーが表示を希望する場合は false を使用します。 |
| browserArgs | array | いいえ | ブラウザーに渡す追加のコマンドラインフラグ。例:['--incognito']、['--lang=de']。デフォルトでは指定なしです。 |
| pageLoadTimeoutMs | integer | いいえ | ページの読み込みが失敗と判定されるまでの最大時間(ミリ秒、デフォルトは 30000)です。 |
| scriptTimeoutMs | integer | いいえ | 非同期スクリプトの実行を許可する最大時間(ミリ秒、デフォルトは 30000)です。 |
| windowSize | object | いいえ | 初期ウィンドウサイズ。例:{ width: 1440, height: 900 }。後で window ツールの resize アクションを使って変更できます。 |
| windowSize.width | integer | はい | ウィンドウの幅(ピクセル単位、320-7680)。 |
| windowSize.height | integer | はい | ウィンドウの高さ(ピクセル単位、240-4320)。 |
詳細
selenium-mcp
AI エージェント向け Selenium MCP サーバー — 実際のブラウザーを自動操作する 41 個のツールを備えています。ナビゲーション、クリック、文字入力、アサーション、スクリーンショット、複数セッションの管理、安定した要素参照を使ったページスナップショット、セレクターヒントの永続化、複数ステップの一括実行に対応しています。
TypeScript、公式 MCP SDK、Selenium WebDriver を使用して構築されています。LLM エージェント向けに、厳密な zod 入力検証、明示的な待機、構造化されたレスポンスを備えています。
ワンクリックでインストール
0.3.0 の新機能
- 新しいツール: ドロップダウン用の
select_option、scroll(無限スクロールのページやスクロール可能なパネルにも対応)、戻る・進む・更新を行うhistory、リダイレクト後に URL またはタイトルを待機するwait_for_pageが追加されました。 - レスポンシブテスト:
windowで、390x844 のスマートフォンのような正確なサイズにビューポートを変更したり、最大化したりできるようになりました。 - AI エージェントがツールを選びやすくなりました: すべてのツールとパラメーターに、機能、返される内容、類似ツールの代わりに使う場面が説明されるようになりました。
- 破壊的変更: 重複していた
open_urlとwait_until_visibleを削除しました。navigateと、visible: trueを指定したwait_for_elementを使用してください。 - 検証済みのリリース: 各リリースは実際のブラウザーでエンドツーエンドテストを行い、npm provenance 付きで公開されます。
詳細はchangelogをご覧ください。
セットアップ
Claude Code
claude mcp add selenium -- npx -y @gaforov/selenium-mcp@latest
Claude Desktop / Cursor / Windsurf / その他の MCP クライアント
クライアントの MCP 設定(例:claude_desktop_config.json または .cursor/mcp.json)に追加します。
{
"mcpServers": {
"selenium": {
"command": "npx",
"args": ["-y", "@gaforov/selenium-mcp@latest"]
}
}
}
VS Code
code --add-mcp '{"name":"selenium","command":"npx","args":["-y","@gaforov/selenium-mcp@latest"]}'
Goose
goose session --with-extension "npx -y @gaforov/selenium-mcp@latest"
IntelliJ IDEA / JetBrains IDE
Settings → Tools → AI Assistant → Model Context Protocol → Add を開き、コマンドに npx、引数に -y @gaforov/selenium-mcp@latest を指定します。詳しい手順はdocs/CLIENT_INTEGRATION.mdをご覧ください。
ソースから実行
git clone https://github.com/gaforov/selenium-mcp.git
cd selenium-mcp
npm install
npm run build
次に、MCP クライアントで node /absolute/path/to/selenium-mcp/dist/server.js を指定します。
AI エージェントに次のように依頼します。
selenium-mcp を使って Chrome を開き、https://example.com に移動して、ページタイトルを読み取り、スクリーンショットを撮影してから、ブラウザーを閉じてください。
エージェントはスクリプトを用意しなくても、start_browser → navigate → get_title → take_screenshot → stop_browser を自動で連鎖させます。
要件
- Node.js 20+
- Chrome、Firefox、または Edge がインストールされていること(一致するドライバーは Selenium Manager が自動的に用意します)
比較
ほとんどの Selenium MCP サーバーは、WebDriver の基本コマンドをラップしています。このサーバーは、エージェントの信頼性を高めるレイヤーを追加します。
| 機能 | selenium-mcp | 一般的な Selenium MCP サーバー |
|---|---|---|
安定した要素参照を含むページスナップショット(capture_page) | ✅ | まれ |
ドメインごとに保持されるセレクターの記憶(selector_hint_*) | ✅ | ❌ |
| 複数セッションでの並列ブラウジング | ✅ | まれ |
| 1 回の呼び出しでの複数ステップの一括実行 | ✅ | ❌ |
| 組み込みのテストアサーション | ✅ | 一部 |
| ツール呼び出しのトレース(NDJSON 監査ログ) | ✅ | ❌ |
| 厳格な入力検証+構造化されたエラー | ✅ | さまざま |
| AI エージェント向けに説明されたすべてのツールとパラメーター(テストで検証) | ✅ | さまざま |
| CI で実ブラウザーを使ったエンドツーエンドテスト | ✅ | 一部 |
selenium-mcp を選ぶ理由
- スナップショットを優先するワークフロー —
capture_pageは、エージェントが直接操作できる安定した要素参照を含むページスナップショットを返すため、壊れやすいセレクターを推測する必要がありません - セレクターのヒント — ドメインごとに機能するロケーターを保持するため、同じ自動化を繰り返すほど高速かつ確実になります
- 一括実行 —
batch_executeは、制約された複数ステップのシーケンスを 1 回のツール呼び出しで実行し、往復を減らします - 複数セッション — 複数のブラウザーセッションを作成、選択、一覧表示、破棄できます
- エージェントに配慮したエラー — すべての応答が構造化され、zod で検証されるため、エージェントは停止せずに復旧できます
- 任意のトレース — デバッグと監査に役立つ、すべてのツール呼び出しの NDJSON トレースを利用できます
ツール(41)
| カテゴリ | ツール |
|---|---|
| ブラウザーのライフサイクル | start_browser、stop_browser、session_create、session_select、session_list、session_destroy |
| ナビゲーション | navigate、history(戻る/進む/更新)、wait_for_page(URL/タイトル)、get_current_url、get_title |
| 要素の検出 | find_element、wait_for_element、capture_page、get_page_source |
| 操作 | click、retry_click、interact(ホバー/ダブルクリック/右クリック)、type、select_option、scroll、press_key、upload_file |
| 読み取り | get_text、get_attribute |
| アサーション | assert_text、assert_visible、assert_attribute |
| スクリプト実行 | execute_script、batch_execute |
| セレクターのヒント | selector_hint_save、selector_hint_get、selector_hint_list、selector_hint_delete |
| ウィンドウとコンテキスト | window(タブ、ウィンドウ、サイズ変更/最大化)、frame、alert |
| Cookie | add_cookie、get_cookies、delete_cookie |
| キャプチャ | take_screenshot |
パラメーターの完全なドキュメント:docs/TOOL_REFERENCE.md
MCP リソース
browser-status://current— 現在のブラウザー/セッションのリアルタイム状態accessibility://current— 現在のページのアクセシビリティスナップショット
任意のトレース
すべてのツール呼び出しの軽量な NDJSON トレースを有効にします。
SELENIUM_MCP_TRACE=true
SELENIUM_MCP_TRACE_PATH=./logs/selenium-mcp-trace.ndjson
SELENIUM_MCP_TRACE_PATH を省略した場合、既定値は logs/selenium-mcp-trace.ndjson です。
ドキュメント
貢献
バグ報告、機能のリクエスト、プルリクエストなど、貢献を歓迎します。始めるには CONTRIBUTING.md をご覧ください。
npm run typecheck
npm run build
npm test
ライセンス
MIT。LICENSE をご覧ください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。