Skip to main content
Glama

MCP Browser

一款原生 macOS 网络浏览器,它将自身作为 Model Context Protocol 服务器公开,以便 AI 智能体能够像人类一样驱动真实的 WKWebView——进行导航、点击、填写表单、读取 DOM、截屏、运行 JavaScript 以及捕获网络和控制台活动。

基于 SwiftUI + WKWebView 构建。MCP 服务器通过本地 HTTP 在进程内运行,具有 bearer-token 身份验证和 DNS 重绑定防御功能。

下载

⬇ 下载最新的 macOS 构建版本 — 适用于 Apple Silicon 的已签名、已公证的 .dmg 文件。

下载后,打开 DMG 并将 MCP Browser 拖到您的应用程序文件夹中。

截图

MCP Browser 窗口

MCP Browser 工具和设置

为什么选择它

大多数针对智能体的“浏览器即工具”方案通常分为两类:

  1. 无头自动化(Playwright, Puppeteer)—— 速度快且可脚本化,但智能体无法看到您所看到的界面,无法共享您的登录会话,并且运行在与您信任的浏览器不同的引擎中。

  2. 远程控制的云浏览器 —— 您的数据会离开您的机器,并且您需要按会话付费。

MCP Browser 是第三种选择:它是您 Mac 上一个真实的浏览器窗口,您可以登录、导航并亲自使用它——当您需要时,LLM 可以通过 MCP 驱动它。Cookie、历史记录、书签和下载内容都保留在本地。智能体看到的页面与您看到的一模一样。

功能

浏览器

  • WKWebView 支持的标签页,具有 Safari 风格的标签栏(网站图标、悬停关闭、等宽标签)

  • URL 栏,带有历史记录 + 书签自动补全

  • 书签栏、完整的书签管理器、历史记录视图、下载弹出窗口

  • 页面内查找、每个主机的缩放持久化、画中画控制器

  • 书签导入器(HTML / Safari / Chrome 格式)

  • 每个标签页的 Cookie 和网络捕获

MCP 服务器

  • 本地 HTTP 传输,端口为 8833(可配置)—— POST /mcp 用于 JSON-RPC,GET /mcp 用于 SSE 风格的状态

  • Bearer-token 身份验证,每个启动周期生成一个令牌,可在设置中重新生成

  • DNS 重绑定防御 —— Host 请求头会针对 127.0.0.1 / localhost 进行验证

  • 自动注册,通过 MCPRegistrar 与常见的 MCP 客户端(Claude Desktop, Codex 等)集成

  • 工具操作日志 —— 每次工具调用都会记录参数、结果摘要和耗时

工具(当前目录)

  • 导航 —— navigate, back, forward, reload, current_url, current_title

  • 标签页 —— list_tabs, new_tab, switch_tab, close_tab

  • DOM —— click, fill, submit, hover, press_key, type_text, scroll, find_in_page, get_element, accessibility_tree

  • 页面内容 —— read_text, read_page, page_metadata, screenshot, pdf_export, render_html, eval_js, find, list_links, list_forms

  • Cookies / 存储 —— get_cookies, set_cookie, storage, clear_session

  • 书签 —— list_bookmarks, open_bookmark_folder

  • 检查 —— console_logs, network_log, dialog

  • 文件 —— download, upload_file(受用户权限控制)

  • 杂项 —— wait_for, emulate, resize

请参阅 MCP Browser/MCP/MCPToolCatalog.swift 获取权威列表。

隐私与安全

  • 每次启动的 bearer token —— 没有该令牌的客户端将收到 401 Unauthorized 错误

  • 来源 / 主机验证 —— 阻止来自恶意本地网页的 DNS 重绑定攻击

  • 用户确认 —— 针对下载、上传和任何 dialog 交互进行确认

  • 默认仅限本地 —— 服务器绑定到 127.0.0.1,绝不绑定到公共网络

  • 设置中的操作日志 —— 您可以准确查看智能体在您的浏览器中执行了什么操作

要求

  • macOS 14+ (Sonoma 或更高版本)

  • Xcode 16+(用于从源码构建)

入门指南(用户)

  1. Releases 页面下载最新的 DMG。

  2. MCP Browser 拖到 /Applications 并启动它。

  3. 打开 Settings → Connection 以复制 bearer token 和 MCP 端点 URL。

  4. 在您的 MCP 客户端(Claude Desktop, Codex 等)中添加服务器。应用程序的 Settings → MCP Clients 选项卡可以自动为最常见的客户端修补配置。

  5. 正常浏览。当 LLM 需要在网页上执行操作时,它会通过 MCP 调用工具,您将在日志中看到该操作。

入门指南(开发者)

  1. 克隆此仓库。

  2. 在 Xcode 中打开 MCP Browser.xcodeproj

  3. 选择 MCP Browser 方案。

  4. My Mac 上构建并运行。

CLI 构建:

xcodebuild -project "MCP Browser.xcodeproj" -scheme "MCP Browser" -configuration Debug build

构建您自己的分支

该项目附带了原作者的签名设置。如果您要分叉以构建并发布自己的副本:

  1. 开发团队 —— 在 Xcode 中打开 MCP Browser 目标 → Signing & Capabilities → 选择您自己的团队。这会重写 MCP Browser.xcodeproj/project.pbxproj 中的 DEVELOPMENT_TEAM

  2. Bundle identifier —— 将 PRODUCT_BUNDLE_IDENTIFIERcom.moosia.mcp-browser 更改为您拥有的标识符。

  3. 不包含 API 密钥。 MCP Browser 本身不调用任何 LLM 提供商 —— 它只为连接的任何客户端提供工具。

配置 MCP 客户端

大多数 MCP 客户端接受 HTTP 传输块。claude_desktop_config.json 示例:

{
  "mcpServers": {
    "mcp-browser": {
      "transport": "http",
      "url": "http://127.0.0.1:8833/mcp",
      "headers": {
        "Authorization": "Bearer <token-from-settings>"
      }
    }
  }
}

捆绑的 MCP Clients 设置选项卡可以为您已知的客户端(Claude Desktop, Codex 等)自动写入此配置 —— 选择客户端,点击 Add MCP Browser,它将直接修补文件。

每次您在 Settings → Connection 中点击 Regenerate token 时,令牌都会轮换。轮换后请重新修补您的客户端。

数据存储

  • 书签、历史记录、每个主机的缩放设置、下载内容和操作日志均使用 PersistentStore(基于文件)和 SwiftData(在适当情况下)本地存储。

  • Bearer token 存储在 UserDefaults 中。您可以随时从 Settings → Connection 重新生成它,以撤销现有客户端的访问权限。

  • 网站图标缓存在 Application Support 下的磁盘上。

  • 无遥测。无云同步。除非您调用的 MCP 工具导致数据传输,否则没有任何内容会离开机器。

项目结构

MCP Browser/
├── Browser/         WKWebView wrapper, tab model, presenter, scripts, PiP
├── MCP/             MCP server, JSON-RPC, host protocol, tool catalog
│   ├── Registrar/   Auto-config patcher for Claude Desktop / Codex / etc.
│   └── Tools/       Tool implementations (navigation, DOM, content, etc.)
├── Settings/        Settings tabs (general, privacy, connection, recorder, etc.)
├── Storage/         Bookmarks, history, downloads, favicons, action log
├── Views/           Bookmarks bar, bookmarks manager, history, downloads popover
├── ContentView.swift     Top-level window layout, tab strip, URL bar
├── AppCommands.swift     Menu bar commands and keyboard shortcuts
└── MCP_BrowserApp.swift  App entry point and environment wiring

关键文件

安全模型

MCP Browser 特意运行在 无沙盒 (un-sandboxed) 模式下,以便能够:

  • 修补 ~/Library/Application Support / ~/.config 中的 MCP 客户端配置文件

  • 在明确要求时驱动其他应用程序(例如打开外部方案)

不会

  • 绑定除回环地址 (127.0.0.1) 之外的任何网络接口

  • 在没有每次启动的 bearer token 的情况下接受连接

  • 响应 Host 请求头与 127.0.0.1localhost 不匹配的请求(DNS 重绑定防御)

  • 自行将任何内容发送出机器

如果您关注审计,整个 HTTP 接口位于 MCP Browser/MCP/MCPServer.swift 中,大约 400 行代码。

已知限制

  • 操作日志目前还不能从 UI 中进行回溯搜索。

  • 支持多窗口,但 MCP 协调器仅路由到最近获得焦点的窗口。

  • 网站的 OAuth 和基本身份验证流程由 WebKit 处理;MCP Browser 本身不存储密码。目前请通过 Safari/Chrome 导入使用系统钥匙串。

  • 没有移动端/iOS 构建版本 —— 这是一个仅限 Mac 的工具。

贡献

请参阅 CONTRIBUTING.md 了解如何提交错误、请求功能和提交拉取请求。

许可证

MIT

A
license - permissive license
-
quality - not tested
A
maintenance

Maintenance

Maintainers
3dResponse time
6dRelease cycle
2Releases (12mo)
Commit activity

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/brainfuel/mcp-browser'

If you have feedback or need assistance with the MCP directory API, please join our Discord server