浏览器自动化服务器

一个基于Playwright的模型上下文协议(MCP)服务器,提供全面的浏览器自动化功能,包括网页交互、自动化测试、网页抓取和复杂的工作流管理。

  • by nolecram
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 nolecram/Build_MCP_Server

使用说明

剧作家MCP服务器

一个强大的模型上下文协议(MCP)服务器,使用Playwright提供全面的浏览器自动化功能。该服务器使AI助手能够与网页交互、执行自动测试、网络抓取和复杂的基于浏览器的工作流程。

🚀 VSCode的快速安装

只需单击一下,即可在VSCode中直接安装此MCP服务器:

✨ 特性

  • 🌐 完全浏览器控制:导航、单击、键入任何web元素并与之交互
  • 📸 屏幕截图和视觉测试:捕获整个页面或特定元素
  • 🔄 选项卡管理:打开、关闭和在多个浏览器选项卡之间切换
  • 📝 表单自动化:填写表单、选择选项、处理复选框和单选按钮
  • ⏳ 智能等待:等待元素、网络请求或特定页面状态
  • 🔍 内容提取:从网页获取文本、属性和数据
  • 💻 JavaScript执行:在浏览器上下文中运行自定义JavaScript
  • 🛡️ 稳健的错误处理:通过有意义的消息进行全面的错误处理

📦 安装

先决条件

  • Python 3.8或更高版本
  • Node.js(安装Playwright浏览器所需)

从PyPI安装

pip install playwright-mcp-server
playwright install chromium

从源代码安装

git clone https://github.com/nolecram/Build_MCP_Server.git
cd Build_MCP_Server
pip install -e .
playwright install chromium

🔧 配置

适用于MCP客户

添加到MCP客户端配置中:

{
  "mcpServers": {
    "playwright": {
      "command": "playwright-mcp-server",
      "args": []
    }
  }
}

用于VSCode MCP扩展

添加到VSCode设置中:

{
  "mcp.servers": {
    "playwright": {
      "command": "playwright-mcp-server"
    }
  }
}

🛠️ 可用工具

工具 说明 参数
browser_navigate 导航到URL url
browser_click 点击一个元素 selector, timeout?
browser_type 在元素中键入文本 selector, text, timeout?
browser_screenshot 截图 path?, full_page?
browser_get_text 从元素中提取文本 selector, timeout?
browser_wait_for_selector 等待元素出现 selector, timeout?, state?
browser_evaluate 执行JavaScript script
browser_new_tab 打开新选项卡 url?
browser_close_tab 关闭当前选项卡 -
browser_get_title 获取页面标题 -
browser_get_url 获取当前URL -

💡 使用示例

Web剪贴

# Navigate to a website
browser_navigate {"url": "https://example.com"}

# Wait for content to load
browser_wait_for_selector {"selector": ".content"}

# Extract information
browser_get_text {"selector": ".price"}

# Take a screenshot
browser_screenshot {"full_page": true}

表单自动化

# Fill out a form
browser_type {"selector": "#email", "text": "user@example.com"}
browser_type {"selector": "#password", "text": "secretpassword"}
browser_click {"selector": "#login-button"}

测试工作流程

# Multi-step testing
browser_navigate {"url": "https://app.example.com"}
browser_click {"selector": "#feature-button"}
browser_wait_for_selector {"selector": ".success-message"}
browser_screenshot {"path": "test-result.png"}

🧪 测试

运行测试套件:

# Install test dependencies
pip install pytest pytest-asyncio

# Run tests
pytest tests/

# Run with coverage
pytest --cov=playwright_mcp_server tests/

📚 文档

综合文档可在 文档 目录:

🔒 安全

  • 默认情况下以无头模式运行
  • 每个会话的独立浏览器上下文
  • 自动资源清理
  • 可配置的超时限制
  • 无敏感数据记录

🤝 贡献

我们欢迎捐款!请参阅我们的投稿指南:

  1. 分叉存储库
  2. 创建要素分支
  3. 为您的更改添加测试
  4. 确保所有测试通过
  5. 提交拉取请求

📄 许可证

此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。

🙏 致谢

  • 内置于 剧作家 实现可靠的浏览器自动化
  • 实施 模型上下文协议 规格
  • 受人工智能工作流程中对强大浏览器自动化需求的启发

📈 路线图

  • []支持多种浏览器引擎(Firefox、Safari)
  • []高级元素选择策略
  • []内置视觉回归测试
  • []性能监控和指标
  • []浏览器扩展交互
  • []移动浏览器模拟

⭐ 如果你觉得这个存储库有用,请为其加星!