Puppeteer浏览器自动化[MCP工具]
本文介绍了一个基于Puppeteer的ModelContextProtocol服务器,该服务器使LLMs能够在真实浏览器环境中与网页交互、执行JavaScript、截屏等操作。服务器提供了多种功能,包括导航到指定URL、捕获页面或特定元素的屏幕截图、点击页面元素、悬停、填写表单、选择元素以及执行JavaScript代码。此外,服务器还支持监控浏览器控制台日志和访问截图资源。用户可以通过Docker
一个使用 Puppeteer 提供浏览器自动化功能的 Model Context Protocol 服务器。该服务器使 LLMs 能够与网页交互、截屏以及在真实的浏览器环境中执行 JavaScript。
组件
工具
-
puppeteer_navigate
- 在浏览器中导航到任何 URL
- 输入:
url(字符串,必填):要导航到的 URLlaunchOptions(对象,可选):PuppeteerJS 的 LaunchOptions。默认为 null。如果更改且不为 null,则会重启浏览器。示例:{ headless: true, args: ['--user-data-dir="C:/Data"'] }allowDangerous(布尔值,可选):允许降低安全性的危险 LaunchOptions。当设置为 false 时,像--no-sandbox、--disable-web-security这样的危险参数将抛出错误。默认为 false。
-
puppeteer_screenshot
- 捕获整个页面或特定元素的屏幕截图
- 输入:
name(字符串,必填):截图的名称selector(字符串,可选):要截图的元素的 CSS 选择器width(数字,可选,默认为 800):截图宽度height(数字,可选,默认为 600):截图高度
-
puppeteer_click
- 点击页面上的元素
- 输入:
selector(字符串):要点击的元素的 CSS 选择器
-
puppeteer_hover
- 将鼠标悬停在页面上的元素上
- 输入:
selector(字符串):要悬停的元素的 CSS 选择器
-
puppeteer_fill
- 填写输入字段
- 输入:
selector(字符串):输入字段的 CSS 选择器value(字符串):要填写的值
-
puppeteer_select
- 选择带有 SELECT 标签的元素
- 输入:
selector(字符串):要选择的元素的 CSS 选择器value(字符串):要选择的值
-
puppeteer_evaluate
- 在浏览器控制台中执行 JavaScript
- 输入:
script(字符串):要执行的 JavaScript 代码
资源
服务器提供了访问两种类型的资源:
-
控制台日志 (
console://logs)- 以文本格式输出的浏览器控制台内容
- 包括来自浏览器的所有控制台消息
-
屏幕截图 (
screenshot://<name>)- 捕获的屏幕截图的 PNG 图像
- 可通过捕获时指定的截图名称访问
主要特性
- 浏览器自动化
- 控制台日志监控
- 截图功能
- JavaScript 执行
- 基本的网页交互(导航、点击、表单填写)
- 可自定义的 Puppeteer 启动选项
使用 Puppeteer 服务器的配置
以下是使用 Puppeter 服务器的 Claude Desktop 配置:
Docker
注意 Docker 实现将使用无头 Chromium,而 NPX 版本将打开一个浏览器窗口。
{
"mcpServers": {
"puppeteer": {
"command": "docker",
"args": ["run", "-i", "--rm", "--init", "-e", "DOCKER_CONTAINER=true", "mcp/puppeteer"]
}
}
}
NPX
{
"mcpServers": {
"puppeteer": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-puppeteer"]
}
}
}
启动选项
你可以通过以下两种方式自定义 Puppeteer 的浏览器行为:
-
环境变量: 在MCP配置的
env参数中设置PUPPETEER_LAUNCH_OPTIONS,其值为JSON编码的字符串:{ "mcpServers": { "mcp-puppeteer": { "command": "npx", "args": ["-y", "@modelcontextprotocol/server-puppeteer"], "env": { "PUPPETEER_LAUNCH_OPTIONS": "{ \"headless\": false, \"executablePath\": \"C:/Program Files/Google/Chrome/Application/chrome.exe\", \"args\": [] }", "ALLOW_DANGEROUS": "true" } } } } -
工具调用参数: 向
puppeteer_navigate工具传递launchOptions和allowDangerous参数:{ "url": "https://example.com", "launchOptions": { "headless": false, "defaultViewport": {"width": 1280, "height": 720} } }
构建
Docker构建:
docker build -t mcp/puppeteer -f src/puppeteer/Dockerfile .
火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。
更多推荐
所有评论(0)