Playwright MCP

resmi

Claude, Cursor ve diğer yapay zeka ajanlarından tarayıcı otomasyonu, sayfa incelemesi, ekran görüntüleri ve web etkileşimi için resmi Playwright MCP sunucusu.

Playwright MCP ile neler yapabilirsiniz?

  • Erişilebilirlik ağacı taraması — Yapay zekânızdan sayfalarda gezinmesini ve yapılandırılmış erişilebilirlik anlık görüntülerini okumasını isteyin, görüntü modeline gerek yok.
  • Kalıcı tarayıcı oturumları — Kimliği doğrulanmış iş akışları için --user-data-dir veya --storage-state ile oturum açma durumunu konuşmalar arasında koruyun.
  • Çoklu tarayıcı otomasyonu — Çapraz motor testleri için --browser bayrağıyla Chromium, Firefox, WebKit veya Edge'i sürün.
  • Cihaz öykünmesi — Duyarlı testler için --device ile "iPhone 15" gibi mobil cihazları veya genel --mobile modunu simüle edin.
  • Kod üretimi--codegen seçeneğini kullanarak TypeScript, Python, Java veya C# dilinde Playwright test betikleri oluşturun.
  • İzole test bağlamları — Her tarayıcı kapanışından sonra tüm durumu atmak için --isolated bayrağıyla oturumlar çalıştırın.

Dokümantasyon

Playwright MCP

Playwright kullanarak tarayıcı otomasyonu yetenekleri sağlayan bir Model Context Protocol (MCP) sunucusu: Playwright. Bu sunucu, LLM'lerin web sayfalarıyla yapılandırılmış erişilebilirlik anlık görüntüleri aracılığıyla etkileşim kurmasını sağlar; ekran görüntülerine veya görsel olarak ayarlanmış modellere olan ihtiyacı ortadan kaldırır.

Playwright MCP ve Playwright CLI

Bu paket, Playwright için MCP arayüzü sağlar. Bir kodlama aracısı kullanıyorsanız, bunun yerine CLI+SKILLS kullanmaktan fayda sağlayabilirsiniz.

  • CLI: Modern kodlama aracıları, MCP yerine SKILL olarak sunulan CLI tabanlı iş akışlarını giderek daha fazla tercih ediyor çünkü CLI çağrıları daha token verimlidir: büyük araç şemalarını ve ayrıntılı erişilebilirlik ağaçlarını model bağlamına yüklemekten kaçınırlar ve aracıların kısa, amaca yönelik komutlarla hareket etmesine olanak tanırlar. Bu, CLI + SKILL'leri, sınırlı bağlam pencereleri içinde tarayıcı otomasyonunu büyük kod tabanları, testler ve akıl yürütme ile dengelemesi gereken yüksek verimli kodlama aracıları için daha uygun hale getirir.
    SKILL'lerle Playwright CLI hakkında daha fazla bilgi edinin.

  • MCP: MCP, kalıcı durum, zengin iç gözlem ve sayfa yapısı üzerinde yinelemeli akıl yürütmeden fayda sağlayan özel aracı döngüleri için geçerliliğini korur; örneğin keşifsel otomasyon, kendi kendini iyileştiren testler veya sürekli tarayıcı bağlamını korumanın token maliyet endişelerinden daha ağır bastığı uzun süreli otonom iş akışları gibi.

Temel Özellikler

  • Hızlı ve hafif. Piksel tabanlı giriş yerine Playwright'ın erişilebilirlik ağacını kullanır.
  • LLM dostu. Görüntü modellerine gerek yoktur, yalnızca yapılandırılmış veriler üzerinde çalışır.
  • Deterministik araç uygulaması. Ekran görüntüsü tabanlı yaklaşımlarda yaygın olan belirsizliği önler.

Gereksinimler

  • Node.js 18 veya daha yeni
  • VS Code, Cursor, Windsurf, Claude Desktop, Goose, Grok, Junie veya herhangi bir başka MCP istemcisi

Başlarken

Öncelikle, Playwright MCP sunucusunu istemcinizle birlikte kurun.

Standart yapılandırma çoğu araçta çalışır:

{
  "mcpServers": {
    "playwright": {
      "command": "npx",
      "args": [
        "@playwright/mcp@latest"
      ]
    }
  }
}

Install in VS Code Install in VS Code Insiders

Amp

Amp VS Code uzantısı ayarlar ekranından veya settings.json dosyanızı güncelleyerek ekleyin:

"amp.mcpServers": {
  "playwright": {
    "command": "npx",
    "args": [
      "@playwright/mcp@latest"
    ]
  }
}

Amp CLI Kurulumu:

Aşağıdaki amp mcp add komutuyla ekleyin

amp mcp add playwright -- npx @playwright/mcp@latest
Antigravity

Antigravity ayarlarından veya yapılandırma dosyanızı güncelleyerek ekleyin:

{
  "mcpServers": {
    "playwright": {
      "command": "npx",
      "args": [
        "@playwright/mcp@latest"
      ]
    }
  }
}
Claude Code

Playwright MCP sunucusunu eklemek için Claude Code CLI'yi kullanın:

claude mcp add playwright npx @playwright/mcp@latest
Claude Desktop

MCP kurulum kılavuzunu izleyin, yukarıdaki standart yapılandırmayı kullanın.

Cline

MCP Sunucularını Yapılandırma bölümündeki talimatları izleyin

Örnek: Yerel Kurulum

cline_mcp_settings.json dosyanıza aşağıdakileri ekleyin:

{
  "mcpServers": {
    "playwright": {
      "type": "stdio",
      "command": "npx",
      "timeout": 30,
      "args": [
        "-y",
        "@playwright/mcp@latest"
      ],
      "disabled": false
    }
  }
}
Codex

Playwright MCP sunucusunu eklemek için Codex CLI'yi kullanın:

codex mcp add playwright npx "@playwright/mcp@latest"

Alternatif olarak, ~/.codex/config.toml yapılandırma dosyasını oluşturun veya düzenleyin ve şunu ekleyin:

[mcp_servers.playwright]
command = "npx"
args = ["@playwright/mcp@latest"]

Daha fazla bilgi için Codex MCP belgelerine bakın.

Copilot

Playwright MCP sunucusunu etkileşimli olarak eklemek için Copilot CLI'yi kullanın:

/mcp add

Alternatif olarak, ~/.copilot/mcp-config.json yapılandırma dosyasını oluşturun veya düzenleyin ve şunu ekleyin:

{
  "mcpServers": {
    "playwright": {
      "type": "local",
      "command": "npx",
      "tools": [
        "*"
      ],
      "args": [
        "@playwright/mcp@latest"
      ]
    }
  }
}

Daha fazla bilgi için Copilot CLI belgelerine bakın.

Cursor

Kurmak için düğmeye tıklayın:

Install in Cursor

Veya manuel olarak kurun:

Cursor Settings -> MCP -> Add new MCP Server bölümüne gidin. Beğeninize göre adlandırın, npx @playwright/mcp@latest komutuyla command türünü kullanın. Ayrıca Edit seçeneğine tıklayarak yapılandırmayı doğrulayabilir veya komut gibi bağımsız değişkenler ekleyebilirsiniz.

Factory

Playwright MCP sunucusunu eklemek için Factory CLI'yi kullanın:

droid mcp add playwright "npx @playwright/mcp@latest"

Alternatif olarak, MCP sunucularını yönetmek için etkileşimli bir UI açmak üzere Factory droid içinde /mcp yazın.

Daha fazla bilgi için Factory MCP belgelerine bakın.

Gemini CLI

MCP kurulum kılavuzunu izleyin, yukarıdaki standart yapılandırmayı kullanın.

Goose

Kurmak için düğmeye tıklayın:

Install in Goose

Veya manuel olarak kurun:

Advanced settings -> Extensions -> Add custom extension bölümüne gidin. Beğeninize göre adlandırın, STDIO türünü kullanın ve command değerini npx @playwright/mcp olarak ayarlayın. "Add Extension" seçeneğine tıklayın.

Grok

Playwright MCP sunucusunu eklemek için Grok CLI'yi kullanın:

grok mcp add playwright -- npx @playwright/mcp@latest

Alternatif olarak, ~/.grok/config.toml yapılandırma dosyasını oluşturun veya düzenleyin ve şunu ekleyin:

[mcp_servers.playwright]
command = "npx"
args = ["@playwright/mcp@latest"]

Daha fazla bilgi için Grok MCP belgelerine bakın.

Junie

Junie CLI'de Playwright MCP sunucusunu eklemek için:

  1. /mcp yazın
  2. Yeni bir MCP sunucusu eklemek için Ctrl+A tuşuna basın
  3. Listeden Playwright seçeneğini seçin

Alternatif olarak, .junie/mcp/mcp.json dosyasına ekleyin:

{
  "mcpServers": {
    "Playwright": {
      "command": "npx",
      "args": [
        "-y",
        "@playwright/mcp@latest"
      ]
    }
  }
}

Daha fazla bilgi için Junie MCP yapılandırma belgelerine bakın.

Kiro

Add to Kiro

MCP Sunucuları belgelerini izleyin. Örneğin .kiro/settings/mcp.json içinde:

{
  "mcpServers": {
    "playwright": {
      "command": "npx",
      "args": [
        "@playwright/mcp@latest"
      ]
    }
  }
}
LM Studio

Kurmak için düğmeye tıklayın:

Add MCP Server playwright to LM Studio

Veya manuel olarak kurun:

Sağ kenar çubuğunda Program bölümüne gidin -> Install -> Edit mcp.json. Yukarıdaki standart yapılandırmayı kullanın.

opencode

MCP Sunucuları belgelerini izleyin. Örneğin ~/.config/opencode/opencode.json içinde:

{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "playwright": {
      "type": "local",
      "command": [
        "npx",
        "@playwright/mcp@latest"
      ],
      "enabled": true
    }
  }
}

Qodo Gen

VSCode veya IntelliJ'de Qodo Gen sohbet panelini açın → Daha fazla araç bağla → + Yeni MCP ekle → Yukarıdaki standart yapılandırmayı yapıştırın.

Kaydet düğmesine tıklayın.

VS Code

Kurmak için düğmeye tıklayın:

Install in VS Code Install in VS Code Insiders

Veya manuel olarak kurun:

MCP kurulum kılavuzunu izleyin, yukarıdaki standart yapılandırmayı kullanın. Ayrıca Playwright MCP sunucusunu VS Code CLI'yi kullanarak da kurabilirsiniz:

# For VS Code
code --add-mcp '{"name":"playwright","command":"npx","args":["@playwright/mcp@latest"]}'

Kurulumdan sonra, Playwright MCP sunucusu VS Code'da GitHub Copilot aracınızla kullanılabilir olacaktır.

Warp

MCP Sunucusu eklemek için Settings -> AI -> Manage MCP Servers -> + Add bölümüne gidin. Yukarıdaki standart yapılandırmayı kullanın.

Alternatif olarak, Warp isteminde /add-mcp eğik çizgi komutunu kullanın ve yukarıdaki standart yapılandırmayı yapıştırın:

{
  "mcpServers": {
    "playwright": {
      "command": "npx",
      "args": [
        "@playwright/mcp@latest"
      ]
    }
  }
}
Windsurf

Windsurf MCP belgelerini izleyin. Yukarıdaki standart yapılandırmayı kullanın.

Yapılandırma

Playwright MCP sunucusu aşağıdaki bağımsız değişkenleri destekler. Bunlar, yukarıdaki JSON yapılandırmasında "args" listesinin bir parçası olarak sağlanabilir:

SeçenekAçıklama
--allowed-hosts <hosts...>Sunucunun hizmet vermesine izin verilen ana bilgisayarların virgülle ayrılmış listesi. Varsayılan olarak sunucunun bağlı olduğu ana bilgisayardır. Ana bilgisayar kontrolünü devre dışı bırakmak için '*' geçirin.
env PLAYWRIGHT_MCP_ALLOWED_HOSTS
--allowed-origins Tarayıcının istekte bulunmasına izin verilen GÜVENİLİR kaynakların noktalı virgülle ayrılmış listesi. Varsayılan olarak tümüne izin verilir. Önemli: güvenlik sınırı olarak hizmet etmez ve yönlendirmeleri etkilemez.
env PLAYWRIGHT_MCP_ALLOWED_ORIGINS
--allow-unrestricted-file-accessÇalışma alanı kökleri dışındaki dosyalara erişime izin ver. Ayrıca file:// URL'lerine sınırsız erişime izin verir. Varsayılan olarak dosya sistemine erişim yalnızca çalışma alanı kök dizinleriyle (veya kök yapılandırılmamışsa cwd) sınırlıdır ve file:// URL'lerine gezinme engellenir.
env PLAYWRIGHT_MCP_ALLOW_UNRESTRICTED_FILE_ACCESS
--blocked-origins Tarayıcının istekte bulunmasının engelleneceği kaynakların noktalı virgülle ayrılmış listesi. Engelleme listesi, izin listesinden önce değerlendirilir. İzin listesi olmadan kullanılırsa, engelleme listesiyle eşleşmeyen isteklere yine de izin verilir. Önemli: güvenlik sınırı olarak hizmet etmez ve yönlendirmeleri etkilemez.
env PLAYWRIGHT_MCP_BLOCKED_ORIGINS
--block-service-workersServis çalışanlarını engelle
env PLAYWRIGHT_MCP_BLOCK_SERVICE_WORKERS
--browser Kullanılacak tarayıcı veya chrome kanalı, olası değerler: chrome, firefox, webkit, msedge.
env PLAYWRIGHT_MCP_BROWSER
--caps Etkinleştirilecek ek yeteneklerin virgülle ayrılmış listesi, olası değerler: vision, pdf, devtools.
env PLAYWRIGHT_MCP_CAPS
--cdp-endpoint Bağlanılacak CDP uç noktası.
env PLAYWRIGHT_MCP_CDP_ENDPOINT
--cdp-header <headers...>Bağlantı isteğiyle gönderilecek CDP başlıkları, birden fazla belirtilebilir.
env PLAYWRIGHT_MCP_CDP_HEADERS
--cdp-timeout CDP uç noktasına bağlanma zaman aşımı milisaniye cinsinden, varsayılan 30000ms
env PLAYWRIGHT_MCP_CDP_TIMEOUT
--codegen Kod üretimi için kullanılacak dili belirtin, olası değerler: "typescript", "python", "java", "csharp", "none". Varsayılan "typescript"tir.
env PLAYWRIGHT_MCP_CODEGEN
--config Yapılandırma dosyasının yolu.
env PLAYWRIGHT_MCP_CONFIG
--console-level Döndürülecek konsol mesajlarının düzeyi: "error", "warning", "info", "debug". Her düzey, daha şiddetli düzeylerin mesajlarını içerir.
env PLAYWRIGHT_MCP_CONSOLE_LEVEL
--device Taklit edilecek cihaz, örneğin: "iPhone 15"
env PLAYWRIGHT_MCP_DEVICE
--mobileGenel bir mobil cihazı taklit et (Chromium için Pixel 10, WebKit için iPhone 17). Mobil sayfalar genellikle daha hafiftir, bu da token tasarrufu sağlar. --device ile birleştirilemez.
env PLAYWRIGHT_MCP_MOBILE
--executable-path Tarayıcı çalıştırılabilir dosyasının yolu.
env PLAYWRIGHT_MCP_EXECUTABLE_PATH
--extensionÇalışan bir tarayıcı örneğine bağlan (yalnızca Edge/Chrome). "Playwright Extension" kurulu olmalıdır.
env PLAYWRIGHT_MCP_EXTENSION
--endpoint Bağlanılacak bağlı tarayıcı uç noktası.
env PLAYWRIGHT_MCP_ENDPOINT
--grant-permissions <permissions...>Tarayıcı bağlamına verilecek izinlerin listesi, örneğin "geolocation", "clipboard-read", "clipboard-write".
env PLAYWRIGHT_MCP_GRANT_PERMISSIONS
--headlessTarayıcıyı headless modda çalıştır, varsayılan olarak başlıklı
env PLAYWRIGHT_MCP_HEADLESS
--host Sunucunun bağlanacağı ana bilgisayar. Varsayılan localhost'tur. Tüm arayüzlere bağlanmak için 0.0.0.0 kullanın.
env PLAYWRIGHT_MCP_HOST
--ignore-https-errorshttps hatalarını yoksay
env PLAYWRIGHT_MCP_IGNORE_HTTPS_ERRORS
--init-page <path...>Playwright sayfa nesnesinde değerlendirilecek TypeScript dosyasının yolu
env PLAYWRIGHT_MCP_INIT_PAGE
--init-script <path...>Başlatma betiği olarak eklenecek JavaScript dosyasının yolu. Betik, sayfanın betiklerinden önce her sayfada değerlendirilir. Birden fazla belirtilebilir.
env PLAYWRIGHT_MCP_INIT_SCRIPT
--isolatedTarayıcı profilini bellekte tut, diske kaydetme.
env PLAYWRIGHT_MCP_ISOLATED
--image-responses Görüntü yanıtlarının istemciye gönderilip gönderilmeyeceği. "allow" veya "omit" olabilir, varsayılan "allow"dur.
env PLAYWRIGHT_MCP_IMAGE_RESPONSES
--no-sandboxNormalde korumalı olan tüm işlem türleri için korumayı devre dışı bırak.
env PLAYWRIGHT_MCP_NO_SANDBOX
--output-dir Çıktı dosyaları için dizinin yolu.
env PLAYWRIGHT_MCP_OUTPUT_DIR
--output-max-size Eski çıktı dosyalarını çıkarma eşiği, bayt cinsinden.
env PLAYWRIGHT_MCP_OUTPUT_MAX_SIZE
--port SSE taşıması için dinlenecek bağlantı noktası.
env PLAYWRIGHT_MCP_PORT
--proxy-bypass Proxy'yi atlayacak virgülle ayrılmış alan adları, örneğin ".com,chromium.org,.domain.com"
env PLAYWRIGHT_MCP_PROXY_BYPASS
--proxy-server Proxy sunucusunu belirtin, örneğin "http://myproxy:3128" veya "socks5://myproxy:8080"
env PLAYWRIGHT_MCP_PROXY_SERVER
--sandboxNormalde korumalı olmayan tüm işlem türleri için korumayı etkinleştir.
env PLAYWRIGHT_MCP_SANDBOX
--save-sessionPlaywright MCP oturumunun çıktı dizinine kaydedilip kaydedilmeyeceği.
env PLAYWRIGHT_MCP_SAVE_SESSION
--secrets dotenv biçiminde sırlar içeren bir dosyanın yolu
env PLAYWRIGHT_MCP_SECRETS_FILE
--shared-browser-contextBağlı tüm HTTP istemcileri arasında aynı tarayıcı bağlamını yeniden kullan.
env PLAYWRIGHT_MCP_SHARED_BROWSER_CONTEXT
--snapshot-boxesHer öğenin sınırlayıcı kutusunu anlık görüntülere [box=x,y,width,height] olarak dahil et. Koordinatlar görünüm alanına görelidir, CSS piksel cinsinden.
env PLAYWRIGHT_MCP_SNAPSHOT_BOXES
--snapshot-mode Yanıtlar için anlık görüntü alırken kullanılacak modu belirtir. "full" veya "none" olabilir. Varsayılan "full"dur.
env PLAYWRIGHT_MCP_SNAPSHOT_MODE
--storage-state Yalıtılmış oturumlar için depolama durumu dosyasının yolu.
env PLAYWRIGHT_MCP_STORAGE_STATE
--test-id-attribute Test kimlikleri için kullanılacak özniteliği belirtin, varsayılan "data-testid"
env PLAYWRIGHT_MCP_TEST_ID_ATTRIBUTE
--timeout-action Eylem zaman aşımını milisaniye cinsinden belirtin, varsayılan 5000ms
env PLAYWRIGHT_MCP_TIMEOUT_ACTION
--timeout-navigation Gezinme zaman aşımını milisaniye cinsinden belirtin, varsayılan 60000ms
env PLAYWRIGHT_MCP_TIMEOUT_NAVIGATION
--timeout-settle Her eylemden sonra tetiklenen işin yerleşmesi için beklenecek süre, milisaniye cinsinden, varsayılan 500ms
env PLAYWRIGHT_MCP_TIMEOUT_SETTLE
--user-agent Kullanıcı aracısı dizesini belirtin
env PLAYWRIGHT_MCP_USER_AGENT
--user-data-dir Kullanıcı veri dizininin yolu. Belirtilmezse geçici bir dizin oluşturulur.
env PLAYWRIGHT_MCP_USER_DATA_DIR
--viewport-size Tarayıcı görünüm alanı boyutunu piksel cinsinden belirtin, örneğin "1280x720"
env PLAYWRIGHT_MCP_VIEWPORT_SIZE

Kullanıcı profili

Playwright MCP'yi normal bir tarayıcı gibi kalıcı profille (varsayılan), test oturumları için yalıtılmış bağlamlarda veya tarayıcı uzantısını kullanarak mevcut tarayıcınıza bağlanarak çalıştırabilirsiniz.

Kalıcı profil

Oturum açmış tüm bilgiler kalıcı profilde saklanır, çevrimdışı durumu temizlemek isterseniz oturumlar arasında silebilirsiniz. Kalıcı profil aşağıdaki konumlarda bulunur ve --user-data-dir bağımsız değişkeniyle geçersiz kılabilirsiniz.

# Windows
%USERPROFILE%\AppData\Local\ms-playwright\mcp-{channel}-{workspace-hash}

# macOS
- ~/Library/Caches/ms-playwright/mcp-{channel}-{workspace-hash}

# Linux
- ~/.cache/ms-playwright/mcp-{channel}-{workspace-hash}

{workspace-hash}, MCP istemcisinin çalışma alanı kökünden türetilir, böylece farklı projeler otomatik olarak ayrı profiller alır.

[!ÖNEMLİ] Kalıcı bir profil aynı anda yalnızca bir tarayıcı örneği tarafından kullanılabilir, bu nedenle aynı çalışma alanını paylaşan eşzamanlı MCP istemcileri çakışır. Birkaç istemciyi paralel çalıştırmak için, her ek istemciyi --isolated ile başlatın veya farklı bir --user-data-dir noktasına yönlendirin.

Yalıtılmış

Yalıtılmış modda, her oturum yalıtılmış profilde başlatılır. MCP'den tarayıcıyı kapatmasını istediğinizde, oturum kapatılır ve bu oturum için tüm depolama durumu kaybolur. Tarayıcıya ilk depolama durumunu yapılandırmanın contextOptions veya --storage-state bağımsız değişkeni aracılığıyla sağlayabilirsiniz. Depolama durumu hakkında daha fazla bilgi edinin burada.

{
  "mcpServers": {
    "playwright": {
      "command": "npx",
      "args": [
        "@playwright/mcp@latest",
        "--isolated",
        "--storage-state={path/to/storage.json}"
      ]
    }
  }
}

Tarayıcı Uzantısı

Playwright MCP Chrome Uzantısı, mevcut tarayıcı sekmelerine bağlanmanıza ve oturum açmış oturumlarınızdan ve tarayıcı durumunuzdan yararlanmanıza olanak tanır. Kurulum ve yapılandırma talimatları için microsoft/playwright › packages/extension adresine bakın.

Başlangıç durumu

Tarayıcı bağlamına veya bir sayfaya başlangıç durumu sağlamanın birkaç yolu vardır.

Depolama durumu için şunlardan birini yapabilirsiniz:

  • --user-data-dir bağımsız değişkenini kullanarak bir kullanıcı veri diziniyle başlayın. Bu, tüm tarayıcı verilerini oturumlar arasında kalıcı hale getirir.
  • --storage-state bağımsız değişkenini kullanarak bir depolama durumu dosyasıyla başlayın. Bu, dosyadan çerezleri ve yerel depolamayı yalıtılmış bir tarayıcı bağlamına yükler.

Sayfa durumu için şunları kullanabilirsiniz:

  • --init-page, Playwright sayfa nesnesinde değerlendirilecek bir TypeScript dosyasını işaret eder. Bu, sayfayı kurmak için rastgele kod çalıştırmanıza olanak tanır.
// init-page.ts
export default async ({ page }) => {
  await page.context().grantPermissions(['geolocation']);
  await page.context().setGeolocation({ latitude: 37.7749, longitude: -122.4194 });
  await page.setViewportSize({ width: 1280, height: 720 });
};
  • --init-script, başlatma betiği olarak eklenecek bir JavaScript dosyasını işaret eder. Betik, sayfanın betiklerinden önce her sayfada değerlendirilir. Bu, tarayıcı API'lerini geçersiz kılmak veya ortamı kurmak için kullanışlıdır.
// init-script.js
window.isPlaywrightMCP = true;

Yapılandırma dosyası

Playwright MCP sunucusu bir JSON yapılandırma dosyası kullanılarak yapılandırılabilir. Yapılandırma dosyasını --config komut satırı seçeneğini kullanarak belirtebilirsiniz:

npx @playwright/mcp@latest --config path/to/config.json
Yapılandırma dosyası şeması
{
  /**
   * The browser to use.
   */
  browser?: {
    /**
     * The type of browser to use.
     */
    browserName?: 'chromium' | 'firefox' | 'webkit';

    /**
     * Keep the browser profile in memory, do not save it to disk.
     */
    isolated?: boolean;

    /**
     * Path to a user data directory for browser profile persistence.
     * Temporary directory is created by default.
     */
    userDataDir?: string;

    /**
     * Launch options passed to
     * @see https://playwright.dev/docs/api/class-browsertype#browser-type-launch-persistent-context
     *
     * This is useful for settings options like `channel`, `headless`, `executablePath`, etc.
     */
    launchOptions?: playwright.LaunchOptions;

    /**
     * Context options for the browser context.
     *
     * This is useful for settings options like `viewport`.
     */
    contextOptions?: playwright.BrowserContextOptions;

    /**
     * Chrome DevTools Protocol endpoint to connect to an existing browser instance in case of Chromium family browsers.
     */
    cdpEndpoint?: string;

    /**
     * CDP headers to send with the connect request.
     */
    cdpHeaders?: Record<string, string>;

    /**
     * Timeout in milliseconds for connecting to CDP endpoint. Defaults to 30000 (30 seconds). Pass 0 to disable timeout.
     */
    cdpTimeout?: number;

    /**
     * Remote endpoint to connect to an existing Playwright server. May be a
     * WebSocket URL string, or a [ConnectOptions] object that mirrors the
     * `connectOptions` shape used by the test runner. When passed as an object,
     * `exposeNetwork`, `headers`, `slowMo`, and `timeout` are forwarded to the
     * underlying connect call.
     */
    remoteEndpoint?: string | playwright.ConnectOptions & { endpoint: string };

    /**
     * Paths to TypeScript files to add as initialization scripts for Playwright page.
     */
    initPage?: string[];

    /**
     * Paths to JavaScript files to add as initialization scripts.
     * The scripts will be evaluated in every page before any of the page's scripts.
     */
    initScript?: string[];
  },

  /**
   * Connect to a running browser instance (Edge/Chrome only). If specified, `browser`
   * config is ignored.
   * Requires the "Playwright Extension" to be installed.
   */
  extension?: boolean;

  server?: {
    /**
     * The port to listen on for SSE or MCP transport.
     */
    port?: number;

    /**
     * The host to bind the server to. Default is localhost. Use 0.0.0.0 to bind to all interfaces.
     */
    host?: string;

    /**
     * The hosts this server is allowed to serve from. Defaults to the host server is bound to.
     * This is not for CORS, but rather for the DNS rebinding protection.
     */
    allowedHosts?: string[];
  },

  /**
   * List of enabled tool capabilities. Possible values:
   *   - 'core': Core browser automation features.
   *   - 'pdf': PDF generation and manipulation.
   *   - 'vision': Coordinate-based interactions.
   *   - 'devtools': Developer tools features.
   */
  capabilities?: ToolCapability[];

  /**
   * Whether to save the Playwright session into the output directory.
   */
  saveSession?: boolean;

  /**
   * Reuse the same browser context between all connected HTTP clients.
   */
  sharedBrowserContext?: boolean;

  /**
   * Secrets are used to replace matching plain text in the tool responses to prevent the LLM
   * from accidentally getting sensitive data. It is a convenience and not a security feature,
   * make sure to always examine information coming in and from the tool on the client.
   */
  secrets?: Record<string, string>;

  /**
   * The directory to save output files.
   */
  outputDir?: string;

  /**
   * Threshold for evicting old output files, in bytes.
   */
  outputMaxSize?: number;

  console?: {
    /**
     * The level of console messages to return. Each level includes the messages of more severe levels. Defaults to "info".
     */
    level?: 'error' | 'warning' | 'info' | 'debug';
  },

  network?: {
    /**
     * List of origins to allow the browser to request. Default is to allow all. Origins matching both `allowedOrigins` and `blockedOrigins` will be blocked.
     *
     * Supported formats:
     * - Full origin: `https://example.com:8080` - matches only that origin
     * - Wildcard port: `http://localhost:*` - matches any port on localhost with http protocol
     */
    allowedOrigins?: string[];

    /**
     * List of origins to block the browser to request. Origins matching both `allowedOrigins` and `blockedOrigins` will be blocked.
     *
     * Supported formats:
     * - Full origin: `https://example.com:8080` - matches only that origin
     * - Wildcard port: `http://localhost:*` - matches any port on localhost with http protocol
     */
    blockedOrigins?: string[];
  };

  /**
   * Specify the attribute to use for test ids, defaults to "data-testid".
   */
  testIdAttribute?: string;

  timeouts?: {
    /*
     * Configures default action timeout: https://playwright.dev/docs/api/class-page#page-set-default-timeout. Defaults to 5000ms.
     */
    action?: number;

    /*
     * Configures default navigation timeout: https://playwright.dev/docs/api/class-page#page-set-default-navigation-timeout. Defaults to 60000ms.
     */
    navigation?: number;

    /**
     * Configures default expect timeout: https://playwright.dev/docs/test-timeouts#expect-timeout. Defaults to 5000ms.
     */
    expect?: number;

    /**
     * How long to wait after each action for triggered work (navigations, requests) to settle before responding. Defaults to 500ms.
     */
    settle?: number;
  };

  /**
   * Whether to send image responses to the client. Can be "allow", "omit", or "auto". Defaults to "auto", which sends images if the client can display them.
   */
  imageResponses?: 'allow' | 'omit';

  snapshot?: {
    /**
     * When taking snapshots for responses, specifies the mode to use.
     */
    mode?: 'full' | 'none';

    /**
     * Whether to include each element's bounding box as [box=x,y,width,height] in snapshots.
     * Coordinates are viewport-relative, in CSS pixels (Element.getBoundingClientRect).
     */
    boxes?: boolean;
  };

  /**
   * allowUnrestrictedFileAccess acts as a guardrail to prevent the LLM from accidentally
   * wandering outside its intended workspace. It is a convenience defense to catch unintended
   * file access, not a secure boundary; a deliberate attempt to reach other directories can be
   * easily worked around, so always rely on client-level permissions for true security.
   */
  allowUnrestrictedFileAccess?: boolean;

  /**
   * Specify the language to use for code generation.
   */
  codegen?: 'typescript' | 'python' | 'java' | 'csharp' | 'none';
}

Bağımsız MCP sunucusu

Ekranı olmayan bir sistemde veya IDE'lerin çalışan süreçlerinden başlıklı tarayıcı çalıştırırken, MCP sunucusunu DISPLAY ortamından çalıştırın ve HTTP taşımasını etkinleştirmek için --port bayrağını geçirin.

npx @playwright/mcp@latest --port 8931

Ardından MCP istemci yapılandırmasında, url değerini HTTP uç noktasına ayarlayın:

{
  "mcpServers": {
    "playwright": {
      "url": "http://localhost:8931/mcp"
    }
  }
}

Güvenlik

Playwright MCP bir güvenlik sınırı değildir. Dağıtımınızı güvence altına alma konusunda rehberlik için MCP Güvenlik En İyi Uygulamaları bölümüne bakın.

Docker

NOT: Docker uygulaması şu anda yalnızca headless chromium destekler.

{
  "mcpServers": {
    "playwright": {
      "command": "docker",
      "args": ["run", "-i", "--rm", "--init", "--pull=always", "mcr.microsoft.com/playwright/mcp"]
    }
  }
}

Veya MCP istemcisinin onu başlatmasına izin vermek yerine kapsayıcıyı uzun ömürlü bir hizmet olarak çalıştırmayı tercih ederseniz, şunu kullanın:

docker run -d -i --rm --init --pull=always \
  --entrypoint node \
  --name playwright \
  -p 8931:8931 \
  mcr.microsoft.com/playwright/mcp \
  /app/cli.js --headless --browser chromium --no-sandbox --port 8931 --host 0.0.0.0

Sunucu, ana bilgisayar bağlantı noktası 8931 üzerinde dinler ve herhangi bir MCP istemcisi tarafından erişilebilir.

Docker görüntüsünü kendiniz oluşturabilirsiniz.

docker build -t mcr.microsoft.com/playwright/mcp .
Programatik kullanım
import http from 'http';

import { createConnection } from '@playwright/mcp';
import { SSEServerTransport } from '@modelcontextprotocol/sdk/server/sse.js';

http.createServer(async (req, res) => {
  // ...

  // Creates a headless Playwright MCP server with SSE transport
  const connection = await createConnection({ browser: { launchOptions: { headless: true } } });
  const transport = new SSEServerTransport('/messages', res);
  await connection.connect(transport);

  // ...
});

Araçlar

Çekirdek otomasyon
  • browser_click
    • Başlık: Tıkla
    • Açıklama: Bir web sayfasında tıklama gerçekleştir
    • Parametreler:
      • element (dize, isteğe bağlı): Öğeyle etkileşim izni almak için kullanılan, insan tarafından okunabilir öğe açıklaması
      • target (dize): Sayfa anlık görüntüsünden tam hedef öğe referansı veya benzersiz bir öğe seçici
      • doubleClick (boolean, isteğe bağlı): Tek tıklama yerine çift tıklama yapılıp yapılmayacağı
      • button (dize, isteğe bağlı): Tıklanacak düğme, varsayılan olarak sol
      • modifiers (dizi, isteğe bağlı): Basılacak değiştirici tuşlar
    • Salt okunur: false
  • browser_close
    • Başlık: Tarayıcıyı kapat
    • Açıklama: Sayfayı kapat
    • Parametreler: Yok
    • Salt okunur: false
  • browser_console_messages
    • Başlık: Konsol mesajlarını al
    • Açıklama: Tüm konsol mesajlarını döndürür
    • Parametreler:
      • level (dize): Döndürülecek konsol mesajlarının düzeyi. Her düzey, daha şiddetli düzeylerin mesajlarını içerir. Varsayılan "info"dur.
      • all (boolean, isteğe bağlı): Yalnızca son gezinmeden bu yana değil, oturumun başlangıcından bu yana tüm konsol mesajlarını döndür. Varsayılan false.
      • filename (dize, isteğe bağlı): Konsol mesajlarının kaydedileceği dosya adı. Sağlanmazsa, mesajlar metin olarak döndürülür.
    • Salt okunur: true
  • browser_drag
    • Başlık: Fareyi sürükle
    • Açıklama: İki öğe arasında sürükle ve bırak gerçekleştir
    • Parametreler:
      • startElement (dize, isteğe bağlı): Öğeyle etkileşim izni almak için kullanılan, insan tarafından okunabilir kaynak öğe açıklaması
      • startTarget (dize): Sayfa anlık görüntüsünden tam hedef öğe referansı veya benzersiz bir öğe seçici
      • endElement (dize, isteğe bağlı): Öğeyle etkileşim izni almak için kullanılan, insan tarafından okunabilir hedef öğe açıklaması
      • endTarget (dize): Sayfa anlık görüntüsünden tam hedef öğe referansı veya benzersiz bir öğe seçici
    • Salt okunur: false
  • browser_drop
    • Başlık: Dosyaları veya verileri bir öğeye bırak
    • Açıklama: Dosyaları veya MIME türünde verileri, sayfanın dışından sürüklenmiş gibi bir öğeye bırak. "paths" veya "data" alanlarından en az biri sağlanmalıdır.
    • Parametreler:
      • element (dize, isteğe bağlı): Öğeyle etkileşim izni almak için kullanılan, insan tarafından okunabilir öğe açıklaması
      • target (dize): Sayfa anlık görüntüsünden tam hedef öğe referansı veya benzersiz bir öğe seçici
      • paths (dizi, isteğe bağlı): Öğeye bırakılacak dosyaların mutlak yolları.
      • data (nesne, isteğe bağlı): Bırakılacak veriler, MIME türünün dize değerine eşlendiği bir harita olarak (ör. {"text/plain": "hello", "text/uri-list": "https://example.com"}).
    • Salt okunur: false
  • browser_evaluate
    • Başlık: JavaScript'i değerlendir
    • Açıklama: Sayfada veya öğede JavaScript ifadesini değerlendir
    • Parametreler:
      • element (dize, isteğe bağlı): Öğeyle etkileşim izni almak için kullanılan, insan tarafından okunabilir öğe açıklaması
      • target (dize, isteğe bağlı): Sayfa anlık görüntüsünden tam hedef öğe referansı veya benzersiz bir öğe seçici
      • function (dize): () => { /* kod / } veya öğe sağlandığında (element) => { / kod */ }
      • filename (dize, isteğe bağlı): Sonucun kaydedileceği dosya adı. Sağlanmazsa, sonuç metin olarak döndürülür.
    • Salt okunur: false
  • browser_file_upload
    • Başlık: Dosyaları yükle
    • Açıklama: Bir veya birden fazla dosyayı yükle
    • Parametreler:
      • paths (dizi, isteğe bağlı): Yüklenecek dosyaların mutlak yolları. Tek dosya veya birden fazla dosya olabilir. Atlanırsa, dosya seçici iptal edilir.
    • Salt okunur: false
  • browser_fill_form
    • Başlık: Formu doldur
    • Açıklama: Birden fazla form alanını doldur
    • Parametreler:
      • fields (dizi): Doldurulacak alanlar
    • Salt okunur: false
  • browser_find
    • Başlık: Sayfa anlık görüntüsünde bul
    • Açıklama: Geçerli sayfanın erişilebilirlik anlık görüntüsünde metin veya normal ifade arayın. Eşleşen anlık görüntü düğümlerini, her biri ağacın kökünden kendi yolu altında gösterilen birkaç satır çevreleyen bağlamla (arama parçacıkları gibi) döndürür; bu, yalnızca bir öğeyi ve referansını bulmanız gerektiğinde tüm anlık görüntüyü yakalamaktan daha ucuzdur.
    • Parametreler:
      • text (dize, isteğe bağlı): Sayfa anlık görüntüsünde aranacak düz metin (büyük/küçük harfe duyarsız alt dize eşleşmesi). Yalnızca metin veya normal ifade sağlayın, ikisini birden değil.
      • regex (dize, isteğe bağlı): Sayfa anlık görüntüsünde aranacak normal ifade. Eşleştirme varsayılan olarak büyük/küçük harfe duyarlıdır; bayrak eklemek için deseni eğik çizgilere sarın, ör. büyük/küçük harfe duyarsız için "/error/i". Yalnızca metin veya normal ifade sağlayın, ikisini birden değil.
    • Salt okunur: true
  • browser_handle_dialog
    • Başlık: Bir iletişim kutusunu işle
    • Açıklama: Bir iletişim kutusunu işle
    • Parametreler:
      • accept (boolean): İletişim kutusunun kabul edilip edilmeyeceği.
      • promptText (dize, isteğe bağlı): Bir istem iletişim kutusu durumunda istemin metni.
    • Salt okunur: false
  • browser_hover
    • Başlık: Fareyi üzerine getir
    • Açıklama: Sayfadaki öğenin üzerine gel
    • Parametreler:
      • element (dize, isteğe bağlı): Öğeyle etkileşim izni almak için kullanılan, insan tarafından okunabilir öğe açıklaması
      • target (dize): Sayfa anlık görüntüsünden tam hedef öğe referansı veya benzersiz bir öğe seçici
    • Salt okunur: false
  • browser_navigate
    • Başlık: Bir URL'ye git
    • Açıklama: Bir URL'ye git
    • Parametreler:
      • url (dize): Gidilecek URL
    • Salt okunur: false
  • browser_navigate_back
    • Başlık: Geri git
    • Açıklama: Geçmişteki önceki sayfaya geri dön
    • Parametreler: Yok
    • Salt okunur: false
  • browser_network_request
    • Başlık: Ağ isteği ayrıntılarını göster
    • Açıklama: Tek bir ağ isteğinin tam ayrıntılarını (başlıklar ve gövde) veya part ayarlanmışsa tek bir bölümünü döndürür. browser_network_requests'ten gelen numarayı kullanın.
    • Parametreler:
      • index (tamsayı): browser_network_requests tarafından yazdırıldığı gibi isteğin 1 tabanlı dizini.
      • part (dize, isteğe bağlı): Yalnızca isteğin bu bölümünü döndür. Tam ayrıntıları döndürmek için atlayın.
      • filename (dize, isteğe bağlı): Sonucun kaydedileceği dosya adı. Sağlanmazsa, çıktı metin olarak döndürülür.
    • Salt okunur: true
  • browser_network_requests
    • Başlık: Ağ isteklerini listele
    • Açıklama: Sayfa yüklendiğinden bu yana numaralı bir ağ istekleri listesi döndürür. Tam ayrıntıları almak için numarayla browser_network_request kullanın.
    • Parametreler:
      • static (boolean): Görüntüler, yazı tipleri, komut dosyaları vb. gibi başarılı statik kaynakların dahil edilip edilmeyeceği. Varsayılan false.
      • filter (dize, isteğe bağlı): Yalnızca URL'si bu normal ifadeyle eşleşen istekleri döndür (ör. "/api/.*user").
      • filename (dize, isteğe bağlı): Ağ isteklerinin kaydedileceği dosya adı. Sağlanmazsa, istekler metin olarak döndürülür.
    • Salt okunur: true
  • browser_press_key
    • Başlık: Bir tuşa bas
    • Açıklama: Klavyede bir tuşa bas
    • Parametreler:
      • key (dize): Basılacak tuşun adı veya oluşturulacak bir karakter, ör. ArrowLeft veya a
    • Salt okunur: false
  • browser_resize
    • Başlık: Tarayıcı penceresini yeniden boyutlandır
    • Açıklama: Tarayıcı penceresini yeniden boyutlandır
    • Parametreler:
      • width (sayı): Tarayıcı penceresinin genişliği
      • height (sayı): Tarayıcı penceresinin yüksekliği
    • Salt okunur: false
  • browser_run_code_unsafe
    • Başlık: Playwright kodunu çalıştır (güvenli değil)
    • Açıklama: Bir Playwright kod parçacığını çalıştır. Güvenli değil: Playwright sunucu sürecinde rastgele JavaScript yürütür ve RCE'ye eşdeğerdir.
    • Parametreler:
      • code (dize, isteğe bağlı): Yürütülecek Playwright kodunu içeren bir JavaScript işlevi. Herhangi bir sayfa etkileşimi için kullanabileceğiniz tek bir bağımsız değişken olan page ile çağrılır. Örneğin: async (page) => { await page.getByRole('button', { name: 'Submit' }).click(); return await page.title(); }
      • filename (dize, isteğe bağlı): Kodu belirtilen dosyadan yükle. Hem kod hem de dosya adı sağlanırsa, kod yok sayılır.
    • Salt okunur: false
  • browser_select_option
    • Başlık: Seçenek seç
    • Açıklama: Açılır listede bir seçenek seç
    • Parametreler:
      • element (dize, isteğe bağlı): Öğeyle etkileşim izni almak için kullanılan, insan tarafından okunabilir öğe açıklaması
      • target (dize): Sayfa anlık görüntüsünden tam hedef öğe referansı veya benzersiz bir öğe seçici
      • values (dizi): Açılır listede seçilecek değerler dizisi. Bu tek bir değer veya birden fazla değer olabilir.
    • Salt okunur: false
  • browser_snapshot
    • Başlık: Sayfa anlık görüntüsü
    • Açıklama: Geçerli sayfanın erişilebilirlik anlık görüntüsünü yakala, bu ekran görüntüsünden daha iyidir
    • Parametreler:
      • target (dize, isteğe bağlı): Sayfa anlık görüntüsünden tam hedef öğe referansı veya benzersiz bir öğe seçici
      • filename (dize, isteğe bağlı): Anlık görüntüyü yanıtta döndürmek yerine markdown dosyasına kaydet.
      • depth (sayı, isteğe bağlı): Anlık görüntü ağacının derinliğini sınırla
      • boxes (boolean, isteğe bağlı): Her öğenin sınırlayıcı kutusunu anlık görüntüde [box=x,y,width,height] olarak dahil et. Koordinatlar görünüm alanına görelidir, CSS piksel cinsindendir (Element.getBoundingClientRect)
    • Salt okunur: true
  • browser_take_screenshot
    • Başlık: Ekran görüntüsü al
    • Açıklama: Geçerli sayfanın ekran görüntüsünü al. Ekran görüntüsüne dayalı eylemler gerçekleştiremezsiniz, eylemler için browser_snapshot kullanın.
    • Parametreler:
      • element (dize, isteğe bağlı): Öğeyle etkileşim izni almak için kullanılan, insan tarafından okunabilir öğe açıklaması
      • target (dize, isteğe bağlı): Sayfa anlık görüntüsünden tam hedef öğe referansı veya benzersiz bir öğe seçici
      • type (dize, isteğe bağlı): Ekran görüntüsü için görüntü biçimi. Ayarlanmazsa, dosya adı uzantısından çıkarılır, aksi takdirde png.
      • filename (dize, isteğe bağlı): Ekran görüntüsünün kaydedileceği dosya adı. Belirtilmezse varsayılan page-{timestamp}.{png|jpeg|webp}'dir. Çıktı dizini içinde kalmak için göreli dosya adlarını tercih edin.
      • fullPage (boolean, isteğe bağlı): true olduğunda, şu anda görünür olan görünüm alanı yerine tam kaydırılabilir sayfanın ekran görüntüsünü alır. Öğe ekran görüntüleriyle kullanılamaz.
      • scale (dize): Görüntü çözünürlük ölçeği. "css", CSS piksel cinsinden boyutlandırılmış bir ekran görüntüsü üretir (daha küçük, cihazlar arasında tutarlı). "device", cihaz piksellerini kullanan yüksek çözünürlüklü bir ekran görüntüsü üretir (daha büyük, cihaz piksel oranını hesaba katar). Varsayılan css'tir.
    • Salt okunur: true
  • browser_type
    • Başlık: Metin yaz
    • Açıklama: Düzenlenebilir öğeye metin yaz
    • Parametreler:
      • element (dize, isteğe bağlı): Öğeyle etkileşim izni almak için kullanılan, insan tarafından okunabilir öğe açıklaması
      • target (dize): Sayfa anlık görüntüsünden tam hedef öğe referansı veya benzersiz bir öğe seçici
      • text (dize): Öğeye yazılacak metin
      • submit (boolean, isteğe bağlı): Girilen metnin gönderilip gönderilmeyeceği (sonrasında Enter'a bas)
      • slowly (boolean, isteğe bağlı): Her seferinde bir karakter yazılıp yazılmayacağı. Sayfadaki tuş işleyicilerini tetiklemek için kullanışlıdır. Varsayılan olarak metnin tamamı bir kerede doldurulur.
    • Salt okunur: false
  • browser_wait_for
    • Başlık: Bekle
    • Açıklama: Metnin görünmesini veya kaybolmasını ya da belirtilen sürenin geçmesini bekler
    • Parametreler:
      • time (sayı, isteğe bağlı): Beklenecek süre (saniye cinsinden)
      • text (metin, isteğe bağlı): Beklenecek metin
      • textGone (metin, isteğe bağlı): Kaybolması beklenen metin
    • Salt okunur: false
Sekme yönetimi
  • browser_tabs
    • Başlık: Sekmeleri yönet
    • Açıklama: Tarayıcı sekmesini listeler, oluşturur, kapatır veya seçer.
    • Parametreler:
      • action (metin): Gerçekleştirilecek işlem
      • index (sayı, isteğe bağlı): Sekme dizini, kapatma/seçme için kullanılır. Kapatma için atlanırsa geçerli sekme kapatılır.
      • url (metin, isteğe bağlı): Yeni sekmede gidilecek URL, yeni sekme için kullanılır.
    • Salt okunur: false
Tarayıcı kurulumu
Yapılandırma (--caps=config ile isteğe bağlı)
  • browser_get_config
    • Başlık: Yapılandırmayı al
    • Açıklama: CLI seçenekleri, ortam değişkenleri ve yapılandırma dosyası birleştirildikten sonraki son çözümlenmiş yapılandırmayı alır.
    • Parametreler: Yok
    • Salt okunur: true
Ağ (--caps=network ile isteğe bağlı)
  • browser_network_state_set
    • Başlık: Ağ durumunu ayarla
    • Açıklama: Tarayıcı ağ durumunu çevrimiçi veya çevrimdışı olarak ayarlar. Çevrimdışıyken tüm ağ istekleri başarısız olur.
    • Parametreler:
      • state (metin): Çevrimdışı modu simüle etmek için "offline", ağ bağlantısını geri yüklemek için "online" olarak ayarlayın
    • Salt okunur: false
  • browser_route
    • Başlık: Ağ isteklerini simüle et
    • Açıklama: Bir URL deseniyle eşleşen ağ isteklerini simüle etmek için bir rota ayarlar
    • Parametreler:
      • pattern (metin): Eşleştirilecek URL deseni (ör. "/api/users", "/*.{png,jpg}")
      • status (sayı, isteğe bağlı): Döndürülecek HTTP durum kodu (varsayılan: 200)
      • body (metin, isteğe bağlı): Yanıt gövdesi (metin veya JSON dizesi)
      • contentType (metin, isteğe bağlı): Content-Type başlığı (ör. "application/json", "text/html")
      • headers (dizi, isteğe bağlı): "Ad: Değer" biçiminde eklenecek başlıklar
      • removeHeaders (metin, isteğe bağlı): İstekten kaldırılacak başlık adlarının virgülle ayrılmış listesi
    • Salt okunur: false
  • browser_route_list
    • Başlık: Ağ rotalarını listele
    • Açıklama: Tüm etkin ağ rotalarını listeler
    • Parametreler: Yok
    • Salt okunur: true
  • browser_unroute
    • Başlık: Ağ rotalarını kaldır
    • Açıklama: Bir desenle eşleşen ağ rotalarını kaldırır (desen belirtilmezse tüm rotaları kaldırır)
    • Parametreler:
      • pattern (metin, isteğe bağlı): Kaldırılacak URL deseni (tüm rotaları kaldırmak için atlayın)
    • Salt okunur: false
Depolama (--caps=storage ile isteğe bağlı)
  • browser_cookie_clear
    • Başlık: Çerezleri temizle
    • Açıklama: Tüm çerezleri temizler
    • Parametreler: Yok
    • Salt okunur: false
  • browser_cookie_delete
    • Başlık: Çerezi sil
    • Açıklama: Belirli bir çerezi siler
    • Parametreler:
      • name (metin): Silinecek çerez adı
    • Salt okunur: false
  • browser_cookie_get
    • Başlık: Çerezi al
    • Açıklama: Ada göre belirli bir çerezi alır
    • Parametreler:
      • name (metin): Alınacak çerez adı
    • Salt okunur: true
  • browser_cookie_list
    • Başlık: Çerezleri listele
    • Açıklama: Tüm çerezleri listeler (isteğe bağlı olarak alan adı/yola göre filtrelenir)
    • Parametreler:
      • domain (metin, isteğe bağlı): Çerezleri alan adına göre filtrele
      • path (metin, isteğe bağlı): Çerezleri yola göre filtrele
    • Salt okunur: true
  • browser_cookie_set
    • Başlık: Çerez ayarla
    • Açıklama: İsteğe bağlı bayraklarla (alan adı, yol, son kullanma, httpOnly, secure, sameSite) bir çerez ayarlar
    • Parametreler:
      • name (metin): Çerez adı
      • value (metin): Çerez değeri
      • domain (metin, isteğe bağlı): Çerez alan adı
      • path (metin, isteğe bağlı): Çerez yolu
      • expires (sayı, isteğe bağlı): Unix zaman damgası olarak çerez son kullanma süresi
      • httpOnly (boolean, isteğe bağlı): Çerezin yalnızca HTTP olup olmadığı
      • secure (boolean, isteğe bağlı): Çerezin güvenli olup olmadığı
      • sameSite (metin, isteğe bağlı): Çerez SameSite özelliği
    • Salt okunur: false
  • browser_localstorage_clear
    • Başlık: localStorage'ı temizle
    • Açıklama: Tüm localStorage'ı temizler
    • Parametreler: Yok
    • Salt okunur: false
  • browser_localstorage_delete
    • Başlık: localStorage öğesini sil
    • Açıklama: Bir localStorage öğesini siler
    • Parametreler:
      • key (metin): Silinecek anahtar
    • Salt okunur: false
  • browser_localstorage_get
    • Başlık: localStorage öğesini al
    • Açıklama: Anahtara göre bir localStorage öğesini alır
    • Parametreler:
      • key (metin): Alınacak anahtar
    • Salt okunur: true
  • browser_localstorage_list
    • Başlık: localStorage'ı listele
    • Açıklama: Tüm localStorage anahtar-değer çiftlerini listeler
    • Parametreler: Yok
    • Salt okunur: true
  • browser_localstorage_set
    • Başlık: localStorage öğesi ayarla
    • Açıklama: Bir localStorage öğesi ayarlar
    • Parametreler:
      • key (metin): Ayarlanacak anahtar
      • value (metin): Ayarlanacak değer
    • Salt okunur: false
  • browser_sessionstorage_clear
    • Başlık: sessionStorage'ı temizle
    • Açıklama: Tüm sessionStorage'ı temizler
    • Parametreler: Yok
    • Salt okunur: false
  • browser_sessionstorage_delete
    • Başlık: sessionStorage öğesini sil
    • Açıklama: Bir sessionStorage öğesini siler
    • Parametreler:
      • key (metin): Silinecek anahtar
    • Salt okunur: false
  • browser_sessionstorage_get
    • Başlık: sessionStorage öğesini al
    • Açıklama: Anahtara göre bir sessionStorage öğesini alır
    • Parametreler:
      • key (metin): Alınacak anahtar
    • Salt okunur: true
  • browser_sessionstorage_list
    • Başlık: sessionStorage'ı listele
    • Açıklama: Tüm sessionStorage anahtar-değer çiftlerini listeler
    • Parametreler: Yok
    • Salt okunur: true
  • browser_sessionstorage_set
    • Başlık: sessionStorage öğesi ayarla
    • Açıklama: Bir sessionStorage öğesi ayarlar
    • Parametreler:
      • key (metin): Ayarlanacak anahtar
      • value (metin): Ayarlanacak değer
    • Salt okunur: false
  • browser_set_storage_state
    • Başlık: Depolama durumunu geri yükle
    • Açıklama: Bir dosyadan depolama durumunu (çerezler, yerel depolama) geri yükler. Bu, geri yüklemeden önce mevcut çerezleri ve yerel depolamayı temizler.
    • Parametreler:
      • filename (metin): Geri yüklenecek depolama durumu dosyasının yolu
    • Salt okunur: false
  • browser_storage_state
    • Başlık: Depolama durumunu kaydet
    • Açıklama: Depolama durumunu (çerezler, yerel depolama) daha sonra yeniden kullanmak üzere bir dosyaya kaydeder
    • Parametreler:
      • filename (metin, isteğe bağlı): Depolama durumunun kaydedileceği dosya adı. Belirtilmezse varsayılan olarak storage-state-{timestamp}.json kullanılır.
    • Salt okunur: true
DevTools (--caps=devtools ile isteğe bağlı)
  • browser_annotate
    • Başlık: Geçerli sayfayı açıkla
    • Açıklama: Geçerli sayfa için Playwright Panosu'nu açıklama modunda açar ve kullanıcının açıklamalar çizmesini bekler. Açıklamalı ekran görüntüsünü, ARIA anlık görüntüsünü ve açıklamaların listesini döndürür.
    • Parametreler: Yok
    • Salt okunur: true
  • browser_hide_highlight
    • Başlık: Öğe vurgusunu gizle
    • Açıklama: Öğe için daha önce eklenen bir vurgu katmanını kaldırır.
    • Parametreler:
      • element (metin, isteğe bağlı): Vurgu eklenirken kullanılan insan tarafından okunabilir öğe açıklaması; browser_highlight'a iletilen değerle eşleşmelidir.
      • target (metin, isteğe bağlı): Sayfa anlık görüntüsünden hedef öğe referansı veya benzersiz bir öğe seçici
    • Salt okunur: true
  • browser_highlight
    • Başlık: Öğeyi vurgula
    • Açıklama: Sayfadaki öğenin çevresinde kalıcı bir vurgu katmanı gösterir.
    • Parametreler:
      • element (metin, isteğe bağlı): Öğeyle etkileşim izni almak için kullanılan insan tarafından okunabilir öğe açıklaması
      • target (metin): Sayfa anlık görüntüsünden hedef öğe referansı veya benzersiz bir öğe seçici
      • style (metin, isteğe bağlı): Vurgu katmanına uygulanan ek satır içi CSS, ör. "outline: 2px dashed red".
    • Salt okunur: true
  • browser_resume
    • Başlık: Duraklatılmış betik yürütmeyi sürdür
    • Açıklama: Duraklatıldıktan sonra betik yürütmeyi sürdürür. step true olarak çağrıldığında, yürütme bir sonraki eylemden önce yeniden duraklatılır.
    • Parametreler:
      • step (boolean, isteğe bağlı): true olduğunda, yürütme bir sonraki eylemden önce yeniden duraklatılır ve adım adım hata ayıklamaya olanak tanır.
      • location (metin, isteğe bağlı): Belirli bir : konumunda yürütmeyi duraklatır, ör. "example.spec.ts:42".
    • Salt okunur: false
  • browser_start_recording
    • Başlık: Kullanıcı eylemlerini kaydetmeye başla
    • Açıklama: Kullanıcının tarayıcıda gerçekleştirdiği eylemleri Playwright kodu olarak kaydetmeye başlar. Kullanıcı bir akışı elle göstermek istediğinde kullanın. Kaydedilen eylemleri almak için kullanıcı bittiğini söylediğinde browser_stop_recording çağırın.
    • Parametreler: Yok
    • Salt okunur: true
  • browser_start_tracing
    • Başlık: İzlemeyi başlat
    • Açıklama: İz kaydını başlatır
    • Parametreler: Yok
    • Salt okunur: true
  • browser_start_video
    • Başlık: Videoyu başlat
    • Açıklama: Video kaydını başlatır
    • Parametreler:
      • filename (metin, isteğe bağlı): Videonun kaydedileceği dosya adı.
      • size (nesne, isteğe bağlı): Video boyutu
    • Salt okunur: true
  • browser_stop_recording
    • Başlık: Kullanıcı eylemlerini kaydetmeyi durdur
    • Açıklama: browser_start_recording ile başlatılan kaydı durdurur ve kaydedilen eylemleri Playwright kodu olarak döndürür.
    • Parametreler: Yok
    • Salt okunur: true
  • browser_stop_tracing
    • Başlık: İzlemeyi durdur
    • Açıklama: İz kaydını durdurur
    • Parametreler: Yok
    • Salt okunur: true
  • browser_stop_video
    • Başlık: Videoyu durdur
    • Açıklama: Video kaydını durdurur
    • Parametreler: Yok
    • Salt okunur: true
  • browser_video_chapter
    • Başlık: Video bölümü
    • Açıklama: Video kaydına bir bölüm işareti ekler. Bulanık arka planlı tam ekran bölüm kartı gösterir.
    • Parametreler:
      • title (metin): Bölüm başlığı
      • description (metin, isteğe bağlı): Bölüm açıklaması
      • duration (sayı, isteğe bağlı): Bölüm kartının gösterileceği süre (milisaniye cinsinden)
    • Salt okunur: true
  • browser_video_hide_actions
    • Başlık: Eylem katmanlarını gizle
    • Açıklama: Sayfada gerçekleştirilen eylemleri açıklamayı durdurur.
    • Parametreler: Yok
    • Salt okunur: true
  • browser_video_show_actions
    • Başlık: Eylem katmanlarını göster
    • Açıklama: Sayfada gerçekleştirilen sonraki eylemleri, eylemi adlandıran ve hedef öğeyi vurgulayan bir çağrı balonu ile açıklayın. Video kaydı veya ekran kaydı sırasında kullanışlıdır.
    • Parametreler:
      • duration (sayı, isteğe bağlı): Her eylem açıklamasının ekranda ne kadar süre kalacağı, milisaniye cinsinden. Varsayılan 500.
      • position (dize, isteğe bağlı): Eylem başlığının sayfaya göre nereye yerleştirileceği. Varsayılan sağ üst.
      • cursor (dize, isteğe bağlı): İşaretçi eylemleri için imleç dekorasyonu. "pointer" (varsayılan) bir fare işaretçisini önceki eylem noktasından sonrakine animasyonla taşır; "none" imleç dekorasyonunu devre dışı bırakır.
    • Salt okunur: true
Koordinat tabanlı (--caps=vision ile tercihe bağlı)
  • browser_mouse_click_xy
    • Başlık: Tıkla
    • Açıklama: Belirli bir konumda fare düğmesine tıklayın
    • Parametreler:
      • x (sayı): X koordinatı
      • y (sayı): Y koordinatı
      • button (dize, isteğe bağlı): Tıklanacak düğme, varsayılan sol
      • clickCount (sayı, isteğe bağlı): Tıklama sayısı, varsayılan 1
      • delay (sayı, isteğe bağlı): Fare basma ve bırakma arasında beklenecek süre, milisaniye cinsinden, varsayılan 0
    • Salt okunur: false
  • browser_mouse_down
    • Başlık: Fareyi basılı tut
    • Açıklama: Fareyi basılı tut
    • Parametreler:
      • button (dize, isteğe bağlı): Basılacak düğme, varsayılan sol
    • Salt okunur: false
  • browser_mouse_drag_xy
    • Başlık: Fareyi sürükle
    • Açıklama: Sol fare düğmesini belirli bir konuma sürükleyin
    • Parametreler:
      • startX (sayı): Başlangıç X koordinatı
      • startY (sayı): Başlangıç Y koordinatı
      • endX (sayı): Bitiş X koordinatı
      • endY (sayı): Bitiş Y koordinatı
    • Salt okunur: false
  • browser_mouse_move_xy
    • Başlık: Fareyi taşı
    • Açıklama: Fareyi belirli bir konuma taşıyın
    • Parametreler:
      • x (sayı): X koordinatı
      • y (sayı): Y koordinatı
    • Salt okunur: false
  • browser_mouse_up
    • Başlık: Fareyi bırak
    • Açıklama: Fareyi bırak
    • Parametreler:
      • button (dize, isteğe bağlı): Bırakılacak düğme, varsayılan sol
    • Salt okunur: false
  • browser_mouse_wheel
    • Başlık: Fare tekerleğini kaydır
    • Açıklama: Fare tekerleğini kaydır
    • Parametreler:
      • deltaX (sayı): X delta
      • deltaY (sayı): Y delta
    • Salt okunur: false
PDF oluşturma (--caps=pdf ile tercihe bağlı)
  • browser_pdf_save
    • Başlık: PDF olarak kaydet
    • Açıklama: Sayfayı PDF olarak kaydet
    • Parametreler:
      • filename (dize, isteğe bağlı): PDF'in kaydedileceği dosya adı. Belirtilmezse varsayılan page-{timestamp}.pdf. Çıktı dizini içinde kalmak için göreli dosya adlarını tercih edin.
    • Salt okunur: true
Test doğrulamaları (--caps=testing ile tercihe bağlı)
  • browser_generate_locator
    • Başlık: Öğe için konumlandırıcı oluştur
    • Açıklama: Testlerde kullanmak üzere verilen öğe için konumlandırıcı oluşturun
    • Parametreler:
      • element (dize, isteğe bağlı): Öğeyle etkileşim izni almak için kullanılan insan tarafından okunabilir öğe açıklaması
      • target (dize): Sayfa anlık görüntüsünden tam hedef öğe referansı veya benzersiz bir öğe seçici
    • Salt okunur: true
  • browser_verify_element_visible
    • Başlık: Öğenin görünür olduğunu doğrula
    • Açıklama: Öğenin sayfada görünür olduğunu doğrulayın
    • Parametreler:
      • role (dize): Öğenin ROLE'u. Anlık görüntüde şu şekilde bulunabilir: - {ROLE} "Accessible Name":
      • accessibleName (dize): Öğenin ACCESSIBLE_NAME'i. Anlık görüntüde şu şekilde bulunabilir: - role "{ACCESSIBLE_NAME}"
    • Salt okunur: false
  • browser_verify_list_visible
    • Başlık: Listenin görünür olduğunu doğrula
    • Açıklama: Listenin sayfada görünür olduğunu doğrulayın
    • Parametreler:
      • element (dize): İnsan tarafından okunabilir liste açıklaması
      • target (dize): Listeyi işaret eden tam hedef öğe referansı
      • items (dizi): Doğrulanacak öğeler
    • Salt okunur: false
  • browser_verify_text_visible
    • Başlık: Metnin görünür olduğunu doğrula
    • Açıklama: Metnin sayfada görünür olduğunu doğrulayın. Mümkünse browser_verify_element_visible tercih edin.
    • Parametreler:
      • text (dize): Doğrulanacak METİN. Anlık görüntüde şu şekilde bulunabilir: - role "Accessible Name": {TEXT} veya şu şekilde: - text: {TEXT}
    • Salt okunur: false
  • browser_verify_value
    • Başlık: Değeri doğrula
    • Açıklama: Öğe değerini doğrulayın
    • Parametreler:
      • type (dize): Öğenin türü
      • element (dize): İnsan tarafından okunabilir öğe açıklaması
      • target (dize): Sayfa anlık görüntüsünden tam hedef öğe referansı
      • value (dize): Doğrulanacak değer. Onay kutusu için "true" veya "false" kullanın.
    • Salt okunur: false