mcp-browser-use
- mcp-browser-use
- src
- mcp_browser_use
# ruff: noqa: E402
import logging
import os
import subprocess
import sys
logging.basicConfig(
level=logging.INFO, format="%(asctime)s - %(levelname)s - %(message)s"
)
logger = logging.getLogger(__name__)
logging.getLogger("browser_use").setLevel(logging.CRITICAL)
logging.getLogger("playwright").setLevel(logging.CRITICAL)
def check_playwright_installation():
"""
Check if Playwright is installed and properly set up.
Returns:
bool: True if Playwright is installed, False otherwise
"""
try:
# Try to import playwright to check if it's installed
import playwright
# Check if browsers are installed
try:
from playwright.sync_api import sync_playwright
with sync_playwright() as p:
# Try to launch a browser to verify installation
browser = p.chromium.launch(headless=True)
browser.close()
return True
except Exception as e:
if "Executable doesn't exist" in str(e):
logger.error("Playwright browsers are not installed. Installing now...")
try:
# Redirect stdout and stderr to /dev/null to suppress progress bars
with open(os.devnull, "w") as devnull:
subprocess.run(
[sys.executable, "-m", "playwright", "install", "chromium"],
stdout=devnull,
stderr=devnull,
check=True,
)
logger.info("Playwright browsers installed successfully.")
return True
except subprocess.CalledProcessError:
logger.error(
"Failed to install Playwright browsers. Please run 'playwright install' manually."
)
return False
else:
logger.error(f"Error checking Playwright installation: {e}")
return False
except ImportError:
logger.error(
"Playwright is not installed. Please install it with 'pip install playwright'"
)
return False