摘要MCP服务器
用于web内容消化的MCP服务器 无浏览器.io 通过木偶核心。从动态网页(包括SPA和无限滚动网站)中提取完全渲染的DOM内容。
特性
- 连接到browserless.io云浏览器
- 加载具有可配置等待时间的网页
- 多次向下滚动页面,但有延迟
- 提取完整的页面内容(HTML)
安装
npm install
npm run build配置
使用以下方法之一设置browserless.io API密钥:
选项1:使用.env文件(推荐)
创建一个 .env 项目根目录中的文件:
cp .env.example .env然后编辑 .env 并添加您的API密钥:
BROWSERLESS_API_KEY=your_api_key_here选项2:使用环境变量
export BROWSERLESS_API_KEY=your_api_key_here用法
运行服务器
服务器使用stdio传输进行MCP通信:
node build/index.js工具:web_content
通过可选的滚动和HTML清理来获取网页内容。
参数:
url(string,必填):要获取的URLinitialWaitTime(number,可选):加载页面后等待的时间(毫秒)。默认值:3000scrolls(数字,可选):向下滚动页面的次数。默认值:5scrollWaitTime(数字,可选):每次滚动之间的等待时间(毫秒)。默认值:1000cleanup(布尔值,可选):是否清理HTML(删除脚本、样式、SVG、表单等),只保留有意义的文本内容。默认值:false
退货:
size(number):内容的大小(以字节为单位)content(string):获取的HTML内容
例子:
{
"url": "https://example.com",
"initialWaitTime": 2000,
"scrolls": 3,
"scrollWaitTime": 1000,
"cleanup": true
}运作原理
- 通过WebSocket使用API密钥连接到browserless.io
- 在远程浏览器中创建新页面
- 导航到指定的URL(等待加载DOM内容)
- 等待1秒以稳定页面
- 等待初始等待时间(默认值:3秒)
- 滚动到页面底部指定的次数
- 每次滚动后,智能地等待新内容加载:
- 监控页面高度变化 - 检测动态加载的内容 - 等待滚动WaitTime以获取新内容(默认值:3秒)
- 等待网络空闲(AJAX请求完成)
- 等待额外1秒进行JavaScript渲染
- 返回完全重命名的DOM (非原始HTML源代码)
- 包括所有JavaScript生成的内容 - 包括所有AJAX加载的内容 - 包括所有动态插入的元素 - 用途 document.documentElement.outerHTML 完整渲染状态
动态内容和无限滚动
该工具专为具有动态内容的现代web应用程序而设计:
AJAX/JavaScript处理:
- ✅ 等待网络空闲:确保所有AJAX请求完成
- ✅ 返回渲染的DOM:获取JavaScript执行后的实际内容
- ✅ 非原始HTML源:使用浏览器的渲染输出
- ✅ 包含动态元素:捕获React、Vue、Angular等插入的内容。
无限滚动支持:
- ✅ 滚动到底:触发延迟加载机制
- ✅ 检测新内容:监视页面高度变化
- ✅ 智能等待:加载内容时提前退出
- ✅ 多次回退:如果JavaScript失败,请滚动键盘
非常适合:
- 单页应用程序(React、Vue、Angular)
- 无限滚动推送(推特、脸书、领英)
- 延迟加载的图像和内容
- AJAX驱动的内容(搜索结果、过滤器)
- 动态仪表板和管理面板
最佳效果提示:
- 默认
scrolls: 5适用于大多数延迟加载内容的页面 - 增加
scrolls对于非常长的无限滚动页面,为10-15 - 集
scrolls: 0禁用静态页面的滚动 - 使用
scrollWaitTime慢加载内容为1000-3000ms(默认值:1000ms) - 增加
initialWaitTime如果页面初始化繁重,则为5000+ - 对于SPA,留出时间进行初始JavaScript引导
- 使用
cleanup: true只提取有意义的文本内容,不提取脚本、样式和视觉元素 - 使用
cleanup: false(默认)获取完整渲染的HTML
MCP客户端配置
添加到您的MCP客户端配置中(例如,Claude Desktop):
{
"mcpServers": {
"digest": {
"command": "node",
"args": ["/path/to/digest-mcp/build/index.js"],
"env": {
"BROWSERLESS_API_KEY": "your_api_key_here"
}
}
}
}许可证
国际协调委员会
