Skip to main content
Glama
sh7vansh

chrome-orchestrator

by sh7vansh

Chrome Orchestrator

chrome-orchestrator は、ヘッドレスブラウザ環境(特に Arthur と gloria-headless)の Docker 管理を抽象化する、軽量な Python SDK および CLI です。

長期稼働するバックグラウンドデーモンを実行し、統合 HTTP プロキシとして機能します。AI エージェントがブラウザセッションを要求すると、デーモンは要求された Docker コンテナを動的にプロビジョニングし、永続ストレージをマウントして、ポート 3000 上のステートレスな HTTP/SSE MCP(Model Context Protocol)エンドポイントをシームレスにプロキシします。

機能

  • デーモンプロキシアーキテクチャ: 単一のポート(デフォルトは 3000)を公開し、動的に割り当てられた Docker コンテナ(Arthur はポート 8000、Gloria はポート 8787)へ MCP トラフィックをプロキシします。

  • エージェントマニフェスト: SDK は環境指示を含む ContainerManifest を返すため、AI エージェントはプロビジョニングした環境の機能を自動的に理解できます。

  • 永続ストレージ: ローカルディレクトリ(~/.chrome-orchestrator/data/<image>)を自動的にマウントし、ブラウザセッションをまたいで状態を永続化します。

  • アクティブヘルスモニタリング: デーモンはバックグラウンドでコンテナのヘルスを能動的に監視し、応答しなくなった場合は再起動を試みます。

Related MCP server: hronaut

環境

両環境は、chrome ブラウザオブジェクトを使用する同じ execute_python ツールを公開しているため、AI エージェントは基盤となるバックエンドに関係なく、シームレスに Python コードを作成できます。

  • Arthur(デフォルト): 純粋で最小限の Chromium 環境で、DOM を正確かつ忠実に再現し、CDP WebSockets を介してネイティブに作用します。トークン制限の状況や標準的なブラウジングに最適です。

  • Gloria-Headless: uBlock Origin Lite が事前設定された環境で、Chrome Bridge 拡張(Native Messaging)を介して作用します。実際のユーザーブラウザにより近い動きをするため、CAPTCHA 回避などの「難しい処理」にはこちらを使用してください。

要件

  • Python 3.9+

  • Docker または Podman がインストールされ、実行されている必要があります。Docker の場合、Docker デーモン(/var/run/docker.sock)へのアクセス権限を確認してください。Podman の場合、シームレスなフォールバックとしてルーフフルソケットアクセス(unix:///run/podman/podman.sock)がネイティブにサポートされています。

インストール

# From PyPI
pip install chrome-orchestrator

# Or without installing via uvx
uvx --from chrome-orchestrator orchestrator <command>

# Or from source
pip install -e .

使用方法

1. デーモンを起動する

まず、バックグラウンドのデーモンプロキシを起動します。CLI と SDK が機能するには、このサービスが実行されている必要があります。

uvx --from chrome-orchestrator orchestrator daemon

デフォルトでは、デーモンは http://0.0.0.0:3000 で実行されます。

2. CLI の使用

CLI で arthur コンテナと gloria コンテナを管理できます:

# Provision an Arthur container
uvx --from chrome-orchestrator orchestrator arthur up

# Stop an Arthur container
uvx --from chrome-orchestrator orchestrator arthur down

# Provision a Gloria-headless container
uvx --from chrome-orchestrator orchestrator gloria up

# Stop all running orchestrator containers
uvx --from chrome-orchestrator orchestrator down

up コマンドを実行すると、オーケストレータがコンテナをプロビジョニングし、クライアントを接続できる静的 MCP HTTP URL(例:http://localhost:3000/arthur/mcp)を出力します。

3. Python SDK の使用

AI エージェントや Python スクリプトは、SDK を使用して環境のプロビジョニングと破棄をプログラム的に行えます。

from chrome_orchestrator import sdk

# Provision the environment (defaults to Arthur)
manifest = sdk.up(sdk.ContainerImage.ARTHUR)

print(f"Connected! MCP URL: {manifest.mcp_url}")
print(f"Agent Instructions:\n{manifest.instructions}")

# Your automation/MCP client connects to `manifest.mcp_url` here...

# Tear down the session when finished
sdk.down(sdk.ContainerImage.ARTHUR)

テスト

このプロジェクトではテストに pytest を使用しています。テストは最上位のシーム(CLI と SDK)をターゲットとし、HTTP プロキシのやり取りをシミュレーションします。

pytest tests/

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    A
    maintenance
    Enables AI agents to control a persistent local browser with live tabs, navigation, interaction, inspection, and state management through MCP.
    6
    -
  • A
    license
    B
    quality
    C
    maintenance
    Deploys a hosted, authenticated MCP server that lets AI assistants drive a real headless browser over HTTP, enabling navigation, clicking, typing, and reading pages without local browser setup.
    23
    6,555,401 npm
    Apache 2.0