mcpField
B
Browse Together MCP

Browse Together MCP

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

关于 Browse Together MCP

Browse Together MCP 将持续运行的可视化 Playwright 浏览器与 MCP 服务结合,适合在编写代码时自动化网页操作或共同浏览。它可使用已登录的浏览器会话,也支持通过 HTTP 发送浏览器命令。

主要功能

  1. 01持续运行的 Playwright 浏览器会话
  2. 02支持 Chromium 或 Firefox
  3. 03通过命名标签管理多个页面
  4. 04通过 HTTP API 控制浏览器
  5. 05为 HTTP 端点提供 API 令牌保护

适用场景

  1. 01在已登录的会话中浏览网页
  2. 02编写代码时导航和操作页面
  3. 03通过 MCP 工具读取页面 HTML

MCP 相关

MCP 服务向 MCP 客户端提供页面导航、点击、填写表单、读取页面内容、执行 fetch 和管理页面等工具,并通过 HTTP 将命令转发给浏览器服务。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"browse-together": {
"command": "npx",
"args": [
"-y",
"playwright"
]
}
}
}
启动命令npx -y playwright

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmplaywright

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

Browse Together MCP

使用 MCP 服务的 Playwright 浏览器代理

在桌面上运行 Playwright 浏览器和 MCP 服务。你可以启动一个有头浏览器(供人类交互使用)及配套的 MCP 服务,通过 HTTP API 或 MCP 服务控制浏览器。

本项目提供两项互补的服务,用于浏览器自动化和共同浏览:

  • 浏览器代理服务:通过 HTTP 控制持久运行的 Playwright 浏览器实例。让你像平常一样登录所使用的服务。
  • MCP 服务:通过 FastMCP 框架向 MCP 客户端(如 Claude Desktop)提供浏览器功能。它可以在你提供的已认证会话中运行,让你的 MCP 命令以已认证用户的身份拥有更强大的功能和更广泛的用途。

这两项服务均使用 Deno 和 TypeScript 构建,可无缝协同工作。

功能
  • 多浏览器支持:可使用 Chromium(默认)或 Firefox 运行。
  • 持久浏览器会话:单个浏览器实例在服务运行期间持续运行。
  • 命名标签页:使用唯一 ID 控制单个浏览器会话中的多个页面(标签页)。
  • HTTP API:通过 HTTP 使用简单的 JSON 命令与浏览器交互。
  • MCP 集成:通过 Cline、Windsurf、Claude Desktop 或其他 MCP 客户端使用浏览器。
  • 类型安全:使用 Zod 对传入命令进行可靠验证。
  • 使用 API 令牌保护浏览器代理服务(HTTP)端点。

注意:目前支持 Mac OS,但只需稍作修改即可扩展至其他平台。

这是 Computer Use / Operator 吗?

目前还不是。这是一个有头网页浏览器,其行为与普通的人工控制浏览器相同,但也允许你通过 HTTP API 或 MCP 客户端控制会话。虽然你可以获取屏幕截图、下载文档等,但它并不是 Computer Use / Operator 服务。

可以把它看作基于 MCP 的浏览器会话远程控制工具,用于在编码时下载文档或执行其他任务。

核心组件

  • 浏览器服务:

    • browser.ts:浏览器代理服务的主要实现
    • types.ts:使用 Zod 定义命令结构和类型
  • MCP 服务:

    • mcp.ts:连接浏览器服务的 FastMCP 实现

使用方法

开发者快速入门
  1. 安装先决条件: 安装 Playwright 的浏览器包(假设你已安装 npx):

    # Install all browsers
    npx playwright install
    
    # Or install specific browsers
    npx playwright install chromium
    npx playwright install firefox
    

    安装 Deno:

    curl -fsSL https://deno.land/install.sh | sh
    

    更多详情请参阅 Deno 安装指南。

  2. 启动浏览器服务:

    deno task browser
    

    这会在 http://localhost:8888(或你在环境中指定的端口)启动浏览器代理

  3. 配置 MCP 客户端:

    {
        "mcpServers": {
     	   "browse-together": {
     		   "command": "deno",
     		   "args": ["run", "-A", "/Users/duane/Projects/browse-together-mcp/mcp.ts"]
          },
      }
    }
    

    你也可以直接启动 MCP 服务进行测试:

    deno task mcp
    
浏览器选择

你可以通过设置 BROWSER_TYPE 环境变量或使用 --browser-type 标志来选择要使用的浏览器:

# Use Firefox via environment variable
BROWSER_TYPE=firefox deno task browser

# Or via CLI flag
deno task browser --browser-type firefox
选项 1:通过 HTTP API 交互

向 /api/browser/:pageId 发送 POST 请求,并在 JSON 请求体中描述操作。

示例:导航至 URL

curl -X POST http://localhost:8888/api/browser/myTab \
  -H "Content-Type: application/json" \
  -d '{"action":"goto","url":"https://example.com"}'

示例:点击元素

curl -X POST http://localhost:8888/api/browser/myTab \
  -H "Content-Type: application/json" \
  -d '{"action":"click","selector":"#submit-button"}'

更多详情请参阅 002-browser.md 中的 API 参考。

选项 2:与 MCP 客户端搭配使用
  1. 通过编辑 claude_desktop_config.json,在 MCP 客户端(例如 Cline、Windsurf、Claude Desktop)中配置 MCP 服务:
{
  "mcpServers": {
    "browse-together": {
      "command": "/path/to/deno", 
      "args": [
        "run",
        "--allow-read",
        "--allow-net",
        "--allow-env",
        "--allow-sys",
        "/path/to/browse-together-mcp/mcp.ts"
      ],
      "env": {
        "PORT": "8888" 
      }
    }
  }
}
  1. 在客户端中使用 MCP 工具执行如下命令:
Let's browse to jsr.io together.
可用的 MCP 工具

MCP 服务向客户端提供以下工具:

  • goto:导航至 URL
  • click:点击元素
  • fill:填写表单字段
  • content:获取页面 HTML 内容
  • fetch:在浏览器上下文中执行 fetch 请求
  • listPages:列出所有活动的浏览器页面
  • closePage:关闭指定页面

文档

本项目通过一系列描述渐进式规划步骤的文档进行氛围编程:

其中一些步骤可能已过时或不再适用,但仍作为参考,帮助了解项目的构建过程。

另请参阅 vibe-coders.org,了解更多关于我们位于犹他州桑迪市的本地氛围编程小组的信息。

开发

  • 运行浏览器代理: deno task browser
  • 运行 MCP 服务: deno task mcp
  • 格式化代码: deno fmt
  • 检查依赖项: deno check --all browser.ts mcp.ts types.ts

架构

+----------------+      +--------------+      +------------------+
|                |      |              |      |                  |
| Cline/LLM      | ---- | MCP Server   | ---- | Browser Service  |
| (MCP Client)   |      | (mcp.ts)     | HTTP | (browser.ts)     |
|                |      |              |      |                  |
+----------------+      +--------------+      +------------------+
                               |                       |
                          FastMCP API            Playwright API
                               |                       |
                           STDIO/SSE            Chromium Browser

系统的工作方式如下:

  1. 浏览器服务(browser.ts)使用 Playwright 管理持久运行的 Chromium 浏览器实例
  2. MCP 服务(mcp.ts)使用 FastMCP 提供标准 MCP 接口
  3. MCP 服务通过 HTTP 将命令转发给浏览器服务
  4. Claude Desktop 等 MCP 客户端可通过简单的工具调用使用所有浏览器功能

评论

支持 Markdown

第一次接触 MCP?

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

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