关于 MCP Browser
MCP Browser 是一款 macOS 浏览器,将真实 WKWebView 页面交由 AI Agent 通过 MCP 操作。它支持页面交互、内容读取和网络检查,浏览数据保存在本机,并以令牌保护仅监听本地的服务。
主要功能
- 01WKWebView 多标签浏览
- 02导航、点击和表单操作
- 03读取 DOM、截图及导出 PDF
- 04查看 Cookie、网络和控制台记录
- 05本地 HTTP 服务与令牌认证
- 06下载和上传需用户确认
适用场景
- 01让 Agent 操作已登录的网页
- 02填写并提交网页表单
- 03检查页面内容与网络请求
- 04通过截图或 PDF 保存页面
MCP 相关
应用通过本地 HTTP 提供 MCP 服务,向客户端开放浏览器导航、DOM、内容、Cookie、文件等工具。服务使用每次启动生成的 bearer token,并默认仅绑定 127.0.0.1。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
MCP Browser
一款原生 macOS 网页浏览器,可作为 Model Context Protocol 服务运行,让 AI Agent 像真人一样操作真实的 WKWebView——导航、点击、填写表单、读取 DOM、截取屏幕截图、运行 JavaScript,以及捕获网络和控制台活动。
使用 SwiftUI + WKWebView 构建。MCP 服务通过本地 HTTP 在进程内运行,并采用 bearer-token 身份验证和 DNS 重绑定防护。
下载
⬇ 下载最新的 macOS 版本 — 适用于 Apple Silicon 的签名并经过公证的 .dmg。
下载后,打开 DMG,并将 MCP Browser 拖到 Applications 文件夹。
截图


为什么选择 MCP Browser
大多数面向 Agent 的“浏览器即工具”方案分为两类:
- 无头自动化(Playwright、Puppeteer)——速度快、便于编写脚本,但 Agent 看不到你看到的内容,无法共享你已登录的会话,而且使用的浏览器引擎也不是你信任的那个。
- 远程控制的云端浏览器——你的数据会离开本机,而且每个会话都要付费。
MCP Browser 是第三种选择:在 Mac 上打开一个真实的浏览器窗口,由你登录、导航并亲自使用;当你提出要求时,大模型也能通过 MCP 操作它。Cookie、历史记录、书签和下载内容都会保留在本地。Agent 看到的页面与你看到的相同。
功能
浏览器
- 基于 WKWebView 的标签页,配有 Safari 风格的标签栏(网站图标、悬停关闭、等宽圆角标签)
- URL 栏,支持历史记录和书签自动补全
- 书签栏、完整的书签管理器、历史记录视图、下载弹出窗口
- 页面内查找、按站点保存缩放设置、画中画控制器
- 书签导入器(HTML / Safari / Chrome 格式)
- 按标签页捕获 Cookie 和网络活动
MCP 服务
- 本地 HTTP 传输,端口为
8833(可配置)——POST /mcp用于 JSON-RPC,GET /mcp用于 SSE 风格的状态查询 - Bearer-token 身份验证,每次启动时生成独立令牌,可在 Settings 中重新生成
- DNS 重绑定防护——根据
127.0.0.1/localhost验证Host标头 - 通过
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 - Cookie / 存储——
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 - Origin / Host 验证——阻止恶意本地网页发起 DNS 重绑定攻击
- 下载、上传及任何
dialog交互都需要用户确认 - 默认仅限本地访问——服务绑定到
127.0.0.1,不会连接到公共网络 - Settings 中的操作日志——你可以准确查看 Agent 在浏览器中执行过的操作
系统要求
- macOS 14+(Sonoma 或更高版本)
- 从源代码构建需要 Xcode 16+
开始使用(用户)
- 从 Releases 页面下载最新的 DMG。
- 将 MCP Browser 拖到
/Applications,然后启动它。 - 打开 Settings → Connection,复制 bearer token 和 MCP 端点 URL。
- 在你的 MCP 客户端(Claude Desktop、Codex 等)中添加该服务。应用的 Settings → MCP Clients 标签页可以自动为最常用的客户端修改配置。
- 按平常的方式浏览。当大模型需要在网页上执行操作时,它会通过 MCP 调用工具,你可以在日志中看到相关操作。
开始使用(开发者)
- 克隆此仓库。
- 在 Xcode 中打开
MCP Browser.xcodeproj。 - 选择
MCP Browser方案。 - 在 My Mac 上构建并运行。
CLI 构建:
xcodebuild -project "MCP Browser.xcodeproj" -scheme "MCP Browser" -configuration Debug build
构建你自己的分支
项目附带原作者的签名设置。如果你要创建分支并构建、发布自己的副本:
- 开发团队 — 在 Xcode 中打开
MCP Browsertarget → Signing & Capabilities → 选择你自己的团队。这会重写MCP Browser.xcodeproj/project.pbxproj中的DEVELOPMENT_TEAM。 - Bundle 标识符 — 将
PRODUCT_BUNDLE_IDENTIFIER从com.moosia.mcp-browser改为你自己的标识符。 - 不包含 API 密钥。 MCP Browser 本身不会调用任何大模型提供商,只会向连接的客户端提供工具。
配置 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/MCPServer.swift— 基于NWListener的 HTTP/JSON-RPC 服务、身份验证和重绑定防护MCP/MCPCoordinator.swift— 将工具调用路由到焦点窗口的活动标签页MCP/MCPToolCatalog.swift— 所有已提供工具的注册表MCP/MCPSecret.swift— 由 Keychain 支持的 bearer tokenBrowser/BrowserTab.swift— 封装WKWebView的逐标签页@Observable模型Browser/WebViewHost.swift—NSViewRepresentable桥接层
安全模型
MCP Browser 特意以非沙盒方式运行,以便:
- 修改
~/Library/Application Support/~/.config中的 MCP 客户端配置文件 - 在明确请求时驱动其他应用(例如打开外部协议)
它不会:
- 绑定除环回地址(
127.0.0.1)之外的任何网络接口 - 接受缺少每次启动时生成的 bearer token 的连接
- 接受
Host标头与127.0.0.1或localhost不匹配的请求(防御 DNS 重绑定) - 自行向本机之外发送任何内容
如果你关注代码审计,整个 HTTP 接口都位于 MCP Browser/MCP/MCPServer.swift 中,大约有 400 行。
已知限制
- 目前无法通过 UI 追溯搜索操作日志。
- 支持多窗口,但 MCP 协调器只会将请求路由到最近获得焦点的窗口。
- 网站的 OAuth 和基本身份验证流程由 WebKit 处理;MCP Browser 本身不会存储密码。目前请通过 Safari/Chrome 导入功能使用系统钥匙串。
- 没有移动版/iOS 版本——这是一款仅适用于 Mac 的工具。
参与贡献
有关如何报告 bug、请求功能和提交拉取请求,请参阅 CONTRIBUTING.md。
许可证
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。