关于 Playwright MCP Server
Playwright MCP Server 通过结构化的无障碍快照,为 LLM 提供 Playwright 浏览器自动化能力,适用于网页操作与测试,交互无需依赖截图。
主要功能
- 01无障碍树页面快照
- 02浏览器导航与交互
- 03填写表单和上传文件
- 04检查控制台与网络请求
- 05可选坐标操作
适用场景
- 01浏览网页并填写表单
- 02提取结构化页面数据
- 03执行 LLM 驱动的浏览器测试
- 04为 AI Agent 自动化浏览器任务
MCP 相关
这是一个向 MCP 客户端提供浏览器自动化工具的 MCP 服务。客户端可通过托管端点并使用 Apify 令牌连接。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Playwright MCP 服务
一个使用 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 中找到令牌。
链接
- GitHub 仓库:https://github.com/microsoft/playwright-mcp
- Actor 仓库:https://github.com/apify/actor-playwright-mcp
- Apify MCP 文档:https://mcp.apify.com
🚩 认领此 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_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
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
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。