项目简介
'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 方式作为后端子进程运行)。
安装步骤
- 克隆仓库:
git clone https://github.com/aws-samples/browser-control-with-nova-act.git cd browser-control-with-nova-act - 后端设置:
# 创建并激活Python虚拟环境 python -m venv venv source venv/bin/activate # Windows下为: venv\Scripts\activate # 安装后端依赖 cd py-backend pip install -r requirements.txt - 前端设置:
# 返回项目根目录 cd .. # 安装前端依赖 (需要Node.js和npm或yarn) npm install # 或 yarn install - 配置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 服务器组件的独立运行方式提供参考。
基本使用方法
- 启动应用: 在项目根目录下运行以下命令,将同时启动前端和后端(包括MCP服务器作为后端子进程)。
应用将在 'http://localhost:3000' 启动。npm run dev - 通过前端界面交互: 打开浏览器访问 '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'
- 查看执行过程: 在前端界面可以观察到 LLM 的思考过程和浏览器执行步骤的反馈(包括截图)。
信息
分类
网页与API