mcpField
B
Browser-use MCP Client

Browser-use MCP Client

本地服务
github.com/Linzo99浏览器自动化3986 周前更新

关于 Browser-use MCP Client

Browser-use MCP 客户端是一个 React 应用,通过 Server-Sent Events(SSE)连接 MCP 服务,提供聊天式界面。它适合需要查看浏览器自动化结果的用户,并支持截图预览。

主要功能

  1. 01通过 SSE 与 MCP 服务实时通信
  2. 02支持浅色与深色主题
  3. 03浏览器截图实时预览
  4. 04保存聊天记录与消息线程
  5. 05可取消进行中的请求并清空记录

适用场景

  1. 01连接浏览器自动化 MCP 服务并查看执行过程
  2. 02预览 MCP 服务返回的网页截图
  3. 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+(用于运行示例服务)

🚀 开始使用

  1. 克隆仓库

    git clone <repository-url>
    cd browser-use-mcp-client
    
  2. 安装依赖项

    pnpm install
    
  3. 启动开发服务器

    pnpm dev
    
  4. 启动代理服务器

    ./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")

🤝 参与贡献

  1. Fork 仓库
  2. 创建功能分支
  3. 提交更改
  4. 将更改推送到分支
  5. 创建 Pull Request

📄 许可证

本项目根据 MIT 许可证授权,详情请参阅 LICENSE 文件。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。