Playwright MCP Server - NixOS Flake
LocalAbout Playwright MCP Server - NixOS Flake
Playwright MCP Server - NixOS Flake packages Microsoft’s Playwright MCP server as a NixOS development environment. It is intended for developers and AI-agent setups that need Chrome or Firefox support and persistent browser profiles, including imported desktop profiles.
Key features
- 01NixOS development shell and server wrapper
- 02Chrome/Chromium and Firefox support
- 03Persistent browser profiles
- 04Import of existing desktop profiles
- 05Headed mode by default
Use cases
- 01Run Playwright MCP within a NixOS development shell
- 02Keep browser profiles across sessions
- 03Import existing Chrome or Firefox profiles
- 04Select Firefox or headless browser mode
MCP support
The flake wraps Microsoft’s Playwright MCP server with NixOS-specific configuration. It can be run directly with nix run or added to Claude Desktop as an MCP server.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
We haven’t collected a package or remote endpoint for this server. Follow the instructions in the project README.
Tools
Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.
Details
From the project READMEPlaywright 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
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.