BrowserMCP/mcp
Browser MCP is a Model Context Provider (MCP) server that allows AI applications to control your browser
概要
Browser MCP は、AI コーディングアシスタント(Claude Code、Cursor、VS Code、Codex、Claude Desktop など)が、あなた自身の Chrome ブラウザを制御できるようにするブリッジです。既存のログイン、Cookie、プロファイルを使用して、別々のタブで動作します。すべてはあなたのマシン上でローカルに実行され、クラウドサービスに送信されるものはありません。
2 つの部分で構成されています:
- Chrome 拡張機能(Chrome ウェブストアから入手可能、またはソースからビルド可能)は、ブラウザのリモコンとして機能します。
- MCP サーバー(小さな Node.js プログラム)は、AI アプリが起動して通信します。MCP(Model Context Protocol)は、AI アプリが外部ツールを呼び出す標準的な方法です。ここでは、ツールは「ブラウザ」です。
仕組み
- AI アプリは
npx @browsermcp/mcp@latestで MCP サーバーを起動します。このサーバーは、あなたのユーザーアカウント用に デーモン(バックグラウンドプロセス)を生成します。 - AI アプリは
browserツール呼び出しをサーバーに送信し、サーバーはそれをデーモンに転送します。 - デーモンは Playwright(ブラウザ自動化ライブラリ)を使用して Chrome のタブを操作しますが、Chrome と直接通信するのではなく、拡張機能を介して行います。
- 拡張機能は、Chrome の
chrome.debuggerAPI を使用して実際にブラウザを制御する薄いリレーです。127.0.0.1(自分のマシン)上のデーモンからの接続のみを受け入れます。
セキュリティモデル
拡張機能は意図的に制限的です:
- ペアリング:コンピューターで初めて使用するとき、拡張機能のポップアップに 6 桁のコードが表示されます。AI アプリが表示するコードと一致することを確認した後でのみ、許可 をクリックする必要があります。これにより、ランダムなローカルプロセスがブラウザを乗っ取るのを防ぎます。
- ハードルール:デーモンが要求しても、拡張機能はシークレットウィンドウ、ブラウザ内部ページ(
chrome://など)、拡張機能ページを開くことを拒否します。また、ポップアップで 停止 を押すと、すべての制御を停止します。 - ローカルのみ:拡張機能は
127.0.0.1のデーモンとのみ通信します。インターネットトラフィックはありません。
コンポーネント(リポジトリレイアウト)
| フォルダー | パッケージ | 目的 |
|---|---|---|
packages/mcp |
@browsermcp/mcp |
MCP サーバーとデーモン |
packages/protocol |
@browsermcp/protocol |
拡張機能とデーモン間の通信プロトコル(ペアリングを含む) |
packages/extension-core |
@browsermcp/extension-core |
拡張機能のブラウザ制御ロジック:接続、ペアリング、デバッガーリレー、タブルール、バッジ |
apps/extension |
@browsermcp/extension |
このリポジトリからビルドされた実際の Chrome 拡張機能(ポップアップ UI を含む) |
ソースからのビルド
要件:Node.js 24+、pnpm(corepack enable で有効化)、Chrome または Chromium ベースのブラウザ(Edge、Brave、Arc など)。Firefox は debugger API がないためサポートされていません。
git clone https://github.com/BrowserMCP/mcp.git browsermcp
cd browsermcp
pnpm install
pnpm build
次に、chrome://extensions(デベロッパーモード → パッケージ化されていない拡張機能を読み込む)から apps/extension/.output/chrome-mv3 の未パッケージ拡張機能を読み込みます。自己ビルドの拡張機能はウェブストア版と同じ ID を持つため、両方を同時に実行することはできません。ストア版がある場合は無効にしてください。
npm 版の代わりにビルドしたサーバーを使用するには、AI アプリの MCP 設定をローカルファイルにポイントします:
{
"mcpServers": {
"browsermcp": {
"command": "node",
"args": ["/path/to/browsermcp/packages/mcp/dist/index.js"]
}
}
}
注:npx @browsermcp/mcp@latest は自己ビルドの拡張機能でも動作します。同じサーバーで、このリポジトリから公開されているだけです。
更新
git pull
pnpm install
pnpm build
次に、chrome://extensions で拡張機能を再読み込みし、AI アプリがこのフォルダーからサーバーを実行している場合は再起動します。拡張機能とサーバーは、一方が他方に対して古すぎる場合に警告します。
開発
pnpm lint、pnpm format/pnpm format:fix— コードスタイル(Oxlint、Oxfmt)pnpm typecheck、pnpm test— TypeScript チェックと単体テスト(Vitest)。サーバーテストには Playwright の Chromium が必要です:pnpm --filter @browsermcp/mcp exec playwright-core install chromiumpnpm smoke— 開発モードですべてをビルドし、ヘッドレス Chromium で拡張機能を読み込み、AI アプリのようにサーバーを介して駆動します。ランダムなポートと一時的なBROWSER_MCP_HOMEを使用するため、実際の Browser MCP 設定には触れません。スクリーンショットはapps/extension/.output/smoke/に保存されますpnpm --filter @browsermcp/extension build:dev—apps/extension/.output/chrome-mv3-devの開発ビルド
ライセンスと商標
Apache-2.0。「Browser MCP」という名前とそのロゴは商標です。変更版を公開する場合は、名前を変更し、アイコンを変更する必要があります(TRADEMARKS.md を参照)。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト