浏览器自动化服务器

Playwright MCP Server 是一个基于Playwright的浏览器自动化服务器,通过结构化可访问性快照使LLM能够与网页交互,适用于网页导航、表单填写、数据提取和自动化测试等场景。

  • by apify
  • TypeScript
  • 云端部署
  • 4 星标
  • 更新于
在 GitHub 查看 apify/actor-playwright-mcp

使用说明

剧作家MCP服务器

使用Playwright提供浏览器自动化功能的模型上下文协议(MCP)服务器。此服务器使LLM能够通过结构化的可访问性快照与网页交互,从而绕过了对屏幕截图或视觉优化模型的需要。

关于此MCP服务器: 要了解如何连接和使用此MCP服务器,您可以参考官方的模型上下文协议文档,网址为 mcp.apify.com.

连接URL

MCP客户端可以在以下位置连接到此服务器:

https://jiri-spilka--playwright-mcp-server.apify.actor/mcp

客户端配置

要连接到此MCP服务器,请在MCP客户端中使用以下配置:

{
  "mcpServers": {
    "playwright": {
      "url": "https://jiri-spilka--playwright-mcp-server.apify.actor/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_APIFY_TOKEN"
      }
    }
  }
}

注: 替换 YOUR_APIFY_TOKEN 使用您的实际Apify API令牌。您可以在 Apify控制台.

链接

🚩 认领此MCP服务器

所有学分均归原作者所有 https://github.com/microsoft/playwright-mcp 要认领此服务器,请写信至 ai@apify.com.

主要特点

  • 🚀 使用Playwright的可访问性树而不是基于像素的输入,以实现更快、更轻的操作
  • 📊 仅适用于结构化数据,无需视觉模型
  • 🎯 确定性地应用工具,避免屏幕截图方法的模糊性
  • 🌐 支持 指定代理 (数据中心、住宅、定制)和其他Apify功能

用例

  • 🌐 Web导航和表单填写
  • 📋 结构化数据提取
  • 🧪 LLM驱动的自动化测试
  • 🤖 AI代理的浏览器自动化

工具(来源)

工具

Core automation
  • 浏览器点击
    • 标题:点击
    • 说明:在网页上执行点击操作
    • 参数:
      • element (string):人类可读的元素描述,用于获得与元素交互的权限
      • ref (string):页面快照中的精确目标元素引用
      • doubleClick (布尔值,可选):是否执行双击而不是单击
      • button (字符串,可选):点击按钮,默认为左侧
    • 只读: 错误的
  • 浏览器_关闭
    • 标题:关闭浏览器
    • 说明:关闭页面
    • 参数:无
    • 只读: 真
  • browser_console_消息
    • 标题:获取控制台消息
    • 说明:返回所有控制台消息
    • 参数:无
    • 只读: 真
  • browser_drag
    • 标题:拖动鼠标
    • 说明:在两个元素之间执行拖放操作
    • 参数:
      • startElement (string):人类可读的源元素描述,用于获得与元素交互的权限
      • startRef (string):页面快照中的精确源元素引用
      • endElement (string):人类可读的目标元素描述,用于获得与元素交互的权限
      • endRef (string):页面快照中的精确目标元素引用
    • 只读: 错误的
  • 浏览器_评估
    • 标题:评估JavaScript
    • 描述:在页面或元素上计算JavaScript表达式
    • 参数:
      • function (string):()=>{/*代码 /}或(元素)=>{/ 提供元素时的代码*/}
      • element (string,可选):人类可读的元素描述,用于获得与元素交互的权限
      • ref (string,可选):页面快照中的精确目标元素引用
    • 只读: 错误的
  • 浏览器文件上传
    • 标题:上传文件
    • 说明:上传一个或多个文件
    • 参数:
      • paths (array):要上传的文件的绝对路径。可以是单个文件或多个文件。
    • 只读: 错误的
  • browser_fill_form
    • 标题:填写表格
    • 说明:填写多个表单字段
    • 参数:
      • fields (数组):要填写的字段
    • 只读: 错误的
  • 浏览器处理对话框
    • 标题:处理对话框
    • 描述:处理对话框
    • 参数:
      • accept (boolean):是否接受对话。
      • promptText (string,可选):提示对话框中的提示文本。
    • 只读: 错误的
  • 浏览器切换
    • 标题:鼠标悬停
    • 描述:将鼠标悬停在页面上的元素上
    • 参数:
      • element (string):人类可读的元素描述,用于获得与元素交互的权限
      • ref (string):页面快照中的精确目标元素引用
    • 只读: 真
  • 浏览器导航
    • 标题:导航到URL
    • 描述:导航到URL
    • 参数:
      • url (string):要导航到的URL
    • 只读: 错误的
  • 浏览器导航返回
    • 标题:返回
    • 说明:返回上一页
    • 参数:无
    • 只读: 真
  • 浏览器网络请求
    • 标题:列出网络请求
    • 描述:返回自加载页面以来的所有网络请求
    • 参数:无
    • 只读: 真
  • browser_press_key
    • 标题:按键
    • 说明:按键盘上的一个键
    • 参数:
      • key (string):要按的键的名称或要生成的字符,例如 ArrowLeft 或 a
    • 只读: 错误的
  • 浏览器大小
    • 标题:调整浏览器窗口大小
    • 说明:调整浏览器窗口大小
    • 参数:
      • width (数字):浏览器窗口的宽度
      • height (数字):浏览器窗口的高度
    • 只读: 真
  • 浏览器选择选项
    • 标题:选择选项
    • 说明:在下拉列表中选择一个选项
    • 参数:
      • element (string):人类可读的元素描述,用于获得与元素交互的权限
      • ref (string):页面快照中的精确目标元素引用
      • values (array):在下拉列表中选择的值数组。这可以是单个值或多个值。
    • 只读: 错误的
  • 浏览器快照
    • 标题:页面快照
    • 描述:捕获当前页面的可访问性快照,这比截图更好
    • 参数:无
    • 只读: 真
  • browser_take_screenshot
    • 标题:截图
    • 描述:截取当前页面的屏幕截图。您无法根据屏幕截图执行操作,请使用browser_snapshot进行操作。
    • 参数:
      • type (字符串,可选):屏幕截图的图像格式。默认值为png。
      • filename (string,可选):保存截图的文件名。默认为 page-{timestamp}.{png|jpeg} 如果没有指定。
      • element (string,可选):人类可读的元素描述,用于获得对元素进行截图的权限。如果没有提供,将对视口进行截图。如果提供了元素,也必须提供ref。
      • ref (string,可选):页面快照中的精确目标元素引用。如果没有提供,将对视口进行截图。若提供了ref,则也必须提供元素。
      • fullPage (boolean,可选):当为true时,会截取整个可滚动页面的屏幕截图,而不是当前可见的视口。不能与元素截图一起使用。
    • 只读: 真
  • 浏览器类型
    • 标题:键入文本
    • 说明:在可编辑元素中键入文本
    • 参数:
      • element (string):人类可读的元素描述,用于获得与元素交互的权限
      • ref (string):页面快照中的精确目标元素引用
      • text (string):要在元素中键入的文本
      • submit (布尔值,可选):是否提交输入的文本(之后按Enter键)
      • slowly (boolean,可选):是否一次键入一个字符。可用于触发页面中的密钥处理程序。默认情况下,一次填写整个文本。
    • 只读: 错误的
  • 浏览器等待
    • 标题:等待
    • 描述:等待文本出现或消失或经过指定时间
    • 参数:
      • time (数字,可选):等待时间(秒)
      • text (string,可选):等待的文本
      • textGone (string,可选):等待消失的文本
    • 只读: 真
Tab management
  • 浏览器标签
    • 标题:管理选项卡
    • 说明:列出、创建、关闭或选择浏览器选项卡。
    • 参数:
      • action (string):要执行的操作
      • index (数字,可选):选项卡索引,用于关闭/选择。如果省略关闭,则关闭当前选项卡。
    • 只读: 错误的
Browser installation
  • 浏览器安装
    • 标题:安装配置中指定的浏览器
    • 说明:安装配置中指定的浏览器。如果您收到浏览器未安装的错误,请调用此命令。
    • 参数:无
    • 只读: 错误的
Coordinate-based (opt-in via --caps=vision)
  • 浏览器_主页_点击_xy
    • 标题:点击
    • 说明:在给定位置单击鼠标左键
    • 参数:
      • element (string):人类可读的元素描述,用于获得与元素交互的权限
      • x (数字):X坐标
      • y (数字):Y坐标
    • 只读: 错误的
  • 浏览器_主页_拖动_xy
    • 标题:拖动鼠标
    • 说明:将鼠标左键拖动到给定位置
    • 参数:
      • element (string):人类可读的元素描述,用于获得与元素交互的权限
      • startX (数字):开始X坐标
      • startY (数字):开始Y坐标
      • endX (数字):结束X坐标
      • endY (数字):结束Y坐标
    • 只读: 错误的
  • 浏览器_家庭_移动_xy
    • 标题:移动鼠标
    • 说明:将鼠标移动到给定位置
    • 参数:
      • element (string):人类可读的元素描述,用于获得与元素交互的权限
      • x (数字):X坐标
      • y (数字):Y坐标
    • 只读: 真
PDF generation (opt-in via --caps=pdf)
  • 浏览器_pdf_save
    • 标题:另存为PDF
    • 说明:将页面另存为PDF
    • 参数:
      • filename (字符串,可选):用于保存pdf的文件名。默认为 page-{timestamp}.pdf 如果没有指定。
    • 只读: 真
Verify (opt-in via --caps=verify)
  • 浏览器验证元素可见
    • 标题:验证元素是否可见
    • 说明:验证元素在页面上是否可见
    • 参数:
      • role (string):元素的角色。可以在快照中找到,如下所示: - {ROLE} "Accessible Name":
      • accessibleName (string):元素的名称。可以在快照中找到,如下所示: - role "{ACCESSIBLE_NAME}"
    • 只读: 真
  • 浏览器验证列表可见
    • 标题:验证列表是否可见
    • 说明:验证列表在页面上是否可见
    • 参数:
      • element (string):人类可读的列表描述
      • ref (string):指向列表的精确目标元素引用
      • items (array):要验证的项目
    • 只读: 真
  • 浏览器验证文本可见
    • 标题:验证文本是否可见
    • 说明:验证文本在页面上是否可见。如果可能的话,首选browser_verify_element_visible。
    • 参数:
      • text (string):要验证的文本。可以在快照中找到,如下所示: - role "Accessible Name": {TEXT} 或者像这样: - text: {TEXT}
    • 只读: 真
  • 浏览器验证值
    • 标题:验证值
    • 说明:验证元素值
    • 参数:
      • type (string):元素的类型
      • element (string):人类可读的元素描述
      • ref (string):指向该元素的精确目标元素引用
      • value (string):要验证的值。对于复选框,使用“true”或“false”。
    • 只读: 真