MCP服务器浏览器自动化

browser-use-mcp-server

直接从Cursor等应用浏览网页。

标签:

browser-use-mcp-server 详细介绍

项目概述

browser-use-mcp-server 是一个专为AI智能体设计的MCP(Maybe-Curious-Programmer 或类似的协议,用于AI交互)服务器。它的核心功能是利用 browser-use 库,赋予AI智能体控制网页浏览器的能力,实现自动化网页操作。

🔗 如果你需要管理多个这类MCP服务器,可以考虑使用 agent-browser 来简化你的开发工作流程。

主要功能与特点

  • 浏览器自动化: 项目的核心功能,使AI智能体能够通过编程接口控制和操作网页浏览器,执行诸如导航、点击、填写表单、抓取信息等任务。
  • 双重传输模式: 支持两种与客户端(AI智能体或集成环境)通信的协议:SSE (Server-Sent Events) 和 stdio(标准输入/输出)。这提供了灵活的集成选项,可以根据客户端环境选择合适的通信方式。
  • VNC流: 提供VNC(Virtual Network Computing)流功能,允许用户实时可视化地观看AI智能体控制浏览器执行操作的过程,这对于调试和演示非常有用。
  • 异步任务: 支持异步执行浏览器操作任务,提高了服务器的响应性和效率,允许处理多个请求或在执行耗时任务时保持可用。

先决条件

在安装和运行 browser-use-mcp-server 之前,需要安装以下工具:

  • uv: 一个快速的Python包管理器,用于管理项目依赖。
  • Playwright: 一个强大的浏览器自动化库,是服务器实现浏览器控制的基础。
  • mcp-proxy: 在使用stdio模式运行时必需的代理工具。

先决条件安装

  1. 安装 uv
    bash
    curl -LsSf https://astral.sh/uv/install.sh | sh
  2. 使用 uv 安装 mcp-proxy
    bash
    uv tool install mcp-proxy
  3. 更新你的shell环境以包含 uv 工具的路径:
    bash
    uv tool update-shell

环境配置

项目支持通过 .env 文件进行环境配置。创建一个名为 .env 的文件,并添加以下配置项(根据需要填写):

ini
OPENAI_API_KEY=your-api-key # OpenAI API 密钥,可能用于服务器与AI模型的交互或相关功能
CHROME_PATH=optional/path/to/chrome # 可选,指定Chrome浏览器可执行文件的路径
PATIENT=false # 设置为 true 时,服务器发起的API调用将等待浏览器自动化任务完成才返回;设置为 false 则可能立即返回。

项目安装

安装项目及其依赖:

  1. 安装项目依赖:
    bash
    uv sync
  2. 安装 Playwright Python 库:
    bash
    uv pip install playwright
  3. 安装 Playwright 所需的浏览器二进制文件及其依赖(此处指定安装 Chromium):
    bash
    uv run playwright install --with-deps --no-shell chromium

使用方法

browser-use-mcp-server 支持两种运行模式:SSE 模式和 stdio 模式。

SSE 模式

直接从项目源代码运行服务器:

bash
uv run server --port 8000 # 在端口 8000 启动服务器

stdio 模式

stdio 模式通常用于集成到其他应用程序或IDE中,需要先构建项目并将其安装为全局工具。

  1. 构建项目并全局安装为 uv 工具:
    bash
    uv build # 构建项目,生成 wheel 文件
    uv tool uninstall browser-use-mcp-server 2>/dev/null || true # 如果已安装则先卸载
    uv tool install dist/browser_use_mcp_server-*.whl # 安装刚刚构建的 wheel 文件
  2. 使用 stdio 传输方式运行服务器:
    bash
    browser-use-mcp-server run server --port 8000 --stdio --proxy-port 9000 # 运行服务器,启用 stdio 模式,指定服务器端口和 mcp-proxy 端口

客户端配置

客户端应用程序需要配置连接信息才能与 browser-use-mcp-server 交互。配置方式取决于所使用的模式。

SSE 模式客户端配置示例

客户端通常需要提供服务器的URL:

json
{
"mcpServers": {
"browser-use-mcp-server": {
"url": "http://localhost:8000/sse"
}
}
}

stdio 模式客户端配置示例

客户端通常需要配置如何启动服务器进程,包括命令、参数和环境变量:

json
{
"mcpServers": {
"browser-server": {
"command": "browser-use-mcp-server",
"args": [
"run",
"server",
"--port",
"8000",
"--stdio",
"--proxy-port",
"9000"
],
"env": {
"OPENAI_API_KEY": "your-api-key" # 客户端可以在启动时通过环境变量传递 API 密钥
}
}
}
}

客户端配置常见位置

一些流行的客户端应用程序存储MCP配置文件的位置示例:

  • Cursor: ./.cursor/mcp.json
  • Windsurf: ~/.codeium/windsurf/mcp_config.json
  • Claude (Mac): ~/Library/Application Support/Claude/claude_desktop_config.json
  • Claude (Windows): %APPDATA%\Claude\claude_desktop_config.json

本地开发

如果你希望本地开发和测试 browser-use-mcp-server 项目,可以遵循以下步骤:

  1. 从项目根目录构建一个可分发的 wheel 文件:
    bash
    uv build
  2. 将其安装为全局 uv 工具:
    bash
    uv tool uninstall browser-use-mcp-server 2>/dev/null || true
    uv tool install dist/browser_use_mcp_server-*.whl
  3. 从任何目录运行服务器。需要设置 OPENAI_API_KEY 环境变量:
    bash
    export OPENAI_API_KEY=your-api-key-here # 为当前session设置密钥
    # 或者在单次运行命令中内联提供密钥
    OPENAI_API_KEY=your-api-key-here browser-use-mcp-server run server --port 8000 --stdio --proxy-port 9000
  4. 修改代码后,需要重新构建并重新安装:
    bash
    uv build
    uv tool uninstall browser-use-mcp-server
    uv tool install dist/browser_use_mcp_server-*.whl

使用 Docker

使用 Docker 提供了一个一致且隔离的环境来运行服务器:

  1. 构建 Docker 镜像:
    bash
    docker build -t browser-use-mcp-server .
  2. 运行容器,默认的 VNC 密码是 “browser-use”:
    bash
    docker run --rm -p8000:8000 -p5900:5900 browser-use-mcp-server

    • --rm: 确保容器停止时自动移除。
    • -p 8000:8000: 将容器的 8000 端口映射到主机的 8000 端口(服务器端口)。
    • -p 5900:5900: 将容器的 5900 端口映射到主机的 5900 端口(VNC 端口)。
  3. 使用自定义的 VNC 密码运行容器(从文件读取密码):
    • 创建一个文件(例如 vnc_password.txt),仅包含你想要的密码。
      bash
      echo "your-secure-password" > vnc_password.txt
    • 将密码文件作为 secret 挂载到容器内部:
      bash
      docker run --rm -p8000:8000 -p5900:5900 \
      -v $(pwd)/vnc_password.txt:/run/secrets/vnc_password:ro \
      browser-use-mcp-server
    • 注意:-v 挂载命令中的 :ro 标志使得容器内部的密码文件为只读,增加了安全性。

VNC 查看器

要实时观看浏览器自动化过程,可以使用 VNC 查看器连接到服务器暴露的 VNC 端口(默认 5900)。一个方便的基于浏览器的查看器是 noVNC:

  1. 克隆 noVNC 仓库:
    bash
    git clone https://github.com/novnc/noVNC
  2. 进入 noVNC 目录:
    bash
    cd noVNC
  3. 运行 noVNC 代理,连接到服务器的 VNC 端口:
    bash
    ./utils/novnc_proxy --vnc localhost:5900

    默认密码为 browser-use,除非你在运行服务器时使用了自定义密码。

示例

你可以尝试向你的AI智能体提出以下任务:

open https://news.ycombinator.com and return the top ranked article
智能体将通过 browser-use-mcp-server 控制浏览器执行此操作,并返回结果。

支持

如遇问题或有任何疑问,请访问:cobrowser.xyz

数据统计

相关导航

暂无评论

暂无评论...
网络错误 --.