Skip to main content
Glama
Xuzan9396

YST KPI Daily Report Collector

by Xuzan9396

check_playwright_installation

Verify Playwright browser automation driver installation status to ensure the YST KPI Daily Report Collector can automate data collection from KPI systems.

Instructions

检查 Playwright 浏览器驱动安装状态

Returns: 安装状态信息

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Implementation Reference

  • The handler function decorated with @mcp.tool() that implements the check_playwright_installation tool. It verifies Playwright installation and Chromium browser drivers using subprocess checks and provides installation guidance if needed.
    @mcp.tool()
    async def check_playwright_installation() -> str:
        """
        检查 Playwright 浏览器驱动安装状态
    
        Returns:
            安装状态信息
        """
        import subprocess
        import sys
    
        try:
            logger.info("检查 Playwright 安装状态")
    
            # 检查 Playwright 模块
            try:
                import playwright
                playwright_version = playwright.__version__
                logger.info(f"Playwright 模块已安装,版本: {playwright_version}")
            except ImportError:
                return safe_text(
                    "❌ Playwright 模块未安装\n\n"
                    "请运行以下命令安装:\n"
                    "pip install playwright\n"
                    "playwright install chromium"
                )
    
            # 检查浏览器驱动
            result_text = safe_text(f"✓ Playwright 模块已安装 (v{playwright_version})\n\n")
    
            # 尝试检查浏览器安装
            try:
                # 运行 playwright install --dry-run 检查浏览器状态
                result = subprocess.run(
                    [sys.executable, "-m", "playwright", "install", "--dry-run", "chromium"],
                    capture_output=True,
                    text=True,
                    timeout=10
                )
    
                logger.debug(f"playwright install --dry-run 输出: {result.stdout}")
    
                if "is already installed" in result.stdout or "Skipping" in result.stdout:
                    result_text += safe_text("✓ Chromium 浏览器驱动已安装\n\n")
                    result_text += "系统状态:正常\n"
                    result_text += "\n如果浏览器仍无法弹出,请检查:\n"
                    result_text += "1. 防火墙/杀毒软件是否阻止\n"
                    result_text += "2. 查看详细日志文件"
                else:
                    result_text += safe_text("⚠ Chromium 浏览器驱动可能未安装\n\n")
                    result_text += "请运行以下命令安装:\n"
                    result_text += "playwright install chromium\n\n"
                    result_text += "或在 Windows PowerShell 中:\n"
                    result_text += "python -m playwright install chromium"
    
            except subprocess.TimeoutExpired:
                logger.warning("playwright install 命令超时")
                result_text += safe_text("⚠ 无法检查浏览器驱动状态(命令超时)\n\n")
                result_text += "建议手动运行:playwright install chromium"
            except Exception as e:
                logger.error(f"检查浏览器驱动失败: {e}")
                result_text += safe_text(f"⚠ 无法检查浏览器驱动: {str(e)}\n\n")
                result_text += "建议手动运行:playwright install chromium"
    
            return result_text
    
        except Exception as e:
            logger.exception("检查 Playwright 安装状态出错:")
            return safe_text(f"❌ 检查失败: {str(e)}")

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Xuzan9396/yst_mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server