关于 Browser-use MCP Client
Browser-use MCP 客户端是一个 React 应用,通过 Server-Sent Events(SSE)连接 MCP 服务,提供聊天式界面。它适合需要查看浏览器自动化结果的用户,并支持截图预览。
主要功能
- 01通过 SSE 与 MCP 服务实时通信
- 02支持浅色与深色主题
- 03浏览器截图实时预览
- 04保存聊天记录与消息线程
- 05可取消进行中的请求并清空记录
适用场景
- 01连接浏览器自动化 MCP 服务并查看执行过程
- 02预览 MCP 服务返回的网页截图
- 03测试基于 browser-use 的 MCP 服务
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
暂未收录安装方式
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
还没有获取到工具列表
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Browser-use MCP 客户端
一个现代化的 React 应用,通过服务器发送事件(SSE)提供友好的界面,用于与模型上下文协议(MCP)服务交互。
🎥 演示
https://github.com/user-attachments/assets/52ab11ad-741f-4506-99ad-9f1972a3aad1
🚀 功能
- 实时通信:直接通过 SSE 连接到 MCP 服务
- 交互式界面:使用 React 和 Tailwind CSS 构建的简洁、响应式界面
- 主题支持:支持浅色和深色模式,并可检测系统偏好设置
- 截图预览:实时显示 MCP 服务响应中的浏览器截图
- 消息历史记录:持久保存聊天历史记录,并清晰地串联消息
- 请求管理:取消正在进行的请求并清除聊天历史记录
- 连接管理:轻松配置服务连接
📋 先决条件
- Node.js(v18 或更高版本)
- pnpm(推荐的包管理器)
- 一个正在运行的 MCP 服务,用于连接
- Python 3.8+(用于运行示例服务)
🚀 开始使用
-
克隆仓库
git clone <repository-url> cd browser-use-mcp-client -
安装依赖项
pnpm install -
启动开发服务器
pnpm dev -
启动代理服务器
./proxy/index.js
应用将在 http://localhost:5173 上运行
💻 使用方法
🤖 示例 MCP 服务
以下是一个使用浏览器自动化的 Python MCP 服务示例:
#!/usr/bin/env python3
import asyncio
from dotenv import load_dotenv
from typing import Awaitable, Callable
from mcp.server.fastmcp import FastMCP, Context
from browser_use import Agent, Browser, BrowserConfig
from langchain_google_genai import ChatGoogleGenerativeAI
# Load environment variables from .env file
load_dotenv()
# Initialize FastMCP server
mcp = FastMCP("browser-use")
browser = Browser(
config=BrowserConfig(
chrome_instance_path="/Applications/Google Chrome.app/Contents/MacOS/Google Chrome --remote-debugging-port=9222",
headless=True
)
)
llm = ChatGoogleGenerativeAI(model="gemini-2.0-flash")
agent = None
@mcp.tool()
async def perform_search(task: str, context: Context):
"""Perform the actual search in the background."""
async def step_handler(state, *args):
if len(args) != 2:
return
await context.session.send_log_message(
level="info",
data={"screenshot": state.screenshot, "result": args[0]}
)
asyncio.create_task(
run_browser_agent(task=task, on_step=step_handler)
)
return "Processing Request"
@mcp.tool()
async def stop_search(*, context: Context):
"""Stop a running browser agent search by task ID."""
if agent is not None:
await agent.stop()
return "Running Agent stopped"
async def run_browser_agent(task: str, on_step: Callable[[], Awaitable[None]]):
"""Run the browser-use agent with the specified task."""
global agent
try:
agent = Agent(
task=task,
browser=browser,
llm=llm,
register_new_step_callback=on_step,
register_done_callback=on_step,
)
await agent.run()
except asyncio.CancelledError:
return "Task was cancelled"
except Exception as e:
return f"Error during execution: {str(e)}"
finally:
await browser.close()
if __name__ == "__main__":
mcp.run(transport="sse")
🤝 参与贡献
- Fork 仓库
- 创建功能分支
- 提交更改
- 将更改推送到分支
- 创建 Pull Request
📄 许可证
本项目根据 MIT 许可证授权,详情请参阅 LICENSE 文件。
评论
支持 Markdown
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。