{"_id":"playwright-stealth-mcp-server","_rev":"14-7a40d5b5f8ff4742180cb01ff95cf7cf","name":"playwright-stealth-mcp-server","dist-tags":{"latest":"0.2.3"},"versions":{"0.0.1":{"name":"playwright-stealth-mcp-server","version":"0.0.1","keywords":["mcp","modelcontextprotocol","playwright","stealth","browser","automation"],"author":{"name":"PulseMCP"},"license":"MIT","_id":"playwright-stealth-mcp-server@0.0.1","maintainers":[{"name":"tadasant","email":"tadas412@gmail.com"}],"homepage":"https://github.com/pulsemcp/mcp-servers/tree/main/experimental/playwright-stealth","bugs":{"url":"https://github.com/pulsemcp/mcp-servers/issues"},"bin":{"playwright-stealth-mcp-server":"build/index.js"},"dist":{"shasum":"8f2f3d76172603259a6ec83b36f1da3c2cdc18a1","tarball":"https://registry.npmjs.org/playwright-stealth-mcp-server/-/playwright-stealth-mcp-server-0.0.1.tgz","fileCount":16,"integrity":"sha512-Eb1tKQSXK2NSlQ9j4n8B9nw64gnziHAsE7xG96zwD4Jj1ekH/AC4bIWvq/BcWiaj6mtrUUZaPh4vG/ETqKeBmQ==","signatures":[{"sig":"MEUCIQDTiR83L53jQ1JPHnjmxC1Die3oSFVswHJtIKFx5YjvsAIgbDHi+7zeR2EsFxfIcJ8x9KwFC2+Pa1hUlIq7+GUhXfM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":36051},"main":"build/index.js","type":"module","types":"./build/index.d.ts","gitHead":"fb38cd8b316d240b30062d0630d4cbc86588f72a","mcpName":"com.pulsemcp.servers/playwright-stealth","scripts":{"dev":"tsx src/index.ts","lint":"eslint . --ext .ts,.tsx","build":"tsc && npm run build:integration","start":"node build/index.js","format":"prettier --write .","predev":"cd ../shared && npm run build && cd ../local && node setup-dev.js","lint:fix":"eslint . --ext .ts,.tsx --fix","prebuild":"cd ../shared && npm run build && cd ../local && node setup-dev.js","format:check":"prettier --check .","stage-publish":"npm version","prepublishOnly":"node prepare-publish.js && node ../scripts/prepare-npm-readme.js","dev:integration":"tsx src/index.integration-with-mock.ts","build:integration":"tsc -p tsconfig.integration.json","start:integration":"node build/index.integration-with-mock.js"},"_npmUser":{"name":"tadasant","email":"tadas412@gmail.com"},"repository":{"url":"git+https://github.com/pulsemcp/mcp-servers.git","type":"git","directory":"experimental/playwright-stealth/local"},"_npmVersion":"11.3.0","description":"Local implementation of Playwright Stealth MCP server","directories":{},"_nodeVersion":"24.2.0","dependencies":{"zod":"^3.24.1","playwright":"^1.49.1","playwright-extra":"^4.3.6","@modelcontextprotocol/sdk":"^1.19.1","puppeteer-extra-plugin-stealth":"^2.11.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.4","typescript":"^5.7.3","@types/node":"^22.15.31"},"_npmOperationalInternal":{"tmp":"tmp/playwright-stealth-mcp-server_0.0.1_1767456671435_0.46058425597332087","host":"s3://npm-registry-packages-npm-production"}},"0.0.2":{"name":"playwright-stealth-mcp-server","version":"0.0.2","keywords":["mcp","modelcontextprotocol","playwright","stealth","browser","automation"],"author":{"name":"PulseMCP"},"license":"MIT","_id":"playwright-stealth-mcp-server@0.0.2","maintainers":[{"name":"tadasant","email":"tadas412@gmail.com"}],"homepage":"https://github.com/pulsemcp/mcp-servers/tree/main/experimental/playwright-stealth","bugs":{"url":"https://github.com/pulsemcp/mcp-servers/issues"},"bin":{"playwright-stealth-mcp-server":"build/index.js"},"dist":{"shasum":"284a3d3985b7d5dd9e984eef8bcb6bfb59524a08","tarball":"https://registry.npmjs.org/playwright-stealth-mcp-server/-/playwright-stealth-mcp-server-0.0.2.tgz","fileCount":16,"integrity":"sha512-wjUzo4YVQimqicVf2Y0r7LUDOryDFgWSrVbgIBOcJd/55Y5m9gXhtL3pP8Q4dSbgCWS+8cJ+o+QQWwavMWugrg==","signatures":[{"sig":"MEUCIQCoNCVQ5nUcwg8VU0leyUXrZAMo51/OScMFF6sulBDD2wIgNLP4cF2ADk6blFCZ3sdiWAiuV7slgG8Z29r6U1KgwNA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":36715},"main":"build/index.js","type":"module","types":"./build/index.d.ts","gitHead":"c9c04a18385bce96dd1514fc75cda6f1583fc8a4","mcpName":"com.pulsemcp.servers/playwright-stealth","scripts":{"dev":"tsx src/index.ts","lint":"eslint . --ext .ts,.tsx","build":"tsc && npm run build:integration","start":"node build/index.js","format":"prettier --write .","predev":"cd ../shared && npm run build && cd ../local && node setup-dev.js","lint:fix":"eslint . --ext .ts,.tsx --fix","prebuild":"cd ../shared && npm run build && cd ../local && node setup-dev.js","format:check":"prettier --check .","stage-publish":"npm version","prepublishOnly":"node prepare-publish.js && node ../scripts/prepare-npm-readme.js","dev:integration":"tsx src/index.integration-with-mock.ts","build:integration":"tsc -p tsconfig.integration.json","start:integration":"node build/index.integration-with-mock.js"},"_npmUser":{"name":"tadasant","email":"tadas412@gmail.com"},"repository":{"url":"git+https://github.com/pulsemcp/mcp-servers.git","type":"git","directory":"experimental/playwright-stealth/local"},"_npmVersion":"11.3.0","description":"Local implementation of Playwright Stealth MCP server","directories":{},"_nodeVersion":"24.2.0","dependencies":{"zod":"^3.24.1","playwright":"^1.49.1","playwright-extra":"^4.3.6","@modelcontextprotocol/sdk":"^1.19.1","puppeteer-extra-plugin-stealth":"^2.11.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.4","typescript":"^5.7.3","@types/node":"^22.15.31"},"_npmOperationalInternal":{"tmp":"tmp/playwright-stealth-mcp-server_0.0.2_1767650734369_0.7719358095311901","host":"s3://npm-registry-packages-npm-production"}},"0.0.3":{"name":"playwright-stealth-mcp-server","version":"0.0.3","keywords":["mcp","modelcontextprotocol","playwright","stealth","browser","automation"],"author":{"name":"PulseMCP"},"license":"MIT","_id":"playwright-stealth-mcp-server@0.0.3","maintainers":[{"name":"tadasant","email":"tadas412@gmail.com"}],"homepage":"https://github.com/pulsemcp/mcp-servers/tree/main/experimental/playwright-stealth","bugs":{"url":"https://github.com/pulsemcp/mcp-servers/issues"},"bin":{"playwright-stealth-mcp-server":"build/index.js"},"dist":{"shasum":"dc9e0c220ec0fcbe1d13d158d222af39de864171","tarball":"https://registry.npmjs.org/playwright-stealth-mcp-server/-/playwright-stealth-mcp-server-0.0.3.tgz","fileCount":26,"integrity":"sha512-jENzwCLBArvTfclnMgofRn2RhgtRFrwharY1DU6OYeXsjx1ktXUTkCcI0tB6uLD1LwYX4Sew1KOC9AV0iodXRQ==","signatures":[{"sig":"MEQCIEi+K9J6IM4+9KlSL5gpxzsK9joFyUcUr75C5M0CuA87AiBe54px4BLidWi62WH6+at7bs5Zh2iafx7d1x9ZtVoNcQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":50001},"main":"build/index.js","type":"module","types":"./build/index.d.ts","gitHead":"d8614ab46adb02365abf24bded12fa0ae941f9e8","mcpName":"com.pulsemcp.servers/playwright-stealth","scripts":{"dev":"tsx src/index.ts","lint":"eslint . --ext .ts,.tsx","build":"tsc && npm run build:integration","start":"node build/index.js","format":"prettier --write .","predev":"cd ../shared && npm run build && cd ../local && node setup-dev.js","lint:fix":"eslint . --ext .ts,.tsx --fix","prebuild":"cd ../shared && npm run build && cd ../local && node setup-dev.js","format:check":"prettier --check .","stage-publish":"npm version","prepublishOnly":"node prepare-publish.js && node ../scripts/prepare-npm-readme.js","dev:integration":"tsx src/index.integration-with-mock.ts","build:integration":"tsc -p tsconfig.integration.json","start:integration":"node build/index.integration-with-mock.js"},"_npmUser":{"name":"tadasant","email":"tadas412@gmail.com"},"repository":{"url":"git+https://github.com/pulsemcp/mcp-servers.git","type":"git","directory":"experimental/playwright-stealth/local"},"_npmVersion":"11.3.0","description":"Local implementation of Playwright Stealth MCP server","directories":{},"_nodeVersion":"24.2.0","dependencies":{"zod":"^3.24.1","playwright":"^1.49.1","playwright-extra":"^4.3.6","@modelcontextprotocol/sdk":"^1.19.1","puppeteer-extra-plugin-stealth":"^2.11.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.4","typescript":"^5.7.3","@types/node":"^22.15.31"},"_npmOperationalInternal":{"tmp":"tmp/playwright-stealth-mcp-server_0.0.3_1767908299101_0.22544077813587937","host":"s3://npm-registry-packages-npm-production"}},"0.0.4":{"name":"playwright-stealth-mcp-server","version":"0.0.4","keywords":["mcp","modelcontextprotocol","playwright","stealth","browser","automation"],"author":{"name":"PulseMCP"},"license":"MIT","_id":"playwright-stealth-mcp-server@0.0.4","maintainers":[{"name":"tadasant","email":"tadas412@gmail.com"}],"homepage":"https://github.com/pulsemcp/mcp-servers/tree/main/experimental/playwright-stealth","bugs":{"url":"https://github.com/pulsemcp/mcp-servers/issues"},"bin":{"playwright-stealth-mcp-server":"build/index.js"},"dist":{"shasum":"9849d2ca2673b2c0698ea47f2be19a7a319cf4eb","tarball":"https://registry.npmjs.org/playwright-stealth-mcp-server/-/playwright-stealth-mcp-server-0.0.4.tgz","fileCount":26,"integrity":"sha512-MW0Hwv1ocRjbQR5l7TU+44vzjFZ2sv4d0DxMyGwmGdfPcDVG2QAP4f7tTG7cK7GmP6sbr9qDQEObBGncDnOjVw==","signatures":[{"sig":"MEUCIFtkl0+R8ya63CzXodYrRZIgRtSyQBaEKsF0Nw99vRdDAiEAw2IV6N8hQeFdAFx5FS3ZbVTVFgZD0lXUGS0En6Ln26k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":57752},"main":"build/index.js","type":"module","types":"./build/index.d.ts","gitHead":"2e7b62c9c6e29fa92e3e1c055fd70d6f11c33bfe","mcpName":"com.pulsemcp.servers/playwright-stealth","scripts":{"dev":"tsx src/index.ts","lint":"eslint . --ext .ts,.tsx","build":"tsc && npm run build:integration","start":"node build/index.js","format":"prettier --write .","predev":"cd ../shared && npm run build && cd ../local && node setup-dev.js","lint:fix":"eslint . --ext .ts,.tsx --fix","prebuild":"cd ../shared && npm run build && cd ../local && node setup-dev.js","format:check":"prettier --check .","stage-publish":"npm version","prepublishOnly":"node prepare-publish.js && node ../scripts/prepare-npm-readme.js","dev:integration":"tsx src/index.integration-with-mock.ts","build:integration":"tsc -p tsconfig.integration.json","start:integration":"node build/index.integration-with-mock.js"},"_npmUser":{"name":"tadasant","email":"tadas412@gmail.com"},"repository":{"url":"git+https://github.com/pulsemcp/mcp-servers.git","type":"git","directory":"experimental/playwright-stealth/local"},"_npmVersion":"11.3.0","description":"Local implementation of Playwright Stealth MCP server","directories":{},"_nodeVersion":"24.2.0","dependencies":{"zod":"^3.24.1","playwright":"^1.49.1","playwright-extra":"^4.3.6","@modelcontextprotocol/sdk":"^1.19.1","puppeteer-extra-plugin-stealth":"^2.11.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.4","typescript":"^5.7.3","@types/node":"^22.15.31"},"_npmOperationalInternal":{"tmp":"tmp/playwright-stealth-mcp-server_0.0.4_1767916150203_0.5916429988899063","host":"s3://npm-registry-packages-npm-production"}},"0.0.5":{"name":"playwright-stealth-mcp-server","version":"0.0.5","keywords":["mcp","modelcontextprotocol","playwright","stealth","browser","automation"],"author":{"name":"PulseMCP"},"license":"MIT","_id":"playwright-stealth-mcp-server@0.0.5","maintainers":[{"name":"tadasant","email":"tadas412@gmail.com"}],"homepage":"https://github.com/pulsemcp/mcp-servers/tree/main/experimental/playwright-stealth","bugs":{"url":"https://github.com/pulsemcp/mcp-servers/issues"},"bin":{"playwright-stealth-mcp-server":"build/index.js"},"dist":{"shasum":"c210362170393c9abe403fc6f2e553e5e65528a0","tarball":"https://registry.npmjs.org/playwright-stealth-mcp-server/-/playwright-stealth-mcp-server-0.0.5.tgz","fileCount":26,"integrity":"sha512-2x0rzZkhqDxofSFHgZ79J1CNwlHXdbVZAwwloNpMWSwpQeFlSgOrJ/lgLuKnNGz2zxXMbqDrxL6j5WvX3w1ofQ==","signatures":[{"sig":"MEUCIQCg6+r6778Ryw8DGRSLdH0iC9UlfQGRqJ4GqNXObEt+pQIgNORrVupPK1h6DTw3jYOqCsCGXNudaYkyFZszI6W/JyY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":61985},"main":"build/index.js","type":"module","types":"./build/index.d.ts","gitHead":"a765c5e46bb26114b57449d5715cc44f6243b6e8","mcpName":"com.pulsemcp.servers/playwright-stealth","scripts":{"dev":"tsx src/index.ts","lint":"eslint . --ext .ts,.tsx","build":"tsc && npm run build:integration","start":"node build/index.js","format":"prettier --write .","predev":"cd ../shared && npm run build && cd ../local && node setup-dev.js","lint:fix":"eslint . --ext .ts,.tsx --fix","prebuild":"cd ../shared && npm run build && cd ../local && node setup-dev.js","format:check":"prettier --check .","stage-publish":"npm version","prepublishOnly":"node prepare-publish.js && node ../scripts/prepare-npm-readme.js","dev:integration":"tsx src/index.integration-with-mock.ts","build:integration":"tsc -p tsconfig.integration.json","start:integration":"node build/index.integration-with-mock.js"},"_npmUser":{"name":"tadasant","email":"tadas412@gmail.com"},"repository":{"url":"git+https://github.com/pulsemcp/mcp-servers.git","type":"git","directory":"experimental/playwright-stealth/local"},"_npmVersion":"11.3.0","description":"Local implementation of Playwright Stealth MCP server","directories":{},"_nodeVersion":"24.2.0","dependencies":{"zod":"^3.24.1","playwright":"^1.49.1","playwright-extra":"^4.3.6","@modelcontextprotocol/sdk":"^1.19.1","puppeteer-extra-plugin-stealth":"^2.11.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.4","typescript":"^5.7.3","@types/node":"^22.15.31"},"_npmOperationalInternal":{"tmp":"tmp/playwright-stealth-mcp-server_0.0.5_1767941380842_0.7472969895405166","host":"s3://npm-registry-packages-npm-production"}},"0.0.6":{"name":"playwright-stealth-mcp-server","version":"0.0.6","keywords":["mcp","modelcontextprotocol","playwright","stealth","browser","automation"],"author":{"name":"PulseMCP"},"license":"MIT","_id":"playwright-stealth-mcp-server@0.0.6","maintainers":[{"name":"tadasant","email":"tadas412@gmail.com"}],"homepage":"https://github.com/pulsemcp/mcp-servers/tree/main/experimental/playwright-stealth","bugs":{"url":"https://github.com/pulsemcp/mcp-servers/issues"},"bin":{"playwright-stealth-mcp-server":"build/index.js"},"dist":{"shasum":"f37e516948d07e422233144ed22d92ae560c8966","tarball":"https://registry.npmjs.org/playwright-stealth-mcp-server/-/playwright-stealth-mcp-server-0.0.6.tgz","fileCount":26,"integrity":"sha512-0Wrg6n5e2nP5GW6fJMroQaMJ3+m5lTbaPuNDk+UkNK61RTYr3bepUWlJhVDa50umTmjQRNnL2eyel+14WFnsHw==","signatures":[{"sig":"MEUCIBtDNVj2phLJtuQ02cuiuv6zH4TzDc+URKjTxen7gy2KAiEA+W/dP8GUvAXbKVQd0oIZJ5FKQtU0tDrtRUySMcQGYjo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":65191},"main":"build/index.js","type":"module","types":"./build/index.d.ts","gitHead":"b0e993b8b0d6fb0783ba7a5c01d115b3581bead0","mcpName":"com.pulsemcp.servers/playwright-stealth","scripts":{"dev":"tsx src/index.ts","lint":"eslint . --ext .ts,.tsx","build":"tsc && npm run build:integration","start":"node build/index.js","format":"prettier --write .","predev":"cd ../shared && npm run build && cd ../local && node setup-dev.js","lint:fix":"eslint . --ext .ts,.tsx --fix","prebuild":"cd ../shared && npm run build && cd ../local && node setup-dev.js","format:check":"prettier --check .","stage-publish":"npm version","prepublishOnly":"node prepare-publish.js && node ../scripts/prepare-npm-readme.js","dev:integration":"tsx src/index.integration-with-mock.ts","build:integration":"tsc -p tsconfig.integration.json","start:integration":"node build/index.integration-with-mock.js"},"_npmUser":{"name":"tadasant","email":"tadas412@gmail.com"},"repository":{"url":"git+https://github.com/pulsemcp/mcp-servers.git","type":"git","directory":"experimental/playwright-stealth/local"},"_npmVersion":"11.3.0","description":"Local implementation of Playwright Stealth MCP server","directories":{},"_nodeVersion":"24.2.0","dependencies":{"zod":"^3.24.1","playwright":"^1.49.1","playwright-extra":"^4.3.6","@modelcontextprotocol/sdk":"^1.19.1","puppeteer-extra-plugin-stealth":"^2.11.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.4","typescript":"^5.7.3","@types/node":"^22.15.31"},"_npmOperationalInternal":{"tmp":"tmp/playwright-stealth-mcp-server_0.0.6_1768352297337_0.21703494320050165","host":"s3://npm-registry-packages-npm-production"}},"0.0.7":{"name":"playwright-stealth-mcp-server","version":"0.0.7","keywords":["mcp","modelcontextprotocol","playwright","stealth","browser","automation"],"author":{"name":"PulseMCP"},"license":"MIT","_id":"playwright-stealth-mcp-server@0.0.7","maintainers":[{"name":"tadasant","email":"tadas412@gmail.com"}],"homepage":"https://github.com/pulsemcp/mcp-servers/tree/main/experimental/playwright-stealth","bugs":{"url":"https://github.com/pulsemcp/mcp-servers/issues"},"bin":{"playwright-stealth-mcp-server":"build/index.js"},"dist":{"shasum":"e8750e550650473c8ccd5d6b7d76180185009742","tarball":"https://registry.npmjs.org/playwright-stealth-mcp-server/-/playwright-stealth-mcp-server-0.0.7.tgz","fileCount":26,"integrity":"sha512-QC6fhq0oUtMBokm9Dek2KNlKUB+RQWcAAX+RErbzeLtdD0E+lZWC9zs/8HknxNoLOX8YmogBr8Qmz+QlMEobxg==","signatures":[{"sig":"MEQCIFDdgZN6B0rl/YdzsK/Gl7WYDzsHp/WlOQmz/rWsv+QNAiADKwGszRD5cBb0fjHLB6GioYmPEubhqa8YbhcbLyNMIg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":72635},"main":"build/index.js","type":"module","types":"./build/index.d.ts","gitHead":"12fb7eade975d0ec795537b2e733ae490e583c5e","mcpName":"com.pulsemcp.servers/playwright-stealth","scripts":{"dev":"tsx src/index.ts","lint":"eslint . --ext .ts,.tsx","build":"tsc && npm run build:integration","start":"node build/index.js","format":"prettier --write .","predev":"cd ../shared && npm run build && cd ../local && node setup-dev.js","lint:fix":"eslint . --ext .ts,.tsx --fix","prebuild":"cd ../shared && npm run build && cd ../local && node setup-dev.js","format:check":"prettier --check .","stage-publish":"npm version","prepublishOnly":"node prepare-publish.js && node ../scripts/prepare-npm-readme.js","dev:integration":"tsx src/index.integration-with-mock.ts","build:integration":"tsc -p tsconfig.integration.json","start:integration":"node build/index.integration-with-mock.js"},"_npmUser":{"name":"tadasant","email":"tadas412@gmail.com"},"repository":{"url":"git+https://github.com/pulsemcp/mcp-servers.git","type":"git","directory":"experimental/playwright-stealth/local"},"_npmVersion":"11.3.0","description":"Local implementation of Playwright Stealth MCP server","directories":{},"_nodeVersion":"24.2.0","dependencies":{"zod":"^3.24.1","playwright":"^1.49.1","playwright-extra":"^4.3.6","@modelcontextprotocol/sdk":"^1.19.1","puppeteer-extra-plugin-stealth":"^2.11.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.4","typescript":"^5.7.3","@types/node":"^22.15.31"},"_npmOperationalInternal":{"tmp":"tmp/playwright-stealth-mcp-server_0.0.7_1768598887512_0.5833996415406508","host":"s3://npm-registry-packages-npm-production"}},"0.0.8":{"name":"playwright-stealth-mcp-server","version":"0.0.8","keywords":["mcp","modelcontextprotocol","playwright","stealth","browser","automation"],"author":{"name":"PulseMCP"},"license":"MIT","_id":"playwright-stealth-mcp-server@0.0.8","maintainers":[{"name":"tadasant","email":"tadas412@gmail.com"}],"homepage":"https://github.com/pulsemcp/mcp-servers/tree/main/experimental/playwright-stealth","bugs":{"url":"https://github.com/pulsemcp/mcp-servers/issues"},"bin":{"playwright-stealth-mcp-server":"build/index.js"},"dist":{"shasum":"f8718dc5d968b91b2742a46cf2f1b48a4513930d","tarball":"https://registry.npmjs.org/playwright-stealth-mcp-server/-/playwright-stealth-mcp-server-0.0.8.tgz","fileCount":26,"integrity":"sha512-PfYtP6AnPKd1joreycMToalcsuVv/GQUEI7VaaYpDRm8kwVIJjibfV6gh9dNvYE8AeWKJ3bbdsnoKD/0Y2rCzw==","signatures":[{"sig":"MEUCIBNJJumnMHcoAcAr7rh8YJgIVb4vgU4yEJkB6EbwbnAIAiEA4B9Rg/f8DtCyjITFZFU9zVQ6pU15QwXtBmz/BAyUzUk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":75269},"main":"build/index.js","type":"module","types":"./build/index.d.ts","gitHead":"3031e1d4e8413e0c6da2583f89acda3a87aaff41","mcpName":"com.pulsemcp.servers/playwright-stealth","scripts":{"dev":"tsx src/index.ts","lint":"eslint . --ext .ts,.tsx","build":"tsc && npm run build:integration","start":"node build/index.js","format":"prettier --write .","predev":"cd ../shared && npm run build && cd ../local && node setup-dev.js","lint:fix":"eslint . --ext .ts,.tsx --fix","prebuild":"cd ../shared && npm run build && cd ../local && node setup-dev.js","format:check":"prettier --check .","stage-publish":"npm version","prepublishOnly":"node prepare-publish.js && node ../scripts/prepare-npm-readme.js","dev:integration":"tsx src/index.integration-with-mock.ts","build:integration":"tsc -p tsconfig.integration.json","start:integration":"node build/index.integration-with-mock.js"},"_npmUser":{"name":"tadasant","email":"tadas412@gmail.com"},"repository":{"url":"git+https://github.com/pulsemcp/mcp-servers.git","type":"git","directory":"experimental/playwright-stealth/local"},"_npmVersion":"11.3.0","description":"Local implementation of Playwright Stealth MCP server","directories":{},"_nodeVersion":"24.2.0","dependencies":{"zod":"^3.24.1","playwright":"^1.49.1","playwright-extra":"^4.3.6","@modelcontextprotocol/sdk":"^1.19.1","puppeteer-extra-plugin-stealth":"^2.11.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.4","typescript":"^5.7.3","@types/node":"^22.15.31"},"_npmOperationalInternal":{"tmp":"tmp/playwright-stealth-mcp-server_0.0.8_1768698402294_0.05554425793163209","host":"s3://npm-registry-packages-npm-production"}},"0.0.9":{"name":"playwright-stealth-mcp-server","version":"0.0.9","keywords":["mcp","modelcontextprotocol","playwright","stealth","browser","automation"],"author":{"name":"PulseMCP"},"license":"MIT","_id":"playwright-stealth-mcp-server@0.0.9","maintainers":[{"name":"tadasant","email":"tadas412@gmail.com"}],"homepage":"https://github.com/pulsemcp/mcp-servers/tree/main/experimental/playwright-stealth","bugs":{"url":"https://github.com/pulsemcp/mcp-servers/issues"},"bin":{"playwright-stealth-mcp-server":"build/index.js"},"dist":{"shasum":"58d0142e3c5dc46d994f541e102dcd26b4e91cd5","tarball":"https://registry.npmjs.org/playwright-stealth-mcp-server/-/playwright-stealth-mcp-server-0.0.9.tgz","fileCount":26,"integrity":"sha512-0HHEG+qIttomYjeNunSyx8nH3MY0fjqblww6YX2nU+bMc0uIebHjzVFkwz0FpIcPR/nJKB40elY/PT3wu5Hp7A==","signatures":[{"sig":"MEUCIH5rYXngoKGvM1xlvJfWRgPYxmcJuIVBjQOkKknebyUqAiEAwozEOobKatFtSKe0dV+HcLrvM6HxIYZkqq/hRQeYmUA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":75222},"main":"build/index.js","type":"module","types":"./build/index.d.ts","gitHead":"0303186d99bbed2d5f9fdf5c4445a61bb96b919f","mcpName":"com.pulsemcp.servers/playwright-stealth","scripts":{"dev":"tsx src/index.ts","lint":"eslint . --ext .ts,.tsx","build":"tsc && npm run build:integration","start":"node build/index.js","format":"prettier --write .","predev":"cd ../shared && npm run build && cd ../local && node setup-dev.js","lint:fix":"eslint . --ext .ts,.tsx --fix","prebuild":"cd ../shared && npm run build && cd ../local && node setup-dev.js","format:check":"prettier --check .","stage-publish":"npm version","prepublishOnly":"node prepare-publish.js && node ../scripts/prepare-npm-readme.js","dev:integration":"tsx src/index.integration-with-mock.ts","build:integration":"tsc -p tsconfig.integration.json","start:integration":"node build/index.integration-with-mock.js"},"_npmUser":{"name":"tadasant","email":"tadas412@gmail.com"},"repository":{"url":"git+https://github.com/pulsemcp/mcp-servers.git","type":"git","directory":"experimental/playwright-stealth/local"},"_npmVersion":"11.3.0","description":"Local implementation of Playwright Stealth MCP server","directories":{},"_nodeVersion":"24.2.0","dependencies":{"zod":"^3.24.1","playwright":"^1.49.1","playwright-extra":"^4.3.6","@modelcontextprotocol/sdk":"^1.19.1","puppeteer-extra-plugin-stealth":"^2.11.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.4","typescript":"^5.7.3","@types/node":"^22.15.31"},"_npmOperationalInternal":{"tmp":"tmp/playwright-stealth-mcp-server_0.0.9_1768755697962_0.12978278595495918","host":"s3://npm-registry-packages-npm-production"}},"0.1.0":{"name":"playwright-stealth-mcp-server","version":"0.1.0","keywords":["mcp","modelcontextprotocol","playwright","stealth","browser","automation"],"author":{"name":"PulseMCP"},"license":"MIT","_id":"playwright-stealth-mcp-server@0.1.0","maintainers":[{"name":"tadasant","email":"tadas412@gmail.com"}],"homepage":"https://github.com/pulsemcp/mcp-servers/tree/main/experimental/playwright-stealth","bugs":{"url":"https://github.com/pulsemcp/mcp-servers/issues"},"bin":{"playwright-stealth-mcp-server":"build/index.js"},"dist":{"shasum":"5f668754f352f86f7c9acc12458c1d4a82d9a608","tarball":"https://registry.npmjs.org/playwright-stealth-mcp-server/-/playwright-stealth-mcp-server-0.1.0.tgz","fileCount":32,"integrity":"sha512-ruwW3zKq9hiYTKGUt5jzq0c07t1kvvMQeJXRwENDSnXP93Ddmdm1E5VX5kYNY5XPG2yDAHEuYDbc2FKzOYViEg==","signatures":[{"sig":"MEQCIFeU7IPV8gDM7MsA9rA8Wqyeg9fG2z3kQYPTYSeSeK5pAiAlQ/YAv2QefTboEpwNADTeUk/uTXnZiPTD9Z1VaspBVg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":98595},"main":"build/index.js","type":"module","types":"./build/index.d.ts","gitHead":"86d495e51b09088db682b76bf8ea3af71d16b102","mcpName":"com.pulsemcp.servers/playwright-stealth","scripts":{"dev":"tsx src/index.ts","lint":"eslint . --ext .ts,.tsx","build":"tsc && npm run build:integration","start":"node build/index.js","format":"prettier --write .","predev":"cd ../shared && npm run build && cd ../local && node setup-dev.js","lint:fix":"eslint . --ext .ts,.tsx --fix","prebuild":"cd ../shared && npm run build && cd ../local && node setup-dev.js","format:check":"prettier --check .","stage-publish":"npm version","prepublishOnly":"node prepare-publish.js && node ../scripts/prepare-npm-readme.js","dev:integration":"tsx src/index.integration-with-mock.ts","build:integration":"tsc -p tsconfig.integration.json","start:integration":"node build/index.integration-with-mock.js"},"_npmUser":{"name":"tadasant","email":"tadas412@gmail.com"},"repository":{"url":"git+https://github.com/pulsemcp/mcp-servers.git","type":"git","directory":"experimental/playwright-stealth/local"},"_npmVersion":"11.3.0","description":"Local implementation of Playwright Stealth MCP server","directories":{},"_nodeVersion":"24.2.0","dependencies":{"zod":"^3.24.1","playwright":"^1.49.1","playwright-extra":"^4.3.6","@modelcontextprotocol/sdk":"^1.19.1","puppeteer-extra-plugin-stealth":"^2.11.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.4","typescript":"^5.7.3","@types/node":"^22.15.31"},"_npmOperationalInternal":{"tmp":"tmp/playwright-stealth-mcp-server_0.1.0_1771822244172_0.1986545497255936","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"playwright-stealth-mcp-server","version":"0.2.0","keywords":["mcp","modelcontextprotocol","playwright","stealth","browser","automation"],"author":{"name":"PulseMCP"},"license":"MIT","_id":"playwright-stealth-mcp-server@0.2.0","maintainers":[{"name":"tadasant","email":"tadas412@gmail.com"}],"homepage":"https://github.com/pulsemcp/mcp-servers/tree/main/experimental/playwright-stealth","bugs":{"url":"https://github.com/pulsemcp/mcp-servers/issues"},"bin":{"playwright-stealth-mcp-server":"build/index.js"},"dist":{"shasum":"975088f06ec95cc2e715abd913ce5eb2cb7aea1c","tarball":"https://registry.npmjs.org/playwright-stealth-mcp-server/-/playwright-stealth-mcp-server-0.2.0.tgz","fileCount":32,"integrity":"sha512-wNrcwMYE+HZAFagk/LIRV8J/TxW/OPtnYRjlan6SmaRYhFrjGU1mDaPdEybORd5/HNcY4UWRKTOObYVSE8r43w==","signatures":[{"sig":"MEYCIQDz6sv66QLzHwI46ytvxg5wQEP4BPleGpFJogDel2P8qAIhAKqsZgSb3XlZ2N47NBsSsdBURSDvX3G7N1cMJh3AAjo5","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":106134},"main":"build/index.js","type":"module","types":"./build/index.d.ts","gitHead":"397eb6ba33120a986f9386fcec95090b7d88b02e","mcpName":"com.pulsemcp.servers/playwright-stealth","scripts":{"dev":"tsx src/index.ts","lint":"eslint . --ext .ts,.tsx","build":"tsc && npm run build:integration","start":"node build/index.js","format":"prettier --write .","predev":"cd ../shared && npm run build && cd ../local && node setup-dev.js","lint:fix":"eslint . --ext .ts,.tsx --fix","prebuild":"cd ../shared && npm run build && cd ../local && node setup-dev.js","format:check":"prettier --check .","stage-publish":"npm version","prepublishOnly":"node prepare-publish.js && node ../scripts/prepare-npm-readme.js","dev:integration":"tsx src/index.integration-with-mock.ts","build:integration":"tsc -p tsconfig.integration.json","start:integration":"node build/index.integration-with-mock.js"},"_npmUser":{"name":"tadasant","email":"tadas412@gmail.com"},"repository":{"url":"git+https://github.com/pulsemcp/mcp-servers.git","type":"git","directory":"experimental/playwright-stealth/local"},"_npmVersion":"11.3.0","description":"Local implementation of Playwright Stealth MCP server","directories":{},"_nodeVersion":"24.2.0","dependencies":{"zod":"^3.24.1","playwright":"^1.49.1","playwright-extra":"^4.3.6","@modelcontextprotocol/sdk":"^1.19.1","puppeteer-extra-plugin-stealth":"^2.11.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.4","typescript":"^5.7.3","@types/node":"^22.15.31"},"_npmOperationalInternal":{"tmp":"tmp/playwright-stealth-mcp-server_0.2.0_1772521853111_0.24388532521739315","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"playwright-stealth-mcp-server","version":"0.2.1","keywords":["mcp","modelcontextprotocol","playwright","stealth","browser","automation"],"author":{"name":"PulseMCP"},"license":"MIT","_id":"playwright-stealth-mcp-server@0.2.1","maintainers":[{"name":"tadasant","email":"tadas412@gmail.com"}],"homepage":"https://github.com/pulsemcp/mcp-servers/tree/main/experimental/playwright-stealth","bugs":{"url":"https://github.com/pulsemcp/mcp-servers/issues"},"bin":{"playwright-stealth-mcp-server":"build/index.js"},"dist":{"shasum":"1b721f8eddcc1161a366e7f77960293541ac8d7b","tarball":"https://registry.npmjs.org/playwright-stealth-mcp-server/-/playwright-stealth-mcp-server-0.2.1.tgz","fileCount":32,"integrity":"sha512-R5uFZzWDYdF58EXve+ugVpANkhEk2DMva1DD/IW7K3kau+F+I5d/SOySOhwkf3lnSDcgKm+XksA3Av3j9dOnuA==","signatures":[{"sig":"MEUCIQC3NeWuvluNIo0Til3LFTI7PkBiaQPgWikOzchy+gZJVwIgaAk5/gajaBgHvMzR/kvXVQLWzB++RucL9TAKP9ou6zA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":106134},"main":"build/index.js","type":"module","types":"./build/index.d.ts","gitHead":"4f6525bc4a79f3f22dd12026cbd87db21b8b5683","mcpName":"com.pulsemcp.servers/playwright-stealth","scripts":{"dev":"tsx src/index.ts","lint":"eslint . --ext .ts,.tsx","build":"tsc && npm run build:integration","start":"node build/index.js","format":"prettier --write .","predev":"cd ../shared && npm run build && cd ../local && node setup-dev.js","lint:fix":"eslint . --ext .ts,.tsx --fix","prebuild":"cd ../shared && npm run build && cd ../local && node setup-dev.js","format:check":"prettier --check .","stage-publish":"npm version","prepublishOnly":"node prepare-publish.js && node ../scripts/prepare-npm-readme.js","dev:integration":"tsx src/index.integration-with-mock.ts","build:integration":"tsc -p tsconfig.integration.json","start:integration":"node build/index.integration-with-mock.js"},"_npmUser":{"name":"tadasant","email":"tadas412@gmail.com"},"repository":{"url":"git+https://github.com/pulsemcp/mcp-servers.git","type":"git","directory":"experimental/playwright-stealth/local"},"_npmVersion":"11.3.0","description":"Local implementation of Playwright Stealth MCP server","directories":{},"_nodeVersion":"24.2.0","dependencies":{"zod":"^3.24.1","playwright":"^1.49.1","playwright-extra":"^4.3.6","@modelcontextprotocol/sdk":"^1.19.1","puppeteer-extra-plugin-stealth":"^2.11.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.4","typescript":"^5.7.3","@types/node":"^22.15.31"},"_npmOperationalInternal":{"tmp":"tmp/playwright-stealth-mcp-server_0.2.1_1775967353114_0.10033918617619908","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"playwright-stealth-mcp-server","version":"0.2.2","keywords":["mcp","modelcontextprotocol","playwright","stealth","browser","automation"],"author":{"name":"PulseMCP"},"license":"MIT","_id":"playwright-stealth-mcp-server@0.2.2","maintainers":[{"name":"tadasant","email":"tadas412@gmail.com"}],"homepage":"https://github.com/pulsemcp/mcp-servers/tree/main/experimental/playwright-stealth","bugs":{"url":"https://github.com/pulsemcp/mcp-servers/issues"},"bin":{"playwright-stealth-mcp-server":"build/index.js"},"dist":{"shasum":"29fd7a0c412b6e337089dfce1fb075a6d326d608","tarball":"https://registry.npmjs.org/playwright-stealth-mcp-server/-/playwright-stealth-mcp-server-0.2.2.tgz","fileCount":32,"integrity":"sha512-A9+d1XzVcGASM5qxQyZjx/uWMmSxpqPgOFDMtsDw/20Xdp7FkgDlUiJIIEui2OYlmB2dW/TZVbIVPaL5haSJGA==","signatures":[{"sig":"MEQCIDEZZDz4B/iDEfQ/HmmVLwyGKFdYu1AytVqh0ZgiFscvAiAotvWfh5se4oMEj7hW9iL0VImWh2GjmyVWx915RtLK+w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":106126},"main":"build/index.js","type":"module","types":"./build/index.d.ts","gitHead":"b3fa1030a3fafd7befe891236ecab979678570a1","mcpName":"com.pulsemcp/playwright-stealth","scripts":{"dev":"tsx src/index.ts","lint":"eslint . --ext .ts,.tsx","build":"tsc && npm run build:integration","start":"node build/index.js","format":"prettier --write .","predev":"cd ../shared && npm run build && cd ../local && node setup-dev.js","lint:fix":"eslint . --ext .ts,.tsx --fix","prebuild":"cd ../shared && npm run build && cd ../local && node setup-dev.js","format:check":"prettier --check .","stage-publish":"npm version","prepublishOnly":"node prepare-publish.js && node ../scripts/prepare-npm-readme.js","dev:integration":"tsx src/index.integration-with-mock.ts","build:integration":"tsc -p tsconfig.integration.json","start:integration":"node build/index.integration-with-mock.js"},"_npmUser":{"name":"tadasant","email":"tadas412@gmail.com"},"repository":{"url":"git+https://github.com/pulsemcp/mcp-servers.git","type":"git","directory":"experimental/playwright-stealth/local"},"_npmVersion":"11.3.0","description":"Local implementation of Playwright Stealth MCP server","directories":{},"_nodeVersion":"24.2.0","dependencies":{"zod":"^3.24.1","playwright":"^1.49.1","playwright-extra":"^4.3.6","@modelcontextprotocol/sdk":"^1.29.0","puppeteer-extra-plugin-stealth":"^2.11.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.4","typescript":"^5.7.3","@types/node":"^22.15.31"},"_npmOperationalInternal":{"tmp":"tmp/playwright-stealth-mcp-server_0.2.2_1779068617983_0.2496500933507737","host":"s3://npm-registry-packages-npm-production"}},"0.2.3":{"name":"playwright-stealth-mcp-server","version":"0.2.3","description":"Local implementation of Playwright Stealth MCP server","mcpName":"com.pulsemcp/playwright-stealth","main":"build/index.js","type":"module","bin":{"playwright-stealth-mcp-server":"build/index.js"},"scripts":{"build":"tsc && npm run build:integration","build:integration":"tsc -p tsconfig.integration.json","start":"node build/index.js","start:integration":"node build/index.integration-with-mock.js","dev":"tsx src/index.ts","dev:integration":"tsx src/index.integration-with-mock.ts","predev":"cd ../shared && npm run build && cd ../local && node setup-dev.js","prebuild":"cd ../shared && npm run build && cd ../local && node setup-dev.js","prepublishOnly":"node prepare-publish.js && node ../scripts/prepare-npm-readme.js","lint":"eslint . --ext .ts,.tsx","lint:fix":"eslint . --ext .ts,.tsx --fix","format":"prettier --write .","format:check":"prettier --check .","stage-publish":"npm version"},"dependencies":{"@modelcontextprotocol/sdk":"^1.29.0","playwright":"^1.49.1","playwright-extra":"^4.3.6","puppeteer-extra-plugin-stealth":"^2.11.2","zod":"^3.25.76"},"devDependencies":{"@types/node":"^22.15.31","tsx":"^4.22.4","typescript":"^5.7.3"},"keywords":["mcp","modelcontextprotocol","playwright","stealth","browser","automation"],"author":{"name":"PulseMCP"},"license":"MIT","publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/pulsemcp/mcp-servers.git","directory":"experimental/playwright-stealth/local"},"bugs":{"url":"https://github.com/pulsemcp/mcp-servers/issues"},"homepage":"https://github.com/pulsemcp/mcp-servers/tree/main/experimental/playwright-stealth","_id":"playwright-stealth-mcp-server@0.2.3","gitHead":"2933cf865b956a33e6d8201a55a9cb47a66ab260","types":"./build/index.d.ts","_nodeVersion":"24.2.0","_npmVersion":"11.3.0","dist":{"integrity":"sha512-wyGQ63dJftzOm828RBYVSlg2xtjJEpoCHCa9kNpUNYcRvjbPBRDYnrL9y8Odnu0iWT05reQOwThFHvJ7YV5uHQ==","shasum":"c37366c694f40ee065f16aaf8e2f41a7bc075c83","tarball":"https://registry.npmjs.org/playwright-stealth-mcp-server/-/playwright-stealth-mcp-server-0.2.3.tgz","fileCount":32,"unpackedSize":106127,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCWLn1ImHTDVlFEgrT+hZdKzYQ6RfIjE4kDQpiaU7EzJgIhAK+zldEIylCgC35uF06RTxWrulP80Rcy3I6MF7jPfSH7"}]},"_npmUser":{"name":"tadasant","email":"tadas412@gmail.com"},"directories":{},"maintainers":[{"name":"tadasant","email":"tadas412@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/playwright-stealth-mcp-server_0.2.3_1781458183475_0.2216404194938033"},"_hasShrinkwrap":false}},"time":{"created":"2026-01-03T16:11:11.355Z","modified":"2026-06-14T17:29:43.856Z","0.0.1":"2026-01-03T16:11:11.575Z","0.0.2":"2026-01-05T22:05:34.514Z","0.0.3":"2026-01-08T21:38:19.231Z","0.0.4":"2026-01-08T23:49:10.342Z","0.0.5":"2026-01-09T06:49:41.004Z","0.0.6":"2026-01-14T00:58:17.481Z","0.0.7":"2026-01-16T21:28:07.672Z","0.0.8":"2026-01-18T01:06:42.469Z","0.0.9":"2026-01-18T17:01:38.098Z","0.1.0":"2026-02-23T04:50:44.310Z","0.2.0":"2026-03-03T07:10:53.277Z","0.2.1":"2026-04-12T04:15:53.260Z","0.2.2":"2026-05-18T01:43:38.132Z","0.2.3":"2026-06-14T17:29:43.647Z"},"bugs":{"url":"https://github.com/pulsemcp/mcp-servers/issues"},"author":{"name":"PulseMCP"},"license":"MIT","homepage":"https://github.com/pulsemcp/mcp-servers/tree/main/experimental/playwright-stealth","keywords":["mcp","modelcontextprotocol","playwright","stealth","browser","automation"],"repository":{"type":"git","url":"git+https://github.com/pulsemcp/mcp-servers.git","directory":"experimental/playwright-stealth/local"},"description":"Local implementation of Playwright Stealth MCP server","maintainers":[{"name":"tadasant","email":"tadas412@gmail.com"}],"readme":"# Playwright Stealth MCP Server\n\nA Model Context Protocol (MCP) server for browser automation using Playwright with optional stealth mode to bypass anti-bot protection.\n\n## Features\n\n- **Simplified API**: Single `browser_execute` tool that exposes the full Playwright API instead of many specialized tools\n- **Stealth Mode**: Optional anti-detection measures using `playwright-extra` and `puppeteer-extra-plugin-stealth`\n- **Persistent Sessions**: Browser session persists across tool calls for multi-step automation\n- **Screenshot Support**: Capture page screenshots for visual verification\n- **Video Recording**: Record browser interactions as WebM videos with explicit start/stop controls\n- **Code Execution**: Run arbitrary Playwright code with access to the `page` object\n- **Full Permissions**: All browser permissions (notifications, geolocation, camera, etc.) granted by default for testing web apps\n\n## Installation\n\n```bash\nnpx playwright-stealth-mcp-server\n```\n\nOr install globally:\n\n```bash\nnpm install -g playwright-stealth-mcp-server\n```\n\n## Configuration\n\n### Claude Desktop Configuration\n\nAdd to your Claude Desktop config file:\n\n**Non-Stealth Mode** (Standard Playwright):\n\n```json\n{\n  \"mcpServers\": {\n    \"playwright\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"playwright-stealth-mcp-server\"],\n      \"env\": {\n        \"STEALTH_MODE\": \"false\"\n      }\n    }\n  }\n}\n```\n\n**Stealth Mode** (Anti-bot bypass):\n\n```json\n{\n  \"mcpServers\": {\n    \"playwright-stealth\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"playwright-stealth-mcp-server\"],\n      \"env\": {\n        \"STEALTH_MODE\": \"true\"\n      }\n    }\n  }\n}\n```\n\n**With Proxy** (e.g., BrightData Residential Proxy):\n\n```json\n{\n  \"mcpServers\": {\n    \"playwright-proxy\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"playwright-stealth-mcp-server\"],\n      \"env\": {\n        \"STEALTH_MODE\": \"true\",\n        \"PROXY_URL\": \"http://brd.superproxy.io:22225\",\n        \"PROXY_USERNAME\": \"brd-customer-XXXXX-zone-residential\",\n        \"PROXY_PASSWORD\": \"your-password\"\n      }\n    }\n  }\n}\n```\n\n### Environment Variables\n\n| Variable                  | Description                                                                       | Default                       |\n| ------------------------- | --------------------------------------------------------------------------------- | ----------------------------- |\n| `STEALTH_MODE`            | Enable stealth mode with anti-detection measures                                  | `false`                       |\n| `STEALTH_USER_AGENT`      | Custom User-Agent string (stealth mode only)                                      | Browser default               |\n| `STEALTH_MASK_LINUX`      | Mask Linux in User-Agent as Windows; set to `false` to avoid fingerprint mismatch | `true`                        |\n| `STEALTH_LOCALE`          | Custom locale for Accept-Language header (stealth mode only)                      | `en-US,en`                    |\n| `HEADLESS`                | Run browser in headless mode                                                      | `true`                        |\n| `TIMEOUT`                 | Default timeout for Playwright actions (click, fill, etc.) in milliseconds        | `30000`                       |\n| `NAVIGATION_TIMEOUT`      | Default timeout for page navigation (goto, reload, etc.) in milliseconds          | `60000`                       |\n| `SCREENSHOT_STORAGE_PATH` | Directory for storing screenshots                                                 | `/tmp/playwright-screenshots` |\n| `VIDEO_STORAGE_PATH`      | Directory for storing video recordings                                            | `/tmp/playwright-videos`      |\n| `PROXY_URL`               | Proxy server URL (e.g., `http://proxy.example.com:8080`)                          | -                             |\n| `PROXY_USERNAME`          | Proxy authentication username                                                     | -                             |\n| `PROXY_PASSWORD`          | Proxy authentication password                                                     | -                             |\n| `PROXY_BYPASS`            | Comma-separated list of hosts to bypass proxy                                     | -                             |\n| `BROWSER_PERMISSIONS`     | Comma-separated list of browser permissions to grant (see below)                  | All permissions               |\n| `IGNORE_HTTPS_ERRORS`     | Ignore HTTPS certificate errors (set to `false` for stricter security)            | `true`                        |\n\n## Available Tools\n\n### `browser_execute`\n\nExecute Playwright code with access to the `page` object.\n\n**Parameters:**\n\n- `code` (required): JavaScript code to execute. The `page` object is available in scope.\n- `timeout` (optional): Execution timeout in milliseconds.\n\n**Example:**\n\n```javascript\nawait page.goto('https://example.com');\nconst title = await page.title();\nreturn title;\n```\n\n### `browser_screenshot`\n\nTake a screenshot of the current page, a specific element, or a page region. Screenshots are saved to filesystem storage and can be accessed later via MCP resources.\n\n**Parameters:**\n\n- `fullPage` (optional): Capture full scrollable page. Default: `false`\n- `selector` (optional): CSS selector of a specific element to screenshot (e.g., `#main-content`, `.hero-banner`, `table.results`)\n- `clip` (optional): Region of the page to screenshot as `{x, y, width, height}` in pixels\n- `resultHandling` (optional): How to handle the result:\n  - `saveAndReturn` (default): Saves to storage AND returns inline base64 image\n  - `saveOnly`: Saves to storage and returns only the resource URI (more efficient for large screenshots)\n\n**Note:** `fullPage`, `selector`, and `clip` are mutually exclusive. Only one can be specified per call.\n\n**Returns:**\n\n- With `saveAndReturn`: Inline base64 PNG image plus a `resource_link` with the file URI\n- With `saveOnly`: Only a `resource_link` with the `file://` URI to the saved screenshot\n\n### `browser_get_state`\n\nGet the current browser state including URL, title, and configuration.\n\n### `browser_close`\n\nClose the browser session. A new browser will be launched on the next `browser_execute` call.\n\n### `browser_start_recording`\n\nStart recording the browser session as a WebM video.\n\nThis tool recycles the browser context with video recording enabled. Session state (cookies, localStorage, sessionStorage) is automatically preserved across the context recycling.\n\nIf called while already recording, the current recording is automatically stopped and saved before starting a new one.\n\n### `browser_stop_recording`\n\nStop recording and save the video.\n\nReturns a `resource_link` with the `file://` URI to the saved video (WebM format). Session state is preserved — the browser navigates back to the previous URL automatically.\n\nReturns an error if no recording is active.\n\n## MCP Resources\n\nThe server exposes saved screenshots and video recordings as MCP resources. Clients can use:\n\n- `resources/list`: List all saved screenshots and videos with their URIs and metadata\n- `resources/read`: Read a screenshot or video by its `file://` URI\n\nThis allows clients to access previously captured screenshots and recordings without needing to take new ones.\n\n## Usage Examples\n\n### Navigate and Extract Data\n\n```javascript\n// Navigate to a page\nawait page.goto('https://news.ycombinator.com');\n\n// Extract headlines\nconst headlines = await page.$$eval('.titleline > a', (links) =>\n  links.slice(0, 5).map((a) => a.textContent)\n);\n\nreturn headlines;\n```\n\n### Fill and Submit a Form\n\n```javascript\nawait page.goto('https://example.com/login');\n\n// Fill credentials\nawait page.fill('input[name=\"email\"]', 'user@example.com');\nawait page.fill('input[name=\"password\"]', 'password123');\n\n// Submit form\nawait page.click('button[type=\"submit\"]');\n\n// Wait for navigation\nawait page.waitForNavigation();\n\nreturn await page.title();\n```\n\n### Handle Dynamic Content\n\n```javascript\nawait page.goto('https://spa-example.com');\n\n// Wait for element to appear\nawait page.waitForSelector('.loaded-content');\n\n// Click to load more\nawait page.click('.load-more-button');\n\n// Wait for new content\nawait page.waitForSelector('.new-items');\n\nconst items = await page.$$eval('.item', (els) => els.map((el) => el.textContent));\nreturn items;\n```\n\n## Security Considerations\n\n**Important:** The `browser_execute` tool executes arbitrary JavaScript code. This design provides full Playwright API access but has security implications:\n\n- Only use this server with trusted input (e.g., from an LLM in a controlled environment)\n- The code runs in a Node.js context with access to the `page` object\n- Do not expose this server to untrusted users or public networks\n\nThis is intentional for maximum flexibility - it allows LLMs to leverage their existing Playwright knowledge. For production use, ensure proper access controls are in place.\n\n## When to Use Stealth Mode\n\nEnable stealth mode (`STEALTH_MODE=true`) when:\n\n- Accessing sites with Cloudflare protection\n- Sites that block automation tools\n- Pages that detect headless browsers\n- OAuth flows that trigger CAPTCHA challenges\n\nStealth mode includes:\n\n- WebDriver property masking\n- Chrome automation flag removal\n- User-Agent normalization\n- Plugin/mime type spoofing\n- Navigator property patching\n\n### Fingerprint Configuration\n\nWhen running in Docker/Linux environments, bot detection systems may identify a fingerprint mismatch between the User-Agent header and other browser signals like `navigator.platform`. Use these environment variables to configure consistent fingerprints:\n\n**Example: macOS Fingerprint (for Docker/Linux)**\n\n```json\n{\n  \"mcpServers\": {\n    \"playwright-stealth\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"playwright-stealth-mcp-server\"],\n      \"env\": {\n        \"STEALTH_MODE\": \"true\",\n        \"STEALTH_USER_AGENT\": \"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36\",\n        \"STEALTH_MASK_LINUX\": \"false\"\n      }\n    }\n  }\n}\n```\n\n**Why this matters:**\n\n- By default, stealth mode masks Linux as Windows in the User-Agent header only\n- However, `navigator.platform` still reports the actual OS (e.g., \"Linux x86_64\")\n- This mismatch between User-Agent and platform triggers bot detection\n- Setting `STEALTH_MASK_LINUX=false` disables this masking, allowing the real platform to show\n- Combined with a custom `STEALTH_USER_AGENT`, you can present a consistent fingerprint\n\n## When to Use Proxy\n\nConfigure proxy settings when:\n\n- Scraping sites that rate-limit by IP address\n- Accessing geo-restricted content\n- Avoiding IP-based blocks or bans\n- Rotating IPs for large-scale data collection\n\nThe server supports HTTP/HTTPS proxies with optional authentication, making it compatible with:\n\n- **BrightData** (Residential, Datacenter, ISP proxies)\n- **Oxylabs**, **Smartproxy**, and other residential proxy providers\n- Self-hosted proxy servers\n- Corporate HTTP proxies\n\n**Note:** When proxy is configured, the server performs a health check on startup to verify the proxy connection works. If the health check fails, the server will exit with an error.\n\n## HTTPS Certificate Errors\n\nBy default, the server ignores HTTPS certificate errors (`IGNORE_HTTPS_ERRORS=true`). This is convenient for common automation scenarios:\n\n- **Docker environments** where SSL certificates may not match hostnames\n- **Corporate networks** with MITM proxies that re-sign certificates\n- **Self-signed certificates** in development or staging environments\n- **Residential proxies** that perform HTTPS inspection\n\nTo enable strict certificate validation, set `IGNORE_HTTPS_ERRORS=false`:\n\n```json\n{\n  \"mcpServers\": {\n    \"playwright\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"playwright-stealth-mcp-server\"],\n      \"env\": {\n        \"IGNORE_HTTPS_ERRORS\": \"false\"\n      }\n    }\n  }\n}\n```\n\n**Security Note:** For production environments where certificate validation is important, set `IGNORE_HTTPS_ERRORS=false` to protect against man-in-the-middle attacks.\n\n## Browser Permissions\n\nBy default, the server grants **all** browser permissions to the browser context. This enables testing of features that require permissions such as:\n\n- **Web Push Notifications** (`notifications`)\n- **Geolocation** (`geolocation`)\n- **Camera/Microphone** (`camera`, `microphone`)\n- **Clipboard** (`clipboard-read`, `clipboard-write`)\n- **MIDI devices** (`midi`, `midi-sysex`)\n- **Sensors** (`accelerometer`, `gyroscope`, `magnetometer`, `ambient-light-sensor`)\n- **Other** (`background-sync`, `local-fonts`, `payment-handler`, `storage-access`)\n\n### Constraining Permissions\n\nIf you need to restrict permissions (e.g., for security testing or to simulate a user who denies permissions), use the `BROWSER_PERMISSIONS` environment variable:\n\n```json\n{\n  \"mcpServers\": {\n    \"playwright\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"playwright-stealth-mcp-server\"],\n      \"env\": {\n        \"BROWSER_PERMISSIONS\": \"notifications,clipboard-read,clipboard-write\"\n      }\n    }\n  }\n}\n```\n\nThis will grant only the specified permissions. All other permission requests will be denied.\n\n**Note:** Invalid permission names are silently ignored with a warning in the server logs. If a permission is not recognized, it will be skipped.\n\n**Browser Compatibility:** Permission support varies by browser. This server uses Chromium by default, where all listed permissions are supported. If using Firefox or WebKit, some permissions may not work.\n\n### Testing Web Push Notifications\n\nWith the default configuration (all permissions granted), you can test web push notifications:\n\n```javascript\n// Check if notifications are supported and granted\nconst permission = await page.evaluate(() => Notification.permission);\nconsole.log('Notification permission:', permission); // Should be \"granted\"\n\n// Request notification permission (will auto-grant)\nawait page.evaluate(async () => {\n  const result = await Notification.requestPermission();\n  console.log('Permission result:', result);\n});\n\n// Create a test notification\nawait page.evaluate(() => {\n  new Notification('Test Notification', {\n    body: 'This is a test notification from Playwright',\n  });\n});\n```\n\n## Development\n\n```bash\n# Install dependencies\nnpm run install-all\n\n# Build the project\nnpm run build\n\n# Run in development mode\nnpm run dev\n\n# Run tests\nnpm test\n\n# Run integration tests\nnpm run test:integration\n\n# Run manual tests (requires Playwright browsers)\nnpm run test:manual:setup\nnpm run test:manual\n```\n\n## Architecture\n\nThis MCP server uses a simplified design inspired by [playwriter](https://github.com/remorses/playwriter):\n\n- Single `browser_execute` tool instead of many specialized tools\n- Reduces context window usage for LLMs\n- Leverages existing Playwright knowledge in LLM training data\n- Full API access without artificial constraints\n\n## License\n\nMIT\n","readmeFilename":"README.md"}