Skip to content

Playwright MCP Integration

STATUS: active OWNER: felice (screenshots/recording), marije (E2E), judith (E2E) CATEGORY: integration ADDED: 2026-03-27


WHAT

Official Microsoft Playwright MCP server for headless browser automation. Used by three agents for different purposes: - Felice: Web screenshots, screen recording for visual assets - Marije/Judith: E2E testing, visual regression testing

MCP SERVER

  • Package: @playwright/mcp (npm)
  • Author: Microsoft (official)
  • GitHub: github.com/microsoft/playwright-mcp
  • License: Apache-2.0

Modes

  1. Snapshot mode (default): Uses accessibility tree — low token cost (~27K tokens per interaction). Best for E2E testing.
  2. Vision mode: Uses screenshots for coordinate-based interaction — higher token cost (~114K tokens). Best for visual QA.

Configuration

MCP configs at: - /ge-ops/master/mcp-configs/felice.json - /ge-ops/master/mcp-configs/marije.json - /ge-ops/master/mcp-configs/judith.json

All run with --headless flag (no display server needed).

Auth

No API key required. Runs locally.

TOOLS AVAILABLE

  • browser_navigate — Navigate to URL
  • browser_snapshot — Get accessibility tree snapshot
  • browser_screenshot — Take screenshot (saves to file)
  • browser_click — Click element
  • browser_type — Type text
  • browser_select_option — Select from dropdown
  • browser_wait — Wait for condition
  • browser_evaluate — Execute JavaScript
  • Plus 15+ more interaction tools

HEADLESS EXECUTION

The executor runs in k8s pods without a display server. Playwright MCP's --headless flag handles this. Chromium is bundled with the npm package.

CRITICAL: First run downloads Chromium (~130MB). The executor Dockerfile should pre-install browsers during build to avoid download during execution.

CHANGELOG MONITORING

Joshua monitors @playwright/mcp for updates.


  • Visual production: domains/visual-production/
  • E2E testing: domains/testing/
  • MCP framework: ge_agent/execution/mcp_integration.py