MCP硒服务器
Selenium WebDriver的模型上下文协议(MCP)服务器——AI代理的浏览器自动化。

设置
Goose (Desktop)
粘贴到浏览器地址栏:
goose://extension?cmd=npx&arg=-y&arg=%40angiejones%2Fmcp-selenium%40latest&id=selenium-mcp&name=Selenium%20MCP&description=automates%20browser%20interactionsGoose (CLI)
goose session --with-extension "npx -y @angiejones/mcp-selenium@latest"Claude Code
claude mcp add selenium -- npx -y @angiejones/mcp-selenium@latestCursor / Windsurf / other MCP clients
{
"mcpServers": {
"selenium": {
"command": "npx",
"args": ["-y", "@angiejones/mcp-selenium@latest"]
}
}
}示例用法
告诉你选择的AI代理:
打开Chrome浏览器,访问github/angiejones,然后截图。
代理将调用Selenium的API start_browser, navigate,以及 take_screenshot无需手动编写脚本或明确指示。
支持的浏览器
Chrome、Firefox、Edge和Safari。
Safari注释: 需要macOS。跑 sudo safaridriver --enable 一次并启用 Safari中的“允许远程自动化”→ 设置→ 开发商。没有无头模式。______________________________________________________________________
Tools
start_browser
启动浏览器会话。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| 浏览器 | 字符串 | 是 | chrome, firefox, edge,或 safari |
| 选项 | 对象 | 否 | { headless: boolean, arguments: string[] } |
导航
导航到URL。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| url | string | 是 | 要导航到的url |
互动
在元素上执行鼠标操作。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| action | string | 是 | click, doubleclick, rightclick,或 hover |
| by | string | Yes | 定位器策略: id, css, xpath, name, tag, class |
| value | string | Yes | 定位器策略的值 |
| timeout | number | No | 最大等待时间(毫秒)(默认值:10000) |
send_keys
在元素中键入文本。先清除字段。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| by | string | 是 | 定位器策略 |
| value | string | Yes | 定位器值 |
| text | string | Yes | 要输入的文本 |
| timeout | number | No | 最大等待时间(毫秒)(默认值:10000) |
get_element_text
获取元素的文本内容。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| by | string | 是 | 定位器策略 |
| value | string | Yes | 定位器值 |
| timeout | number | No | 最大等待时间(毫秒)(默认值:10000) |
get_element_attribute
从元素获取属性值。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| by | string | 是 | 定位器策略 |
| value | string | Yes | 定位器值 |
| attribute | string | Yes | 属性名称(例如。, href, value, class) |
| timeout | number | No | 最大等待时间(毫秒)(默认值:10000) |
按键
按下键盘键。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| key | string | Yes | 要按下的键(例如。, Enter, Tab, a) |
上传文件
通过文件输入元素上传文件。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| by | string | 是 | 定位器策略 |
| value | string | Yes | 定位器值 |
| filePath | string | Yes | 文件的绝对路径 |
| timeout | number | No | 最大等待时间(毫秒)(默认值:10000) |
take_screenshot
捕获当前页面的屏幕截图。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| outputPath | 字符串 | 否 | 保存路径。如果省略,则返回base64图像数据。 |
关闭会话
关闭当前浏览器会话。没有参数。
execute_script
在浏览器中执行JavaScript。用于其他工具未涵盖的高级交互(例如,拖放、滚动、读取计算样式、DOM操作)。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| script | string | Yes | 要执行的JavaScript代码 |
| args | array | 否 | 参数可通过以下方式访问 arguments[0]等等。 |
窗口
管理浏览器窗口和选项卡。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| action | string | 是 | list, switch, switch_latest,或 close |
| handle | string | No | 窗口句柄(必需 switch) |
框架
将焦点切换到框架或返回主页。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| action | string | 是 | switch 或 default |
| by | string | 否 | 定位器策略(适用于 switch) |
| value | string | No | 定位器值(用于 switch) |
| index | number | No | 帧索引,从0开始(用于 switch) |
| timeout | number | No | 最大等待时间(毫秒)(默认值:10000) |
警报
处理浏览器警报、确认或提示对话框。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| action | string | 是 | accept, dismiss, get_text,或 send_text |
| text | string | 否 | 要发送的文本(必填 send_text) |
| timeout | number | No | 最大等待时间(毫秒)(默认值:5000) |
add_cookie
添加cookie。浏览器必须位于cookie域的页面上。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| name | string | Yes | Cookie名称 |
| value | string | Yes | Cookie值 |
| 域 | 字符串 | 否 | Cookie域 |
| path | string | 否 | Cookie路径 |
| secure | boolean | 否 | 安全标志 |
| httpOnly | boolean | 否 | 仅HTTP标志 |
| expire | number | No | Unix时间戳 |
get_cookies
获取Cookie。按名称返回全部或特定值。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| name | string | 否 | Cookie名称。省略所有Cookie。 |
删除cookie
删除Cookie。按名称删除所有或特定内容。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| name | string | 否 | Cookie名称。省略删除所有内容。 |
诊断
获取通过WebDriver BiDi捕获的浏览器诊断(支持时自动启用)。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| type | string | 是 | console, errors,或 network |
| clear | boolean | 否 | 返回后清除缓冲区(默认值:false) |
Resources
MCP资源提供只读数据,客户端可以在不调用工具的情况下访问这些数据。
浏览器-status://current
返回当前浏览器会话状态(活动会话ID或“无活动会话”)。
| 财产 | 价值 |
|---|---|
| MIME类型 | text/plain |
| 需要浏览器 | 否 |
加速ssibility://current
返回当前页面的可访问性树快照——交互式元素和文本内容的紧凑、结构化JSON表示。比完整的HTML小得多。有助于理解页面布局和查找要交互的元素。
| 财产 | 价值 |
|---|---|
| MIME类型 | application/json |
| 需要浏览器 | 是 |
______________________________________________________________________
Development
设置
git clone https://github.com/angiejones/mcp-selenium.git
cd mcp-selenium
npm install运行测试
npm test需要PATH上的Chrome+chromedriver。测试无头运行。
通过Smithery安装
npx -y @smithery/cli install @angiejones/mcp-selenium --client claude全局安装
npm install -g @angiejones/mcp-selenium
mcp-selenium许可证
麻省理工学院
