Skip to content
VS Code

playwright stealth for VS Code

com.pulsemcp/playwright-stealth

Browser automation using Playwright with optional stealth mode to bypass anti-bot protection.

client:VS Code transport:stdio runtime:npm

Install playwright stealth in VS Code

.vscode/mcp.json

{
  "inputs": [
    {
      "type": "promptString",
      "id": "stealth-mode",
      "description": "STEALTH_MODE",
      "password": true
    },
    {
      "type": "promptString",
      "id": "stealth-user-agent",
      "description": "STEALTH_USER_AGENT",
      "password": true
    },
    {
      "type": "promptString",
      "id": "stealth-mask-linux",
      "description": "STEALTH_MASK_LINUX",
      "password": true
    },
    {
      "type": "promptString",
      "id": "stealth-locale",
      "description": "STEALTH_LOCALE",
      "password": true
    },
    {
      "type": "promptString",
      "id": "headless",
      "description": "HEADLESS",
      "password": true
    },
    {
      "type": "promptString",
      "id": "timeout",
      "description": "TIMEOUT",
      "password": true
    },
    {
      "type": "promptString",
      "id": "navigation-timeout",
      "description": "NAVIGATION_TIMEOUT",
      "password": true
    },
    {
      "type": "promptString",
      "id": "screenshot-storage-path",
      "description": "SCREENSHOT_STORAGE_PATH",
      "password": true
    },
    {
      "type": "promptString",
      "id": "video-storage-path",
      "description": "VIDEO_STORAGE_PATH",
      "password": true
    },
    {
      "type": "promptString",
      "id": "proxy-url",
      "description": "PROXY_URL",
      "password": true
    },
    {
      "type": "promptString",
      "id": "proxy-username",
      "description": "PROXY_USERNAME",
      "password": true
    },
    {
      "type": "promptString",
      "id": "proxy-password",
      "description": "PROXY_PASSWORD",
      "password": true
    },
    {
      "type": "promptString",
      "id": "proxy-bypass",
      "description": "PROXY_BYPASS",
      "password": true
    },
    {
      "type": "promptString",
      "id": "browser-permissions",
      "description": "BROWSER_PERMISSIONS",
      "password": true
    },
    {
      "type": "promptString",
      "id": "ignore-https-errors",
      "description": "IGNORE_HTTPS_ERRORS",
      "password": true
    }
  ],
  "servers": {
    "playwright-stealth": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "playwright-stealth-mcp-server"
      ],
      "env": {
        "STEALTH_MODE": "${input:stealth-mode}",
        "STEALTH_USER_AGENT": "${input:stealth-user-agent}",
        "STEALTH_MASK_LINUX": "${input:stealth-mask-linux}",
        "STEALTH_LOCALE": "${input:stealth-locale}",
        "HEADLESS": "${input:headless}",
        "TIMEOUT": "${input:timeout}",
        "NAVIGATION_TIMEOUT": "${input:navigation-timeout}",
        "SCREENSHOT_STORAGE_PATH": "${input:screenshot-storage-path}",
        "VIDEO_STORAGE_PATH": "${input:video-storage-path}",
        "PROXY_URL": "${input:proxy-url}",
        "PROXY_USERNAME": "${input:proxy-username}",
        "PROXY_PASSWORD": "${input:proxy-password}",
        "PROXY_BYPASS": "${input:proxy-bypass}",
        "BROWSER_PERMISSIONS": "${input:browser-permissions}",
        "IGNORE_HTTPS_ERRORS": "${input:ignore-https-errors}"
      }
    }
  }
}

VS Code prompts for each input the first time the server starts, so no secret is written to the file. VS Code docs

playwright stealth in other clients