CANLI
xAI, Imagine API’yi 2.0’a Yükseltmeye Hazırlanıyor: Görüntü ve Video Tek…·Microsoft MAI-Cyber-1-Flash’ı Duyurdu·Moonshot AI, Kimi K3 Model Ağırlıklarını ve Teknik Raporunu Açık…
28 Aug 2026 · 06:01 GMT+3
Ai Haber – Türkiyenin Yapay Zeka Haber Portalı
AnasayfaMCP ServerlarResmiPlaywright MCP
WEB SCRAPING RESMİ

Playwright MCP

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.

24Tool TypeScriptDil microsoftGeliştirici

Bu server ne yapar?

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.

Neler yapabilirsiniz?

Sayfaları gezinin ve inceleyin

Asistanınızın URL’leri ziyaret etmesini ve sayfa içeriğini ile durumunu anlamak için yapılandırılmış erişilebilirlik anlık görüntülerini okumasını sağlayın.

Sayfa öğeleriyle etkileşim kurun

Asistanı, erişilebilirlik ağacı üzerinden bulunan öğelere tıklamaya, yazmaya ve tarayıcı eylemleri gerçekleştirmeye yönlendirin.

Otonom tarayıcı iş akışlarını çalıştırın

Sayfa yapısı üzerinde yinelenen uzun süreli görevler için kalıcı bir tarayıcı bağlamı tutun.

Oturum kalıcılığını kontrol edin

Oturum açma durumunun ve depolamanın çalıştırmalar arasında korunup korunmayacağını yönetmek için --isolated veya kalıcı bir --user-data-dir profili kullanın.

Playwright kodu oluşturun

Etkileşimleri TypeScript, Python, Java veya C# dilinde kod olarak yakalamak için --codegen özelliğini etkinleştirin.

Mevcut bir tarayıcıya bağlanın

Oturum açmış sekmelerinizde ve mevcut tarayıcı durumunuzda çalışmak için tarayıcı uzantısını kullanın.

Dokümantasyon

İçindekiler
  1. Neler yapabilirsiniz?
  2. Playwright MCP
  3. Playwright MCP vs Playwright CLI
  4. Ana Özellikler
  5. Gereksinimler
  6. Başlarken
  7. Yapılandırma
  8. Kullanıcı profili
  9. Başlangıç durumu
  10. Yapılandırma dosyası
  11. Bağımsız MCP sunucusu
  12. Güvenlik
  13. Araçlar

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.

Neler yapabilirsiniz?

  • Sayfaları gezinin ve inceleyin — Asistanınızın URL’leri ziyaret etmesini ve sayfa içeriğini ile durumunu anlamak için yapılandırılmış erişilebilirlik anlık görüntülerini okumasını sağlayın.
  • Sayfa öğeleriyle etkileşim kurun — Asistanı, erişilebilirlik ağacı üzerinden bulunan öğelere tıklamaya, yazmaya ve tarayıcı eylemleri gerçekleştirmeye yönlendirin.
  • Otonom tarayıcı iş akışlarını çalıştırın — Sayfa yapısı üzerinde yinelenen uzun süreli görevler için kalıcı bir tarayıcı bağlamı tutun.
  • Oturum kalıcılığını kontrol edin — Oturum açma durumunun ve depolamanın çalıştırmalar arasında korunup korunmayacağını yönetmek için –isolated veya kalıcı bir –user-data-dir profili kullanın.
  • Playwright kodu oluşturun — Etkileşimleri TypeScript, Python, Java veya C# dilinde kod olarak yakalamak için –codegen özelliğini etkinleştirin.
  • Mevcut bir tarayıcıya bağlanın — Oturum açmış sekmelerinizde ve mevcut tarayıcı durumunuzda çalışmak için tarayıcı uzantısını kullanın.

Playwright MCP

Model Context Protocol (MCP) sunucusu, Playwright kullanarak tarayıcı otomasyonu yetenekleri sağlar. 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 ve ekran görüntüleri veya görsel olarak ayarlanmış modeller ihtiyacını ortadan kaldırır.

Playwright MCP vs Playwright CLI

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

  • CLI: Modern kodlama ajanları, 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ır, ajanların kısa ve amaca yönelik komutlarla hareket etmesine olanak tanır. Bu, CLI + SKILL'leri, sınırlı bağlam pencerelerinde tarayıcı otomasyonunu büyük kod tabanları, testler ve akıl yürütme ile dengelemesi gereken yüksek verimli kodlama ajanları için daha uygun hale getirir.
    Daha fazla bilgi edinin: Playwright CLI with SKILLS.

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

Ana Özellikler

  • Hızlı ve hafif. Playwright'ın erişilebilirlik ağacını kullanır, piksel tabanlı girişi değil.
  • LLM dostu. Görüntü modelleri gerekmez, yalnızca yapılandırılmış verilerle ç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 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

Aşağıdakini cline_mcp_settings.json dosyanıza 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 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 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 kullanın:

/mcp add

Alternatif olarak, ~/.copilot/mcp-config.json yapılandırma dosyasını oluşturun veya düzenleyin ve 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. İstediğiniz gibi adlandırın, npx @playwright/mcp@latest komutuyla command türünü kullanın. Ayrıca Edit'e tıklayarak yapılandırmayı doğrulayabilir veya komut benzeri bağımsız değişkenler ekleyebilirsiniz.

Factory

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

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

Alternatif olarak, MCP sunucularını yönetmek için etkileşimli bir arayüz 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. İstediğiniz gibi adlandırın, STDIO türünü kullanın ve command değerini npx @playwright/mcp olarak ayarlayın. "Uzantı Ekle" düğmesine tıklayın.

Grok

Playwright MCP sunucusunu eklemek için Grok CLI 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 ekleyin:

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

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

Junie

Junie CLI'da 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ç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ğundaki 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ğlayın → + Yeni MCP ekleyin → 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 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 ajanınızla kullanıma hazır olacaktır.

Warp

Bir 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çenek Açıklama
–allowed-hosts <hosts…> Bu sunucunun sunum yapmasına izin verilen konakların virgülle ayrılmış listesi. Varsayılan, sunucunun bağlandığı konaktır. Konak kontrolünü devre dışı bırakmak için '*' geçirin.
env PLAYWRIGHT_MCP_ALLOWED_HOSTS
–allowed-origins Tarayıcının istek yapmasına izin verilen GÜVENİLİR kaynakların noktalı virgülle ayrılmış listesi. Varsayılan, tümüne izin vermektir. Önemli: bir güvenlik sınırı değildir 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 de izin verir. Varsayılan olarak, dosya sistemine erişim yalnızca çalışma alanı kök dizinleriyle (kök yapılandırılmamışsa geçerli çalışma dizini) sınırlıdır ve file:// URL'lerine gezinme engellenir.
env PLAYWRIGHT_MCP_ALLOW_UNRESTRICTED_FILE_ACCESS
–blocked-origins Tarayıcının istek yapmasını engellemesi gereken 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: bir güvenlik sınırı değildir ve yönlendirmeleri etkilemez.
env PLAYWRIGHT_MCP_BLOCKED_ORIGINS
–block-service-workers Servis ç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 çok kez belirtilebilir.
env PLAYWRIGHT_MCP_CDP_HEADERS
–cdp-timeout CDP uç noktasına bağlanmak için milisaniye cinsinden zaman aşımı, 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 seviyesi: "error", "warning", "info", "debug". Her seviye, daha ağır seviyelerin mesajlarını içerir.
env PLAYWRIGHT_MCP_CONSOLE_LEVEL
–device Öykünülecek cihaz, örneğin: "iPhone 15"
env PLAYWRIGHT_MCP_DEVICE
–mobile Genel bir mobil cihazı öykün (Chromium için Pixel 10, WebKit için iPhone 17). Mobil sayfalar genellikle daha hafiftir, bu da jeton 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ın (yalnızca Edge/Chrome). "Playwright Extension"ın kurulu olmasını gerektirir.
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
–headless Tarayıcıyı headless modda çalıştır, varsayılan olarak başlıklı (headed) modda çalışır.
env PLAYWRIGHT_MCP_HEADLESS
–host Sunucunun bağlanacağı konak. Varsayılan localhost'tur. Tüm arayüzlere bağlanmak için 0.0.0.0 kullanın.
env PLAYWRIGHT_MCP_HOST
–ignore-https-errors https hatalarını yoksay
env PLAYWRIGHT_MCP_IGNORE_HTTPS_ERRORS
–init-page <path…> Playwright sayfa nesnesi üzerinde 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 çok kez belirtilebilir.
env PLAYWRIGHT_MCP_INIT_SCRIPT
–isolated Tarayı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-sandbox Normalde sandbox'lanan tüm işlem türleri için sandbox'ı devre dışı bırak.
env PLAYWRIGHT_MCP_NO_SANDBOX
–output-dir Çıktı dosyaları için dizin yolu.
env PLAYWRIGHT_MCP_OUTPUT_DIR
–output-max-size Eski çıktı dosyalarını atma eşiği, bayt cinsinden.
env PLAYWRIGHT_MCP_OUTPUT_MAX_SIZE
–port SSE taşıma için dinlenecek bağlantı noktası.
env PLAYWRIGHT_MCP_PORT
–proxy-bypass Proxy'yi atlayacak alan adları, virgülle ayrılmış, ö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
–sandbox Normalde sandbox'lanmayan tüm işlem türleri için sandbox'ı etkinleştir.
env PLAYWRIGHT_MCP_SANDBOX
–save-session Playwright MCP oturumunun çıktı dizinine kaydedilip kaydedilmeyeceği.
env PLAYWRIGHT_MCP_SAVE_SESSION
–secrets dotenv formatında sırlar içeren dosyanın yolu
env PLAYWRIGHT_MCP_SECRETS_FILE
–shared-browser-context Tüm bağlı HTTP istemcileri arasında aynı tarayıcı bağlamını yeniden kullan.
env PLAYWRIGHT_MCP_SHARED_BROWSER_CONTEXT
–snapshot-boxes Her öğenin sınırlayıcı kutusunu anlık görüntülerde [box=x,y,width,height] olarak dahil et. Koordinatlar görünüm penceresine göredir, CSS pikseli 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 İzole 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"dir.
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 penceresi boyutunu piksel cinsinden belirtin, örneğin "1280×720"
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 izole bağlamlar içinde çalıştırabilir veya tarayıcı uzantısını kullanarak mevcut tarayıcınıza bağlanabilirsiniz.

Kalıcı profil

Tüm oturum açmış bilgiler kalıcı profilde saklanır; çevrimdışı durumu temizlemek istiyorsanız, 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%AppDataLocalms-playwrightmcp-{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, ekstra her istemciyi --isolated ile başlatın veya farklı bir --user-data-dir adresine yönlendirin.

İzole

İzole modda, her oturum izole bir profilde başlatılır. MCP'den tarayıcıyı kapatmasını istediğinizde, oturum kapanır ve bu oturum için tüm depolama durumu kaybolur. Tarayıcıya, yapılandırmanın contextOptions alanı veya --storage-state bağımsız değişkeni aracılığıyla başlangıç depolama durumu 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ız ile tarayıcı durumunuzu kullanmanıza olanak tanır. Kurulum ve ayar yönergeleri için bkz. microsoft/playwright › packages/extension.

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 kullanıcı veri diziniyle başlayın. Bu, oturumlar arasında tüm tarayıcı verilerini kalıcı hale getirir.
  • --storage-state bağımsız değişkenini kullanarak depolama durumu dosyasıyla başlayın. Bu, çerezleri ve yerel depolamayı dosyadan izole bir tarayıcı bağlamına yükler.

Sayfa durumu için şunları kullanabilirsiniz:

  • --init-page Playwright sayfa nesnesi üzerinde 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ına sahip bir ortamdan çalıştırın ve HTTP taşıma özelliğini etkinleştirmek için --port bayrağını geçirin.

npx @playwright/mcp@latest --port 8931

Ardından MCP istemcisi yapılandırmasında url öğesini 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 bkz. MCP Güvenlik En İyi Uygulamaları.

Docker

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

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

Veya konteyneri MCP istemcisinin başlatmasına izin vermek yerine uzun ömürlü bir hizmet olarak çalıştırmayı tercih ediyorsanız, ş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 portu 8931 üzerinde dinler ve herhangi bir MCP istemcisi tarafından erişilebilir.

Docker imajını kendiniz de 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: Web sayfasında tıklama gerçekleştir
    • Parametreler:
      • element (string, isteğe bağlı): Öğeyle etkileşim izni almak için kullanılan insan tarafından okunabilir öğe açıklaması
      • target (string): 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 (string, isteğe bağlı): Tıklanacak düğme, varsayılan olarak sol
      • modifiers (array, 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 (string): Döndürülecek konsol mesajlarının düzeyi. Her düzey, daha şiddetli düzeylerin mesajlarını içerir. Varsayılan "info" şeklindedir.
      • all (boolean, isteğe bağlı): Oturumun başlangıcından beri tüm konsol mesajlarını döndürür, yalnızca son gezinmeden bu yana değil. Varsayılan false.
      • filename (string, 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 (string, isteğe bağlı): Öğeyle etkileşim izni almak için kullanılan insan tarafından okunabilir kaynak öğe açıklaması
      • startTarget (string): Sayfa anlık görüntüsünden tam hedef öğe referansı veya benzersiz bir öğe seçici
      • endElement (string, isteğe bağlı): Öğeyle etkileşim izni almak için kullanılan insan tarafından okunabilir hedef öğe açıklaması
      • endTarget (string): 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: Bir öğeye dosya veya veri bırak
    • Açıklama: Dosyaları veya MIME türünde verileri, sayfanın dışından sürüklenmiş gibi bir öğeye bırakır. "paths" veya "data" alanlarından en az biri sağlanmalıdır.
    • Parametreler:
      • element (string, isteğe bağlı): Öğeyle etkileşim izni almak için kullanılan insan tarafından okunabilir öğe açıklaması
      • target (string): Sayfa anlık görüntüsünden tam hedef öğe referansı veya benzersiz bir öğe seçici
      • paths (array, isteğe bağlı): Öğeye bırakılacak dosyaların mutlak yolları.
      • data (object, isteğe bağlı): MIME türünün string değerine eşlenmesi olarak bırakılacak veri (ör. {"text/plain": "hello", "text/uri-list": "https://example.com"}).
    • Salt okunur: false

  • browser_evaluate
    • Başlık: JavaScript değerlendir
    • Açıklama: Sayfada veya öğede JavaScript ifadesini değerlendir
    • Parametreler:
      • element (string, isteğe bağlı): Öğeyle etkileşim izni almak için kullanılan insan tarafından okunabilir öğe açıklaması
      • target (string, isteğe bağlı): Sayfa anlık görüntüsünden tam hedef öğe referansı veya benzersiz bir öğe seçici
      • function (string): () => { /* kod / } veya öğe sağlandığında (element) => { / kod */ }
      • filename (string, 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: Dosya yükle
    • Açıklama: Bir veya birden fazla dosya yükle
    • Parametreler:
      • paths (array, 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 (array): 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 düzenli ifade arayın. Eşleşen anlık görüntü düğümlerini, ağacın kökünden yolu altında, etrafındaki birkaç satır bağlamla (arama parçacıkları gibi) döndürür. Yalnızca bir öğeyi ve referansını bulmanız gerektiğinde tüm anlık görüntüyü almak yerine daha ucuzdur.
    • Parametreler:
      • text (string, 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 düzenli ifade sağlayın, ikisini birden değil.
      • regex (string, isteğe bağlı): Sayfa anlık görüntüsünde aranacak düzenli ifade. Varsayılan olarak büyük/küçük harfe duyarlıdır; bayrak eklemek için kalıbı eğik çizgilere sarın, ör. büyük/küçük harfe duyarsız için "/error/i". Yalnızca metin veya düzenli ifade sağlayın, ikisini birden değil.
    • Salt okunur: true

  • browser_handle_dialog
    • Başlık: İletişim kutusunu yönet
    • Açıklama: Bir iletişim kutusunu yönet
    • Parametreler:
      • accept (boolean): İletişim kutusunun kabul edilip edilmeyeceği.
      • promptText (string, 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 (string, isteğe bağlı): Öğeyle etkileşim izni almak için kullanılan insan tarafından okunabilir öğe açıklaması
      • target (string): 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 (string): 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 alınan numarayı kullanın.
    • Parametreler:
      • index (integer): İsteğin 1 tabanlı dizini, browser_network_requests tarafından yazdırıldığı gibi.
      • part (string, isteğe bağlı): Yalnızca isteğin bu bölümünü döndürün. Tam ayrıntıları döndürmek için atlayın.
      • filename (string, 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 beri numaralandırılmış ağ isteklerinin listesini 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, betikler vb. gibi başarılı statik kaynakların dahil edilip edilmeyeceği. Varsayılan false.
      • filter (string, isteğe bağlı): Yalnızca URL'si bu düzenli ifadeyle eşleşen istekleri döndür (ör. "/api/.*user").
      • filename (string, 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 (string): Basılacak tuşun adı veya oluşturulacak bir karakter, örneğin 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 (number): Tarayıcı penceresinin genişliği
      • height (number): Tarayıcı penceresinin yüksekliği
    • Salt okunur: false

  • browser_run_code_unsafe
    • Başlık: Playwright kodu çalıştır (güvenli değil)
    • Açıklama: Bir Playwright kod parçacığı çalıştırın. Güvenli değil: Playwright sunucu sürecinde rastgele JavaScript yürütür ve RCE'ye eşdeğerdir.
    • Parametreler:
      • code (string, isteğe bağlı): Yürütülecek Playwright kodunu içeren bir JavaScript işlevi. Tek bir bağımsız değişken olan page ile çağrılır; sayfa etkileşimi için kullanabilirsiniz. Örneğin: async (page) => { await page.getByRole('button', { name: 'Submit' }).click(); return await page.title(); }
      • filename (string, isteğe bağlı): Belirtilen dosyadan kodu yükleyin. 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 (string, isteğe bağlı): Öğeyle etkileşim izni almak için kullanılan insan tarafından okunabilir öğe açıklaması
      • target (string): Sayfa anlık görüntüsünden tam hedef öğe referansı veya benzersiz bir öğe seçici
      • values (array): Açılır listede seçilecek değerler dizisi. 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ü alın, bu ekran görüntüsünden daha iyidir
    • Parametreler:
      • target (string, isteğe bağlı): Sayfa anlık görüntüsünden tam hedef öğe referansı veya benzersiz bir öğe seçici
      • filename (string, isteğe bağlı): Yanıtta döndürmek yerine anlık görüntüyü markdown dosyasına kaydedin.
      • depth (number, 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,genişlik,yükseklik] olarak ekleyin. Koordinatlar, CSS pikselleri cinsinden görünüm alanına göredir (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ın. Ekran görüntüsüne dayalı eylemler gerçekleştiremezsiniz, eylemler için browser_snapshot kullanın.
    • Parametreler:
      • element (string, isteğe bağlı): Öğeyle etkileşim izni almak için kullanılan insan tarafından okunabilir öğe açıklaması
      • target (string, isteğe bağlı): Sayfa anlık görüntüsünden tam hedef öğe referansı veya benzersiz bir öğe seçici
      • type (string, 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 (string, isteğe bağlı): Ekran görüntüsünün kaydedileceği dosya adı. Belirtilmezse varsayılan page-{timestamp}.{png|jpeg|webp} değeridir. Çı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ünen görünüm alanı yerine tüm kaydırılabilir sayfanın ekran görüntüsünü alır. Öğe ekran görüntüleriyle kullanılamaz.
      • scale (string): Görüntü çözünürlük ölçeği. "css", CSS pikselleri cinsinden boyutlandırılmış bir ekran görüntüsü üretir (daha küçük, cihazlar arasında tutarlı). "device", cihaz piksellerini kullanarak 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 (string, isteğe bağlı): Öğeyle etkileşim izni almak için kullanılan insan tarafından okunabilir öğe açıklaması
      • target (string): Sayfa anlık görüntüsünden tam hedef öğe referansı veya benzersiz bir öğe seçici
      • text (string): Öğeye yazılacak metin
      • submit (boolean, isteğe bağlı): Girilen metnin gönderilip gönderilmeyeceği (ardından Enter'a basın)
      • slowly (boolean, isteğe bağlı): Bir seferde bir karakter yazılıp yazılmayacağı. Sayfadaki tuş işleyicilerini tetiklemek için kullanışlıdır. Varsayılan olarak tüm metin 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 (number, optional): Beklenecek süre (saniye cinsinden)
      • text (string, optional): Beklenecek metin
      • textGone (string, optional): 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 (string): Gerçekleştirilecek işlem
      • index (number, optional): Kapatma/seçme için kullanılan sekme dizini. Kapatma için atlanırsa geçerli sekme kapatılır.
      • url (string, optional): Yeni sekmede gidilecek URL, yeni 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 sonra nihai çö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 (string): Ç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: URL deseniyle eşleşen ağ isteklerini simüle etmek için bir rota ayarlar
    • Parametreler:
      • pattern (string): Eşleştirilecek URL deseni (ör. "/api/users", "/*.{png,jpg}")
      • status (number, optional): Döndürülecek HTTP durum kodu (varsayılan: 200)
      • body (string, optional): Yanıt gövdesi (metin veya JSON dizesi)
      • contentType (string, optional): Content-Type başlığı (ör. "application/json", "text/html")
      • headers (array, optional): "Ad: Değer" biçiminde eklenecek başlıklar
      • removeHeaders (string, optional): İ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 (string, optional): Rotası 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 (string): 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 (string): 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ı/yol ile filtrelenir)
    • Parametreler:
      • domain (string, optional): Çerezleri alan adına göre filtrele
      • path (string, optional): Çerezleri yola göre filtrele
    • Salt okunur: true

  • browser_cookie_set
    • Başlık: Çerez ayarla
    • Açıklama: İsteğe bağlı bayraklarla (domain, path, expires, httpOnly, secure, sameSite) bir çerez ayarlar
    • Parametreler:
      • name (string): Çerez adı
      • value (string): Çerez değeri
      • domain (string, optional): Çerez alan adı
      • path (string, optional): Çerez yolu
      • expires (number, optional): Unix zaman damgası olarak çerez son kullanma tarihi
      • httpOnly (boolean, optional): Çerezin yalnızca HTTP olup olmadığı
      • secure (boolean, optional): Çerezin güvenli olup olmadığı
      • sameSite (string, optional): Çerez SameSite özniteliğ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 (string): 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 (string): 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 (string): Ayarlanacak anahtar
      • value (string): 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 (string): 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 (string): 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 (string): Ayarlanacak anahtar
      • value (string): Ayarlanacak değer
    • Salt okunur: false

  • browser_set_storage_state
    • Başlık: Depolama durumunu geri yükle
    • Açıklama: Depolama durumunu (çerezler, yerel depolama) bir dosyadan geri yükler. Geri yüklemeden önce mevcut çerezleri ve yerel depolamayı temizler.
    • Parametreler:
      • filename (string): 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 kullanmak üzere bir dosyaya kaydeder
    • Parametreler:
      • filename (string, optional): 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ı notlandır
    • Açıklama: Geçerli sayfa için Playwright Dashboard'u notlandırma modunda açar ve kullanıcının notlar çizmesini bekler. Notlandırılmış ekran görüntüsünü, ARIA anlık görüntüsünü ve not 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 vurgu katmanını kaldırır.
    • Parametreler:
      • element (string, optional): Vurgu eklenirken kullanılan insan tarafından okunabilir öğe açıklaması; browser_highlight'a iletilen değerle eşleşmelidir.
      • target (string, optional): 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 (string, optional): Öğeyle etkileşim izni almak için kullanılan insan tarafından okunabilir öğe açıklaması
      • target (string): Sayfa anlık görüntüsünden hedef öğe referansı veya benzersiz bir öğe seçici
      • style (string, optional): 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 ayarlanmış şekilde çağrıldığında, yürütme bir sonraki eylemden önce tekrar duraklatılır.
    • Parametreler:
      • step (boolean, optional): true olduğunda, yürütme bir sonraki eylemden önce tekrar duraklatılır ve adım adım hata ayıklamaya olanak tanır.
      • location (string, optional): Belirli bir : konumunda yürütmeyi duraklat, ör. "example.spec.ts:42".
    • Salt okunur: false

  • 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 (string, optional): Videonun kaydedileceği dosya adı.
      • size (object, optional): Video boyutu
    • 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 (string): Bölüm başlığı
      • description (string, optional): Bölüm açıklaması
      • duration (number, optional): Bölüm kartının gösterileceği milisaniye cinsinden süre
    • Salt okunur: true

  • browser_video_hide_actions
    • Başlık: Eylem katmanlarını gizle
    • Açıklama: Sayfada gerçekleştirilen eylemleri notlandırmayı 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 etiketle notlandırır. Video kaydı veya ekran kaydı sırasında kullanışlıdır.
    • Parametreler:
      • duration (number, optional): Her eylem notunun ekranda kalma süresi, milisaniye cinsinden. Varsayılan 500.
      • position (string, optional): Eylem başlığının sayfaya göre nereye yerleştirileceği. Varsayılan sağ üst.
      • cursor (string, optional): İşaretçi eylemleri için imleç süslemesi. "pointer" (varsayılan) önceki eylem noktasından sonrakine bir fare işaretçisi animasyonu yapar; "none" imleç süslemesini devre dışı bırakır.
    • Salt okunur: true
Koordinat tabanlı (–caps=vision ile isteğe bağlı)

  • browser_mouse_click_xy
    • Başlık: Tıklama
    • Açıklama: Fare düğmesini belirtilen konumda tıklayın
    • Parametreler:
      • x (number): X koordinatı
      • y (number): Y koordinatı
      • button (string, optional): Tıklanacak düğme, varsayılan sol
      • clickCount (number, optional): Tıklama sayısı, varsayılan 1
      • delay (number, optional): Fare basma ve bırakma arasında beklenecek süre (milisaniye), varsayılan 0
    • Salt okunur: false

  • browser_mouse_down
    • Başlık: Fare düğmesine basma
    • Açıklama: Fare düğmesine basın
    • Parametreler:
      • button (string, optional): Basılacak düğme, varsayılan sol
    • Salt okunur: false

  • browser_mouse_drag_xy
    • Başlık: Fare sürükleme
    • Açıklama: Sol fare düğmesini belirtilen konuma sürükleyin
    • Parametreler:
      • startX (number): Başlangıç X koordinatı
      • startY (number): Başlangıç Y koordinatı
      • endX (number): Bitiş X koordinatı
      • endY (number): Bitiş Y koordinatı
    • Salt okunur: false

  • browser_mouse_move_xy
    • Başlık: Fareyi taşı
    • Açıklama: Fareyi belirtilen konuma taşıyın
    • Parametreler:
      • x (number): X koordinatı
      • y (number): Y koordinatı
    • Salt okunur: false

  • browser_mouse_up
    • Başlık: Fare bırakma
    • Açıklama: Fare düğmesini bırakın
    • Parametreler:
      • button (string, optional): 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ın
    • Parametreler:
      • deltaX (number): X delta
      • deltaY (number): Y delta
    • Salt okunur: false
PDF oluşturma (–caps=pdf ile isteğe bağlı)

  • browser_pdf_save
    • Başlık: PDF olarak kaydet
    • Açıklama: Sayfayı PDF olarak kaydedin
    • Parametreler:
      • filename (string, optional): PDF'in kaydedileceği dosya adı. Belirtilmezse varsayılan page-{timestamp}.pdf olur. Çıktı dizini içinde kalmak için göreli dosya adlarını tercih edin.
    • Salt okunur: true
Test doğrulamaları (–caps=testing ile isteğe 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 (string, optional): Öğeyle etkileşim izni almak için kullanılan insan tarafından okunabilir öğe açıklaması
      • target (string): 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 (string): Öğenin ROLE'u. Anlık görüntüde şu şekilde bulunabilir: - {ROLE} "Accessible Name":
      • accessibleName (string): Öğ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 (string): İnsan tarafından okunabilir liste açıklaması
      • target (string): Listeyi işaret eden tam hedef öğe referansı
      • items (array): 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 (string): 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 (string): Öğenin türü
      • element (string): İnsan tarafından okunabilir öğe açıklaması
      • target (string): Sayfa anlık görüntüsünden tam hedef öğe referansı
      • value (string): Doğrulanacak değer. Onay kutusu için "true" veya "false" kullanın.
    • Salt okunur: false

Kaynak: mcpservers.org

Kurulum

Araçlar (Tools) 24

command TOOL
Edit TOOL
Extensions TOOL
STDIO TOOL
Program TOOL
Install TOOL
Kaydet TOOL
Settings TOOL
PLAYWRIGHT_MCP_ALLOWED_HOSTS TOOL
PLAYWRIGHT_MCP_ALLOWED_ORIGINS TOOL
PLAYWRIGHT_MCP_BLOCKED_ORIGINS TOOL
PLAYWRIGHT_MCP_BLOCK_SERVICE_WORKERS TOOL
PLAYWRIGHT_MCP_BROWSER TOOL
PLAYWRIGHT_MCP_CAPS TOOL
PLAYWRIGHT_MCP_CDP_ENDPOINT TOOL
PLAYWRIGHT_MCP_CDP_HEADERS TOOL
PLAYWRIGHT_MCP_CDP_TIMEOUT TOOL
PLAYWRIGHT_MCP_CODEGEN TOOL
PLAYWRIGHT_MCP_CONFIG TOOL
PLAYWRIGHT_MCP_CONSOLE_LEVEL TOOL
PLAYWRIGHT_MCP_DEVICE TOOL
PLAYWRIGHT_MCP_MOBILE TOOL
PLAYWRIGHT_MCP_EXECUTABLE_PATH TOOL
PLAYWRIGHT_MCP_EXTENSION TOOL

Desteklenen istemciler 5

V VS Code UYUMLU
C Cursor UYUMLU
G Gemini UYUMLU
C Claude UYUMLU
G GitHub Copilot UYUMLU