使用MCP服务器控制浏览器的AI代理

简介

MCP(Multi-Control Protocol)服务器是一种允许AI代理控制浏览器的工具,通过使用browser-use包实现浏览器自动化。它支持两种传输模式:SSE(Server-Sent Events)和stdio。

基础知识点

  1. 浏览器自动化:使用Playwright等工具来控制浏览器的行为,如打开网页、点击按钮等。
  2. MCP协议:一种用于AI代理与浏览器之间通信的协议,支持SSE和stdio两种传输方式。
  3. VNC流媒体:允许实时观看浏览器自动化过程。

安装步骤

1. 安装依赖

首先,需要安装uv工具和mcp-proxy

bash 复制代码
curl -LsSf https://astral.sh/uv/install.sh | sh
uv tool install mcp-proxy
uv tool update-shell

2. 配置环境

创建一个.env文件,设置必要的环境变量:

bash 复制代码
OPENAI_API_KEY=your-api-key
CHROME_PATH=optional/path/to/chrome
PATIENT=false  # 设置为true时,API调用将等待任务完成

3. 安装依赖包

使用uv安装必要的Python包:

bash 复制代码
uv sync
uv pip install playwright
uv run playwright install --with-deps --no-shell chromium

运行服务器

SSE模式

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

bash 复制代码
uv run server --port 8000

stdio模式

  1. 构建并安装全局包
bash 复制代码
uv build
uv tool uninstall browser-use-mcp-server 2>/dev/null || true
uv tool install dist/browser_use_mcp_server-*.whl
  1. 运行服务器
bash 复制代码
browser-use-mcp-server run server --port 8000 --stdio --proxy-port 9000

客户端配置

SSE模式客户端配置

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"
      }
    }
  }
}

Docker部署

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

构建Docker镜像

perl 复制代码
bash
docker build -t browser-use-mcp-server .

运行容器

bash 复制代码
docker run --rm -p8000:8000 -p5900:5900 browser-use-mcp-server

自定义VNC密码

创建一个包含密码的文件,然后将其挂载到容器中:

bash 复制代码
echo "your-secure-password" > vnc_password.txt
docker run --rm -p8000:8000 -p5900:5900 \
  -v $(pwd)/vnc_password.txt:/run/secrets/vnc_password:ro \
  browser-use-mcp-server

VNC查看器

使用noVNC作为浏览器查看器:

bash 复制代码
git clone https://github.com/novnc/noVNC
cd noVNC
./utils/novnc_proxy --vnc localhost:5900

默认密码为browser-use,除非使用自定义密码方法覆盖。

示例用法

尝试使用AI代理打开网页并获取顶级文章:

bash 复制代码
open https://news.ycombinator.com and return the top ranked article
相关推荐
青松@FasterAI1 小时前
【大模型面试】大模型(LLMs)高频面题全面整理(★2025年5月最新版★)
面试·职场和发展·大模型开发·大模型面试·nlp面试·nlp面题·大模型面题
爱吃涮毛肚的肥肥(暂时吃不了版)1 小时前
仿腾讯会议——创建房间&加入房间
c++·qt·面试·职场和发展·腾讯会议
源码云商2 小时前
基于 SpringBoot + Vue 的校园管理系统设计与实现
vue.js·spring boot·后端
奔驰的小野码3 小时前
SpringAI实现AI应用-内置顾问
java·人工智能·后端·spring
普通人zzz~3 小时前
SpringBoot记录用户操作日志
java·spring boot·后端
大三开学菜鸟3 小时前
记录一下spring-cloud-starter-alibaba-nacos-config 2023.0.3.2与springboot版本及配置问题
java·spring boot·后端·spring·intellij-idea
_Power_Y3 小时前
面试算法刷题练习1(核心+acm)
算法·面试
gxh19923 小时前
springboot微服务连接nacos超时
linux·后端·微服务·nacos
bxp13215 小时前
springboot国家化多语言实现
java·spring boot·后端
程序员JerrySUN6 小时前
驱动开发硬核特训 · 专题篇:Vivante GPU 与 DRM 图形显示体系全解析(i.MX8MP 平台实战)
linux·驱动开发·嵌入式硬件·面试·职场和发展·架构