mcpField
P
Playwright MCP Server

Playwright MCP Server

本地服务
github.com/apify浏览器自动化457 周前更新

关于 Playwright MCP Server

Playwright MCP Server 通过结构化的无障碍快照,为 LLM 提供 Playwright 浏览器自动化能力,适用于网页操作与测试,交互无需依赖截图。

主要功能

  1. 01无障碍树页面快照
  2. 02浏览器导航与交互
  3. 03填写表单和上传文件
  4. 04检查控制台与网络请求
  5. 05可选坐标操作

适用场景

  1. 01浏览网页并填写表单
  2. 02提取结构化页面数据
  3. 03执行 LLM 驱动的浏览器测试
  4. 04为 AI Agent 自动化浏览器任务

MCP 相关

这是一个向 MCP 客户端提供浏览器自动化工具的 MCP 服务。客户端可通过托管端点并使用 Apify 令牌连接。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

Playwright MCP 服务

Actor 徽章

一个使用 Playwright 提供浏览器自动化功能的模型上下文协议(MCP)服务。此服务支持大模型通过结构化的无障碍快照与网页交互,无需使用截图或经过视觉调优的模型。

关于此 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 Console 中找到令牌。

链接

🚩 认领此 MCP 服务

所有荣誉归于 https://github.com/microsoft/playwright-mcp 的原作者。 如需认领此服务,请发送邮件至 [email protected]。

主要功能

  • 🚀 使用 Playwright 的无障碍树而非基于像素的输入,运行更快、更轻量
  • 📊 仅处理结构化数据,无需视觉模型
  • 🎯 确定性地应用工具,避免截图方案带来的歧义
  • 🌐 支持 Apify Proxy(数据中心、住宅、自定义)以及其他 Apify 功能

使用场景

  • 🌐 网页导航和表单填写
  • 📋 结构化数据提取
  • 🧪 由大模型驱动的自动化测试
  • 🤖 面向 AI Agent 的浏览器自动化

工具(来源)

工具
核心自动化
  • browser_click

    • 标题:点击
    • 描述:在网页上执行点击操作
    • 参数:
      • element(string):用于获取与该元素交互权限的、人类可读的元素描述
      • ref(string):页面快照中的精确目标元素引用
      • doubleClick(boolean,可选):是否执行双击而非单击
      • button(string,可选):要点击的按钮,默认为左键
    • 只读:false
  • browser_close

    • 标题:关闭浏览器
    • 描述:关闭页面
    • 参数:无
    • 只读:true
  • browser_console_messages

    • 标题:获取控制台消息
    • 描述:返回所有控制台消息
    • 参数:无
    • 只读:true
  • browser_drag

    • 标题:拖动鼠标
    • 描述:在两个元素之间执行拖放操作
    • 参数:
      • startElement(string):用于获取与该元素交互权限的、人类可读的源元素描述
      • startRef(string):页面快照中的精确源元素引用
      • endElement(string):用于获取与该元素交互权限的、人类可读的目标元素描述
      • endRef(string):页面快照中的精确目标元素引用
    • 只读:false
- **browser_evaluate** - 标题:执行 JavaScript - 描述:在页面或元素上执行 JavaScript 表达式 - 参数: - `function` (string):() => { /* code */ } 或 (element) => { /* code */ }(提供 element 时) - `element` (string, optional):用于获取与该元素交互权限的易读元素描述 - `ref` (string, optional):页面快照中目标元素的确切引用 - 只读:**false**
  • browser_file_upload

    • 标题:上传文件
    • 描述:上传一个或多个文件
    • 参数:
      • paths (array):要上传文件的绝对路径。可以是单个文件,也可以是多个文件。
    • 只读:false
  • browser_fill_form

    • 标题:填写表单
    • 描述:填写多个表单字段
    • 参数:
      • fields (array):要填写的字段
    • 只读:false
  • browser_handle_dialog

    • 标题:处理对话框
    • 描述:处理对话框
    • 参数:
      • accept (boolean):是否接受对话框。
      • promptText (string, optional):提示对话框中的提示文本。
    • 只读:false
  • browser_hover

    • 标题:悬停鼠标
    • 描述:将鼠标悬停在页面元素上
    • 参数:
      • element (string):用于获取与该元素交互权限的易读元素描述
      • ref (string):页面快照中目标元素的确切引用
    • 只读:true
  • browser_navigate

    • 标题:导航到 URL
    • 描述:导航到 URL
    • 参数:
      • url (string):要导航到的 URL
    • 只读:false
  • browser_navigate_back

    • 标题:返回
    • 描述:返回上一页
    • 参数:无
    • 只读:true
  • browser_network_requests

    • 标题:列出网络请求
    • 描述:返回页面加载以来的所有网络请求
    • 参数:无
    • 只读:true
  • browser_press_key

    • 标题:按键
    • 描述:按下键盘上的按键
    • 参数:
      • key (string):要按下的按键名称或要生成的字符,例如 ArrowLeft 或 a
    • 只读:false
  • browser_resize

    • 标题:调整浏览器窗口大小
    • 描述:调整浏览器窗口大小
    • 参数:
      • width (number):浏览器窗口宽度
      • height (number):浏览器窗口高度
    • 只读:true
  • browser_select_option

    • 标题:选择选项
    • 描述:在下拉菜单中选择选项
    • 参数:
      • element (string):用于获取与该元素交互权限的易读元素描述
      • ref (string):页面快照中目标元素的确切引用
      • values (array):要在下拉菜单中选择的值数组。可以是单个值,也可以是多个值。
    • 只读:false
  • browser_snapshot

    • 标题:页面快照
    • 描述:捕获当前页面的无障碍快照,效果优于截图
    • 参数:无
    • 只读:true
  • browser_take_screenshot

    • 标题:截取屏幕截图
    • 描述:截取当前页面的屏幕截图。你无法根据屏幕截图执行操作;如需执行操作,请使用 browser_snapshot。
    • 参数:
      • type(字符串,可选):屏幕截图的图像格式。默认为 png。
      • filename(字符串,可选):用于保存屏幕截图的文件名。如果未指定,默认为 page-{timestamp}.{png|jpeg}。
      • element(字符串,可选):用于获取截取该元素屏幕截图的权限的易读元素描述。如果未提供,将截取视口的屏幕截图。如果提供了 element,也必须提供 ref。
      • ref(字符串,可选):来自页面快照的精确目标元素引用。如果未提供,将截取视口的屏幕截图。如果提供了 ref,也必须提供 element。
      • fullPage(布尔值,可选):为 true 时,截取整个可滚动页面的屏幕截图,而不是当前可见的视口。不能与元素屏幕截图一起使用。
    • 只读:true
  • browser_type

    • 标题:输入文本
    • 描述:在可编辑元素中输入文本
    • 参数:
      • element(字符串):用于获取与该元素交互权限的易读元素描述
      • ref(字符串):来自页面快照的精确目标元素引用
      • text(字符串):要输入到元素中的文本
      • submit(布尔值,可选):是否提交输入的文本(之后按 Enter)
      • slowly(布尔值,可选):是否逐个字符输入。适用于触发页面中的按键处理程序。默认情况下,会一次性填入整个文本。
    • 只读:false
  • browser_wait_for

    • 标题:等待
    • 描述:等待文本出现或消失,或等待指定时间
    • 参数:
      • time(数字,可选):等待时间,单位为秒
      • text(字符串,可选):要等待出现的文本
      • textGone(字符串,可选):要等待消失的文本
    • 只读:true
标签页管理
  • browser_tabs
    • 标题:管理标签页
    • 描述:列出、新建、关闭或选择浏览器标签页。
    • 参数:
      • action(字符串):要执行的操作
      • index(数字,可选):用于关闭或选择的标签页索引。如果关闭时省略,则关闭当前标签页。
    • 只读:false
浏览器安装
  • browser_install
    • 标题:安装配置中指定的浏览器
    • 描述:安装配置中指定的浏览器。如果收到浏览器未安装的错误,请调用此工具。
    • 参数:无
    • 只读:false
基于坐标的操作(通过 --caps=vision 选择启用)
  • browser_mouse_click_xy

    • 标题:单击
    • 描述:在给定位置单击鼠标左键
    • 参数:
      • element(字符串):用于获取与该元素交互权限的易读元素描述
      • x(数字):X 坐标
      • y(数字):Y 坐标
    • 只读:false
  • browser_mouse_drag_xy

    • 标题:拖动鼠标
    • 描述:将鼠标左键拖动到给定位置
    • 参数:
      • element(字符串):用于获取与该元素交互权限的易读元素描述
      • startX(数字):起始 X 坐标
      • startY(数字):起始 Y 坐标
      • endX(数字):结束 X 坐标
      • endY(数字):结束 Y 坐标
    • 只读:false
- **browser_mouse_move_xy** - 标题:移动鼠标 - 描述:将鼠标移动到指定位置 - 参数: - `element` (string):用于获取与该元素交互权限的、易于理解的元素描述 - `x` (number):X 坐标 - `y` (number):Y 坐标 - 只读:**true**
PDF 生成(通过 --caps=pdf 选择启用)
  • browser_pdf_save
    • 标题:另存为 PDF
    • 描述:将页面保存为 PDF
    • 参数:
      • filename (string, optional):要保存的 PDF 文件名。如果未指定,默认为 page-{timestamp}.pdf。
    • 只读:true
验证(通过 --caps=verify 选择启用)
  • browser_verify_element_visible

    • 标题:验证元素可见
    • 描述:验证元素在页面上可见
    • 参数:
      • role (string):元素的 ROLE。可以在快照中通过以下形式找到:- {ROLE} "Accessible Name":
      • accessibleName (string):元素的 ACCESSIBLE_NAME。可以在快照中通过以下形式找到:- role "{ACCESSIBLE_NAME}"
    • 只读:true
  • browser_verify_list_visible

    • 标题:验证列表可见
    • 描述:验证列表在页面上可见
    • 参数:
      • element (string):易于理解的列表描述
      • ref (string):指向该列表的精确目标元素引用
      • items (array):要验证的项目
    • 只读:true
  • browser_verify_text_visible

    • 标题:验证文本可见
    • 描述:验证文本在页面上可见。如果可能,优先使用 browser_verify_element_visible。
    • 参数:
      • text (string):要验证的 TEXT。可以在快照中通过以下形式找到:- role "Accessible Name": {TEXT} 或 - text: {TEXT}
    • 只读:true
  • browser_verify_value

    • 标题:验证值
    • 描述:验证元素值
    • 参数:
      • type (string):元素类型
      • element (string):易于理解的元素描述
      • ref (string):指向该元素的精确目标元素引用
      • value (string):要验证的值。对于复选框,使用 "true" 或 "false"。
    • 只读:true

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。