MCP Browser Use Server

# -*- coding: utf-8 -*- import os import logging from dataclasses import dataclass from typing import Optional logger = logging.getLogger(__name__) @dataclass class BrowserPersistenceConfig: """ Configuration for browser persistence and debugging connection settings. :param persistent_session: If True, reuse browser data across sessions. :param user_data_dir: Path to Chrome's user data directory if persistent_session is True. :param debugging_port: Port for remote debugging (default 9222). :param debugging_host: Host for remote debugging (default 'localhost'). """ persistent_session: bool = False user_data_dir: Optional[str] = None debugging_port: Optional[int] = None debugging_host: Optional[str] = None @classmethod def from_env(cls) -> "BrowserPersistenceConfig": """ Create a BrowserPersistenceConfig from environment variables: - CHROME_PERSISTENT_SESSION=true/false - CHROME_USER_DATA=path/to/data - CHROME_DEBUGGING_PORT=9222 - CHROME_DEBUGGING_HOST=localhost """ persistent_session_str = os.getenv("CHROME_PERSISTENT_SESSION", "").lower() persistent_session = persistent_session_str == "true" user_data_dir = os.getenv("CHROME_USER_DATA") port_str = os.getenv("CHROME_DEBUGGING_PORT", "9222") try: debugging_port = int(port_str) except ValueError: logger.warning( f"Invalid CHROME_DEBUGGING_PORT='{port_str}', using default 9222." ) debugging_port = 9222 debugging_host = os.getenv("CHROME_DEBUGGING_HOST", "localhost") return cls( persistent_session=persistent_session, user_data_dir=user_data_dir, debugging_port=debugging_port, debugging_host=debugging_host, )