
nix playwright mcp
A comprehensive NixOS Flake development environment for the Playwright MCP (Model Context Protocol) server with full Chrome and Firefox support, including persistent browser profiles.
Repository Info
About This Server
A comprehensive NixOS Flake development environment for the Playwright MCP (Model Context Protocol) server with full Chrome and Firefox support, including persistent browser profiles.
Model Context Protocol (MCP) - This server can be integrated with AI applications to provide additional context and capabilities, enabling enhanced AI interactions and functionality.
Documentation
Playwright MCP Server - NixOS Flake
A comprehensive NixOS Flake development environment for the Playwright MCP (Model Context Protocol) server with full Chrome and Firefox support, including persistent browser profiles.
Features
- ✅ Complete Playwright MCP Server Setup: Based on Microsoft's official implementation
- ✅ Multi-Browser Support: Both Chrome/Chromium and Firefox browsers included
- ✅ Profile Persistence: Maintains browser profiles between sessions
- ✅ Desktop Profile Integration: Can import existing Chrome/Firefox profiles from your desktop
- ✅ NixOS Integration: Properly configured for NixOS with all dependencies
- ✅ Development Environment: Ready-to-use development shell with all tools
- ✅ AI Agent Compatible: Can be added as a URL to development environments for AI agents
Quick Start
Using with direnv (Recommended)
- Clone this repository or copy the
flake.nixto your project - Enable direnv:
direnv allow - The environment will automatically activate when you enter the directory
Manual activation
# Enter the development shell
nix develop
# Or run the MCP server directly
nix run
Usage
Running the MCP Server
# Basic usage (headed mode, persistent profiles)
playwright-mcp-wrapped
# Headless mode
playwright-mcp-wrapped --headless
# Specify browser
playwright-mcp-wrapped --browser firefox
# With custom configuration
playwright-mcp-wrapped --config /path/to/config.json
# Server mode (for remote connections)
playwright-mcp-wrapped --port 8931
Setting Up Browser Profiles
To use your existing desktop browser profiles:
# Run the profile setup script
nix run .#setup-profiles
This will copy your existing Chrome/Chromium and Firefox profiles to the Playwright MCP directories:
- Chrome:
~/.local/share/playwright-mcp/chrome-profile - Firefox:
~/.local/share/playwright-mcp/firefox-profile
Configuration
The flake includes a default configuration file that can be customized. Key features:
- Browser Support: Both Chromium and Firefox
- Profile Persistence: Profiles are saved between sessions
- Headed Mode: Browser windows are visible by default
- Full Capabilities: All MCP capabilities enabled (tabs, PDF, history, wait, files, install, testing)
Using in AI Development Environments
Add this flake as a development environment URL:
{
"devEnvironments": {
"playwright-mcp": {
"url": "github:benjaminkitt/playwright-mcp-nix"
}
}
}
Or for Claude Desktop MCP configuration:
{
"mcpServers": {
"playwright": {
"command": "nix",
"args": ["run", "github:benjaminkitt/playwright-mcp-nix"]
}
}
}
Architecture
This flake provides:
- Custom Playwright MCP Package: Wraps Microsoft's Playwright MCP server with NixOS-specific configurations
- Browser Integration: Properly configured Chromium and Firefox with Playwright support
- Profile Management: Scripts to handle browser profile persistence and desktop integration
- Development Environment: Complete shell with all dependencies and helpful environment variables
Browser Profile Locations
Default Locations
- Chrome/Chromium Profile:
~/.local/share/playwright-mcp/chrome-profile - Firefox Profile:
~/.local/share/playwright-mcp/firefox-profile
Desktop Profile Sources
The setup script will look for existing profiles in:
- Chrome:
~/.config/google-chrome - Chromium:
~/.config/chromium - Firefox:
~/.mozilla/firefox(default profile)
Configuration Options
The MCP server supports extensive configuration through command-line arguments:
--allowed-origins # Semicolon-separated allowed origins
--blocked-origins # Semicolon-separated blocked origins
--browser # Browser to use: chrome, firefox, webkit, msedge
--headless # Run in headless mode
--user-data-dir # Custom profile directory
--viewport-size # Browser viewport size (e.g., "1920,1080")
--device # Device to emulate (e.g., "iPhone 15")
--proxy-server # Proxy server configuration
--storage-state # Path to storage state file
--isolated # Use isolated (non-persistent) profiles
--vision # Use screenshot mode instead of accessibility snapshots
--config # Path to JSON configuration file
Troubleshooting
Browser Not Found
If you get browser not found errors:
nix run .#playwright-mcp -- --browser chromium
# or
export PLAYWRIGHT_BROWSERS_PATH=$(nix-build '<nixpkgs>' -A playwright-driver.browsers --no-out-link)
Profile Issues
If browser profiles aren't working:
# Reset profiles
rm -rf ~/.local/share/playwright-mcp/
nix run .#setup-profiles
Permission Issues
Ensure the profile directories are writable:
chmod -R u+w ~/.local/share/playwright-mcp/
Contributing
This flake is designed to be easily extensible. Key areas for contribution:
- Browser Support: Additional browser configurations
- Profile Management: Enhanced profile import/export capabilities
- Configuration: More sophisticated configuration management
- Integration: Better integration with various AI development environments
License
This project follows the same license as the underlying Playwright MCP server (Apache 2.0).
Related Projects
- Microsoft Playwright MCP - The upstream MCP server
- natsukium/mcp-servers-nix - Nix framework for MCP servers
- akirak/nix-playwright-mcp - Alternative Nix wrapper for Playwright MCP
Quick Start
Clone the repository
git clone https://github.com/benjaminkitt/nix-playwright-mcpInstall dependencies
cd nix-playwright-mcp
npm installFollow the documentation
Check the repository's README.md file for specific installation and usage instructions.
Repository Details
Recommended MCP Servers
Discord MCP
Enable AI assistants to seamlessly interact with Discord servers, channels, and messages.
Knit MCP
Connect AI agents to 200+ SaaS applications and automate workflows.
Apify MCP Server
Deploy and interact with Apify actors for web scraping and data extraction.
BrowserStack MCP
BrowserStack MCP Server for automated testing across multiple browsers.
Zapier MCP
A Zapier server that provides automation capabilities for various apps.