此 MCP 服务器通过 Puppeteer 提供浏览器自动化功能,允许与新的浏览器实例及现有的 Chrome 窗口进行交互。
该项目是一个受 @modelcontextprotocol/server-puppeteer 启发的实验性实现。虽然它具有相似的目标和概念,但它通过模型上下文协议探索了浏览器自动化的替代方法。
<a href="https://glama.ai/mcp/servers/lpt1tvbubf"><img width="380" height="200" src="https://gips3.baidu.com/it/u=605663264,3185482604&fm=3081&app=3081&f=PNG?w=760&h=400" alt="Puppeteer Server MCP 服务器" /></a>
/
├── src/
│ ├── config/ # 配置模块
│ ├── tools/ # 工具定义和处理器
│ ├── browser/ # 浏览器连接管理
│ ├── types/ # TypeScript 类型定义
│ ├── resources/ # 资源处理器
│ └── server.ts # 服务器初始化
├── index.ts # 入口点
└── README.md # 文档
npm install -g puppeteer-mcp-server
您也可以使用 npx 直接运行而不安装:
npx puppeteer-mcp-server
npm install
npm run build
npm start
要使用此工具与 Claude 结合,您需要将其添加到您的 MCP 设置配置文件中。
在您的 Claude 桌面配置文件(Windows 上位于 %APPDATA%\Claude\claude_desktop_config.json 或 macOS 上位于 ~/Library/Application Support/Claude/claude_desktop_config.json)中添加以下内容:
{
"mcpServers": {
"puppeteer": {
"command": "puppeteer-mcp-server",
"args": [],
"env": {}
}
}
}
{
"mcpServers": {
"puppeteer": {
"command": "npx",
"args": ["-y", "puppeteer-mcp-server"],
"env": {}
}
}
}
{
"mcpServers": {
"puppeteer": {
"command": "node",
"args": ["path/to/puppeteer-mcp-server/dist/index.js"],
"env": {
"NODE_OPTIONS": "--experimental-modules"
}
}
}
}
在您的 Claude VSCode 扩展 MCP 设置文件(Windows 上位于 %APPDATA%\Code\User\globalStorage\saoudrizwan.claude-dev\settings\cline_mcp_settings.json 或 macOS 上位于 ~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json)中添加以下内容:
{
"mcpServers": {
"puppeteer": {
"command": "puppeteer-mcp-server",
"args": [],
"env": {}
}
}
}
{
"mcpServers": {
"puppeteer": {
"command": "npx",
"args": ["-y", "puppeteer-mcp-server"],
"env": {}
}
}
}
{
"mcpServers": {
"puppeteer": {
"command": "node",
"args": ["path/to/puppeteer-mcp-server/dist/index.js"],
"env": {
"NODE_OPTIONS": "--experimental-modules"
}
}
}
}
对于源代码安装,请将 path/to/puppeteer-mcp-server 替换为您实际安装此工具的位置。
默认情况下,服务器将启动一个新的浏览器实例。
要连接到现有的 Chrome 窗口:
完全关闭任何现有的 Chrome 实例
启动带有远程调试功能的 Chrome:
# Windows
"C:\Program Files\Google\Chrome\Application\chrome.exe" --remote-debugging-port=9222
# macOS
/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --remote-debugging-port=9222
# Linux
google-chrome --remote-debugging-port=9222
在 Chrome 中导航到您想要的网页
使用 puppeteer_connect_active_tab 工具连接:
{
"targetUrl": "https://example.com", // 可选:特定标签页的 URL
"debugPort": 9222 // 可选:默认为 9222
}
服务器将:
连接到已启用远程调试的现有 Chrome 实例。
targetUrl - 要连接的具体标签页的 URLdebugPort - Chrome 调试端口(默认:9222)导航到一个 URL。
url - 要导航到的 URL截取当前页面或特定元素的屏幕。
name - 屏幕截图的名称selector - 要截图的元素的 CSS 选择器width - 宽度(以像素为单位,默认:800)height - 高度(以像素为单位,默认:600)点击页面上的元素。
selector - 要点击的元素的 CSS 选择器填写输入字段。
selector - 输入字段的 CSS 选择器value - 要输入的文本使用下拉菜单。
selector - 下拉菜单元素的 CSS 选择器value - 要选择的选项值悬停在元素上。
selector - 要悬停的元素的 CSS 选择器在浏览器控制台中执行 JavaScript。
script - 要执行的 JavaScript 代码当使用远程调试时:
服务器使用 Winston 实现全面的日志记录:
logs/ 目录mcp-puppeteer-YYYY-MM-DD.log服务器为以下情况提供了详细的错误消息:
每次工具调用都会返回:
所有错误都还会被记录到日志文件中,包括:
欢迎贡献!请阅读我们的 贡献指南,了解如何提交拉取请求、报告问题以及为项目做出贡献。
本项目根据 MIT 许可证发布 - 详情见 LICENSE 文件。