Skip to main content
Glama

browser-tools-mcp

持久的、有头 Chromium 浏览器控制,用于 OpenCode/Claude Code,风格仿照 Claude Code 的浏览器工具。构建于 2026-08-05,因为 OpenCode 没有原生浏览器工具,而 custom-scraper(纯 HTTP)无法读取重 JS 或需要登录的页面。

架构

MCP 服务器进程就是单例浏览器管理器。由于 OpenCode 在整个 CLI 会话期间保持 stdio 服务器存活,浏览器会在各 agent 轮次之间持续存在。如果浏览器崩溃或窗口被关闭,下一次工具调用会透明地重新启动它(server/browser.js)。

启动配置:headless: false, slowMo: 100,视口 1280x800,桌面版 Chrome UA,--disable-blink-features=AutomationControlled。

Related MCP server: Controlium

文件

  • server/server.js — MCP 入口点,注册五个工具 + 模式。

  • server/browser.js — 单例浏览器/上下文/页面管理器 + 重启逻辑。

  • server/tools.js — 操作实现(可交互元素树、目标定位、高亮、截图)。

  • server/_self_verify.js — 独立场景测试:npm run verify。

  • shots/ — 来自 browser_inspect 的截图。

  • USAGE.md — 面向 agent 的规则(接入 OpenCode 的 instructions)。

工具

工具

用途

browser_navigate(url)

加载一个 URL;返回最终 URL 和标题。

browser_inspect()

截图 + 带数字目标的交互元素树。

browser_click(target)

按检查编号、CSS 选择器或可见文本进行点击。

browser_fill(target, value)

按编号/选择器/文本向字段中输入内容。

browser_request_human(message)

暂停流程并向人类呈现问题。

元素定位符合 Claude Code 约定:browser_inspect 为每个可交互元素分配一个数字 target,在 DOM 中标记为 data-bt-target,以便后续操作解析到完全相同的元素(在带有隐藏输入的页面上,可见性过滤后的索引会相对于不过滤的 .nth() 产生漂移)。点击前元素会被短暂高亮,以便用户看到操作过程。

验证

npm run verify        # navigate -> inspect -> click -> fill -> crash-recovery

已验证于 2026-08-05:example.com 的导航/检查/点击、按目标填充 Google 表单、以及在关闭后重新启动均通过;五个工具均已注册并通过真实的 MCP stdio 协议做出响应。

操作注意事项

  • 有头意味着需要桌面环境。 Chromium 窗口需要交互式会话才能启动;在无头的/断开连接的机器上启动会失败——请如实报告而不是假装成功。

  • 隔离的浏览器。 这不是 Luigi 的已登录 Chrome(那是 chrome-bridge)。没有已登录的会话,没有扩展,完整的写入权限。

  • 人工把关。 未经明确指示不得登录/下单/发送;browser_request_human 表示在人工回答之前停止。

  • 已在 ~/.config/opencode/opencode.jsonc 中注册为 browser-tools MCP 服务器;使用规则通过 USAGE.md 接入 instructions。

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    Chrome extension + MCP bridge that gives Claude control over your real browser via CDP, enabling navigation, clicking, typing, scrolling, screenshots, and JS execution with a visible cursor and tab-bring-to-front.
    1
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    MCP server that lets AI agents drive your real Chromium browser with your existing signed-in sessions, providing visible, local, and inspectable automation for tasks like navigation, clicking, typing, and form filling.
    25
    1
    Apache 2.0
  • A
    license
    Not graded
    quality
    C
    maintenance
    Provides a headless Chromium browser through MCP, enabling AI agents to browse JavaScript-rendered pages, search the web, capture screenshots, extract tables and data, and run stateful multi-step interactions like clicking, typing, and form submission.
    1,619,036 npm
    1
    MIT