该MCP服务器通过Puppeteer提供浏览器自动化功能,支持与新浏览器实例及现有Chrome窗口的交互。
本项目是基于@modelcontextprotocol/server-puppeteer的实验性实现。虽然目标与概念相似,但它通过模型上下文协议探索了浏览器自动化的替代方法。
/ ├── 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文件。