Browser automation using Playwright with optional stealth mode to bypass anti-bot protection.
Setup
Choose your client, copy the config, then fill in any required environment variables.
claude mcp add playwright-stealth --env PROXY_USERNAME='<PROXY_USERNAME>' --env PROXY_PASSWORD='<PROXY_PASSWORD>' -- npx -y playwright-stealth-mcp-server~/.codex/config.toml
[mcp_servers.playwright-stealth]
command = "npx"
args = ["-y", "playwright-stealth-mcp-server"]
env = { PROXY_USERNAME = "<PROXY_USERNAME>", PROXY_PASSWORD = "<PROXY_PASSWORD>" }
# codex mcp add playwright-stealth --env PROXY_USERNAME='<PROXY_USERNAME>' --env PROXY_PASSWORD='<PROXY_PASSWORD>' -- npx -y playwright-stealth-mcp-server~/.cursor/mcp.json
{
"mcpServers": {
"playwright-stealth": {
"command": "npx",
"args": [
"-y",
"playwright-stealth-mcp-server"
],
"env": {
"PROXY_USERNAME": "<PROXY_USERNAME>",
"PROXY_PASSWORD": "<PROXY_PASSWORD>"
}
}
}
}.vscode/mcp.json
{
"servers": {
"playwright-stealth": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"playwright-stealth-mcp-server"
],
"env": {
"PROXY_USERNAME": "<PROXY_USERNAME>",
"PROXY_PASSWORD": "<PROXY_PASSWORD>"
}
}
}
}~/.gemini/settings.json
{
"mcpServers": {
"playwright-stealth": {
"command": "npx",
"args": [
"-y",
"playwright-stealth-mcp-server"
],
"env": {
"PROXY_USERNAME": "<PROXY_USERNAME>",
"PROXY_PASSWORD": "<PROXY_PASSWORD>"
}
}
}
}claude_desktop_config.json
{
"mcpServers": {
"playwright-stealth": {
"command": "npx",
"args": [
"-y",
"playwright-stealth-mcp-server"
],
"env": {
"PROXY_USERNAME": "<PROXY_USERNAME>",
"PROXY_PASSWORD": "<PROXY_PASSWORD>"
}
}
}
}.trae/mcp.json
{
"mcpServers": {
"playwright-stealth": {
"command": "npx",
"args": [
"-y",
"playwright-stealth-mcp-server"
],
"env": {
"PROXY_USERNAME": "<PROXY_USERNAME>",
"PROXY_PASSWORD": "<PROXY_PASSWORD>"
}
}
}
}Environment variables
PROXY_USERNAMEPROXY_PASSWORD
Replace the placeholders with your own credentials and keep them out of version control.