🤖 MCP Selenium Grid について
MCP Selenium Gridは、ブラウザー自動化やテストのワークフロー向けに、Selenium Gridのブラウザーインスタンスを作成・管理します。DockerとKubernetesでのデプロイに対応し、Chrome、Firefox、Edgeを扱います。
主な機能
- 01Chrome・Firefox・Edgeの管理
- 02Docker・Kubernetesバックエンド対応
- 03トークンによるAPI認証
- 04複数ブラウザーインスタンスの管理
- 05HTTP・SSEエンドポイントの提供
活用シーン
- 01ブラウザー自動化用インスタンスの作成
- 02Docker環境でのテストブラウザー管理
- 03Kubernetesによるブラウザーインスタンス管理
MCP 対応
MCP サーバーとして、`/mcp` HTTP Transportと`/sse` Server Sent Eventsのエンドポイントを通じて、MCPクライアントにブラウザーインスタンス管理機能を提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
🤖 MCP Selenium Grid
Selenium Grid のブラウザーインスタンスを管理する Model Context Protocol(MCP)サーバーです。ブラウザー自動化やテストのワークフローに役立ちます。
MCP Selenium Grid は、Docker と Kubernetes の両環境でブラウザーインスタンスを作成、管理する MCP サーバーを提供します。ブラウザー自動化機能を必要とする AI エージェントや自動化ツールと連携できるように設計されています。
主な機能
- 複数のブラウザーをサポート:Chrome、Firefox、Edge
- 2 種類のバックエンドをサポート:Docker と Kubernetes のデプロイモード
- セキュアな API:ブラウザー管理のためのトークンベース認証
- スケーラブルなアーキテクチャ:複数のブラウザーインスタンスをサポート
- MCP 準拠:Model Context Protocol の標準に準拠
🚀 クイックスタート
前提条件
📖 使い方
MCP Selenium Grid は、ブラウザーインスタンスを作成、管理する Web API を提供します。サーバーは localhost:8000 で実行され、/mcp(Http Transport)と /sse(Server Sent Events)で MCP エンドポイントを公開します。
注:サーバーのルート
http://localhost:8000へのすべてのリクエストは、リクエストに応じて/mcpまたは/sseエンドポイントにリダイレクトされます。直接/mcp(Http Transport)または/sse(Server Sent Events)エンドポイントを使用することもできます。
既知の問題と制限事項
-
--stdioフラグで STDIO transport を使用する場合、MCP サーバーはターミナルで実行した場合と同じ方法ではシャットダウンしません。リソースをクリーンアップし、コンテナーまたはポッドを削除するには、次を実行してください。uv run mcp-selenium-grid cleanuv run mcp-selenium-grid clean -d kubernetes
MCP クライアントの設定
🐳 Docker デプロイ
Docker ベースのデプロイでは、Docker が実行中であることを確認し、MCP クライアントの設定で Docker の構成を使用してください。
{
"mcpServers": {
"mcp-selenium-grid": {
"command": "uvx",
"args": ["mcp-selenium-grid", "server", "run",
"--host", "127.0.0.1",
"--port", "8000",
"--stdio",
],
"env": {
"AUTH_ENABLED": "false",
"ALLOWED_ORIGINS": "[\"http://127.0.0.1:8000\"]",
"DEPLOYMENT_MODE": "docker",
"SELENIUM_GRID__USERNAME": "USER",
"SELENIUM_GRID__PASSWORD": "CHANGE_ME",
"SELENIUM_GRID__VNC_PASSWORD": "CHANGE_ME",
"SELENIUM_GRID__VNC_VIEW_ONLY": "false",
"SELENIUM_GRID__MAX_BROWSER_INSTANCES": "4",
"SELENIUM_GRID__SE_NODE_MAX_SESSIONS": "1",
"FASTMCP_EXPERIMENTAL_ENABLE_NEW_OPENAPI_PARSER": "true"
}
}
}
}
サーバーは
http://localhost:8000で利用でき、インタラクティブな API ドキュメントはhttp://localhost:8000/docsで確認できます。
☸️ Kubernetes デプロイ
3. Kubernetes のセットアップ(省略可能)
このプロジェクトは、ブラウザーインスタンスをスケーラブルに管理するための Kubernetes デプロイをサポートしています。ローカル開発とテストには K3s を使用します。
K3s のインストール(https://docs.k3s.io/quick-start)
# Install K3s
curl -sfL https://get.k3s.io | sh -
# Verify installation
k3s --version
# Start if not running
sudo systemctl start k3s
K3s の Kubernetes コンテキストを作成
K3s のインストール後、専用の kubectl コンテキストを作成できます。
# Copy K3s kubeconfig
mkdir -p ~/.kube
sudo cp /etc/rancher/k3s/k3s.yaml ~/.kube/config-local-k3s
sudo chown $USER:$USER ~/.kube/config-local-k3s
chmod 600 ~/.kube/config-local-k3s
# Create context
KUBECONFIG=~/.kube/config-local-k3s \
kubectl config set-context k3s-selenium-grid \
--cluster=default \
--user=default
Selenium Grid のデプロイ
利用可能なコマンドとパラメーターを確認するには、ヘルプを実行してください。
uvx mcp-selenium-grid helm --help
uvx mcp-selenium-grid helm deploy --help
uvx mcp-selenium-grid helm uninstall --help
デフォルトのパラメーターでデプロイします。
uvx mcp-selenium-grid helm deploy
デフォルトのパラメーターでアンインストールします。
# using default parameters
uvx mcp-selenium-grid helm uninstall --delete-namespace
{
"mcpServers": {
"mcp-selenium-grid": {
"command": "uvx",
"args": ["mcp-selenium-grid", "server", "run",
"--host", "127.0.0.1",
"--port", "8000",
"--stdio",
],
"env": {
"AUTH_ENABLED": "false",
"ALLOWED_ORIGINS": "[\"http://127.0.0.1:8000\"]",
"DEPLOYMENT_MODE": "kubernetes",
"SELENIUM_GRID__USERNAME": "USER",
"SELENIUM_GRID__PASSWORD": "CHANGE_ME",
"SELENIUM_GRID__VNC_PASSWORD": "CHANGE_ME",
"SELENIUM_GRID__VNC_VIEW_ONLY": "false",
"SELENIUM_GRID__MAX_BROWSER_INSTANCES": "4",
"SELENIUM_GRID__SE_NODE_MAX_SESSIONS": "1",
"KUBERNETES__KUBECONFIG": "~/.kube/config-local-k3s",
"KUBERNETES__CONTEXT": "k3s-selenium-grid",
"KUBERNETES__NAMESPACE": "selenium-grid-dev",
"KUBERNETES__SELENIUM_GRID_SERVICE_NAME": "selenium-grid",
"FASTMCP_EXPERIMENTAL_ENABLE_NEW_OPENAPI_PARSER": "true"
}
}
}
}
{
"mcpServers": {
"mcp-selenium-grid": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"--init",
"--network=host",
"-v", "/home/user/.kube/config-local-k3s:/.kube/config-local-k3s:ro", // path to your kubeconfig file
"-e", "AUTH_ENABLED=false",
"-e", "ALLOWED_ORIGINS=[\\\"http://127.0.0.1:8000\\\"]",
"-e", "DEPLOYMENT_MODE=kubernetes", // required for docker
"-e", "SELENIUM_GRID__USERNAME=USER",
"-e", "SELENIUM_GRID__PASSWORD=CHANGE_ME",
"-e", "SELENIUM_GRID__VNC_PASSWORD=CHANGE_ME",
"-e", "SELENIUM_GRID__VNC_VIEW_ONLY=false",
"-e", "SELENIUM_GRID__MAX_BROWSER_INSTANCES=4",
"-e", "SELENIUM_GRID__SE_NODE_MAX_SESSIONS=1",
"-e", "KUBERNETES__KUBECONFIG=/.kube/config-local-k3s", // path to your kubeconfig file
"-e", "KUBERNETES__USE_HOST_DOCKER_INTERNAL=true",
"-e", "KUBERNETES__CONTEXT=k3s-selenium-grid",
"-e", "KUBERNETES__NAMESPACE=selenium-grid-dev",
"-e", "KUBERNETES__SELENIUM_GRID_SERVICE_NAME=selenium-grid",
"-e", "FASTMCP_EXPERIMENTAL_ENABLE_NEW_OPENAPI_PARSER=true",
"ghcr.io/catchnip/mcp-selenium-grid:latest"
]
}
}
}
サーバーは
http://localhost:8000で利用でき、インタラクティブな API ドキュメントはhttp://localhost:8000/docsで確認できます。
認証を有効にしたサーバー
UVX
デフォルトの引数を使用
uvx mcp-selenium-grid server run
カスタム引数
API_TOKEN=CHANGE_ME uvx mcp-selenium-grid server run --host 127.0.0.1 --port 8000
Docker
デフォルトの引数
docker run -i --rm --init --network=host \
-v ~/.kube/config-local-k3s:/kube/config-local-k3s:ro \
-e KUBERNETES__KUBECONFIG=/kube/config-local-k3s \
ghcr.io/catchnip/mcp-selenium-grid:latest
カスタム引数
docker run -i --rm --init \
--network=host \
-v ~/.kube/config-local-k3s:/kube/config-local-k3s:ro \
-e API_TOKEN=CHANGE_ME \
-e ALLOWED_ORIGINS='["http://127.0.0.1:8000"]' \
-e DEPLOYMENT_MODE=kubernetes \
-e SELENIUM_GRID__USERNAME=USER \
-e SELENIUM_GRID__PASSWORD=CHANGE_ME \
-e SELENIUM_GRID__VNC_PASSWORD=CHANGE_ME \
-e SELENIUM_GRID__VNC_VIEW_ONLY=false \
-e SELENIUM_GRID__MAX_BROWSER_INSTANCES=4 \
-e SELENIUM_GRID__SE_NODE_MAX_SESSIONS=1 \
-e KUBERNETES__KUBECONFIG=/kube/config-local-k3s \
--add-host=host.docker.inte.rnal:host-gateway \
-e KUBERNETES__USE_HOST_DOCKER_INTERNAL=true \
-e KUBERNETES__CONTEXT=k3s-selenium-grid \
-e KUBERNETES__NAMESPACE=selenium-grid-dev \
-e KUBERNETES__SELENIUM_GRID_SERVICE_NAME=selenium-grid \
ghcr.io/catchnip/mcp-selenium-grid:latest
注:すべての環境変数にはデフォルト値があります。
MCP サーバーの設定(mcp.json)
{
"mcpServers": {
"mcp-selenium-grid": {
"url": "http://localhost:8000",
"headers": {
"Authorization": "Bearer CHANGE_ME"
}
}
}
}
{
"mcpServers": {
"mcp-selenium-grid": {
"url": "http://localhost:8000/mcp",
"headers": {
"Authorization": "Bearer CHANGE_ME"
}
}
}
}
{
"mcpServers": {
"mcp-selenium-grid": {
"url": "http://localhost:8000/sse",
"headers": {
"Authorization": "Bearer CHANGE_ME"
}
}
}
}
🤝 コントリビューション
開発環境のセットアップ、テスト、コントリビューションのガイドラインについては、CONTRIBUTING.mdをご覧ください。
📄 ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。