浏览器自动化工具

一个基于Playwright的浏览器自动化工具,提供导航、点击、填充表单等基本网页操作功能。

  • by NassimKhaldi
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 NassimKhaldi/MCP-Agents

使用说明

MCP代理演示

这个仓库包含几个用(某种语言或框架)构建的最小化模型上下文协议(MCP)服务器 mcp.server.fastmcp.FastMCP以及一个使用 Playwright 驱动网络浏览器的示例。每个脚本都可以作为独立的 MCP 服务器运行。

内容

  • file_system_reader.py — 暴露工具以列出和读取安全基础目录中的文件。
  • simple_calculator.py — 暴露基本的数学工具(加、减、乘、除)。
  • playwright_mcp.py — 提供由Playwright驱动的浏览器自动化工具(导航、点击、填写、执行JS评估、获取文本/标题/URL)。

要求

  • Python 3.10+(建议使用3.11版本)
  • pip(注:在中文语境中,"pip"通常直接音译为“皮普”,但根据上下文,它可能是一个特定名称、品牌或技术的缩写,具体含义需结合上下文确定。此处仅提供音译。)
  • Windows PowerShell(以下示例使用PowerShell语法)

Python 包(参见 requirements.txt):

  • mcp — FastMCP 服务器库。
  • playwright — 用于……的浏览器自动化引擎 playwright_mcp.py。

注:Playwright 需要单独安装浏览器二进制文件(见下文)。

设置

  1. 创建并激活一个虚拟环境(推荐):
# From the repo root
python -m venv .venv
.\.venv\Scripts\Activate.ps1
  1. 安装Python依赖项:
pip install -r requirements.txt
  1. 安装 Playwright 浏览器(如果您计划使用则为必需) playwright_mcp.py):
python -m playwright install
  • 要启用带有Chromium的带界面模式(这是脚本默认使用的模式)的UI自动化,上述设置就足够了。

使用方法

每个脚本在直接执行时都会启动一个MCP服务器。在项目文件夹中打开一个PowerShell终端。

文件系统读取器

通过(某种方式)控制对基础目录的访问 FILE_READER_DIRECTORY 环境变量(默认为 ./documents)。 首次运行时,将自动创建基础目录。

# Optional: set a custom base directory (path must exist or will be created)
$env:FILE_READER_DIRECTORY = "C:\\path\\to\\your\\documents"

python .\file_system_reader.py

暴露的工具:

  • read_file(filename: str) -> str
  • list_files() -> str

简易计算器

python .\simple_calculator.py

暴露的工具:

  • add_number(a: int, b: int) -> int
  • sub_number(a: int, b: int) -> int
  • multiply_number(a: int, b: int) -> int
  • divide_number(a: int, b: int) -> int (注:目前返回 a * b 在代码中;如需除法运算,请相应调整

Playwright MCP 服务器

运行一个由 Playwright 支持的浏览器,并提供基本网页自动化的工具。以非无头模式启动 Chromium。

python .\playwright_mcp.py

暴露的工具(底层使用异步):

  • navigate(url: str) -> str
  • click(selector: str) -> str
  • fill(selector: str, value: str) -> str
  • evaluate_js(script: str) -> str
  • get_text() -> str
  • get_current_url() -> str
  • get_page_title() -> str

资源清理:在关闭时,脚本会尝试关闭浏览器并停止Playwright。

注意事项和提示

  • 安全: file_system_reader.py 通过验证解析出的文件路径是否仍位于配置的基础目录内,来防止路径遍历攻击。
  • Windows路径:在PowerShell中为单个命令内联设置环境变量时,建议设置 $env:NAME = "value" 在运行 Python 之前,另起一行输入。
  • 有头与无头:你可以更改 headless=False to True 在 playwright_mcp.py 如果你更倾向于无头自动化。

故障排除

  • Playwright 缺少浏览器:如果看到关于缺少浏览器可执行文件的错误,请重新运行:
    python -m playwright install
    
  • 设置时出现权限错误 FILE_READER_DIRECTORY确保 PowerShell 会话有权访问目标路径。
  • 读取文件时出现Unicode错误: file_system_reader.py 以UTF-8格式读取;确保您的文件是以UTF-8编码保存的,或根据需要调整编码。