Skip to main content
Glama
fgulen

playwright-mcp-server

by fgulen
README.md
# Playwright MCP Server

Güvenli bir şekilde local'de çalışan Playwright tabanlı MCP (Model Context Protocol) server.

## Özellikler

- 🔒 **Tamamen Local**: Tüm işlemler local'de çalışır, internet bağlantısı gerektirmez
- 🎭 **Playwright Tabanlı**: Güçlü browser otomasyonu
- 🛡️ **Güvenli**: Sadece local sistemde çalışır, dış bağlantı yapmaz
- 🚀 **Kullanımı Kolay**: MCP protokolü ile entegre

## Kurulum

1. Bağımlılıkları yükleyin:
```bash
npm install
```

2. Playwright tarayıcılarını yükleyin:
```bash
npx playwright install chromium
```

## Kullanım

Server'ı başlatmak için:
```bash
npm start
```

Veya geliştirme modunda (otomatik yeniden başlatma ile):
```bash
npm run dev
```

## Mevcut Araçlar (Tools)

Toplam **25 farklı browser otomasyon aracı** mevcuttur:

### Navigasyon ve Sayfa İşlemleri

#### 1. `browser_navigate`
Tarayıcıyı belirtilen URL'ye yönlendirir.
- **Parametreler**: `url` (string, zorunlu)

#### 2. `browser_go_back`
Tarayıcı geçmişinde geri gider.

#### 3. `browser_go_forward`
Tarayıcı geçmişinde ileri gider.

#### 4. `browser_reload`
Sayfayı yeniden yükler.

#### 5. `browser_get_url`
Mevcut sayfanın URL'sini getirir.

#### 6. `browser_get_title`
Mevcut sayfanın başlığını getirir.

### Görüntü ve İçerik İşlemleri

#### 7. `browser_screenshot`
Sayfanın ekran görüntüsünü alır.
- **Parametreler**: 
  - `path` (string, zorunlu)
  - `fullPage` (boolean, opsiyonel)

#### 8. `browser_get_content`
Sayfanın HTML içeriğini getirir.
- **Parametreler**: `selector` (string, opsiyonel)

#### 9. `browser_get_text`
Bir elementin text içeriğini getirir.
- **Parametreler**: `selector` (string, zorunlu)

#### 10. `browser_get_all_text`
Sayfadaki tüm görünür metni getirir.

#### 11. `browser_get_attribute`
Bir elementin attribute değerini getirir.
- **Parametreler**: 
  - `selector` (string, zorunlu)
  - `attribute` (string, zorunlu)

### Mouse İşlemleri

#### 12. `browser_click`
Sayfadaki bir elemana tıklar.
- **Parametreler**: `selector` (string, zorunlu)

#### 13. `browser_double_click`
Bir elemente çift tıklar.
- **Parametreler**: `selector` (string, zorunlu)

#### 14. `browser_right_click`
Bir elemente sağ tıklar (context menu).
- **Parametreler**: `selector` (string, zorunlu)

#### 15. `browser_hover`
Bir elementin üzerine mouse ile gelir.
- **Parametreler**: `selector` (string, zorunlu)

### Form İşlemleri

#### 16. `browser_fill`
Bir input alanını doldurur.
- **Parametreler**: 
  - `selector` (string, zorunlu)
  - `text` (string, zorunlu)

#### 17. `browser_select`
Dropdown menüden seçim yapar.
- **Parametreler**: 
  - `selector` (string, zorunlu)
  - `value` (string, zorunlu)

#### 18. `browser_check`
Checkbox veya radio button'ı işaretler.
- **Parametreler**: `selector` (string, zorunlu)

#### 19. `browser_uncheck`
Checkbox işaretini kaldırır.
- **Parametreler**: `selector` (string, zorunlu)

#### 20. `browser_press_key`
Klavye tuşuna basar.
- **Parametreler**: `key` (string, zorunlu - örn: Enter, Escape, ArrowDown)

### Scroll ve Görünürlük

#### 21. `browser_scroll`
Sayfayı scroll eder.
- **Parametreler**: 
  - `selector` (string, opsiyonel)
  - `x` (number, opsiyonel)
  - `y` (number, opsiyonel)

#### 22. `browser_is_visible`
Bir elementin görünür olup olmadığını kontrol eder.
- **Parametreler**: `selector` (string, zorunlu)

### JavaScript ve Beklemeler

#### 23. `browser_evaluate`
Sayfada JavaScript kodu çalıştırır.
- **Parametreler**: `script` (string, zorunlu)

#### 24. `browser_wait`
Belirtilen süre kadar veya bir element görünene kadar bekler.
- **Parametreler**: 
  - `selector` (string, opsiyonel)
  - `timeout` (number, opsiyonel, varsayılan: 30000ms)

### Tarayıcı Yönetimi

#### 25. `browser_close`
Tarayıcıyı kapatır.

## MCP Client Konfigürasyonu

Claude Desktop veya başka bir MCP client kullanıyorsanız, config dosyanıza ekleyin:

```json
{
  "mcpServers": {
    "playwright": {
      "command": "node",
      "args": ["c:\\Users\\fg\\Desktop\\mcp\\index.js"]
    }
  }
}
```

## Güvenlik

- Server sadece local'de çalışır (stdio transport kullanır)
- Dış ağ bağlantısı gerektirmez
- Tüm browser işlemleri local makinede gerçekleşir
- Headless mode yerine normal mode kullanır (daha güvenli ve görsel)

## Lisans

MIT