MCP服务器编剧无头
一个模型上下文协议服务器,在Firefox的无头模式下使用Playwright提供浏览器自动化功能。
特性
- 🌐 在无头模式下使用Firefox的完全浏览器自动化功能
- 📸 整个页面或特定元素的截图
- 🖱️ 全面的网络交互(导航、点击、表单填写)
- 📊 控制台日志监控
- 🔧 浏览器上下文中的JavaScript执行
- 🖼️ 用于屏幕截图管理的集成图像服务器
安装
使用Docker
# Build the image
docker build -t mcp-playwright-headless .
# Run the container
docker run --rm --name mcp-playwright -e IMAGE_SERVER=http://host.docker.internal:3001 mcp-playwright-headless:1.3.0配置
环境变量
服务器支持以下环境变量:
IMAGE_SERVER:用于上传屏幕截图的外部图像服务器的URLIMAGE_SERVER_TOKEN:映像服务器的身份验证令牌
组件
工具
browser_navigate
导航到浏览器中的任何URL
{
"url": "https://example.com"
}browser_screenshot
捕获整个页面或特定元素的屏幕截图
{
"name": "screenshot-name", // required: name for the screenshot
"selector": "#element-id", // optional: CSS selector for element screenshot
"fullPage": false // optional: capture full page, default: false
}browser_click
使用CSS选择器单击页面上的元素
{
"selector": "#button-id"
}browser_click_text
按文本内容单击页面上的元素
{
"text": "Click me"
}browser_fill
填写输入字段
{
"selector": "#input-field",
"value": "text to input"
}browser_select
使用CSS选择器从下拉列表中选择一个选项
{
"selector": "#dropdown",
"value": "option-value"
}browser_select_text
从下拉列表中按文本内容选择一个选项
{
"text": "Option Text",
"value": "option-value"
}browser_hover
使用CSS选择器将鼠标悬停在页面上的元素上
{
"selector": "#menu-item"
}browser_hover_text
按文本内容将鼠标悬停在页面上的元素上
{
"text": "Hover me"
}browser_evaluate
在浏览器上下文中执行JavaScript
{
"script": "document.querySelector('#element').innerText"
}delete_screenshot
从图像服务器中删除特定的屏幕截图
{
"filename": "screenshot-name.png"
}clear_screenshots
从图像服务器中清除所有屏幕截图
{
}资源
console://logs
访问自动化过程中捕获的浏览器控制台日志
iMage服务器
该项目包括一个用于管理屏幕截图的独立图像服务器。要使用它:
- 构建并启动映像服务器:
# Build the image
docker build -t mcp-image-server -f image-server/Dockerfile .
# Run the container
docker run -d -p 3001:3001 --name image-server mcp-image-server:1.0.0图像服务器通过以下方式提供自动屏幕截图管理:
- 自动上传截图
- 屏幕截图删除功能
- 批量截图清除
- 如果映像服务器不可用,则进行本地回退
错误处理
服务器包括全面的错误处理:
- 自动重试严格模式违规
- 屏幕截图存储的回退机制
- 调试的详细错误消息
许可证
麻省理工学院
