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 アプリが外部ツールを呼び出す標準的な方法です。ここでは、ツールは「ブラウザ」です。

仕組み

  1. AI アプリは npx @browsermcp/mcp@latest で MCP サーバーを起動します。このサーバーは、あなたのユーザーアカウント用に デーモン(バックグラウンドプロセス)を生成します。
  2. AI アプリは browser ツール呼び出しをサーバーに送信し、サーバーはそれをデーモンに転送します。
  3. デーモンは Playwright(ブラウザ自動化ライブラリ)を使用して Chrome のタブを操作しますが、Chrome と直接通信するのではなく、拡張機能を介して行います。
  4. 拡張機能は、Chrome の chrome.debugger API を使用して実際にブラウザを制御する薄いリレーです。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 chromium
  • pnpm 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 を参照)。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト