mcp-browser
MCP Browser
一款原生 macOS 网络浏览器,它将自身作为 Model Context Protocol 服务器公开,以便 AI 智能体能够像人类一样驱动真实的 WKWebView——进行导航、点击、填写表单、读取 DOM、截屏、运行 JavaScript 以及捕获网络和控制台活动。
基于 SwiftUI + WKWebView 构建。MCP 服务器通过本地 HTTP 在进程内运行,具有 bearer-token 身份验证和 DNS 重绑定防御功能。
下载
⬇ 下载最新的 macOS 构建版本 — 适用于 Apple Silicon 的已签名、已公证的 .dmg 文件。
下载后,打开 DMG 并将 MCP Browser 拖到您的应用程序文件夹中。
截图


为什么选择它
大多数针对智能体的“浏览器即工具”方案通常分为两类:
无头自动化(Playwright, Puppeteer)—— 速度快且可脚本化,但智能体无法看到您所看到的界面,无法共享您的登录会话,并且运行在与您信任的浏览器不同的引擎中。
远程控制的云浏览器 —— 您的数据会离开您的机器,并且您需要按会话付费。
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_tabDOM ——
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_formsCookies / 存储 ——
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+(用于从源码构建)
入门指南(用户)
从 Releases 页面下载最新的 DMG。
将 MCP Browser 拖到
/Applications并启动它。打开 Settings → Connection 以复制 bearer token 和 MCP 端点 URL。
在您的 MCP 客户端(Claude Desktop, Codex 等)中添加服务器。应用程序的 Settings → MCP Clients 选项卡可以自动为最常见的客户端修补配置。
正常浏览。当 LLM 需要在网页上执行操作时,它会通过 MCP 调用工具,您将在日志中看到该操作。
入门指南(开发者)
克隆此仓库。
在 Xcode 中打开
MCP Browser.xcodeproj。选择
MCP Browser方案。在 My Mac 上构建并运行。
CLI 构建:
xcodebuild -project "MCP Browser.xcodeproj" -scheme "MCP Browser" -configuration Debug build构建您自己的分支
该项目附带了原作者的签名设置。如果您要分叉以构建并发布自己的副本:
开发团队 —— 在 Xcode 中打开
MCP Browser目标 → Signing & Capabilities → 选择您自己的团队。这会重写MCP Browser.xcodeproj/project.pbxproj中的DEVELOPMENT_TEAM。Bundle identifier —— 将
PRODUCT_BUNDLE_IDENTIFIER从com.moosia.mcp-browser更改为您拥有的标识符。不包含 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/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 特意运行在 无沙盒 (un-sandboxed) 模式下,以便能够:
修补
~/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 的工具。
贡献
请参阅 CONTRIBUTING.md 了解如何提交错误、请求功能和提交拉取请求。
许可证
This server cannot be installed
Maintenance
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