Playwright MCP Server

Playwright MCP Server

site icon
2025.05.06 0
Python浏览器自动化浏览器自动化
Playwright MCP Server 是一个基于 Playwright 的浏览器自动化服务,通过 Model Context Protocol (MCP) 提供对浏览器实例的全面控制。它允许 AI 模型或其他 MCP 客户端执行跨多个页面/标签的复杂网页浏览任务。
View on GitHub

Overview

产品定位

Playwright MCP Server 是一个浏览器自动化服务,旨在通过 MCP 协议提供对浏览器实例的全面控制,支持多页面管理、导航、内容检索、交互等多种功能。

核心功能

  • 多页面管理:支持打开、关闭、切换和列出多个浏览器页面/标签。
  • 导航功能:包括跳转到 URL、前进/后退、重新加载等。
  • 内容检索:获取 HTML、文本内容、标题和当前 URL。
  • 交互功能:点击、填充、键入、按键、勾选/取消勾选、选择选项、悬停、拖放等。
  • 等待功能:等待元素、URL、加载状态等。
  • 状态和信息:获取元素状态、属性、边界框等。
  • 视觉功能:页面和元素的截图。
  • JavaScript 执行:执行任意 JavaScript 代码(需谨慎使用)。

适用场景

  • 自动化测试
  • 网页数据抓取
  • 网页内容交互模拟
  • 多页面浏览器任务管理

工具列表

页面管理

工具 描述
playwright_open_page 打开一个新的浏览器页面/标签
playwright_close_page 关闭特定页面或当前页面
playwright_switch_page 使特定页面变为活动页面
playwright_list_pages 列出所有打开的页面

导航

工具 描述
playwright_goto 导航到指定 URL
playwright_go_back 在历史记录中后退
playwright_go_forward 在历史记录中前进
playwright_reload 重新加载当前页面

内容检索

工具 描述
playwright_get_content 获取完整的 HTML 内容
playwright_get_text_content 获取页面或元素的文本内容
playwright_get_title 获取页面标题
playwright_get_url 获取当前 URL

交互

工具 描述
playwright_click 点击元素
playwright_fill 填充表单字段
playwright_type 模拟键盘输入文本
playwright_press 按下键盘按键
playwright_check 勾选复选框或单选按钮
playwright_uncheck 取消勾选复选框
playwright_select_option 选择下拉选项
playwright_hover 悬停在元素上
playwright_scroll_into_view 将元素滚动到视图中
playwright_set_input_files 上传文件到文件输入框
playwright_drag_and_drop 拖放一个元素到另一个元素

等待

工具 描述
playwright_wait_for_selector 等待元素达到特定状态
playwright_wait_for_url 等待 URL 匹配特定模式
playwright_wait_for_load_state 等待特定加载状态
playwright_sleep 暂停执行

状态和信息

工具 描述
playwright_get_element_state 获取元素的可见性、启用状态等
playwright_get_attribute 获取属性值
playwright_get_bounding_box 获取元素位置和尺寸
playwright_get_computed_style 获取计算后的 CSS 属性

视觉

工具 描述
playwright_take_screenshot 截取页面截图
playwright_take_element_screenshot 截取元素截图

JavaScript

工具 描述
playwright_evaluate 评估 JavaScript 并返回结果
playwright_execute_javascript 执行 JavaScript 无返回值

常见问题解答

  • 安全性问题playwright_evaluateplaywright_execute_javascript 工具功能强大,但如果服务器公开暴露,可能会带来安全风险。建议谨慎使用或禁用这些功能。

使用教程

使用依赖

安装前置依赖:

pip install "fastmcp>=2.0.0" playwright

安装 Playwright 浏览器:

playwright install chromium

安装教程

运行服务器:

fastmcp run main.py --transport sse --port 8001

运行客户端脚本:

python client_example.py

调试方式

运行客户端脚本后,可以通过调用不同的工具来调试浏览器行为。例如:

import asyncio
from fastmcp import Client

async def main():
    async with Client("stdio://python main.py") as client:
        # Open a new page and navigate to a website
        page_info = await client.call_tool("playwright_open_page", {"url": "https://example.com"})

        # Get the page title
        title = await client.call_tool("playwright_get_title", {})
        print(f"Page title: {title}")

        # Click a button
        await client.call_tool("playwright_click", {"selector": "button.submit"})

        # Take a screenshot
        screenshot = await client.call_tool("playwright_take_screenshot", {"full_page": True})

if __name__ == "__main__":
    asyncio.run(main())

许可证

该项目遵循 MIT 开源许可条款,请参阅 MIT 了解完整条款。