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. 01管理 Chrome、Firefox 和 Edge
  2. 02支持 Docker 与 Kubernetes 后端
  3. 03通过令牌进行 API 身份验证
  4. 04管理多个浏览器实例
  5. 05提供 HTTP 与 SSE 端点

适用场景

  1. 01为浏览器自动化创建实例
  2. 02在 Docker 环境中管理测试浏览器
  3. 03通过 Kubernetes 管理浏览器实例

MCP 相关

它作为 MCP 服务,通过 `/mcp` HTTP Transport 和 `/sse` Server Sent Events 端点向客户端提供浏览器实例管理能力。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

🤖 MCP Selenium Grid

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

一个用于管理 Selenium Grid 浏览器实例的模型上下文协议(MCP)服务,适用于浏览器自动化和测试工作流。

MCP Selenium Grid 提供 MCP 服务,可在 Docker 和 Kubernetes 环境中创建和管理浏览器实例。它旨在与需要浏览器自动化能力的 AI Agent 和自动化工具配合使用。

主要功能

  • 多浏览器支持:Chrome、Firefox 和 Edge
  • 双后端支持:Docker 和 Kubernetes 部署模式
  • 安全 API:通过基于令牌的身份验证管理浏览器
  • 可扩展架构:支持多个浏览器实例
  • 符合 MCP 规范:遵循模型上下文协议标准

🚀 快速开始

前置条件
  • uv(Python 依赖管理器)
  • Docker(用于 Docker 部署模式)
  • K3s(用于 Kubernetes 部署模式,可选)
📖 用法

MCP Selenium Grid 提供用于创建和管理浏览器实例的 Web API。服务运行在 localhost:8000,并在 /mcp(HTTP 传输)和 /sse(服务器发送事件)提供 MCP 端点。

注意:所有发送到服务根地址 http://localhost:8000 的请求都会根据请求被重定向到 /mcp 或 /sse 端点,但你也可以直接使用 /mcp(HTTP 传输)或 /sse(服务器发送事件)端点。

已知问题和限制
  • 使用 --stdio 标志启用 STDIO 传输 时,MCP 服务的关闭方式与在终端中的关闭方式不同。要清理资源并移除容器或 Pod,请运行:

    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 提供,并在 http://localhost:8000/docs 提供交互式 API 文档。

☸️ 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 提供,并在 http://localhost:8000/docs 提供交互式 API 文档。

启用身份验证的服务
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

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。