MCP Browser について
MCP Browser は、AI エージェントが実際の WKWebView ページを MCP 経由で操作できる macOS ブラウザーです。ページ操作や内容の読み取り、ネットワーク検査に対応し、データはローカルに保存されます。ローカル限定のサーバーはトークンで保護されます。
主な機能
- 01WKWebView のタブブラウジング
- 02ナビゲーション・クリック・フォーム操作
- 03DOM 読み取り・スクリーンショット・PDF 出力
- 04Cookie・ネットワーク・コンソールの確認
- 05トークン認証付きローカル HTTP サーバー
- 06アップロードとダウンロードのユーザー確認
活用シーン
- 01ログイン済みサイトのエージェント操作
- 02Web フォームの入力と送信
- 03ページ内容やネットワークリクエストの検査
- 04ページのスクリーンショットや PDF 保存
MCP 対応
アプリはローカル HTTP 経由で MCP サーバーを公開し、ナビゲーション、DOM 操作、ページ内容、Cookie、ファイルのツールをクライアントに提供します。起動ごとの bearer token を使い、標準では 127.0.0.1 にバインドします。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
MCP Browser
Model Context Protocol サーバーとして機能するネイティブ macOS Web ブラウザーです。AI エージェントが人と同じように実際の WKWebView を操作できます。ページの移動、クリック、フォーム入力、DOM の読み取り、スクリーンショットの撮影、JavaScript の実行、ネットワークやコンソールのアクティビティの記録が可能です。
SwiftUI + WKWebView で構築されています。MCP サーバーは、ベアラートークン認証と DNS リバインディング対策を備えたローカル HTTP 経由で、プロセス内で動作します。
ダウンロード
⬇ 最新の macOS ビルドをダウンロード — Apple Silicon 向けの署名・公証済み .dmg です。
ダウンロード後、DMG を開き、MCP Browser を「アプリケーション」フォルダーにドラッグしてください。
スクリーンショット


特長
エージェント向けの「ツールとしてのブラウザー」に関する多くの話題は、次の 2 種類に分かれます。
- ヘッドレス自動化(Playwright、Puppeteer) — 高速でスクリプトから操作できますが、エージェントは あなた が見ているものを確認できず、ログイン済みのセッションを共有できません。また、信頼しているブラウザーとは異なるエンジンで動作します。
- リモート制御のクラウドブラウザー — データがマシンの外に送信され、セッションごとに料金が発生します。
MCP Browser は 3 つ目の選択肢です。Mac 上の実際のブラウザーウィンドウに自分でログインし、ページを移動して利用できます。そして、頼めば LLM が MCP 経由で操作できます。Cookie、履歴、ブックマーク、ダウンロードはローカルに保持されます。エージェントには、あなたと同じページが表示されます。
機能
ブラウザー
- WKWebView ベースのタブと、Safari スタイルのタブバー(ファビコン、ホバー時の閉じるボタン、均等幅のピル型タブ)
- 履歴とブックマークのオートコンプリート機能を備えた URL バー
- ブックマークバー、ブックマーク管理画面、履歴表示、ダウンロードのポップオーバー
- ページ内検索、ホストごとに保持されるズーム倍率、ピクチャ・イン・ピクチャコントローラー
- ブックマークのインポート(HTML / Safari / Chrome 形式)
- タブごとの Cookie とネットワークの記録
MCP サーバー
- ポート
8833(変更可能)の ローカル HTTP トランスポート — JSON-RPC 用のPOST /mcp、SSE 形式のステータス表示用のGET /mcp - 起動ごとに発行され、設定から再生成できるトークンを使用した ベアラートークン認証
Hostヘッダーを127.0.0.1/localhostと照合する DNS リバインディング対策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 を参照してください。
プライバシーと安全性
- 起動ごとに発行されるベアラートークン — トークンを持たないクライアントには
401 Unauthorizedが返されます - Origin / Host の検証 — 悪意のあるローカル Web ページからの DNS リバインディング攻撃をブロック
- ダウンロード、アップロード、および
dialogとのすべてのやり取りで ユーザーの確認が必要 - デフォルトではローカルのみ — サーバーは
127.0.0.1にバインドされ、パブリックネットワークには公開されません - 設定画面の 操作ログ → エージェントがブラウザーで行った操作を正確に確認できます
必要条件
- macOS 14 以降(Sonoma 以降)
- ソースからビルドする場合は Xcode 16 以降
はじめに(ユーザー向け)
- リリースページから最新の DMG をダウンロードします。
- MCP Browser を
/Applicationsにドラッグして起動します。 - Settings → Connection を開き、ベアラートークンと MCP エンドポイント URL をコピーします。
- MCP クライアント(Claude Desktop、Codex など)にサーバーを追加します。アプリの Settings → MCP Clients タブでは、一般的なクライアントの設定を自動で書き換えられます。
- 通常どおりブラウズします。LLM がウェブ上で何かを行う必要がある場合、MCP 経由でツールを呼び出し、その操作がログに表示されます。
はじめに(開発者向け)
- このリポジトリをクローンします。
MCP Browser.xcodeprojを Xcode で開きます。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— Keychain に保存されるベアラートークンBrowser/BrowserTab.swift—WKWebViewをラップする、タブごとの@ObservableモデルBrowser/WebViewHost.swift—NSViewRepresentableブリッジ
セキュリティモデル
MCP Browser は、次のことを可能にするため、意図的にサンドボックスなしで実行されます。
~/Library/Application Support/~/.configにある MCP クライアント設定ファイルを書き換える- 明示的に要求された場合に、外部スキームを開くなど、ほかのアプリを操作する
次のことは行いません。
- ループバック(
127.0.0.1)以外のネットワークインターフェースにバインドする - 起動ごとに生成されるベアラートークンなしで接続を受け付ける
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 をご覧ください。
ライセンス
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。