你是否曾经遇到过这样的情况:你用自动化脚本访问某个网站,却被识别出来并拒绝了服务?或者你想让AI帮你抓取某个网站的数据,但网站的反爬机制让你的请求屡屡碰壁?今天要介绍的开源项目stealth-browser-mcp,正是为了解决这个问题而生。它通过集成先进的隐身模式技术,让你的AI能够像真实用户一样浏览网页,而不会被检测到是机器人。
项目基本信息
| 信息项 | 详情 |
|---|---|
| 项目名称 | stealth-browser-mcp |
| GitHub地址 | https://github.com/brian-ln/stealth-browser-mcp |
| 项目描述 | A MCP Server that provides browser access through playwright with "stealth mode" enabled. |
| 作者 | brian-ln |
| 开源协议 | MIT License |
| 开源状态 | 公开状态 |
| Languages | TypeScript 100.0% |
| 支持平台 | Windows / macOS / Linux |
| 最后更新 | 2026-03-31 |
一、项目介绍
stealth-browser-mcp 是一个基于MCP协议的浏览器自动化服务器。它的核心特点是集成了隐身模式,通过多种反检测技术,让自动化浏览器看起来就像是真实的用户访问。项目基于Playwright构建,并使用了puppeteer-extra-plugin-stealth插件,能够修改浏览器指纹、处理WebGL、Canvas、字体、插件等各种浏览器指纹识别技术。
这个项目目前专注于提供截图功能,但它为更复杂的浏览器自动化操作打下了坚实的基础。无论你是想让AI帮你保存某个网页的快照,还是为后续的数据抓取做准备,stealth-browser-mcp都能以隐蔽的方式完成。
二、核心优势
开源免费且采用MIT协议
项目代码完全公开,采用宽松的MIT开源协议。你可以自由地使用、修改、甚至集成到商业项目中,无需担心法律问题。
隐身模式
这是项目最大的亮点。传统的浏览器自动化工具很容易被网站的反爬系统识别,因为它们会暴露一些特征(例如navigator.webdriver属性)。stealth-browser-mcp通过puppeteer-extra-plugin-stealth插件,能够:
- 隐藏自动化工具的特征
- 伪造真实的浏览器指纹
- 模拟真实用户的浏览行为
简单易用
项目只提供了一个截图工具,参数设计得非常直观。你不需要了解复杂的隐身模式配置,开箱即用。
技术栈先进
项目使用TypeScript编写,基于FastMCP框架,并采用Bun作为运行时。Bun是一个快速的JavaScript运行时,比Node.js启动更快,资源占用更低。
MCP原生集成
作为标准的MCP服务器,它可以无缝集成到任何支持MCP协议的客户端中,例如Cursor编辑器、Claude Desktop等。
三、适用场景
开发者学习和参考
对于想学习如何将隐身模式集成到浏览器自动化中的开发者,这是一个绝佳的参考项目。代码量不大,结构清晰,很容易理解。
个人项目使用和集成
如果你正在开发一个需要抓取数据但又容易被屏蔽的爬虫项目,stealth-browser-mcp可以作为底层驱动。例如:
- 抓取电商网站的商品价格信息
- 采集社交媒体上的公开数据
- 监控竞争对手的网站变化
企业级应用开发
在企业环境中,可以用它来构建数据采集平台或竞争对手分析系统。隐身模式可以大大降低被屏蔽的风险,提高数据采集的稳定性。
日常工作和效率提升
对于普通用户,可以通过AI助手来截图那些需要登录或反爬的网站:
- “帮我保存这个需要登录才能看到的页面截图”
- “定期截取某个数据仪表盘的快照”
四、安装教程
系统要求
| 工具 | 用途 | 下载/安装方式 |
|---|---|---|
| Bun | JavaScript运行时和包管理器 | [https://bun.sh/] |
| Git | 下载项目代码(可选) | [https://git-scm.com/] |
详细安装步骤
第一步:安装Bun运行时
如果你还没有安装Bun,打开终端执行以下命令:
curl -fsSL https://bun.sh/install | bash安装完成后,重启终端或执行source ~/.bashrc使环境变量生效。用bun --version验证安装是否成功。
第二步:克隆项目到本地
git clone https://github.com/brian-ln/stealth-browser-mcp.git
cd stealth-browser-mcp第三步:安装依赖
Bun会自动读取package.json并安装所有依赖:
bun install第四步:启动MCP服务器
bun start如果一切正常,你会看到服务器启动的日志。默认情况下,服务器会通过标准输入输出(stdio)与MCP客户端通信。
第五步:配置MCP客户端(以Cursor为例)
在Cursor编辑器中,打开MCP配置文件(mcp.json),添加以下内容:
{
"mcpServers": {
"stealth-browser": {
"command": "bun",
"args": ["/你的绝对路径/stealth-browser-mcp/index.ts"]
}
}
}注意:请将/你的绝对路径/替换为项目实际所在的完整路径。
保存后,Cursor会自动检测到新的MCP服务器。
五、使用示例
配置完成后,你就可以在MCP客户端中通过自然语言调用截图功能了。
示例1:截取整个网页
在Cursor中使用:输入 @stealth-browser screenshot url=https://example.com fullPage=true
或者更自然的说法:“请帮我截取https://github.com的完整页面截图”
AI会调用以下工具参数:
{
"url": "https://github.com",
"fullPage": true,
"headless": true
}示例2:只截取特定元素
假设你只想截取网页中的某个部分,可以通过CSS选择器来指定:
用户指令:“截取百度首页搜索框区域的截图”
工具调用:
{
"url": "https://www.baidu.com",
"selector": "#form",
"fullPage": false
}示例3:使用可见模式调试
有时候你可能想看看浏览器到底在做什么,可以使用非无头模式(headless=false):
工具调用:
{
"url": "https://www.example.com",
"fullPage": true,
"headless": false
}这样会弹出一个可见的浏览器窗口,你可以观察自动化过程。
示例4:批量截图
虽然项目本身只提供了一个工具,但你可以通过AI客户端来实现批量操作。例如,你可以说:
“请帮我截取以下网站的完整页面截图:google.com, github.com, stackoverflow.com,并保存到桌面。”
AI会循环调用screenshot工具三次,每次传入不同的URL。
示例5:集成到Python脚本
如果你想在Python程序中调用这个MCP服务器,可以使用MCP的Python SDK。以下是一个简单的概念示例:
import asyncio
from mcp import ClientSession, StdioServerParameters
async def main():
server_params = StdioServerParameters(
command="bun",
args=["/path/to/stealth-browser-mcp/index.ts"]
)
async with ClientSession(server_params) as session:
result = await session.call_tool(
"screenshot",
arguments={
"url": "https://example.com",
"fullPage": True
}
)
print(result)
asyncio.run(main())注意:上述代码仅为示意,实际使用时需要安装MCP Python SDK。
六、常见问题
问题1:启动服务器时提示“bun: command not found”
解决方案:请确保你已经正确安装了Bun。尝试重新打开终端,或者手动将Bun的安装路径添加到系统PATH中。Bun通常安装在~/.bun/bin目录下。
问题2:截图时提示“Browser closed”或超时
解决方案:这可能是网络问题或目标网站响应太慢。你可以尝试:
- 检查网络连接是否正常
- 在非无头模式(headless=false)下运行,观察浏览器行为
- 某些网站可能有严格的防火墙,即使隐身模式也可能被拦截
问题3:在Cursor中调用工具时没有反应
解决方案:
- 确认
mcp.json中的路径是否正确,并且使用了绝对路径 - 检查终端中stealth-browser-mcp服务器是否正在运行
- 尝试重启Cursor编辑器
问题4:截图保存到了哪里?
解决方案:目前项目的screenshot工具似乎没有提供指定保存路径的参数。截图可能会被返回为base64编码的图像数据,或者保存在临时目录中。建议查看项目的源码或文档以获取更详细的信息。你也可以向作者提Issue建议增加保存路径参数。
问题5:能否进行更复杂的操作,如点击、填表?
解决方案:目前项目只实现了截图功能。但因为它基于Playwright,理论上可以轻松扩展更多工具。如果你需要更完整的功能,可以考虑项目作者未来的更新,或者自己fork并添加所需的功能。
七、总结
stealth-browser-mcp是一个小而精的项目。它没有试图做一个大而全的浏览器自动化工具,而是专注于解决一个特定问题:如何让AI驱动的浏览器访问不易被检测。通过集成成熟的隐身模式技术,它成功地将复杂的反检测配置封装成了一个简单的截图工具。
虽然目前功能还比较单一(只有截图),但它的架构是开放的,基于Playwright和FastMCP,扩展其他浏览器操作(点击、填表、导航等)并不困难。如果你需要一个能够绕过基本反爬检测的浏览器截图工具,或者想学习如何将隐身模式集成到MCP服务器中,stealth-browser-mcp是一个非常好的起点。
项目的星数虽然不多(22颗星),但胜在简洁和专注。作者brian-ln在2025年2月创建了项目,至今仍在维护。相信随着时间推移,会有更多功能被加入。
能不能支持指定截图保存路径?现在不知道截图存在哪里。
我看了源码,截图似乎是返回base64数据,没有保存到文件。
你可以自己在客户端处理base64数据,转换成图片文件。
项目只有22颗星,但质量很高,值得更多人关注。
MIT协议好评,我可以放心集成到我的商业爬虫项目里。