selenium-mcp について
selenium-mcpは、Selenium WebDriverの自動化機能をAIアシスタントやアプリケーションに提供するMCPサーバーです。複数のブラウザーに対応し、ナビゲーション、要素操作、スクレイピング、テストのツールを備えています。
主な機能
- 01Chrome、Firefox、Safari、Edgeに対応
- 02ブラウザーウィンドウの操作と管理
- 03ページ要素の検索と操作
- 04Cookie、フレーム、フォームの管理
- 05スクリーンショットとJavaScript実行
活用シーン
- 01ブラウザーベースのテスト自動化
- 02Webページからの情報収集
- 03Webフォームの操作
- 04ページの撮影とブラウザー状態の確認
MCP 対応
接続したクライアントに、ブラウザー管理、ページ操作、ナビゲーション、スクリーンショットなどのSelenium WebDriver機能をMCPツールとして公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
56掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| browser | enum | はい | 起動するブラウザーchrome | firefox | edge | safari |
| options | object | いいえ | |
| options.headless | boolean | いいえ | ブラウザーをヘッドレスモードで実行します |
| options.arguments | array | いいえ | 追加のブラウザー引数 |
詳細
Selenium MCP サーバー
これは、MCP クライアント(AI アシスタント)と Selenium WebDriver の間をつなぐサーバー実装です。Selenium WebDriver の機能を MCP ツールとして公開し、AI モデルが次のようなタスクに活用できるようにします。
- ブラウザーの管理(起動、移動、終了)
- 要素の操作(クリック、入力、要素の検索)
- ウェブスクレイピングと自動テスト
- スクリーンショット、Cookie の管理、JavaScript の実行などの高度な操作
つまり、selenium webdriver mcp のセットアップにより、AI アシスタントは Model Context Protocol を介して専用の Selenium MCP サーバーと通信し、Selenium WebDriver の機能をウェブ自動化に活用できます。これにより、AI が制御する自動ウェブ操作、テスト、データ抽出などのタスクが可能になります。
🚀 概要
Selenium 用の Model Context Protocol(MCP)サーバーです。AI アシスタントやアプリケーション向けに、包括的な Selenium WebDriver 自動化ツールを提供します。このサーバーは、標準化されたインターフェースを通じて、自動ウェブブラウザー操作、テスト、スクレイピングを実現します。
TypeScript と最新の ES モジュールで構築されており、Model Context Protocol を通じて型安全なブラウザー自動化機能を提供します。
✨ 主な機能
- マルチブラウザー対応:Chrome、Firefox、Safari、Edge のブラウザー自動化
- 包括的な要素操作:クリック、入力、ホバー、ドラッグ&ドロップ、ファイルのアップロード
- 高度なナビゲーション:前後の移動、更新、ウィンドウ管理
- 待機戦略:要素やページの状態に応じたインテリジェントな待機
- 型安全性:Zod による検証を備えた完全な TypeScript 実装
🤝 統合
MCP クライアントとの統合
Selenium サーバーに接続するように MCP クライアントを設定します。
標準設定(Windsurf、Warp、Gemini CLI などに適用)
{
"servers": {
"selenium-mcp": {
"command": "npx",
"args": ["-y", "selenium-webdriver-mcp@latest"]
}
}
}
VS Code へのインストール
以下の設定で、VS Code の mcp.json を更新します。
注記:MCP サーバーを初めて使用する場合は、こちらのリンクに従ってください:VS Code で MCP サーバーを使用する
「stdio」タイプの接続例
{
"servers": {
"selenium-mcp": {
"command": "npx",
"args": [
"-y",
"selenium-webdriver-mcp@latest"
],
"type": "stdio"
}
},
"inputs": []
}
「http」タイプの接続例
{
"servers": {
"Selenium": {
"url": "https://smithery.ai/server/@pshivapr/selenium-mcp",
"type": "http"
}
},
"inputs": []
}
インストール後、Selenium MCP サーバーを VS Code の GitHub Copilot エージェントで使用できるようになります。
VS Code CLI を使用して Selenium MCP サーバーをインストールする方法
# For VS Code
code --add-mcp '{\"name\":\"selenium-mcp\",\"command\": \"npx\",\"args\": [\"selenium-webdriver-mcp@latest\"]}'
# For VS Code Insiders
vscode-insiders --add-mcp '{\"name\":\"selenium-mcp\",\"command\": \"npx\",\"args\": [\"selenium-webdriver-mcp@latest\"]}'
npm または Smithery を使用してパッケージをインストールする方法
npm を使用する場合:
npm install -g selenium-webdriver-mcp@latest
Smithery を使用する場合
を使って、Claude Desktop 用の Selenium MCP を自動的にインストールするには
npx @smithery/cli install @pshivapr/selenium-mcp --client claude
Claude Desktop との統合
Claude Desktop の設定に追加します。
{
"mcpServers": {
"selenium-mcp": {
"command": "npx",
"args": ["-y", "selenium-webdriver-mcp@latest"]
}
}
}
スクリーンショット

プロンプト
AI エージェントとのやり取りを開始するプロンプトの例です。
Using selenium mcp tools, navigate to <https://parabank.parasoft.com/> click the 'Register' link and signup using dynamic test data and click register. Then generate selenium tests in <YOUR_FAVOURITE_PROGRAMMING_LANGUAGE> using pom, create tests using cucumber features, steps and execute the tests.
注:その他のプロンプトについては、プロジェクトの examples ディレクトリをご覧ください。
🛠️ MCP で利用可能なツール
ブラウザー管理ツール
| ツール | 説明 | パラメーター |
|---|---|---|
browser_open | 新しいブラウザーセッションを開きます | browser, options |
browser_navigate | URL に移動します | url |
browser_navigate_back | 履歴を戻ります | なし |
browser_navigate_forward | 履歴を進みます | なし |
browser_title | 現在のページタイトルを取得します | なし |
browser_refresh | 現在のページを再読み込みします | なし |
browser_get_url | 現在のページ URL を取得します | なし |
browser_get_page_source | 現在のページの HTML ソースを取得します | なし |
browser_maximize | ブラウザーウィンドウを最大化します | なし |
browser_resize | ブラウザーウィンドウのサイズを変更します | width, height |
browser_close | 現在のブラウザーセッションを閉じます | なし |
Cookie 管理ツール
| ツール | 説明 | パラメーター |
|---|---|---|
browser_get_cookies | 現在のブラウザーセッションからすべての Cookie を取得します | なし |
browser_get_cookie_by_name | 名前を指定して Cookie を取得します | cookie(Cookie 名) |
browser_add_cookie_by_name | 新しい Cookie をブラウザーに追加します | cookie(Cookie 名)、value |
browser_set_cookie_object | Cookie オブジェクトをブラウザーに設定します | cookie(文字列形式の Cookie オブジェクト) |
browser_delete_cookie | 名前を指定して Cookie を削除します | value(削除する Cookie 名) |
browser_delete_cookies | 現在のブラウザーセッションからすべての Cookie を削除します | なし |
ウィンドウ管理ツール
| ツール | 説明 | パラメーター |
|---|---|---|
browser_switch_to_window | ハンドルを指定して別のブラウザーウィンドウに切り替えます | windowHandle |
browser_switch_to_original_window | 元のブラウザーウィンドウに戻ります | なし |
browser_switch_to_window_by_title | ページタイトルを指定してウィンドウに切り替えます | title |
browser_switch_window_by_index | インデックス位置を指定してウィンドウに切り替えます | index |
browser_switch_to_window_by_url | URL を指定してウィンドウに切り替えます | url |
要素操作ツール
| ツール | 説明 | パラメーター |
|---|---|---|
browser_find_element | ページ上の要素を検索します | by, value, timeout |
browser_find_elements | ページ上の複数の要素を検索します | by, value, timeout |
browser_click | 要素をクリックします | by, value, timeout |
browser_type | 要素にテキストを入力します | by, value, text, timeout |
browser_get_element_text | 要素のテキスト内容を取得します | by, value, timeout |
browser_file_upload | 入力要素からファイルをアップロードします | by, value, filePath, timeout |
browser_clear | 要素のテキストを消去します | by, value, timeout |
browser_get_attribute | 要素の属性値を取得します | by, value, attribute, timeout |
要素状態の検証ツール
| ツール | 説明 | パラメーター |
|---|---|---|
browser_element_is_displayed | 要素がページに表示されているか確認します | by, value, timeout |
browser_element_is_enabled | 要素が操作可能な状態か確認します | by, value, timeout |
browser_element_is_selected | 要素が選択されているか確認します(チェックボックス、ラジオボタン) | by, value, timeout |
フレーム管理ツール
| ツール | 説明 | パラメーター |
|---|---|---|
browser_switch_to_frame | iframe 要素に切り替えます | by, value, timeout |
browser_switch_to_parent_frame | 親フレームに切り替えます(ネストされた iframe から) | なし |
browser_switch_to_default_content | メインページのコンテンツに戻ります | なし |
高度な操作ツール
| ツール | 説明 | パラメーター |
|---|---|---|
browser_hover | 要素にカーソルを合わせます | by, value, timeout |
browser_double_click | 要素をダブルクリックします | by, value, timeout |
browser_right_click | 右クリックします(コンテキストメニュー) | by, value, timeout |
browser_drag_and_drop | ドラッグ元からドラッグ先へ移動します | by, value, targetBy, targetValue, timeout |
browser_wait_for_element | 要素が表示されるまで待機します | by, value, timeout |
browser_execute_script | JavaScript コードを実行します | script, args |
browser_screenshot | スクリーンショットを撮影します | filename(任意) |
browser_select_dropdown_by_text | 表示テキストでドロップダウンの選択肢を選択します | by, value, text, timeout |
browser_select_dropdown_by_value | 値でドロップダウンの選択肢を選択します | by, value, dropdownValue, timeout |
browser_key_press | ブラウザーでキーを押します | key, timeout |
スクロールツール
| ツール | 説明 | パラメーター |
|---|---|---|
browser_scroll_to_element | 要素が表示される位置までスクロールします | by, value, timeout |
browser_scroll_to_top | ページの先頭までスクロールします | なし |
browser_scroll_to_bottom | ページの末尾までスクロールします | なし |
browser_scroll_to_coordinates | 指定した座標までスクロールします | x, y |
browser_scroll_by_pixels | 指定したピクセル数だけスクロールします | x, y |
フォーム操作ツール
| ツール | 説明 | パラメーター |
|---|---|---|
browser_select_checkbox | チェックボックスを選択/チェックします | by, value, timeout |
browser_unselect_checkbox | チェックボックスの選択を解除します | by, value, timeout |
browser_submit_form | フォーム要素を送信します | by, value, timeout |
browser_focus_element | 特定の要素にフォーカスします | by, value, timeout |
browser_blur_element | 特定の要素からフォーカスを外します | by, value, timeout |
要素の検索方法
id:要素 ID で検索しますcss:CSS セレクターで検索しますxpath:XPath 式で検索しますname:name 属性で検索しますtag:HTML タグ名で検索しますclass:CSS クラス名で検索します
📋 要件
- Node.js:バージョン 18.0.0 以上
- ブラウザー:Chrome、Firefox、Safari、または Edge がインストールされていること
- WebDrivers:selenium-webdriver によって自動的に管理されます
- オペレーティングシステム:Windows、macOS、または Linux
🚦 開発
はじめに
リポジトリをクローンする
git clone https://github.com/pshivapr/selenium-mcp.git
cd selenium-mcp
依存関係をインストールする
npm install
プロジェクトをビルドする
npm run build
サーバーの実行
本番モード
npm start
開発モード(自動リロードあり)
npm run dev
直接実行
node dist/index.js
CLI ツールとして使用する
ビルド後、サーバーをグローバルコマンドとして使用できます。
npx selenium-webdriver-mcp@latest
📝 ライセンス
MIT ライセンスの詳細については、LICENSE ファイルを参照してください。
🤝 貢献
貢献を歓迎します!お気軽にプルリクエストを送信してください。
- リポジトリをフォークします
- フィーチャーブランチを作成します(
git checkout -b feature/AmazingFeature) - 変更をコミットします(
git commit -m 'Add some AmazingFeature') - ブランチにプッシュします(
git push origin feature/AmazingFeature) - プルリクエストを作成します
バッジ/掲載情報
Model Context Protocol エコシステムのために ❤️ を込めて構築
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。