mcp-browser
MCP Browser
Model Context Protocolサーバーとして機能するmacOSネイティブのWebブラウザです。AIエージェントが、人間と同じように実際のWKWebViewを操作(ナビゲーション、クリック、フォーム入力、DOMの読み取り、スクリーンショット撮影、JavaScript実行、ネットワークやコンソールの活動のキャプチャ)できます。
SwiftUI + WKWebViewで構築されています。MCPサーバーはローカルHTTP上でプロセス内実行され、ベアラートークン認証とDNSリバインディング対策を備えています。
ダウンロード
⬇ 最新のmacOSビルドをダウンロード — Apple Silicon用の署名・公証済み.dmgファイルです。
ダウンロード後、DMGを開き、MCP Browserをアプリケーションフォルダにドラッグしてください。
スクリーンショット


目的
エージェント向けの「ツールとしてのブラウザ」の多くは、以下の2つのキャンプに分かれています。
ヘッドレス自動化(Playwright、Puppeteer) — 高速でスクリプト可能ですが、エージェントはユーザーが見ているものを見ることができず、ログインセッションを共有できず、ユーザーが信頼するブラウザエンジンとは異なるエンジンで実行されます。
リモート制御のクラウドブラウザ — データがマシンから外部へ送信され、セッションごとに料金が発生します。
MCP Browserは第3の選択肢です。Mac上で実際に動作するブラウザウィンドウであり、ユーザー自身がログインしてナビゲートし、使用できます。そして、必要に応じてLLMがMCPを通じて操作することも可能です。Cookie、履歴、ブックマーク、ダウンロードはローカルに保持されます。エージェントはユーザーと同じページを見ることができます。
機能
ブラウザ
Safariスタイルのタブストリップ(ファビコン、ホバー時の閉じるボタン、等幅のタブ)を備えたWKWebViewベースのタブ
履歴とブックマークのオートコンプリート機能付きURLバー
ブックマークバー、完全なブックマークマネージャー、履歴ビュー、ダウンロードポップオーバー
ページ内検索、ホストごとのズーム設定の永続化、ピクチャー・イン・ピクチャーコントローラー
ブックマークインポーター(HTML / Safari / Chrome形式)
タブごとのCookieおよびネットワークキャプチャ
MCPサーバー
ポート
8833(設定可能)でのローカルHTTPトランスポート — JSON-RPC用のPOST /mcp、SSEスタイルのステータス用のGET /mcp起動ごとのトークンによるベアラートークン認証(設定から再生成可能)
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_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_formsCookie / ストレージ —
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 を参照してください。
プライバシーと安全性
起動ごとのベアラートークン — トークンがないクライアントは
401 Unauthorizedを受け取りますオリジン / ホスト検証 — 悪意のあるローカルWebページからのDNSリバインディング攻撃をブロックします
ダウンロード、アップロード、およびすべての
dialog操作に対するユーザー確認デフォルトでローカルのみ — サーバーは
127.0.0.1にバインドされ、パブリックネットワークには公開されません設定内のアクションログ — エージェントがブラウザ内で何を行ったかを正確に確認できます
要件
macOS 14+ (Sonoma以降)
ソースからビルドする場合はXcode 16+
はじめに(ユーザー向け)
Releasesページから最新のDMGをダウンロードします。
MCP Browserを
/Applicationsにドラッグして起動します。Settings → Connectionを開き、ベアラートークンとMCPエンドポイントURLをコピーします。
MCPクライアント(Claude Desktop、Codexなど)でサーバーを追加します。アプリのSettings → MCP Clientsタブから、一般的なクライアントの設定を自動的にパッチできます。
通常通りブラウジングします。LLMがWeb上で何かを行う必要がある場合、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が書き換えられます。バンドル識別子 —
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を使用してローカルに保存されます。ベアラートークンは
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— キーチェーンベースのベアラートークンBrowser/BrowserTab.swift—WKWebViewをラップするタブごとの@ObservableモデルBrowser/WebViewHost.swift—NSViewRepresentableブリッジ
セキュリティモデル
MCP Browserは、以下の操作を可能にするために意図的にサンドボックス化されていません:
~/Library/Application Support/~/.config内のMCPクライアント設定ファイルのパッチ明示的に要求された場合に
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