浏览器自动化协议

MCP-Browse是一个用于自动化控制和电子商务网站交互的浏览器控制协议,提供导航、点击、输入、下载和执行脚本等功能。

  • by tylergannon
  • Go
  • 本地部署
  • 更新于
在 GitHub 查看 tylergannon/mcp-browse

使用说明

MCP浏览

一种用于自动化和电子商务网站交互的浏览器控制协议。

概述

MCP Browse提供了一个干净、流线型的界面,用于通过远程协议控制浏览器交互。它特别关注常见的电子商务网站交互,如:

  • 导航到页面
  • 点击元素
  • 输入表单数据
  • 下载图像和文件
  • 执行JavaScript

所有操作都使用协议缓冲区进行高效、类型化的通信。

协议设计

该协议是围绕表示用户与浏览器交互的“手势”设计的:

  1. 导航 -访问具有可选重定向处理的URL
  2. 点击 -使用ID或CSS选择器点击元素
  3. 输入 -在表单字段中输入值(文本、复选框、选择下拉菜单)
  4. 下载 -检索图像或文件
  5. 执行脚本 -在页面上运行JavaScript并获取结果

浏览器手势操作(导航、单击、输入)返回流式响应,其中包括:

  • 零个或多个重定向事件
  • 页面内容或错误信息
  • 完成事件

实用程序操作(下载、执行脚本)返回包含请求数据的单个响应。

示例用法

// Create a client
// client := NewMCPBrowserServiceClient(...)

// Navigate to a product page
navigateReq := apiv1.NavigateRequest_builder{
    Url: stringPtr("https://example-shop.com/products"),
    AllowRedirects: boolPtr(true),
}.Build()

// Process the response stream
// stream, err := client.Navigate(context.Background(), navigateReq)
// handleResponseStream(stream)

// Click on a product
clickReq := apiv1.ClickRequest_builder{
    CssSelector: stringPtr(".product-item"),
}.Build()

// Process the response stream
// stream, err = client.Click(context.Background(), clickReq)
// handleResponseStream(stream)

// Add to cart
clickReq = apiv1.ClickRequest_builder{
    CssSelector: stringPtr(".add-to-cart-button"),
}.Build()

// Process the response stream
// stream, err = client.Click(context.Background(), clickReq)
// handleResponseStream(stream)

建立和运行

先决条件

  • 转到1.18+
  • 协议缓冲区编译器

设置

  1. 克隆存储库
  2. 安装依赖项:
    go mod download
    
  3. 生成协议缓冲区代码:
    buf generate
    

运行测试

go test ./...

许可证

MIT许可证