
Playwright Stealth
com.pulsemcp由 pulsemcp.com 发布v0.2.3更新于 Oct 24, 2026
Browser automation using Playwright with optional stealth mode to bypass anti-bot protection.
发布方自己的服务:Stealth Communications
概览
让助手通过 Playwright 驱动本地 Chromium 浏览器,可选隐身模式,并支持截图、录屏和代理。
- 可以做什么
- 提供一个 browser_execute 工具,可对持久化的 page 对象执行任意 Playwright JavaScript 代码,另有截图、读取浏览器状态、关闭会话以及开始或停止 WebM 录屏的工具。保存的截图和录像以 MCP 资源形式提供。可选的隐身模式会启用 WebDriver 属性屏蔽、User-Agent 规范化等反检测措施。
- 适用场景
- 适合多步骤浏览器自动化:打开页面、填写并提交表单、从动态网站提取数据,以及用截图或录像做可视化验证。隐身模式和代理设置面向会拦截自动化或按 IP 限速的网站。
- 运行要求
- 通过 npx 从 npm 包 playwright-stealth-mcp-server 在本地运行,需要 Node.js 和 Playwright 浏览器二进制文件。仅支持桌面端。可选环境变量用于配置隐身模式、无头模式、超时、截图与录像存储路径、代理设置(PROXY_URL、PROXY_USERNAME、PROXY_PASSWORD、PROXY_BYPASS)、浏览器权限和 HTTPS 错误处理。未声明身份验证。
安装
在 SourceWeft 中
- 打开 控制台中的 Playwright Stealth,将其添加到工作区。
- 为需要使用其工具的对话启用该服务。
Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。
其他 MCP 客户端
参照 仓库 中的启动说明。
README
Playwright Stealth MCP Server
A Model Context Protocol (MCP) server for browser automation using Playwright with optional stealth mode to bypass anti-bot protection.
Features
- Simplified API: Single
browser_executetool that exposes the full Playwright API instead of many specialized tools - Stealth Mode: Optional anti-detection measures using
playwright-extraandpuppeteer-extra-plugin-stealth - Persistent Sessions: Browser session persists across tool calls for multi-step automation
- Screenshot Support: Capture page screenshots for visual verification
- Video Recording: Record browser interactions as WebM videos with explicit start/stop controls
- Code Execution: Run arbitrary Playwright code with access to the
pageobject - Full Permissions: All browser permissions (notifications, geolocation, camera, etc.) granted by default for testing web apps
Installation
Or install globally:
Configuration
Claude Desktop Configuration
Add to your Claude Desktop config file:
Non-Stealth Mode (Standard Playwright):
Stealth Mode (Anti-bot bypass):
With Proxy (e.g., BrightData Residential Proxy):
Environment Variables
Available Tools
browser_execute
Execute Playwright code with access to the page object.
Parameters:
code(required): JavaScript code to execute. Thepageobject is available in scope.timeout(optional): Execution timeout in milliseconds.
Example:
browser_screenshot
Take 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.
Parameters:
fullPage(optional): Capture full scrollable page. Default:falseselector(optional): CSS selector of a specific element to screenshot (e.g.,#main-content,.hero-banner,table.results)clip(optional): Region of the page to screenshot as{x, y, width, height}in pixelsresultHandling(optional): How to handle the result:saveAndReturn(default): Saves to storage AND returns inline base64 imagesaveOnly: Saves to storage and returns only the resource URI (more efficient for large screenshots)
Note: fullPage, selector, and clip are mutually exclusive. Only one can be specified per call.
Returns:
- With
saveAndReturn: Inline base64 PNG image plus aresource_linkwith the file URI - With
saveOnly: Only aresource_linkwith thefile://URI to the saved screenshot
browser_get_state
Get the current browser state including URL, title, and configuration.
browser_close
Close the browser session. A new browser will be launched on the next browser_execute call.
browser_start_recording
Start recording the browser session as a WebM video.
This tool recycles the browser context with video recording enabled. Session state (cookies, localStorage, sessionStorage) is automatically preserved across the context recycling.
If called while already recording, the current recording is automatically stopped and saved before starting a new one.
browser_stop_recording
Stop recording and save the video.
Returns 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.
Returns an error if no recording is active.
MCP Resources
The server exposes saved screenshots and video recordings as MCP resources. Clients can use:
resources/list: List all saved screenshots and videos with their URIs and metadataresources/read: Read a screenshot or video by itsfile://URI
This allows clients to access previously captured screenshots and recordings without needing to take new ones.
Usage Examples
Navigate and Extract Data
Fill and Submit a Form
Handle Dynamic Content
Security Considerations
Important: The browser_execute tool executes arbitrary JavaScript code. This design provides full Playwright API access but has security implications:
- Only use this server with trusted input (e.g., from an LLM in a controlled environment)
- The code runs in a Node.js context with access to the
pageobject - Do not expose this server to untrusted users or public networks
This is intentional for maximum flexibility - it allows LLMs to leverage their existing Playwright knowledge. For production use, ensure proper access controls are in place.
When to Use Stealth Mode
Enable stealth mode (STEALTH_MODE=true) when:
- Accessing sites with Cloudflare protection
- Sites that block automation tools
- Pages that detect headless browsers
- OAuth flows that trigger CAPTCHA challenges
Stealth mode includes:
- WebDriver property masking
- Chrome automation flag removal
- User-Agent normalization
- Plugin/mime type spoofing
- Navigator property patching
Fingerprint Configuration
When 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:
Example: macOS Fingerprint (for Docker/Linux)
Why this matters:
- By default, stealth mode masks Linux as Windows in the User-Agent header only
- However,
navigator.platformstill reports the actual OS (e.g., "Linux x86_64") - This mismatch between User-Agent and platform triggers bot detection
- Setting
STEALTH_MASK_LINUX=falsedisables this masking, allowing the real platform to show - Combined with a custom
STEALTH_USER_AGENT, you can present a consistent fingerprint
When to Use Proxy
Configure proxy settings when:
- Scraping sites that rate-limit by IP address
- Accessing geo-restricted content
- Avoiding IP-based blocks or bans
- Rotating IPs for large-scale data collection
The server supports HTTP/HTTPS proxies with optional authentication, making it compatible with:
- BrightData (Residential, Datacenter, ISP proxies)
- Oxylabs, Smartproxy, and other residential proxy providers
- Self-hosted proxy servers
- Corporate HTTP proxies
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.
HTTPS Certificate Errors
By default, the server ignores HTTPS certificate errors (IGNORE_HTTPS_ERRORS=true). This is convenient for common automation scenarios:
- Docker environments where SSL certificates may not match hostnames
- Corporate networks with MITM proxies that re-sign certificates
- Self-signed certificates in development or staging environments
- Residential proxies that perform HTTPS inspection
To enable strict certificate validation, set IGNORE_HTTPS_ERRORS=false:
Security Note: For production environments where certificate validation is important, set IGNORE_HTTPS_ERRORS=false to protect against man-in-the-middle attacks.
Browser Permissions
By default, the server grants all browser permissions to the browser context. This enables testing of features that require permissions such as:
- Web Push Notifications (
notifications) - Geolocation (
geolocation) - Camera/Microphone (
camera,microphone) - Clipboard (
clipboard-read,clipboard-write) - MIDI devices (
midi,midi-sysex) - Sensors (
accelerometer,gyroscope,magnetometer,ambient-light-sensor) - Other (
background-sync,local-fonts,payment-handler,storage-access)
Constraining Permissions
If you need to restrict permissions (e.g., for security testing or to simulate a user who denies permissions), use the BROWSER_PERMISSIONS environment variable:
This will grant only the specified permissions. All other permission requests will be denied.
Note: Invalid permission names are silently ignored with a warning in the server logs. If a permission is not recognized, it will be skipped.
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.
Testing Web Push Notifications
With the default configuration (all permissions granted), you can test web push notifications:
Development
Architecture
This MCP server uses a simplified design inspired by playwriter:
- Single
browser_executetool instead of many specialized tools - Reduces context window usage for LLMs
- Leverages existing Playwright knowledge in LLM training data
- Full API access without artificial constraints
License
MIT
来源:experimental/playwright-stealth/README.md,提交 0ed34de
工具
0版本历史
1- v0.2.3最新Sep 16, 2026
评分
已满足适用检查项的 50%
该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。
- 近 30 天内可连通25 分
请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。
- 已声明认证方式10 分
请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。
- 已列出工具15 分
请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。
- 描述必需15 分
- 图标10 分
- 文档15 分
- 许可证10 分
其他 Stealth 集成
Stealth Communications
net.stealth官方发布者
远程 MCP 服务器,用于查询纽约市光纤楼宇可用性与专线互联网价格、准备报价,并在客户同意后下单

StealthGPT
由 GitHub 账号 StealthGPT 发布
通过StealthGPT使文本更自然、生成内容草稿并获取运行结果。AI 翻译

StealthGuard 402
由 GitHub 账号 ak10082247-max 发布
远程 MCP 服务器,提供绕过反爬的网页抓取与提示注入清洗,以及 Polymarket、DeFi 和交易前加密情报工具。

Firecrawl Alternative Stealth MCP
由 GitHub 账号 Ansarii 发布
一个远程 MCP 端点,让助手绕过 WAF 抓取网页并被动映射 URL。

Stealth Agent Browser
由 GitHub 账号 ykshah1309 发布
本地运行的隐蔽型 Chromium 浏览器服务器,让助手按元素引用导航网页、读取无障碍快照、点击输入,并以 Markdown 提取正文。