MCP server w/ Browser Use について
MCP Browser Use Server は、browser-use ブラウザ自動化ライブラリを単一の MCP ツールとして公開するベータ版の FastAPI ベース MCP サーバーです。Claude Desktop などの MCP クライアントから自然言語によるブラウザ操作を実行したい利用者を想定しています。設定は一箇所にまとめられ、入力の上限設定や機密情報のマスキングも行われます。
主な機能
- 01run_browser_agent ツールの提供
- 02browser-use による自然言語指示のブラウザ操作
- 03環境変数によるブラウザ設定の一元管理
- 04プロキシ、永続プロファイル、Chromium フラグへの対応
- 05実行後のブラウザセッションの自動クリーンアップ
活用シーン
- 01MCP クライアントからのWebフォーム入力
- 02スクリーンショットの取得とページ内容の読み取り
- 03ローカルまたは管理された環境でのブラウザ自動化
MCP 対応
MCP クライアントに対して run_browser_agent ツールを公開する MCP サーバーです。クライアントがタスクの説明を送ると、ブラウザエージェントの最終結果を返します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
MCP Browser Use サーバー
browser-use を Claude Desktop およびその他の MCP 対応クライアントに接続する Model Context Protocol(MCP)サーバーです。
概要
このリポジトリは、browser-use 自動化エンジンをラップするベータ版 MCP ラッパーを提供します。ブラウザーセッションを制御し、browser-use エージェントを実行して、最終結果をクライアントに返す単一の MCP ツール(run_browser_agent)を公開します。この構成では設定を一元管理し、セキュリティ境界をテスト可能にし、上流の browser-use の移行が MCP インターフェイスに影響しないよう分離しています。
主な機能
- ブラウジングの自動化 –
browser-useが実行する自然言語の指示を通じて、ページの移動、フォームの操作、タブの制御、スクリーンショットの撮影、ページコンテンツの読み取りを行います。 - エージェントのライフサイクル管理 –
CustomAgentはbrowser-useの基本エージェントをラップし、履歴のエクスポート、より充実したプロンプト、実行間で一貫したエラー処理を追加します。 - ブラウザー設定の一元管理 –
create_browser_sessionは環境変数をすぐに使えるBrowserSessionに変換します。エージェントのロジックに手を加えることなく、永続プロファイル、プロキシ、カスタム Chromium フラグを利用できます。 - FastMCP との統合 –
server.pyは MCP ツールを登録し、設定を正規化して、ブラウザーセッションが必ずクリーンアップされるようにします。 - クライアントヘルパー –
client.pyには、テストやプロセス内で MCP サーバーを利用したい他の Python プロセス向けの非同期ヘルパーが含まれています。
プロジェクト構成
.
├── documentation/
│ ├── CONFIGURATION.md # Detailed configuration reference
│ └── SECURITY.md # Security considerations for running the server
├── sample.env.env # Example environment variables for local development
├── src/mcp_browser_use/
│ ├── agent/ # Custom agent, prompts, message history, and views
│ ├── browser/ # Browser session factory and persistence helpers
│ ├── controller/ # Custom controller extensions for clipboard actions
│ ├── utils/ # LLM factory, agent state helpers, encoding utilities
│ ├── client.py # Async helper for connecting to the FastMCP app
│ └── server.py # FastMCP app and the `run_browser_agent` tool
└── tests/ # Unit tests covering server helpers and agent features
はじめに
要件
- Python 3.11+
- Google Chrome または Chromium(ローカルでの自動化に使用)
- 依存関係の管理用
uv(推奨) - オプション:統合テスト用の Claude Desktop またはその他の MCP 対応クライアント
インストール
git clone https://github.com/JovaniPink/mcp-browser-use.git
cd mcp-browser-use
uv sync
sample.env.env を .env にコピーし(または別の方法で環境変数を設定し)、使用するプロバイダーのみを更新します。値を入力した .env ファイルは絶対にコミットしないでください。
サーバーの起動
uv run mcp-browser-use
このコマンドは pyproject.toml で定義されたコンソールスクリプトを呼び出し、FastMCP アプリケーションを起動して、run_browser_agent ツールを登録します。
Claude Desktop での使用
サーバーの起動後、たとえば次のように Claude Desktop に登録できます。
"mcpServers": {
"mcp_server_browser_use": {
"command": "uvx",
"args": ["mcp-browser-use"],
"env": {
"MCP_MODEL_PROVIDER": "anthropic",
"MCP_MODEL_NAME": "claude-3-5-sonnet-20241022"
}
}
}
デバッグ
対話型デバッグには、MCP Inspector を使用します。
npx @modelcontextprotocol/inspector uv --directory /path/to/project run mcp-browser-use
Inspector は、ツールの呼び出しと応答をリアルタイムで確認できるブラウザーで開く URL を表示します。
設定
環境変数とそのデフォルト値の一覧は、documentation/CONFIGURATION.md で確認できます。主な項目は次のとおりです。
MCP_MODEL_PROVIDER、MCP_MODEL_NAME、MCP_TEMPERATURE、MCP_MAX_STEPS、MCP_MAX_ACTIONS_PER_STEP、MCP_USE_VISIONは、LLM とエージェントの実行を制御します。- プロバイダー固有の API キーとエンドポイント(
ANTHROPIC_API_KEY、OPENAI_API_KEY、DEEPSEEK_API_KEY、GOOGLE_API_KEY、AZURE_OPENAI_API_KEYなど)。 - ブラウザー実行時のフラグ(
BROWSER_USE_HEADLESS、BROWSER_USE_EXTRA_CHROMIUM_ARGS、CHROME_PERSISTENT_SESSION、BROWSER_USE_PROXY_URLなど)。
認証情報をソース管理に含めないよう、.env と python-dotenv、または任意のシークレットマネージャーを使用してください。
テストの実行
uv run python -m pytest -q
テストでは、カスタムエージェントの動作、ブラウザー設定、MCP 入力制限、シークレットのマスキング、ユーティリティヘルパーを確認します。インポートや単体テストに合格しただけでは、依存関係の更新をマージできる状態とは言えません。解決済みの環境でも、依存関係とセキュリティのチェックに合格する必要があります。
セキュリティ
ブラウザーのインスタンス全体をリモートで制御すると、ホストマシンへの広範なアクセスが可能になる場合があります。信頼できない環境にサーバーを公開する前に、documentation/SECURITY.md を確認してください。 ドキュメント全体の構成と、現在有効な依存関係の決定記録は documentation/README.md にあります。
MCP ツールは、モデルまたはブラウザーセッションを割り当てる前に、タスク/コンテキストの入力をトリミングして上限を設けます。 実行時のステップ数には制限があり、デバッグログからプロキシ設定が除外され、認証情報が含まれる可能性がある CDP エンドポイントの値は伏せられます。
Python 3.14/browser-use の依存関係の移行は、上流でパッチ適用済みの推移的依存関係バージョンが許可されるまで、#45 で保留されています。互換性のないオーバーライドを強制したり、監査結果を抑制したりしないでください。
貢献
- リポジトリをフォークします
- 機能ブランチを作成します:
git checkout -b my-new-feature - 変更をコミットします:
git commit -m 'Add some feature' - ブランチにプッシュします:
git push origin my-new-feature - プルリクエストを作成します
バグ報告や機能の提案を歓迎します。該当する場合は、ログと再現手順を添えてください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。