Token导航 LogoToken导航TokenDH.com
Browserless MCP Server logo
浏览器工具stdio官方级别未说明来源级核验

Browserless MCP Server

MCP Server

一个基于Model Context Protocol (MCP)的浏览器自动化服务器,提供PDF生成、截图、内容提取、性能审计等全面的浏览器自动化功能。

工具数

0

提示词数

0

GitHub Stars

12

资源数

0
浏览器自动化TypeScript内容提取

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

Lizzard-Solutions

提供方

Lizzard-Solutions

最后核验

2026/5/17 20:20

运行时

Docker

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

docker run -p 3000:3000 ghcr.io/browserless/chromium

详细介绍

无浏览器MCP服务器

用于Browserless.io浏览器自动化的模型上下文协议(MCP)服务器。该服务器通过MCP工具为无浏览器强大的浏览器自动化功能提供了一个全面的接口。

特性

  • PDF生成:使用自定义样式将网页或HTML内容转换为PDF
  • 截图:捕获整页或特定元素的屏幕截图
  • 内容提取:在JavaScript执行后获取渲染的HTML内容
  • 自定义函数:在浏览器上下文中执行JavaScript代码
  • 文件下载:处理文件下载和程序化文件创建
  • 页面导出:导出包含所有资源的网页
  • 绩效审计:运行Lighthouse绩效审计
  • 反检测:绕过机器人检测和防刮擦措施
  • 浏览器QL:执行GraphQL查询以实现高级自动化
  • WebSocket连接:为木偶师/剧作家建立联系
  • 健康监测:检查实例运行状况并获取指标
  • 会话管理:监视活动浏览器会话

安装

  1. 克隆存储库:
git clone https://github.com/Lizzard-Solutions/browserless-mcp.git
cd browserless-mcp
  1. 安装依赖项:
npm install
  1. 构建项目:
npm run build
  1. 复制示例环境文件:
cp env.example .env
  1. 编辑 .env 使用无浏览器配置:
BROWSERLESS_HOST=localhost
BROWSERLESS_PORT=3000
BROWSERLESS_TOKEN=your-secure-token-here
BROWSERLESS_PROTOCOL=http
BROWSERLESS_TIMEOUT=30000
BROWSERLESS_CONCURRENT=5

用法

启动MCP服务器

npm start

或用于开发:

npm run dev

与MCP客户端一起使用

服务器提供以下工具:

1.初始化无浏览器连接

{
  "name": "initialize_browserless",
  "arguments": {
    "host": "localhost",
    "port": 3000,
    "token": "your-token",
    "protocol": "http",
    "timeout": 30000,
    "concurrent": 5
  }
}

2.生成PDF

{
  "name": "generate_pdf",
  "arguments": {
    "url": "https://example.com",
    "options": {
      "format": "A4",
      "printBackground": true,
      "displayHeaderFooter": true,
      "margin": {
        "top": "20mm",
        "bottom": "10mm",
        "left": "10mm",
        "right": "10mm"
      }
    }
  }
}

3.拍摄屏幕截图

{
  "name": "take_screenshot",
  "arguments": {
    "url": "https://example.com",
    "options": {
      "type": "png",
      "fullPage": true,
      "quality": 90
    }
  }
}

4.提取内容

{
  "name": "get_content",
  "arguments": {
    "url": "https://example.com",
    "waitForSelector": {
      "selector": "#content-loaded",
      "timeout": 5000
    }
  }
}

5.执行自定义功能

{
  "name": "execute_function",
  "arguments": {
    "code": "export default async function ({ page }) { await page.goto('https://example.com'); const title = await page.title(); return { data: { title }, type: 'application/json' }; }",
    "context": {
      "customData": "value"
    }
  }
}

6.运行绩效审计

{
  "name": "run_performance_audit",
  "arguments": {
    "url": "https://example.com",
    "config": {
      "extends": "lighthouse:default",
      "settings": {
        "onlyCategories": ["performance", "accessibility"]
      }
    }
  }
}

7.绕过Bot检测

{
  "name": "unblock",
  "arguments": {
    "url": "https://protected-site.com",
    "content": true,
    "screenshot": true,
    "stealth": true,
    "blockAds": true
  }
}

8.执行BrowserQL查询

{
  "name": "execute_browserql",
  "arguments": {
    "query": "mutation { goto(url: \"https://example.com\") { status } click(selector: \"#button\") { success } screenshot { base64 } }",
    "variables": {}
  }
}

9.创建WebSocket连接

{
  "name": "create_websocket_connection",
  "arguments": {
    "browser": "chromium",
    "library": "puppeteer",
    "stealth": true,
    "viewport": {
      "width": 1920,
      "height": 1080
    }
  }
}

10.健康和监测

{
  "name": "get_health",
  "arguments": {}
}
{
  "name": "get_sessions",
  "arguments": {}
}
{
  "name": "get_metrics",
  "arguments": {}
}

无浏览器设置

Docker设置

# Basic setup
docker run -p 3000:3000 ghcr.io/browserless/chromium

# With configuration
docker run \
  --rm \
  -p 3000:3000 \
  -e "CONCURRENT=10" \
  -e "TOKEN=your-secure-token" \
  ghcr.io/browserless/chromium

Docker Compose

version: '3.8'

services:
  browserless:
    image: ghcr.io/browserless/chromium:latest
    container_name: browserless
    restart: unless-stopped
    ports:
      - "3000:3000"
    environment:
      - TOKEN=your-secure-token-here
      - CONCURRENT=10
      - TIMEOUT=120000
      - HEALTH=true
      - CORS=true
    volumes:
      - ./data:/app/data
      - ./downloads:/app/downloads

高级示例

复杂的Web剪贴

{
  "name": "execute_function",
  "arguments": {
    "code": "export default async function ({ page }) { await page.goto('https://example.com'); await page.waitForSelector('.item'); const items = await page.evaluate(() => Array.from(document.querySelectorAll('.item')).map(el => ({ text: el.textContent, href: el.href }))); return { data: { items }, type: 'application/json' }; }"
  }
}

多步表单自动化

{
  "name": "execute_function",
  "arguments": {
    "code": "export default async function ({ page }) { await page.goto('https://example.com/form'); await page.type('#username', 'user@example.com'); await page.type('#password', 'password123'); await page.click('#submit'); await page.waitForNavigation(); const result = await page.evaluate(() => document.querySelector('.success-message').textContent); return { data: { result }, type: 'application/json' }; }"
  }
}

PDF报告生成

{
  "name": "generate_pdf",
  "arguments": {
    "html": "body{font-family:Arial;margin:20px;} .header{background:#333;color:white;padding:20px;} .content{margin:20px 0;}

Monthly Report

Summary

This is a generated report with custom styling.

",
    "options": {
      "format": "A4",
      "printBackground": true,
      "displayHeaderFooter": true,
      "headerTemplate": "
Confidential Report
",
      "footerTemplate": "
Page 
"
    }
  }
}

配置选项

环境变量

变量默认值描述
BROWSERLESS_HOSTlocalhost无浏览器主机
BROWSERLESS_PORT3000无浏览器端口
BROWSERLESS_TOKEN必需身份验证令牌
BROWSERLESS_PROTOCOLhttp协议(http/https/ws/wss)
BROWSERLESS_TIMEOUT30000请求超时(毫秒)
BROWSERLESS_CONCURRENT5最大并发会话数

无浏览器配置

有关完整的无浏览器配置选项,请参阅 无浏览器API参考.

错误处理

MCP服务器为常见问题提供详细的错误消息:

  • 连接错误:检查主机、端口和令牌配置
  • 超时错误:增加加载缓慢页面的超时值
  • 身份验证错误:验证令牌是否正确以及是否具有适当的权限
  • 资源错误:检查并发会话限制和内存使用情况

发展

建筑

npm run build

测试

npm test

掉毛

npm run lint

格式化

npm run format

故障排除

常见问题

  1. 连接被拒绝

- 确保无浏览器运行 - 检查主机和端口配置 - 验证防火墙设置

  1. 认证失败

- 验证令牌是否正确 - 检查令牌权限 - 确保令牌未过期

  1. 超时错误

- 增加超时值 - 检查网络连接 - 监控无浏览器资源使用情况

  1. 内存问题

- 减少并发会话限制 - 监控系统内存使用情况 - 重新启动无浏览器实例

调试模式

启用调试日志记录:

DEBUG=browserless:* npm start

贡献

  1. 分叉存储库
  2. 创建要素分支
  3. 进行更改
  4. 添加测试
  5. 提交拉取请求

许可证

MIT许可证-有关详细信息,请参阅许可证文件。

支持

对于问题和疑问:

  1. 检查 无浏览器API参考
  2. 查看 无浏览器文档
  3. 在GitHub上打开一个问题

相关项目

仓库

  • GitHub: https://github.com/Lizzard-Solutions/browserless-mcp
  • 问题: https://github.com/Lizzard-Solutions/browserless-mcp/issues
  • 讨论: https://github.com/Lizzard-Solutions/browserless-mcp/discussions

目录标签

目录标签

浏览器自动化TypeScript内容提取本地部署PDF生成网页截图性能审计反检测

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

token

运行时(runtime,运行环境)

Docker

部署方式(deploymentType,部署类型)

remote-capable

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdiotokenremote-capable

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP