Browser Use
Browser agents and stealth cloud browsers for AI: run web tasks, fill forms, extract data.
作者による説明(英語の原文)
Browser automation using Playwright with optional stealth mode to bypass anti-bot protection.
この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。
このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。
使っているAIアプリを選んで、設定をコピーしてください。
STEALTH_MODE, STEALTH_USER_AGENT, STEALTH_MASK_LINUX, STEALTH_LOCALE, HEADLESS, TIMEOUT, NAVIGATION_TIMEOUT, SCREENSHOT_STORAGE_PATH, VIDEO_STORAGE_PATH, PROXY_URL, PROXY_USERNAME, PROXY_PASSWORD, PROXY_BYPASS, BROWSER_PERMISSIONS, IGNORE_HTTPS_ERRORS「秘密」と表示された値は、あなたのアカウントの鍵です。絶対に人に教えたり、チャットに貼り付けたりしないでください。
必要なもの
どのアプリを使っていますか?
上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。
Claude Desktop → Settings → Developer → Edit Config を開き、claude_desktop_config.json にこれを貼り付けます
{
"mcpServers": {
"playwright-stealth": {
"command": "npx",
"args": [
"-y",
"playwright-stealth-mcp-server"
],
"env": {
"STEALTH_MODE": "your-value",
"STEALTH_USER_AGENT": "your-value",
"STEALTH_MASK_LINUX": "your-value",
"STEALTH_LOCALE": "your-value",
"HEADLESS": "your-value",
"TIMEOUT": "your-value",
"NAVIGATION_TIMEOUT": "your-value",
"SCREENSHOT_STORAGE_PATH": "your-value",
"VIDEO_STORAGE_PATH": "your-value",
"PROXY_URL": "your-value",
"PROXY_USERNAME": "your-value",
"PROXY_PASSWORD": "your-value",
"PROXY_BYPASS": "your-value",
"BROWSER_PERMISSIONS": "your-value",
"IGNORE_HTTPS_ERRORS": "your-value"
}
}
}
}ターミナルでこれを実行します
claude mcp add playwright-stealth --env STEALTH_MODE=your-value --env STEALTH_USER_AGENT=your-value --env STEALTH_MASK_LINUX=your-value --env STEALTH_LOCALE=your-value --env HEADLESS=your-value --env TIMEOUT=your-value --env NAVIGATION_TIMEOUT=your-value --env SCREENSHOT_STORAGE_PATH=your-value --env VIDEO_STORAGE_PATH=your-value --env PROXY_URL=your-value --env PROXY_USERNAME=your-value --env PROXY_PASSWORD=your-value --env PROXY_BYPASS=your-value --env BROWSER_PERMISSIONS=your-value --env IGNORE_HTTPS_ERRORS=your-value -- npx -y playwright-stealth-mcp-server動かす前に、空欄の値を入力してください。
プロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます
{
"mcpServers": {
"playwright-stealth": {
"command": "npx",
"args": [
"-y",
"playwright-stealth-mcp-server"
],
"env": {
"STEALTH_MODE": "your-value",
"STEALTH_USER_AGENT": "your-value",
"STEALTH_MASK_LINUX": "your-value",
"STEALTH_LOCALE": "your-value",
"HEADLESS": "your-value",
"TIMEOUT": "your-value",
"NAVIGATION_TIMEOUT": "your-value",
"SCREENSHOT_STORAGE_PATH": "your-value",
"VIDEO_STORAGE_PATH": "your-value",
"PROXY_URL": "your-value",
"PROXY_USERNAME": "your-value",
"PROXY_PASSWORD": "your-value",
"PROXY_BYPASS": "your-value",
"BROWSER_PERMISSIONS": "your-value",
"IGNORE_HTTPS_ERRORS": "your-value"
}
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
プロジェクトの .vscode/mcp.json に貼り付けます
{
"servers": {
"playwright-stealth": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"playwright-stealth-mcp-server"
],
"env": {
"STEALTH_MODE": "your-value",
"STEALTH_USER_AGENT": "your-value",
"STEALTH_MASK_LINUX": "your-value",
"STEALTH_LOCALE": "your-value",
"HEADLESS": "your-value",
"TIMEOUT": "your-value",
"NAVIGATION_TIMEOUT": "your-value",
"SCREENSHOT_STORAGE_PATH": "your-value",
"VIDEO_STORAGE_PATH": "your-value",
"PROXY_URL": "your-value",
"PROXY_USERNAME": "your-value",
"PROXY_PASSWORD": "your-value",
"PROXY_BYPASS": "your-value",
"BROWSER_PERMISSIONS": "your-value",
"IGNORE_HTTPS_ERRORS": "your-value"
}
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
これはパソコンで動くサーバーですが、ChatGPTがつなげるのはインターネット上のサーバーだけです。ほかのアプリを選んでください。
選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。
STEALTH_MODE envSTEALTH_USER_AGENT envSTEALTH_MASK_LINUX envSTEALTH_LOCALE envHEADLESS envTIMEOUT envNAVIGATION_TIMEOUT envSCREENSHOT_STORAGE_PATH envVIDEO_STORAGE_PATH envPROXY_URL envPROXY_BYPASS envBROWSER_PERMISSIONS envIGNORE_HTTPS_ERRORS envこの設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。
パソコンで動くサーバーです。インストールすると、ツール一覧がAIアプリに表示されます。
誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月6日にチェック
レジストリ名はドメイン pulsemcp.com で確認済みです(レジストリがドメインの所有を確認しています)
このリポジトリはまだGitHubから読み取っていません
このリポジトリはまだGitHubから読み取っていません
これはパソコンで動くため、インターネット上のエンドポイントはありません
パソコンで動き、代わりにローカルの設定を使います
パソコンで動くサーバーです。ツール一覧を読み取れるのは、インターネット上のエンドポイントがある場合だけです
レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。
当てはまる基本チェック1項目のうち1項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。
入力が必要なもの:PROXY_USERNAME, PROXY_PASSWORD
あなたのパソコンで動きます。必要なときにAIアプリが起動し、データは作者のサーバーを通りません(サーバー自体がオンラインサービスを呼び出す場合を除きます)。
GitHubリポジトリの最終更新は–、最新バージョン(0.2.3)がレジストリに届いたのは5 か月前です。
Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。パソコンにNode.jsも必要です。
同じカテゴリには:Browser Use, Chrome DevTools MCP, MCP Server Browser
同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。
カードの見方:★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i
Browser agents and stealth cloud browsers for AI: run web tasks, fill forms, extract data.
MCP server for Chrome DevTools
MCP server for browser use access
作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。
A Model Context Protocol (MCP) server for browser automation using Playwright with optional stealth mode to bypass anti-bot protection.
browser_execute tool that exposes the full Playwright API instead of many specialized toolsplaywright-extra and puppeteer-extra-plugin-stealthpage objectnpx playwright-stealth-mcp-server
Or install globally:
npm install -g playwright-stealth-mcp-server
Add to your Claude Desktop config file:
Non-Stealth Mode (Standard Playwright):
{
"mcpServers": { "playwright": { "command": "npx", "args": ["-y", "playwright-stealth-mcp-server"], "env": { "STEALTH_MODE": "false" } } } }
Stealth Mode (Anti-bot bypass):
{
"mcpServers": { "playwright-stealth": { "command": "npx", "args": ["-y", "playwright-stealth-mcp-server"], "env": { "STEALTH_MODE": "true" } } } }
With Proxy (e.g., BrightData Residential Proxy):
{
"mcpServers": { "playwright-proxy": { "command": "npx", "args": ["-y", "playwright-stealth-mcp-server"], "env": { "STEALTH_MODE": "true", "PROXY_URL": "http://brd.superproxy.io:22225", "PROXY_USERNAME": "brd-customer-XXXXX-zone-residential", "PROXY_PASSWORD": "your-password" } } } }
| Variable | Description | Default |
|---|---|---|
STEALTH_MODE | Enable stealth mode with anti-detection measures | false |
STEALTH_USER_AGENT | Custom User-Agent string (stealth mode only) | Browser default |
STEALTH_MASK_LINUX | Mask Linux in User-Agent as Windows; set to false to avoid fingerprint mismatch | true |
STEALTH_LOCALE | Custom locale for Accept-Language header (stealth mode only) | en-US,en |
HEADLESS | Run browser in headless mode | true |
TIMEOUT | Default timeout for Playwright actions (click, fill, etc.) in milliseconds | 30000 |
NAVIGATION_TIMEOUT | Default timeout for page navigation (goto, reload, etc.) in milliseconds | 60000 |
SCREENSHOT_STORAGE_PATH | Directory for storing screenshots | /tmp/playwright-screenshots |
VIDEO_STORAGE_PATH | Directory for storing video recordings | /tmp/playwright-videos |
PROXY_URL | Proxy server URL (e.g., http://proxy.example.com:8080) | - |
PROXY_USERNAME | Proxy authentication username | - |
PROXY_PASSWORD | Proxy authentication password | - |
PROXY_BYPASS | Comma-separated list of hosts to bypass proxy | - |
BROWSER_PERMISSIONS | Comma-separated list of browser permissions to grant (see below) | All permissions |
IGNORE_HTTPS_ERRORS | Ignore HTTPS certificate errors (set to false for stricter security) | true |
browser_executeExecute Playwright code with access to the page object.
Parameters:
code (required): JavaScript code to execute. The page object is available in scope.timeout (optional): Execution timeout in milliseconds.Example:
await page.goto('https://example.com');
const title = await page.title(); return title;
browser_screenshotTake 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:
saveAndReturn: Inline base64 PNG image plus a resource_link with the file URIsaveOnly: Only a resource_link with the file:// URI to the saved screenshotbrowser_get_stateGet the current browser state including URL, title, and configuration.
browser_closeClose the browser session. A new browser will be launched on the next browser_execute call.
browser_start_recordingStart 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_recordingStop 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.
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 its file:// URIThis allows clients to access previously captured screenshots and recordings without needing to take new ones.
// Navigate to a page
await page.goto('https://news.ycombinator.com');
// Extract headlines const headlines = await page.$$eval('.titleline > a', (links) => links.slice(0, 5).map((a) => a.textContent) );
return headlines;
await page.goto('https://example.com/login');
// Fill credentials await page.fill('input[name="email"]', 'user@example.com'); await page.fill('input[name="password"]', 'password123');
// Submit form await page.click('button[type="submit"]');
// Wait for navigation await page.waitForNavigation();
return await page.title();
await page.goto('https://spa-example.com');
// Wait for element to appear await page.waitForSelector('.loaded-content');
// Click to load more await page.click('.load-more-button');
// Wait for new content await page.waitForSelector('.new-items');
const items = await page.$$eval('.item', (els) => els.map((el) => el.textContent)); return items;
Important: The browser_execute tool executes arbitrary JavaScript code. This design provides full Playwright API access but has security implications:
page objectThis is intentional for maximum flexibility - it allows LLMs to leverage their existing Playwright knowledge. For production use, ensure proper access controls are in place.
Enable stealth mode (STEALTH_MODE=true) when:
Stealth mode includes:
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)
{
"mcpServers": { "playwright-stealth": { "command": "npx", "args": ["-y", "playwright-stealth-mcp-server"], "env": { "STEALTH_MODE": "true", "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", "STEALTH_MASK_LINUX": "false" } } } }
Why this matters:
navigator.platform still reports the actual OS (e.g., "Linux x86_64")STEALTH_MASK_LINUX=false disables this masking, allowing the real platform to showSTEALTH_USER_AGENT, you can present a consistent fingerprintConfigure proxy settings when:
The server supports HTTP/HTTPS proxies with optional authentication, making it compatible with:
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.
By default, the server ignores HTTPS certificate errors (IGNORE_HTTPS_ERRORS=true). This is convenient for common automation scenarios:
To enable strict certificate validation, set IGNORE_HTTPS_ERRORS=false:
{
"mcpServers": { "playwright": { "command": "npx", "args": ["-y", "playwright-stealth-mcp-server"], "env": { "IGNORE_HTTPS_ERRORS": "false" } } } }
Security Note: For production environments where certificate validation is important, se
冒頭だけを表示しています。続きはリポジトリで読めます