mcpField
🤖
🤖 MCP Selenium Grid

🤖 MCP Selenium Grid

ローカル
github.com/Falamarcaoブラウザ自動化859 週間前に更新

🤖 MCP Selenium Grid について

MCP Selenium Gridは、ブラウザー自動化やテストのワークフロー向けに、Selenium Gridのブラウザーインスタンスを作成・管理します。DockerとKubernetesでのデプロイに対応し、Chrome、Firefox、Edgeを扱います。

主な機能

  1. 01Chrome・Firefox・Edgeの管理
  2. 02Docker・Kubernetesバックエンド対応
  3. 03トークンによるAPI認証
  4. 04複数ブラウザーインスタンスの管理
  5. 05HTTP・SSEエンドポイントの提供

活用シーン

  1. 01ブラウザー自動化用インスタンスの作成
  2. 02Docker環境でのテストブラウザー管理
  3. 03Kubernetesによるブラウザーインスタンス管理

MCP 対応

MCP サーバーとして、`/mcp` HTTP Transportと`/sse` Server Sent Eventsのエンドポイントを通じて、MCPクライアントにブラウザーインスタンス管理機能を提供します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

🤖 MCP Selenium Grid

Tests GitHub Last Commit GitHub Release GitHub commits since latest release GitHub Commit Activity GitHub Contributors License

Selenium Grid のブラウザーインスタンスを管理する Model Context Protocol(MCP)サーバーです。ブラウザー自動化やテストのワークフローに役立ちます。

MCP Selenium Grid は、Docker と Kubernetes の両環境でブラウザーインスタンスを作成、管理する MCP サーバーを提供します。ブラウザー自動化機能を必要とする AI エージェントや自動化ツールと連携できるように設計されています。

主な機能

  • 複数のブラウザーをサポート:Chrome、Firefox、Edge
  • 2 種類のバックエンドをサポート:Docker と Kubernetes のデプロイモード
  • セキュアな API:ブラウザー管理のためのトークンベース認証
  • スケーラブルなアーキテクチャ:複数のブラウザーインスタンスをサポート
  • MCP 準拠:Model Context Protocol の標準に準拠

🚀 クイックスタート

前提条件
  • uv(Python の依存関係マネージャー)
  • Docker(Docker デプロイモード用)
  • K3s(Kubernetes デプロイモード用、省略可能)
📖 使い方

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 clean
    
    uv 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

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。