隐形浏览器MCP服务器
](https://github.com/VishnuSuresh2000/stealth-browser-mcp)
一个使用MCP(模型上下文协议)的隐形网络抓取服务器 Patchright 对于未被检测到的浏览, Xvfb 用于反无头检测,以及 PyAutoGUI 用于绕过验证码。提供与智能内容提取的web搜索集成。
⚠️ 无需API密钥 -此服务器使用无头浏览器(Patchright)直接抓取网络搜索。没有API密钥,没有速率限制,不需要注册。
链接
- GitHub存储库: https://github.com/VishnuSuresh2000/stealth-browser-mcp
- 问题: https://github.com/VishnuSuresh2000/stealth-browser-mcp/issues
- 技能文档:参见
skills/stealth-browser-mcp/有关代理集成的详细信息。 - 连接其他MCP客户端:
skills/stealth-browser-mcp/references/mcp-clients.md
特性
- 🕵️ 隐身模式:使用Patchright(未检测到的Playwright分支)+Xvfb来避免机器人检测
- 🔓 验证码解决:自动检测并解决Cloudflare旋转栅门、hCaptcha和reCAPTCHA问题
- 📄 整页剪贴:抓取任何网页并转换为干净的Markdown
- 🔍 网络搜索:在没有API密钥的情况下搜索web
- 🤖 AI就绪提取:针对LLM/RAG优化的内容——干净、结构化、无噪音
- 📋 来自搜索的AI摘要:
stealth_search自动提取搜索引擎自己的人工智能生成的摘要(如果可用)和引用的来源
服务器URL
http://stealth-browser-mcp:8080/mcp健康检查: http://stealth-browser-mcp:8080/health
可用工具
| 工具 | 说明 |
|---|---|
stealth_search | 搜索网页(不需要API密钥)。 返回AI摘要 如果可用,加上引用的来源 |
stealth_extract | 从URL提取干净的内容 |
stealth_scrape | 将整页作为Markdown进行剪贴 |
browser_navigate | 导航到URL |
browser_back | 返回历史记录 |
browser_screenshot | 捕获页面/元素屏幕截图 |
browser_click | 单击元素 |
browser_fill | 填写输入字段 |
browser_hover | 将鼠标悬停在元素上 |
browser_evaluate | 执行JavaScript |
browser_solve_captcha | 自动解决验证码挑战 |
快速开始
先决条件
- Docker和Docker Compose
- (可选) 麦克波特 用于MCP集成
1.克隆和构建
git clone https://github.com/VishnuSuresh2000/stealth-browser-mcp.git
cd stealth-browser-mcp
docker compose up -d --build2.验证部署
# Check container health
docker ps
# Test health endpoint
curl http://localhost:8080/health
# Expected: {"status": "healthy", "server": "stealth-browser-mcp"}3.配置mcporter(可选)
# Add to mcporter config
mcporter config add stealth-browser --url http://localhost:8080/mcp
# List available tools
mcporter list stealth-browser与OpenClaw代理一起使用
此服务器提供MCP工具,可以作为 技能 在OpenClaw代理中。技能扩展代理能力;您可以通过本地副本或mcporter安装此技能。
安装方法
本地安装(手动)
将技能文件夹复制到代理的工作区或全局技能目录:
# Workspace-specific (preferred)
cp -r skills/stealth-browser-mcp ~/.openclaw/workspace/your-agent/skills/
# Global (available to all agents)
cp -r skills/stealth-browser-mcp ~/.openclaw/skills/MCP服务器导入(mcporter)
将正在运行的服务器添加为MCP源:
mcporter config add stealth-browser --url http://localhost:8080/mcp然后导入到OpenClaw中:
mcporter config import opencode --copy验证
检查技能是否合格,工具是否可用:
openclaw skills list --eligible
openclaw skills info stealth-browser-mcp文档
- OpenClaw代理概念: docs/concepts/agent.md
- MCP集成(mcporter): docs/tools/mcporter.md
- 多代理设置: docs/concepts/multi-agent.md
- 多代理设置: docs/concepts/multi-agent.md
使用示例
通过mcporter命令行界面
# Search
mcporter call stealth-browser.stealth_search query="python async programming" count:5
# Extract content from URL
mcporter call stealth-browser.stealth_extract url="https://example.com/article"
# Navigate and screenshot
mcporter call stealth-browser.browser_navigate url="https://example.com"
mcporter call stealth-browser.browser_screenshot name="homepage"通过MCP客户端(代理集成)
服务器通过MCP协议在以下位置公开工具 /mcp 终点。将您的MCP客户端连接到:
http://localhost:8080/mcp配置
环境变量
| 变量 | 默认值 | 描述 |
|---|---|---|
DISPLAY | :99 | Xvfb显示器 |
STEALTH_MODE | true | 启用隐形功能 |
CAPTCHA_AUTO_SOLVE | true | 自动解决验证码 |
PORT | 8080 | 服务器端口 |
MAX_CONTENT_LENGTH | 5000 | 要返回的最大内容字符数 |
REQUEST_TIMEOUT | 30 | HTTP超时秒数 |
Docker Compose
services:
stealth-browser-mcp:
build: .
ports:
- "8080:8080"
environment:
- STEALTH_MODE=true
- CAPTCHA_AUTO_SOLVE=true
volumes:
- browser_data:/home/scraper/browser_data
cap_add:
- SYS_ADMIN
security_opt:
- seccomp=unconfined发展
本地设置
# Install uv (if not already installed)
curl -LsSf https://astral.sh/uv/install.sh | sh
# Create virtual environment and install dependencies
uv venv
source .venv/bin/activate
uv sync
# Install Patchright Chrome
patchright install chrome
# Run server (stdio mode)
python -m src.server
# Run server (HTTP mode)
python -m src.server --transport streamable-http --port 8080运行测试
# Activate venv
source .venv/bin/activate
# Run all tests
pytest tests/ -v
# Run with coverage
pytest tests/ --cov=src建筑
stealth-browser-mcp/
├── src/
│ ├── server.py # MCP server entry point
│ ├── browser/
│ │ ├── manager.py # Browser lifecycle
│ │ ├── stealth.py # Xvfb + anti-detection
│ │ └── captcha.py # CAPTCHA solving
│ └── tools/
│ ├── navigation.py # browser_navigate, browser_back
│ ├── interaction.py # browser_click, browser_fill
│ ├── extraction.py # browser_screenshot, browser_evaluate
│ └── stealth_search.py # stealth_search, stealth_extract
├── templates/ # CAPTCHA element templates
├── tests/ # Unit and integration tests
├── Dockerfile
├── docker-compose.yml
├── entrypoint.sh
└── pyproject.toml防检测功能
| 功能 | 实现 |
|---|---|
| 无头检测 | Xvfb+头戴式Chrome |
| Runtime.enable泄漏 | Patchright隔离的上下文 |
| navigator.webdriver | Patchright删除标志 |
| 画布指纹 | 带Xvfb的真实画布 |
| 行为检测 | 通过PyAutoGUI实现类人鼠标 |
验证码支持
| 类型 | 检测 | 解决方法 |
|---|---|---|
| Cloudflare旋转栅门 | iframe选择器 | PyAutoGUI点击 |
| hCaptcha | .h-captcha元素 | PyAutoGUI+OCR |
| reCAPTCHA v2 | .g-reCAPTCHA元素 | 点击+音频回退 |
安全说明
- 容器以非root用户身份运行
scraper - 图像中未存储API密钥
- 浏览器数据保存在Docker卷中
- 建议:在生产中使用网络隔离
故障排除
容器无法启动
# Check logs
docker logs stealth-browser-mcp
# Common issues:
# - Xvfb lock file: Remove /tmp/.X99-lock
# - Port in use: Change PORT in docker-compose.ymlMCP连接失败
# Verify endpoint
curl http://localhost:8080/health
# Check mcporter config
mcporter list stealth-browser机器人检测
- 确保
STEALTH_MODE=true - 检查Xvfb是否正在运行:
docker exec stealth-browser-mcp ps aux | grep Xvfb - 测试地点https://bot.sannysoft.com/
许可证
MIT许可证-有关详细信息,请参阅许可证文件。
贡献
- 分叉存储库
- 创建要素分支
- 进行更改
- 运行测试:
pytest tests/ - 提交拉取请求
致谢
- Patchright -未被发现的剧作家
- MCP Python SDK -MCP实施
- 编织 -内容提取
