无头浏览器服务

Browser MCP是一款基于MCP协议的无头浏览器服务器,为AI助手提供网页浏览、内容提取、截图及交互功能。

  • by Adarsh1Y
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 Adarsh1Y/browser-mcp

使用说明

🌐 浏览器MCP

用于模型上下文协议(MCP)的轻量级无头浏览器服务器

浏览器MCP为AI助手带来了网页浏览功能。导航页面、提取内容、截图以及与web元素交互——所有这些都是通过MCP协议完成的。

✨ 特性

  • 🌐 导航和浏览 -加载任何URL并浏览网页
  • 📸 截图 -捕获整页或可见部分
  • 🔍 内容提取 -从页面获取HTML或纯文本
  • 🖱️ 元素交互 -点击、填写表单并互动
  • 📜 JavaScript执行 -在页面上下文中运行自定义JS
  • 🔧 查找元素 -通过CSS选择器或XPath定位元素
  • 🍪 Cookie管理 -访问浏览器Cookie

📦 安装

快速安装

pip install browser-mcp

系统相关性

Ubuntu/Debian:

sudo apt install libwebkit2gtk-4.1-dev python3-gi python3-gi-cairo gir1.2-webkit2-4.1

Fedora:

sudo dnf install webkit2gtk4.1-devel pygobject3 cairo-gobject

Arch Linux:

sudo pacman -S webkit2gtk4.1 python-gobject python-cairo gobject-introspection

macOS:

brew install webkitgtk4.1 gobject-introspection pygobject3 py3cairo

🚀 用法

命令行界面

# Run directly
python -m browser_mcp

# Or install and run
pip install browser-mcp
browser-mcp

使用克劳德桌面

添加到您的 claude_desktop_config.json:

{
  "mcpServers": {
    "browser": {
      "command": "python",
      "args": ["-m", "browser_mcp"]
    }
  }
}

使用n8n

// In your n8n MCP node configuration
{
  "command": "python",
  "args": ["-m", "browser_mcp"]
}

🛠️ 可用工具

工具 说明 参数
navigate 导航到URL url, wait (可选)
get_page_content 获取页面HTML -
get_text 提取可见文本 -
click 单击元素 selector, xpath (可选)
fill 填写输入 selector, value
screenshot 截图 path, full_page (可选)
execute_js 运行JavaScript script
find_elements 查找元素 selector, xpath (可选)
get_cookies 获取Cookie -

💡 例子

基本导航

# Navigate to a page
{"name": "navigate", "arguments": {"url": "https://google.com"}}

# Get the page text
{"name": "get_text", "arguments": {}}

表单交互

# Fill a search box and search
{"name": "fill", "arguments": {"selector": "input[name='q']", "value": "search query"}}
{"name": "click", "arguments": {"selector": "button[type='submit']"}}

截图

# Take a screenshot
{"name": "screenshot", "arguments": {"path": "/tmp/page.png"}}

自定义JavaScript

# Extract specific data with JS
{"name": "execute_js", "arguments": {"script": "document.title"}}
{"name": "execute_js", "arguments": {"script": "[...document.querySelectorAll('a')].map(a => a.href)"}}

🔧 发展

# Clone the repo
git clone https://github.com/Adarsh1Y/browser-mcp
cd browser-mcp

# Create virtual environment
python -m venv .venv
source .venv/bin/activate  # Linux/macOS
# .venv\Scripts\activate   # Windows

# Install with dev dependencies
pip install -e ".[dev,webkit]"

# Run tests
pytest

# Lint
ruff check .

# Type check
mypy browser_mcp

📁 项目结构

browser-mcp/
├── browser_mcp/
│   ├── __init__.py       # Package init
│   ├── __main__.py       # Entry point
│   ├── browser.py        # WebKit browser wrapper
│   ├── server.py         # MCP server implementation
│   └── cli.py            # CLI interface
├── tests/
│   └── test_browser.py   # Unit tests
├── examples/
│   └── basic_usage.py    # Usage examples
├── pyproject.toml        # Project config
├── README.md
├── LICENSE
├── CONTRIBUTING.md
└── CHANGELOG.md

🐛 故障排除

“WebKitGTK不可用”

确保安装了系统依赖项:

sudo apt install libwebkit2gtk-4.1-dev python3-gi python3-gi-cairo gir1.2-webkit2-4.1

无头环境问题

WebKitGTK需要一个显示器。在无头环境中,使用Xvfb:

xvfb-run python -m browser_mcp

屏幕截图上的权限被拒绝

确保目标目录可写:

chmod 755 /tmp

🤝 贡献

欢迎投稿!请看 贡献.md 作为指导方针。

📝 许可证

MIT许可证-请参阅 许可证 了解详情。

⭐ 表示支持

给一个⭐ 如果这个项目对你有帮助!


由以下材料制成❤️ 对于AI社区