MCP 硒服务器
一个用于硒 WebDriver的模型上下文协议(MCP)服务器——AI代理的浏览器自动化.
设置
鹅 (德克托克)
粘贴到您的浏览器地址栏 :
goose://extension?cmd=npx&arg=-y&arg=%40angiejones%2Fmcp-selenium%40latest&id=selenium-mcp&name=Selenium%20MCP&description=automates%20browser%20interactions
鹅 (CLI)
goose session --with-extension "npx -y @angiejones/mcp-selenium@latest"
克劳德代码
claude mcp add selenium -- npx -y @angiejones/mcp-selenium@latest
Cursor / Windsurf / 其他 MCP 客户端
{
"mcpServers": {
"selenium": {
"command": "npx",
"args": ["-y", "@angiejones/mcp-selenium@latest"]
}
}
}
示例使用
告诉你选择的人工智能特工:
打开Chrome,去github.com/angiejones,并取出截图.
特工会给Selenium的API打电话 start_browser, (中文(简体) ), navigate,以及 take_screenshot。不需要手动脚本或明确的方向.
支持的浏览器
Chrome),Firefox,Edge,和萨法里.
Safari 注: 需要 macOS 。 (笑声) 运行
sudo safaridriver --enable一次并启用 Safari 中的"Allow远程自动化" → 设置 → 开发者. 没有无头模式 .
工具
开始浏览器( b)
启动浏览器会话 .
| 参数 | 类型 | 需求 | 说明 |
|---|---|---|---|
| 浏览器 | 字符串 | 对 | chrome, (中文(简体) ), firefox, (中文(简体) ), edge,或 safari |
| 选项 | 对象 | 没有 | { headless: boolean, arguments: string[] } |
导航
导航到 URL.
| 参数 | 类型 | 需求 | 说明 |
|---|---|---|---|
| url 密码 | 字符串 | 对 | 要导航的 URL |
交互
在元素上执行鼠标动作.
| 参数 | 类型 | 需求 | 说明 |
|---|---|---|---|
| 动作 | 字符串 | 对 | click, (中文(简体) ), doubleclick, (中文(简体) ), rightclick,或 hover |
| 以 | 字符串 | 对 | 定位战略: id, (中文(简体) ), css, (中文(简体) ), xpath, (中文(简体) ), name, (中文(简体) ), tag, (中文(简体) ), class |
| 价值 | 字符串 | 对 | 定位战略的价值 |
| 超时 | 编号 | 没有 | 最大等数以毫秒( 默认值: 1 000) |
发送密钥
将文本输入元素。 先清净地.
| 参数 | 类型 | 需求 | 说明 |
|---|---|---|---|
| 以 | 字符串 | 对 | 定位战略 |
| 价值 | 字符串 | 对 | 定位值 |
| 文本 | 字符串 | 对 | 要输入的文本 |
| 超时 | 编号 | 没有 | 最大等数以毫秒( 默认值: 1 000) |
获取元素 text
获取元素的文本内容.
| 参数 | 类型 | 需求 | 说明 |
|---|---|---|---|
| 以 | 字符串 | 对 | 定位战略 |
| 价值 | 字符串 | 对 | 定位值 |
| 超时 | 编号 | 没有 | 最大等数以毫秒( 默认值: 1 000) |
获取元素 属性
从元素中获取属性值.
| 参数 | 类型 | 需求 | 说明 |
|---|---|---|---|
| 以 | 字符串 | 对 | 定位战略 |
| 价值 | 字符串 | 对 | 定位值 |
| 属性 | 字符串 | 对 | 属性名称( 例如 ), href, (中文(简体) ), value, (中文(简体) ), class(中文(简体) ) |
| 超时 | 编号 | 没有 | 最大等数以毫秒( 默认值: 1 000) |
按键
按键盘键.
| 参数 | 类型 | 需求 | 说明 |
|---|---|---|---|
| 键 | 字符串 | 对 | 要按的密钥( 例如 ), Enter, (中文(简体) ), Tab, (中文(简体) ), a(中文(简体) ) |
上传文件( f)
通过文件输入元素上传文件.
| 参数 | 类型 | 需求 | 说明 |
|---|---|---|---|
| 以 | 字符串 | 对 | 定位战略 |
| 价值 | 字符串 | 对 | 定位值 |
| 文件路径 | 字符串 | 对 | 文件的绝对路径 |
| 超时 | 编号 | 没有 | 最大等数以毫秒( 默认值: 1 000) |
抓取屏幕截图( s)
抓取当前页面的截图.
| 参数 | 类型 | 需求 | 说明 |
|---|---|---|---|
| 输出Path | 字符串 | 没有 | 保存路径 。 如果省略,则返回基础64图像数据. |
关闭会话( c)
关闭当前浏览器会话 。 无参数 .
执行( c)
在浏览器中执行 JavaScript 。 用于其他工具未覆盖的高级交互(如拖放,滚动,读取计算样式,DOM操作等).
| 参数 | 类型 | 需求 | 说明 |
|---|---|---|---|
| 脚本 | 字符串 | 对 | 要执行的 JavaScript 代码 |
| 参数 | 数组 | 没有 | 可通过 arguments[0]等 (中文(简体) ). |
窗口
管理浏览器窗口和标签.
| 参数 | 类型 | 需求 | 说明 |
|---|---|---|---|
| 动作 | 字符串 | 对 | list, (中文(简体) ), switch, (中文(简体) ), switch_latest,或 close |
| 控件 | 字符串 | 没有 | 窗口手柄( 需要用于 switch(中文(简体) ) |
边框
切换焦点到帧或返回主页.
| 参数 | 类型 | 需求 | 说明 |
|---|---|---|---|
| 动作 | 字符串 | 对 | switch 或者说 default |
| 以 | 字符串 | 没有 | 定位战略 switch(中文(简体) ) |
| 价值 | 字符串 | 没有 | 定位器值(用于 switch(中文(简体) ) |
| 指数 | 编号 | 没有 | 框架指数,基于 0(用于 switch(中文(简体) ) |
| 超时 | 编号 | 没有 | 最大等数以毫秒( 默认值: 1 000) |
警报
处理浏览器提醒,确认,或提示对话框 .
| 参数 | 类型 | 需求 | 说明 |
|---|---|---|---|
| 动作 | 字符串 | 对 | accept, (中文(简体) ), dismiss, (中文(简体) ), get_text,或 send_text |
| 文本 | 字符串 | 没有 | 要发送的文本( 需要 send_text(中文(简体) ) |
| 超时 | 编号 | 没有 | 最大以 ms 等 (默认: 5000) |
添加 cookie( c)
加个饼干 浏览器必须在从饼干域的一页上.
| 参数 | 类型 | 需求 | 说明 |
|---|---|---|---|
| 名称 | 字符串 | 对 | Cookie 名称 |
| 价值 | 字符串 | 对 | Cookie 值 |
| 域名 | 字符串 | 没有 | Cookie 域名 |
| 路径 | 字符串 | 没有 | Cookie 路径 |
| 安全 | 布尔 | 没有 | 安全旗帜 |
| 仅限 httply | 布尔 | 没有 | HTTP 唯一旗帜 |
| 过期 | 编号 | 没有 | 无九时戳 |
获取小饼干
得到饼干。 按名称返回全部或特定名称.
| 参数 | 类型 | 需求 | 说明 |
|---|---|---|---|
| 名称 | 字符串 | 没有 | 饼干的名字。 所有饼干都给我吃. |
删除cookie
删除 cookie 。 删除全部或特定名称.
| 参数 | 类型 | 需求 | 说明 |
|---|---|---|---|
| 名称 | 字符串 | 没有 | 饼干的名字。 关闭删除所有. |
诊断
获得通过WebDriver BiDi(支持时自动启用)捕获的浏览器诊断.
| 参数 | 类型 | 需求 | 说明 |
|---|---|---|---|
| 类型 | 字符串 | 对 | console, (中文(简体) ), errors,或 network |
| 清除 | 布尔 | 没有 | 返回后清除缓冲( 默认: 假) |
资源
MCP资源提供只读数据,客户端无需调用工具即可访问.
浏览器状态/ 当前
返回当前浏览器会话状态(活动会话ID或"没有活动会话").
| 财产 | 数值 |
|---|---|
| MIME 类型 | text/plain |
| 需要浏览器 | 没有 |
无障碍/当前
返回当前页面的可访问树快照——一个结构紧凑的JSON交互式元素和文本内容的描述. 比完整的HTML小得多. 用于理解页面布局并找到与之互动的元素 .
| 财产 | 数值 |
|---|---|
| MIME 类型 | application/json |
| 需要浏览器 | 对 |
发展
设置
git clone https://github.com/angiejones/mcp-selenium.git
cd mcp-selenium
npm install
运行测试
npm test
要求在 PATH 上使用 Chrome + 铬化相机。 测试是无头的.
通过 Smithery 安装
npx -y @smithery/cli install @angiejones/mcp-selenium --client claude
全球安装
npm install -g @angiejones/mcp-selenium
mcp-selenium
许可证
麻省理工学院
