项目简介

'browser-control-with-nova-act' 是一个集成了 Model Context Protocol (MCP) 的浏览器自动化后端应用示例。它旨在展示如何构建一个能够接收大型语言模型 (LLM) 客户端指令、通过 MCP 协议控制浏览器执行任务(如网页导航、元素交互、数据提取)并将结果(包括截图)返回给 LLM 的系统。这个项目包含了一个实现 MCP 服务器功能的 Python 组件,负责与底层的 Nova Act 浏览器控制库交互,以及一个 FastAPI 后端应用作为整体协调层,并通过一个 Next.js 前端提供用户界面。

主要功能点

  • MCP 工具暴露: 通过标准 MCP 协议暴露浏览器控制能力,如导航到指定 URL ('navigate')、执行自然语言指令驱动的页面交互 ('act') 和从页面提取结构化数据 ('extract_data')。
  • 多层智能协调: 采用 Supervisor-Agent-Nova Act 的三层架构,将复杂任务分解为可执行的浏览器操作序列。
  • 会话管理: 后端维护浏览器会话状态,支持跨回合的连续浏览器交互。
  • 可视化反馈: 能够捕获并返回当前页面截图,为LLM和用户提供视觉上下文。
  • 多种传输支持: MCP 服务器组件理论上支持 Stdio 和 HTTP 传输(本项目默认通过 Stdio 方式作为后端子进程运行)。

安装步骤

  1. 克隆仓库:
    git clone https://github.com/aws-samples/browser-control-with-nova-act.git
    cd browser-control-with-nova-act
  2. 后端设置:
    # 创建并激活Python虚拟环境
    python -m venv venv
    source venv/bin/activate  # Windows下为: venv\Scripts\activate
    
    # 安装后端依赖
    cd py-backend
    pip install -r requirements.txt
  3. 前端设置:
    # 返回项目根目录
    cd ..
    # 安装前端依赖 (需要Node.js和npm或yarn)
    npm install   # 或 yarn install
  4. 配置Nova Act API Key: Nova Act 是底层浏览器控制库,需要API Key。请将你的API Key设置为环境变量。
    export NOVA_ACT_API_KEY="your_nova_act_api_key_here"
    # 或者将其添加到项目根目录的 .env 文件中
    echo "NOVA_ACT_API_KEY=your_nova_act_api_key_here" >> .env

MCP 服务器配置 (供MCP客户端参考)

该项目中的 MCP 服务器组件 ('py-backend/app/act_agent/server/nova-act-server/nova_act_server.py') 是作为整个后端应用的一个子进程启动和管理的。它默认通过 Stdio 协议与父进程(即AgentExecutor,MCP客户端)通信。

如果一个外部的通用 MCP 客户端需要连接到这个 MCP 服务器组件(例如,在不运行整个 'browser-control-with-nova-act' 后端应用的情况下单独运行 MCP 服务器),其配置信息大致如下:

  • 服务器名称: 'nova-browser-automation' (在 'py-backend/app/libs/config.py' 中定义)
  • 传输协议: 'stdio' (默认配置,通过标准输入/输出进行通信)
  • 启动命令: 'python' (或实际的 Python 解释器路径)
  • 启动参数: '['py-backend/app/act_agent/server/nova-act-server/nova_act_server.py', '--transport', 'stdio']' (指定运行服务器脚本并使用 stdio 传输)

请注意,在本项目默认运行方式下,MCP 服务器的启动和连接细节由 'py-backend/app/libs/agent_manager.py' 和 'py-backend/app/act_agent/client/browser_agent.py' 内部处理,外部 MCP 客户端通常无需关心这些细节,而是通过 FastAPI 后端 ('http://localhost:8000') 进行交互。这里的配置信息仅为理解该 MCP 服务器组件的独立运行方式提供参考。

基本使用方法

  1. 启动应用: 在项目根目录下运行以下命令,将同时启动前端和后端(包括MCP服务器作为后端子进程)。
    npm run dev
    应用将在 'http://localhost:3000' 启动。
  2. 通过前端界面交互: 打开浏览器访问 'http://localhost:3000'。使用聊天界面输入自然语言指令,例如:
    • 'Go to amazon.com'
    • 'Search for wireless headphones on Best Buy'
    • 'Click the search bar and type 'wireless headphones''
    • 'Extract the price and title of the first product'
    • 'Find the best-rated wireless headphones under $100 and compare their features'
  3. 查看执行过程: 在前端界面可以观察到 LLM 的思考过程和浏览器执行步骤的反馈(包括截图)。

信息

分类

网页与API