Python Playwright MCP Server with FastMCP 2.0 - Advanced browser automation with video recording, request monitoring, and UI customization
Project description
MCPlaywright ๐ญ
Browser Automation for Model Context Protocol
A FastMCP 2.0-based server providing comprehensive browser automation with video recording, HTTP request monitoring, tab management, and console capture. Complete Python implementation achieving full feature parity with the TypeScript Playwright MCP reference, plus AI-human collaboration capabilities including voice communication, interactive messaging, and mathematical mouse precision.
โจ Key Features
๐ฌ Smart Video Recording System
- Multi-mode Recording: Smart, continuous, action-only, and segment modes
- Automatic Viewport Matching: Eliminates gray borders by matching browser viewport to video size
- Action-Aware Recording: Automatically pause/resume based on browser interactions
- Session-Based Management: Persistent recording state across MCP calls
๐ Advanced HTTP Request Monitoring
- Comprehensive Capture: Headers, bodies, timing, and failure information
- Advanced Filtering: URL patterns, status codes, performance thresholds
- Export Capabilities: JSON, HAR, CSV formats with detailed analysis
- Real-time Monitoring: Live request tracking with performance metrics
- HAR Export: Chrome DevTools-compatible format for deep analysis
๐๏ธ Tab Management & Multi-Page Workflows
- Dynamic Tab Creation: Open new tabs with optional URL navigation
- Tab Enumeration: List all open tabs with titles, URLs, and active status
- Tab Switching: Seamlessly switch between multiple browser tabs
- Tab Cleanup: Close tabs with automatic focus management
- Session Isolation: Each tab maintains independent state and context
๐ Console Message Capture & Analysis
- Persistent Storage: Circular buffer with 1000 message capacity prevents memory leaks
- Message Filtering: Filter by type (log, error, warning, info), text search, and severity
- Source Location Tracking: File paths, line numbers, and column information
- Paginated Retrieval: Efficient access to large console logs with cursor-based navigation
- Real-time Monitoring: Automatic capture from page load through automation lifecycle
๐จ Browser UI Customization
- Visual Demonstration: slowMo delays for training videos and demos
- DevTools Integration: Automatic Chrome DevTools opening
- Theme Customization: Dark mode, custom browser arguments
- Container Support: Sandbox control for deployment environments
๐งฉ Chrome Extension Management
- Real Browser Restart: Automatic browser context restart with extensions loaded
- Popular Extensions Catalog: React/Vue/Redux DevTools, Lighthouse, axe, and more
- Functional Demo Extensions: Content scripts with visual indicators and detection
- Chrome Channel Validation: Warnings and guidance for optimal extension support
๐ค AI-Human Collaboration
- Real-Time Visual Messaging: Cyberpunk-themed notifications with mcpNotify API
- Interactive User Dialogs: Direct user confirmation with mcpPrompt for automation decisions
- Visual Element Inspector: Interactive element selection with mcpInspector for precise targeting
- Voice Communication: Browser-native text-to-speech and speech recognition using Web Speech API
- Secure V8 Injection: Comprehensive error boundaries with page.addInitScript() for safety
๐จ Professional Theme System
- 5 Built-in Themes: Minimal, Corporate, Hacker, Glassmorphism, High Contrast designs
- Accessibility Compliance: WCAG contrast ratios from 5.2:1 to 21:1
- 47 CSS Custom Properties: Complete theming control with CSS variables
- Dynamic Theme Switching: Real-time theme changes with persistence across sessions
- Custom Theme Creation: Extensible theme architecture for brand-specific styling
๐ฑ๏ธ Mathematical Mouse Precision
- Subpixel Precision: Coordinate-based interactions with mathematical interpolation
- Smooth Easing Functions: Hermite interpolation and bezier curves for natural movement
- Complex Gesture Patterns: Multi-waypoint paths with customizable timing and acceleration
- Arc-Based Movement: Circular and elliptical mouse paths for sophisticated interactions
- Bezier Curves: Quadratic bezier curves and smooth step functions for fluid motion
๐ Enterprise-Grade Pagination System
- Session-Scoped Cursors: Server-side cursor management with security isolation
- Bidirectional Navigation: Navigate forward and backward through large result sets
- Adaptive Optimization: Machine learning-like chunk size adaptation for optimal performance
- Query State Fingerprinting: Automatic parameter change detection and cursor invalidation
- Performance Insights: Real-time monitoring with optimization recommendations
๐๏ธ Advanced Artifacts Management
- Session-Based Organization: Intelligent file storage with 9 supported artifact types
- Comprehensive Analytics: Real-time statistics tracking with file size and type analysis
- Intelligent Cleanup: Configurable retention policies with automatic space management
- Performance Monitoring: Artifact creation tracking with detailed metadata
- Multi-Format Support: Screenshots, videos, PDFs, JSON, CSV, HAR, logs, reports, custom files
๐ญ Debug Toolbar & Client Identification
- Django-Style Debug Toolbar: Visual identification of which MCP client controls the browser
- Live Session Tracking: Real-time session ID, timestamp, and client information display
- Custom Code Injection: Inject JavaScript/CSS for debugging and testing
- Multi-Client Support: Perfect for parallel development and testing workflows
- Auto-Persistence: Toolbar survives page navigation and browser refreshes
๐ง Session-Based Architecture
- Persistent Contexts: Browser state maintained across MCP calls
- State Management: Video recording, request monitoring, UI settings, pagination cursors
- Artifact Management: Centralized file storage and organization
- Multi-Session Support: Concurrent isolated browser sessions
๐ Recent Improvements (v0.2.4-v0.2.5)
Security Enhancements
- Code Injection Validation: Comprehensive security checks prevent malicious JavaScript/CSS injection
- Pattern detection for dangerous constructs (eval, Function, proto, etc.)
- Input length limits (50KB max) and character whitelisting
- Defense-in-depth with multiple validation layers
- XSS Prevention: HTML and JavaScript escaping in debug toolbar generation
- Context-aware escaping for user-supplied values
- Protection against injection attacks in session IDs and project names
Performance Improvements
- Async SQLite Migration: Non-blocking I/O with aiosqlite eliminates 200-1000ms event loop blocking
- Concurrent operation processing for multiple MCP clients
- Replaced synchronous sqlite3 with async aiosqlite throughout storage layer
- Migrated threading.RLock to asyncio.Lock for proper async coordination
- Console Message Memory Optimization: Circular buffer prevents unbounded memory growth
- collections.deque with maxlen=1000 for automatic FIFO eviction
- Dropped message tracking with warning logs
- Prevents memory leaks in long-running browser sessions
Dependency Simplification
- Redis Removal: Eliminated external Redis dependency for simpler deployment
- SQLite and in-memory storage sufficient for most use cases
- Reduced infrastructure requirements and attack surface
- Streamlined Docker configuration without Redis service
Complete Feature Parity
- 40+ MCP Tools Exposed: All TypeScript playwright-mcp features now available in Python
- HTTP Request Monitoring: Comprehensive capture with HAR export for Chrome DevTools
- Tab Management: Full multi-page workflow support with session isolation
- Console Capture: Persistent message storage with advanced filtering
๐ Quick Start
Prerequisites
- Python 3.11 or higher
uvpackage manager (recommended) or pip
Installation
# Clone the repository
git clone <repository-url>
cd mcplaywright
# Install with uv (recommended)
make install-dev
make playwright
# Or with pip
pip install -e ".[dev]"
playwright install chromium firefox webkit
Development Setup
# Set up complete development environment
make setup
# Start development server with hot-reload
make dev
Production Setup
# Install production dependencies only
make install
# Start production server
make serve
๐ ๏ธ Usage
Adding to Claude Code
To use MCPlaywright with Claude Code, add it as an MCP server:
# Using the installed script (recommended after pip/uv install)
claude mcp add mcplaywright -- mcplaywright
# With uv run (for local development)
claude mcp add mcplaywright -- uv run python -m mcplaywright.server
# With Python module (alternative)
claude mcp add mcplaywright -- python -m mcplaywright.server
# With environment variables
claude mcp add mcplaywright --env BROWSER_TYPE=chromium --env VIDEO_RECORDING_MODE=smart \
-- mcplaywright
Running the Server
# Default: stdio transport (standard MCP)
uvx mcplaywright
# With different log level
uvx mcplaywright --log-level DEBUG
# HTTP transport (automatically enabled when port specified)
uvx mcplaywright --port 8001
# HTTP with custom host
uvx mcplaywright --host 0.0.0.0 --port 8000
# Using uv directly from source
uv run python -m mcplaywright.server
Available Tools
MCPlaywright provides comprehensive browser automation tools through FastMCP:
Core Browser Tools
navigate- Navigate to URLs with session managementtake_screenshot- Capture screenshots with various optionsclick_element- Click elements using CSS selectorsget_page_info- Get current page information
๐ค AI-Human Collaboration Tools
browser_notify_user- Real-time visual messaging with cyberpunk themingbrowser_prompt_user- Interactive user confirmation dialogsbrowser_start_inspector- Visual element selection with detailed inspectionbrowser_enable_voice_collaboration- Voice communication with text-to-speech and speech recognitionbrowser_speak_message- AI speaks to user during automationbrowser_listen_for_voice- Capture user voice responsesbrowser_stop_voice_collaboration- Disable voice features
๐จ Theme & Visual Tools
browser_mcp_theme_list- List all available professional themesbrowser_mcp_theme_set- Apply themes (minimal, corporate, hacker, glassmorphism, high contrast)browser_mcp_theme_create- Create custom themes with CSS variablesbrowser_mcp_theme_get- Get current theme configurationbrowser_mcp_theme_reset- Reset to default minimal theme
๐ฑ๏ธ Mathematical Mouse Tools
browser_mouse_move_smooth- Smooth mouse movement with bezier curvesbrowser_mouse_move_arc- Circular/elliptical mouse movement patternsbrowser_mouse_draw_gesture- Complex multi-waypoint gesture patternsbrowser_mouse_trace_element- Trace element boundaries with mathematical precision
๐๏ธ Advanced Artifacts Management
browser_get_artifact_paths- Reveal artifact storage locationsbrowser_list_artifacts- List artifacts with comprehensive analyticsbrowser_analyze_artifacts- Detailed artifact analysis and statisticsbrowser_cleanup_artifacts- Intelligent cleanup with retention policies
Tab Management Tools
browser_tab_new- Open new browser tabs with optional URL navigationbrowser_tab_list- List all tabs with detailed information (title, URL, active status)browser_tab_select- Switch to different tabs by indexbrowser_tab_close- Close tabs with automatic focus management
Video Recording Tools
browser_start_video_recording- Start recording with multiple modes (smart, continuous, action-only, segment)browser_stop_video_recording- Stop recording and save video files with session artifacts
Wait Strategy Tools
browser_wait_text- Wait for specific text to appear on pagebrowser_wait_text_gone- Wait for text to disappear from pagebrowser_wait_element- Wait for element states (visible, hidden, attached, detached)browser_wait_load- Wait for page load states (load, domcontentloaded, networkidle)browser_wait_timeout- Wait for specific duration with smart video pausebrowser_wait_network- Wait for network requests matching URL patterns
JavaScript & Dialog Tools
browser_js_evaluate- Execute JavaScript in page or element context with return valuesbrowser_dialog_handle- Handle browser dialogs (alert, confirm, prompt)browser_file_chooser_dismiss- Dismiss file chooser dialogs gracefullybrowser_keyboard_press- Press keyboard keys with modifier supportbrowser_keyboard_type- Type text with configurable delays
Data & Monitoring Tools
browser_monitoring_start- Start comprehensive HTTP request/response monitoringbrowser_monitoring_get- Retrieve captured requests with advanced filteringbrowser_monitoring_export- Export to HAR, JSON, or summary formatsbrowser_monitoring_clear- Clear captured request databrowser_monitoring_status- Check monitoring status and configurationbrowser_console_messages- Paginated console message retrieval with filteringbrowser_clear_console- Clear all stored console messages
Debug & Development Tools
browser_enable_debug_toolbar- Enable visual debug toolbar for client identificationbrowser_disable_debug_toolbar- Disable the debug toolbarbrowser_inject_custom_code- Inject custom JavaScript/CSS for debuggingbrowser_list_injections- List all active code injectionsbrowser_clear_injections- Clear custom injections (optional: keep toolbar)
Configuration Tools
configure_browser- Advanced browser configuration and UI customizationlist_sessions- List all active browser sessionsget_session_info- Get detailed session informationclose_session- Close sessions and clean up resources
System Tools
health_check- Server health and status informationserver_info- Detailed server capabilities and informationtest_playwright_installation- Verify Playwright setup
Tab Management Examples
# Open new tab with URL
new_tab = await browser_tab_new({
"url": "https://example.com/products",
"session_id": None # Use current session
})
print(f"Opened tab {new_tab['tab_index']} with {new_tab['tab_count']} total tabs")
# List all open tabs
tabs = await browser_tab_list({"session_id": None})
for tab in tabs['tabs']:
marker = "โ" if tab['is_current'] else " "
print(f"{marker} Tab {tab['index']}: {tab['title']} - {tab['url']}")
# Switch to specific tab
await browser_tab_select({
"tab_index": 0,
"session_id": None
})
# Close current tab
await browser_tab_close({"session_id": None})
Console Message Monitoring
# Get console messages with filtering
messages = await browser_console_messages({
"type_filter": "error", # log, error, warning, info, or all
"search": "API", # Text search filter
"limit": 50,
"session_id": None
})
print(f"Found {messages['total_messages']} console messages")
for msg in messages['messages']:
print(f"[{msg['type']}] {msg['text']}")
if msg['location']:
print(f" at {msg['location']['url']}:{msg['location']['line_number']}")
# Clear console history
await browser_clear_console()
HTTP Request Monitoring Examples
# Start monitoring with body capture
await browser_monitoring_start({
"session_id": None,
"capture_body": True,
"url_filter": "/api/*"
})
# Navigate and generate requests
await navigate({"url": "https://api.example.com"})
# Retrieve captured requests with filtering
requests = await browser_monitoring_get({
"session_id": None,
"filter_type": "success", # all, failed, slow, errors, success
"domain": "api.example.com",
"limit": 50
})
print(f"Captured {requests['total_captured']} requests")
for req in requests['requests']:
print(f"{req['method']} {req['status']} - {req['url']} ({req['duration']}ms)")
# Export to HAR for Chrome DevTools
har_export = await browser_monitoring_export({
"session_id": None,
"format": "har" # har, json, or summary
})
print(f"Exported to: {har_export['export_path']}")
Basic Browser Automation Examples
# Example: Configure browser with UI customization
await configure_browser({
"headless": False,
"slow_mo": 500, # 500ms delays for demo recording
"devtools": True, # Open DevTools automatically
"viewport_width": 1920,
"viewport_height": 1080,
"args": [
"--force-dark-mode",
"--start-maximized"
]
})
# Navigate and take screenshot
await navigate({"url": "https://example.com"})
await take_screenshot({
"filename": "example-page.png",
"full_page": True
})
# Click an element
await click_element({
"selector": "button.primary",
"button": "left"
})
# Paginated request monitoring
response = await browser_get_requests({
"limit": 50,
"filter": "success",
"domain": "api.example.com"
})
# Continue pagination with cursor
if response.get("has_more"):
next_page = await browser_get_requests({
"cursor_id": response["cursor_id"],
"limit": 50
})
๐ค AI-Human Collaboration Examples
# Enable voice communication for interactive automation
await browser_enable_voice_collaboration({
"enabled": True,
"voice_options": {
"rate": 1.0,
"pitch": 1.0,
"volume": 1.0,
"lang": "en-US"
},
"listen_options": {
"timeout": 10000,
"continuous": False,
"lang": "en-US"
}
})
# AI speaks to user during automation
await browser_speak_message({
"message": "I found the login form. Should I proceed with authentication?",
"options": {
"rate": 1.0,
"pitch": 1.0,
"volume": 0.8
}
})
# Get user confirmation with voice or visual dialog
confirmation = await browser_prompt_user({
"message": "Found multiple payment options. Which would you like to use?",
"options": ["Credit Card", "PayPal", "Apple Pay"],
"timeout": 30000,
"allow_voice": True
})
# Interactive element selection with detailed inspection
element_data = await browser_start_inspector({
"instruction": "Please click on the main navigation menu",
"show_details": True,
"highlight_on_hover": True
})
# Real-time visual notifications during automation
await browser_notify_user({
"message": "Processing payment... This may take a moment.",
"type": "info",
"duration": 3000,
"position": "top-right"
})
# Mathematical precision mouse movement with bezier curves
await browser_mouse_move_smooth({
"target_x": 500,
"target_y": 300,
"duration": 1000,
"easing": "bezier",
"control_points": [
{"x": 200, "y": 100},
{"x": 400, "y": 250}
]
})
# Apply professional glassmorphism theme
await browser_mcp_theme_set({
"theme_id": "glassmorphism",
"persist": True
})
# Advanced artifacts analysis
artifacts = await browser_analyze_artifacts({
"session_id": "current",
"include_analytics": True,
"group_by": "type"
})
๐จ Advanced Theme System Examples
# Create custom brand theme
await browser_mcp_theme_create({
"id": "company-brand",
"name": "Company Brand Theme",
"description": "Corporate brand colors with high accessibility",
"base_theme": "corporate",
"variables": {
"--mcp-primary-color": "#2563eb",
"--mcp-secondary-color": "#64748b",
"--mcp-accent-color": "#f59e0b",
"--mcp-background-color": "#ffffff",
"--mcp-text-color": "#1e293b",
"--mcp-border-radius": "8px",
"--mcp-shadow": "0 4px 6px -1px rgba(0, 0, 0, 0.1)"
}
})
# List all available themes with categories
themes = await browser_mcp_theme_list({
"filter": "all", # all, builtin, custom
"include_details": True
})
๐งช Testing
MCPlaywright includes comprehensive testing with enhanced HTML reports:
# Run all tests
make test
# Run fast tests only (exclude slow/integration)
make test-fast
# Run tests in watch mode
make test-watch
# Run specific test categories
pytest -m unit
pytest -m integration
pytest -m browser
# Generate detailed test report
make test-report
Test Categories
- Unit Tests: Individual component testing
- Integration Tests: Complete workflow testing
- Browser Tests: Real browser automation testing
- Performance Tests: Benchmarking and performance validation
๐ณ Docker Development
# Build Docker images
make docker-build
# Start containerized development
make docker-dev
# Run tests in Docker
make docker-test
๐ Development Commands
# Setup and Installation
make install # Install dependencies
make install-dev # Install with dev dependencies
make playwright # Install Playwright browsers
make setup # Complete dev environment setup
# Development
make dev # Start dev server with hot-reload
make serve # Start production server
make health # Check server health
make info # Show server information
# Testing
make test # Run full test suite
make test-fast # Run fast tests only
make test-watch # Run tests in watch mode
make benchmark # Run performance benchmarks
# Code Quality
make lint # Run linting and type checking
make format # Format code with black/isort
make security # Security vulnerability check
# Utilities
make clean # Clean build artifacts
make build # Build distribution packages
๐๏ธ Architecture
Core Components
- Context Class: Browser context management with persistent sessions
- Session Manager: Multi-session handling with isolation and cleanup
- Video Recording: Smart recording system with multiple modes
- Request Monitoring: Advanced HTTP request/response capture
- Artifact Management: Centralized file storage and organization
Beyond Standard Playwright
- ๐ค AI-Human Collaboration: Real-time voice communication and interactive messaging
- ๐จ Professional Theme System: 5 built-in themes with accessibility compliance and 47 CSS variables
- ๐ฑ๏ธ Mathematical Mouse Precision: Bezier curves, smooth interpolation, and complex gesture patterns
- ๐๏ธ Advanced Artifacts Management: Session-based organization with 9 artifact types and intelligent cleanup
- ๐ Enterprise Pagination: Cursor-based navigation with adaptive optimization and query fingerprinting
- ๐ Secure V8 Injection: Comprehensive error boundaries with page.addInitScript() safety plus code validation
- ๐ฌ Smart Video Recording: Automatic pause/resume based on browser activity with viewport matching
- ๐ Session Persistence: Browser contexts survive across MCP calls with multi-session isolation
- ๐ Advanced Request Monitoring: Beyond basic Playwright network events with HAR/JSON/CSV export
- ๐๏ธ Tab Management: Multi-page workflows with dynamic creation, switching, and cleanup
- ๐ Console Message Capture: Persistent storage with circular buffer and advanced filtering
- ๐ญ Debug Toolbar: Django-style visual client identification and debugging
- ๐จ UI Customization: Professional demo recording capabilities with slowMo and DevTools
- ๐งฉ Chrome Extension Management: Real browser restart with functional demo extensions
- โฑ๏ธ Advanced Wait Strategies: Text, element, network, and load state waiting with smart video pause
- ๐ Enhanced Security: Code injection validation, XSS prevention, and input sanitization
- โก Async Performance: Non-blocking SQLite I/O and optimized circular buffers
Technology Stack
- FastMCP 2.0: Modern MCP server framework with advanced features
- Playwright: Cross-browser automation with Chromium, Firefox, WebKit
- Pydantic: Type validation and configuration management
- pytest: Comprehensive testing with enhanced HTML reports
- Docker: Containerized development and deployment
๐ฏ Advanced Features
Video Recording Modes
# Smart mode - auto-pause during waits
{"mode": "smart"}
# Continuous mode - record everything
{"mode": "continuous"}
# Action-only mode - minimal recording
{"mode": "action-only"}
# Segment mode - separate files per action
{"mode": "segment"}
UI Customization Options
{
"slow_mo": 500, # Visual delays for demos
"devtools": True, # Auto-open DevTools
"args": [
"--force-dark-mode", # Dark theme
"--start-maximized" # Full screen
],
"chromium_sandbox": False # Container deployment
}
Request Monitoring
# Enable comprehensive request monitoring
await enable_request_monitoring({
"capture_bodies": True,
"url_filter": "/api/*",
"export_format": "har"
})
Debug Toolbar & Client Identification
Perfect for multi-developer environments and debugging browser automation:
# Enable debug toolbar with custom branding
await browser_enable_debug_toolbar({
"project_name": "Alice-Auth-Testing",
"position": "bottom-right", # top-left, top-right, bottom-left, bottom-right
"theme": "dark", # dark or light
"opacity": 0.9, # 0.1 to 1.0
"minimized": False, # Start expanded
"show_details": True # Show session details
})
# Inject custom debugging code
await browser_inject_custom_code({
"name": "performance_monitor",
"code": """
window.perfStart = performance.now();
window.logPerf = () => console.log('Runtime:', performance.now() - window.perfStart);
""",
"type": "javascript",
"auto_inject": True # Re-inject on page navigation
})
# Add visual test environment indicator
await browser_inject_custom_code({
"name": "test_indicator",
"code": """
body::before {
content: 'TEST ENVIRONMENT';
position: fixed; top: 0; right: 0;
background: orange; color: white;
padding: 5px 10px; z-index: 999999;
}
""",
"type": "css",
"auto_inject": True
})
# List all active injections
injections = await browser_list_injections()
print(f"Active: {injections['injection_count']} injections")
# Clear custom code but keep toolbar
await browser_clear_injections({"include_toolbar": False})
Visual Debug Toolbar Features:
- ๐ข Live connection status indicator (pulsing green dot)
- ๐ Real-time session ID and timestamp
- ๐ญ Custom project/client identification
- ๐ข Active injection counter
- ๐๏ธ Minimize/expand toggle
- โฐ Live clock updated every second
Chrome Extension Management
# Install popular extension with functional demo
await browser_install_popular_extension({
"extension": "react-devtools"
})
# Install from local directory
await browser_install_extension({
"path": "/path/to/extension",
"name": "My Extension"
})
See EXTENSION_IMPLEMENTATION.md for detailed documentation on the Chrome extension management system.
๐ Performance & Optimization
Feature Set
- Complete feature parity with TypeScript Playwright MCP plus AI-human collaboration
- Lean dependency tree: 15 core packages focused on browser automation
- Mathematical precision: Subpixel mouse control with bezier curve interpolation
- Security: Comprehensive error boundaries and code validation
- Memory efficient: Python's async handling with optimized circular buffers
Development Benefits
- Python expressiveness for rapid development
- Concurrent sessions with independent isolation
- Browser-native speech APIs with no external dependencies
- 5 built-in themes with WCAG accessibility compliance
- Cursor-based pagination with adaptive optimization
Dependency Optimization
- Before: 45+ dependencies including pandas, numpy, asyncio-throttle
- After: 15 core dependencies for browser automation
- Impact: ~30MB footprint reduction, faster startup, smaller attack surface
๐ง Configuration
Environment Variables
# Server Configuration
DOMAIN=mcplaywright.local
HOST=0.0.0.0
PORT=8000
# Browser Configuration
BROWSER_TYPE=chromium
DEFAULT_HEADLESS=true
DEFAULT_VIEWPORT_WIDTH=1280
DEFAULT_VIEWPORT_HEIGHT=720
# Video Recording
VIDEO_RECORDING_MODE=smart
VIDEO_OUTPUT_DIR=./artifacts/videos
# Request Monitoring
HTTP_MONITORING_ENABLED=true
REQUEST_CAPTURE_BODIES=true
# Development
DEBUG_LEVEL=INFO
DEVELOPMENT_MODE=true
๐ค Contributing
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature - Make your changes and add tests
- Run the test suite:
make test - Commit your changes:
git commit -m 'Add amazing feature' - Push to the branch:
git push origin feature/amazing-feature - Open a Pull Request
Development Guidelines
- Follow Python typing and use Pydantic models
- Add comprehensive tests for new features
- Update documentation for API changes
- Run
make lintbefore committing - Ensure all tests pass with
make test
๐ Documentation
Comprehensive documentation is available in the docs/ directory:
- Features: Detailed feature capabilities and implementations
- Implementation Guides: Development workflows and technical guides
- API Documentation: Technical references and implementation details
- Examples: Practical examples and detailed test reports
For quick navigation, see the Documentation Index.
๐ License
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.
๐ Acknowledgments
- Original TypeScript Playwright MCP implementation
- FastMCP framework for modern MCP development
- Playwright team for excellent browser automation
- Python community for outstanding async tooling
Made with โค๏ธ for the MCP community
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file mcplaywright-0.2.6.tar.gz.
File metadata
- Download URL: mcplaywright-0.2.6.tar.gz
- Upload date:
- Size: 596.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e345c1d34dd439ada2c305211fdb6ab0fb79c8569cd2d142a4cc0f294288cdcc
|
|
| MD5 |
63bab111ff25ab5810cef66e22b60b77
|
|
| BLAKE2b-256 |
2bf9e7e830c123c572454a4d1143bc9a8f6f906dcacaa804798246e48ae48a13
|
File details
Details for the file mcplaywright-0.2.6-py3-none-any.whl.
File metadata
- Download URL: mcplaywright-0.2.6-py3-none-any.whl
- Upload date:
- Size: 243.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d8ac6a2ec788b62dffff9b5a41f1133b2b2e31a36ee63740b7732cb4fb8648b8
|
|
| MD5 |
bc8cfea322eb6b33e84d01e05d33e580
|
|
| BLAKE2b-256 |
ca9c18c5fecce9c6bae366d997348f94ee94c856a33a04989b44c9a6c14f420f
|