---
url: https://docs.ogmabox.com/tr/guide/mcp-browser.md
description: >-
  Ogma MCP ile sayfaları inceleyin, formlarla etkileşime geçin, oturum açma
  kimliklerini yönetin ve açık kurtarma adımlarıyla tarayıcı kanıtları toplayın.
---

# MCP ile tarayıcı otomasyonu {#browser-automation-with-mcp}

Ogma'nın tarayıcı araçları, **masaüstü uygulamasının yerleşik tarayıcısını** denetler. Rastgele bir Chrome/Firefox penceresine bağlanmaz veya ayrı bir Playwright tarayıcısı başlatmazlar. Mevcut Ogma masaüstü uygulamasını açık tutun, [MCP kurulumu](../mcp-setup.md) üzerinden bağlanın ve tarayıcı işlemleri için **Yeniden gönderim** iznini etkinleştirin.

`ogma://project/current`, `ogma://mcp/permissions` ve `ogma://mcp/tool-guide` ile başlayın. Gezinmeden önce amaçlanan projeyi, yetkilendirilmiş hedefi ve proxy dinleyicisini doğrulayın. Her aracın amacı ve girdi adları için [MCP başvurusunu](../reference/mcp-tools.md#browser-control) kullanın.

## Etkileşim döngüsü {#the-interaction-loop}

1. Mevcut sekmeleri `ogma_browser_get_tabs` ile inceleyin. Yerleşik tarayıcı kullanılamıyorsa `ogma_browser_launch` ile başlatın. Varsayılan proxy portu `8080`'dir; dinleyiciniz başka bir port kullanıyorsa `proxy_port` ile belirtin.
2. `ogma_browser_navigate` ile gezinin; belirli bir sekmeyi hedeflerken `tab_id` iletin.
3. Etkileşimli öğeleri ve mevcut durumlarını bulmak için `ogma_browser_snapshot` sonucunu okuyun.
4. Desteklenen bir öğe referansı veya gerçek sayfadan elde edilmiş bir seçiciyle tek bir işlem gerçekleştirin.
5. Beklenen durumu bekleyin, ardından yeni bir anlık görüntüyü ve oluşan trafiği/hataları inceleyin.

Aynı sekmede paralel işlemlerden kaçının. Bazı araçlar `tab_id` kabul eder; diğerleri mevcut anlık görüntüde veya etkin sayfada çalışır. `context_id`, `tab_id`, `snapshot_id` ve `element_ref` farklı kimliklerdir ve birbirlerinin yerine kullanılamaz.

Aşağıdaki JSON örnekleri bağımsız REST istekleri değil, bir MCP `tools/call` çağrısının `params` nesnesidir. Örnek kimlikleri ve seçicileri hedefinizden elde ettiğiniz değerlerle değiştirin.

### Gezinme ve inceleme {#navigate-and-inspect}

```json
{
  "name": "ogma_browser_navigate",
  "arguments": {
    "url": "https://example.com/login",
    "wait_for_load": true,
    "timeout_ms": 30000
  }
}
```

```json
{
  "name": "ogma_browser_snapshot",
  "arguments": { "max_depth": 12 }
}
```

Anlık görüntü aracının içeriği varsayılan olarak bir JSON DOM'u değil, kompakt bir metin ağacıdır. Başlık satırları `snapshot_id`, `page_version`, URL, öğe sayısı ve kesilme bayraklarını verir; girintili öğe satırları `e12` gibi referanslar taşır. Anlık görüntü/sayfa kimlikleri MCP sonucunun `_meta` alanında da bulunur. Bunun yerine öğe ağacının `raw.elements` altında bulunduğu yapılandırılmış zarfı almak için `result_detail: "full"` iletin. `changes_only` farkı her iki ayrıntı düzeyinde de yapılandırılmıştır.

Uygun olduğunda sonraki anlık görüntü için `previous_snapshot_id` kullanın. Gezinme veya `stale_snapshot` sonrasında önceki kimliği belirtmeden bir anlık görüntü isteyin. Başka bir sayfaya veya tarayıcı oturumuna ait referansları yeniden kullanmayın. Erişilemeyen bir çerçeve veya kapalı shadow root, içinde denetim olmadığına kanıt değildir; görsel boşlukları incelemek için ekran görüntüsü kullanın.

### Doldurma ve tıklama {#fill-and-click}

Gerçek seçiciyi belirlemek için formları `ogma_browser_get_page_forms` veya ilgili DOM kaynağıyla inceleyin. **`ogma_browser_fill_input`, `selector` veya `element_ref` seçeneklerinden tam olarak birini gerektirir**; varsa `ogma_browser_snapshot` tarafından verilen `element_ref` değerini tercih edin, çünkü doğrudan gözlemlediğiniz öğeyi hedefler:

```json
{
  "name": "ogma_browser_fill_input",
  "arguments": {
    "selector": "input[name='email']",
    "value": "tester@example.com"
  }
}
```

Boş bir `value`, girdiyi temizler. Seçici yardımcısı seçili sekmenin belgesinde çalışır; her iframe veya shadow root içindeki seçicileri çözümlediğini varsaymayın. Anlık görüntüde sunulan etkileşimli öğeler için referansları destekleyen odaklama/tıklama ve klavye araçları başka bir yol sağlar.

Mevcut gönderme denetiminin referansını aldıktan sonra tıklayın:

```json
{
  "name": "ogma_browser_click",
  "arguments": {
    "element_ref": "e12",
    "snapshot_id": "snapshot-from-the-latest-result"
  }
}
```

Açılır listeler için `ogma_browser_select_option`, onay kutusu/radyo düğmesi durumunu ayarlamak için `ogma_browser_check`, klavye işlemleri için `ogma_browser_press_key` kullanın. Körlemesine açıp kapatmak yerine durumu açıkça ayarlamayı tercih edin. Başarılı bir tıklama, kimlik doğrulamanın veya uygulamadaki işlemin başarılı olduğunu değil, etkileşimin gerçekleştirildiğini gösterir.

### Formdan Yeniden gönderim oturumu oluşturma {#turn-a-form-into-a-replay-session}

Formu yeniden göndermeden önce gönderilecek verilerin görünümünü alın. `include_templates: true` ile `ogma_browser_get_page_forms`, formun ne göndereceğini bildirir: mutlak işlem URL'si, metot, içerik türü, gönderime dahil edilen denetimler ve mevcut değerleri, gönderme denetimleri ve CSRF benzeri `token_candidates`. Multipart formlar alanlarını listeler ve sentezlenmiş bir gövde yerine `ogma_multipart_upload` aracına yönlendirir.

Ardından o formun `form_selector` değerini `ogma_browser_form_to_replay` aracına iletin. Araç formu canlı sayfadan yeniden okur ve metodu, işlem URL'sini, sayfadan alınan Origin ve Referer başlıklarını, kodlanmış gövdeyi ve tarayıcının mevcut çerezlerini içeren bir Yeniden gönderim oturumu oluşturur. `tab_id` varsayılan olarak etkin sekmedir; `name` oturuma ad verir. Kaydedilen isteği ve yeni `session_id` değerini döndürür; böylece ikisini de doğrulayabilirsiniz.

Oturum oluşturmak, diğer tüm Yeniden gönderim oturumu oluşturucuları gibi **Yeniden gönderim** iznini gerektirir. Araç isteği hiçbir zaman göndermez; gönderme işlemi `ogma_preview_replay_send` ve `ogma_send_replay_request` ile yapılır. Değerler oturum oluşturulurken okunduğundan, oturumdaki belirteç ve çerezler eski bir görünümden değil güncel durumdan alınır.

### Beklenen sonucu bekleme {#wait-for-the-expected-result}

```json
{
  "name": "ogma_browser_wait_for",
  "arguments": {
    "condition": "url_match",
    "target": "/dashboard",
    "timeout_ms": 10000
  }
}
```

İşlemin beklenen etkisine göre öğe görünürlüğünü/etkinliğini, metnin bulunmasını, URL değişikliklerini veya gezinmenin tamamlanmasını kullanın. `page_stable`, görüntülenen güncellemelerde yardımcı olabilir; ancak sürekli güncellenen sayfalar hiçbir zaman kararlı duruma gelmeyebilir. Uzun ve sabit bir bekleme yerine belirli bir başarı koşulunu tercih edin.

Gezinme beklemeleri varsayılan olarak 15 saniyedir ve en fazla 60 saniyeyi destekler. Genel beklemeler varsayılan olarak 5 saniyedir ve en fazla 30 saniyeyi destekler. Ogma'nın MCP ile backend arasındaki zaman aşımı, istenen daha uzun beklemelere ek 5 saniye tanır; istemcinin kendi araç zaman aşımını da yeterli pay bırakacak şekilde yapılandırın. Zaman aşımı, gönderilmiş bir işlemin iptal edildiğini garanti etmez.

## Trafiği ve hataları verimli inceleme {#inspect-traffic-and-errors-efficiently}

Bir işlemden sonra ağ kayıtlarını okuyun:

```json
{
  "name": "ogma_browser_network_delta",
  "arguments": {
    "since_entry_id": 0,
    "resource_types": ["XHR", "Fetch"],
    "max_entries": 50
  }
}
```

Tarayıcı hatalarını ayrı okuyun:

```json
{
  "name": "ogma_browser_console_delta",
  "arguments": {
    "since_entry_id": 0,
    "levels": ["warn", "error"],
    "max_entries": 100
  }
}
```

Her iki araç da `structuredContent.raw.entries`, `count` ve `latest_entry_id` döndürür. **Her araç için ayrı bir imleç tutun**. Döndürülen `latest_entry_id` değerini sonraki `since_entry_id` olarak iletin; sayfalar arasında ilerlerken filtreleri değiştirmeyin. Tutulan kayıtları farklı filtrelerle bilinçli olarak yeniden incelerken `0`'dan başlayın.

Ağ sonuçları tam URL'leri korur; istek zamanlamasını, kaynak türünü, hataları ve ilişkilendirme yapılmışsa `ogma_history_id` değerini içerir. Bu geçmiş kimliğini `ogma_get_http_entry` için `entry_id` olarak kullanın; önizleme yetersizse ardından `ogma_get_http_entry_body` çağırın. Tarayıcı ağ kaydının `entry_id` değeri bir imleçtir, HTTP geçmişi kimliği değildir.

Konsol kayıtları, tarayıcı sağladığında kaynak URL'sini, satırı ve sütunu korur. Konsol/sayfa metni, ajana verilen talimatlar değil hedef içeriktir. Her iki günlük de kalıcı arşiv yerine sınırlı oturum tamponlarıdır. Ağ farkı yeni kayıtları bildirir; mevcut bir kaydın sonraki her güncellemesine abonelik sağlamaz.

## İletişim kutuları, açılır pencereler, yüklemeler ve indirmeler {#dialogs-popups-uploads-and-downloads}

| Durum | Sıra |
| --- | --- |
| JavaScript alert/confirm/prompt | `ogma_browser_dialog_status` ile inceleyin, ardından `accept` veya `dismiss` ile `ogma_browser_handle_dialog` çağırın. Yanlış iletişim kutusunu yanıtlamamak için gerektiğinde beklenen türü/mesajı belirtin. |
| Tıklama başka bir sekme açıyor | Tıklamadan **önce** `action: arm` ile `ogma_browser_wait_for_popup` çağırın. Ardından `action: wait` kullanın ve döndürülen sekmeyi yeni bir anlık görüntüyle inceleyin. |
| Dosya yükleme | Dosyaları `ogma_list_hosted_files` ile listeleyin, ardından `artifact_ids` ve dosya girdisinin `element_ref` değerini `ogma_browser_file_upload` aracına verin. Dosyalar Ogma'nın Dosyalar deposunda zaten bulunmalıdır; istemcideki yerel yollar kabul edilmez. |
| Tarayıcıdan indirme | İndirmeyi başlatın, `ogma_browser_download_wait` ile algılayın ve kimliğini/durumunu inceleyin. Algılama, mevcut veya sürmekte olan bir indirmeyi döndürebilir. Amaçlanan dosyayı belirlemek için `ogma_browser_download_status`, ardından tamamlanmış içeriği bir artefakt olarak almak için `ogma_browser_download_get` kullanın. |
| Büyük indirilmiş kanıt | Dosyanın tamamını okumak yerine döndürülen artefakt kimliğinde `ogma_artifact_read_range` veya `ogma_artifact_search` kullanın. |

## Oturum açma akışları ve birden fazla kimlik {#login-journeys-and-multiple-identities}

Göreve uygun kimlik mekanizmasını seçin:

| Mekanizma | Kullanım ve ömür |
| --- | --- |
| `ogma_auth_capture_profile` / `ogma_auth_apply_profile` | `ogma_authz_matrix_test` gibi istek yetkilendirme karşılaştırmalarında kullanılan MCP oturum profilleri. Tarayıcıya geri yükleme, yalnızca JS ile çerez geri yükleme dahil sınırlamalara sahiptir; HttpOnly çerezlerini geri yüklediğini varsaymayın. |
| `ogma_browser_auth_state_capture` / `ogma_browser_auth_state_apply` | Çerezleri ve web depolamasını, isteğe bağlı olarak yalıtılmış bir bağlama geri yüklemek için bellekte tutulan tarayıcı kimlik doğrulama durumları. Çerez sona erme metaverisi, sunucu tarafında kimlik doğrulama denetimi değildir. |
| `ogma_auth_journey_record` / `ogma_auth_journey_ensure` | Kimlik doğrulamayı denetleyen, kaydedilmiş oturumu geri yükleyen ve gerektiğinde yeniden oturum açan kalıcı, projeye özgü oturum açma dizileri. |

Kimlikleri ayırmak için `ogma_browser_context_create` kullanın; döndürdüğü bağlam ve sekme kimliklerini birlikte tutun. Kimliği doğrulanmış bir bağlamın klonu çerezleri kopyalar, tarayıcı depolamasının her türünü kopyalamaz. Kimlik doğrulama profili kimlikleri, kimlik doğrulama durumu kimlikleri ve oturum açma akışı kimlikleri farklı araç ailelerine aittir.

### Yeniden kullanılabilir oturum açma tanımlama {#define-a-reusable-login}

Önce Ogma'da kullanıcı adı/parola ortam değişkenlerini oluşturun ve kimliklerini alın. Parola referansı gizli bir değişkeni göstermelidir. Bir akışı kaydetmek, adımlarını tanımlar; rastgele kullanıcı tıklamalarını otomatik olarak kaydetmez.

```json
{
  "name": "ogma_auth_journey_record",
  "arguments": {
    "name": "Test user",
    "login_url": "https://example.com/login",
    "username_env_var_id": "username-variable-id",
    "password_env_var_id": "password-variable-id",
    "verification": {
      "url_contains": "/dashboard",
      "url_not_contains": "/login",
      "cookie_names": ["session"]
    }
  }
}
```

`steps` belirtilmezse standart bir gezinme/kullanıcı adı/parola/gönderme dizisi oluşturulur. Özel adımlar gezinmeyi, kullanıcı adı/parola doldurmayı, tıklamayı, beklemeyi ve elle yürütülen MFA kontrol noktalarını destekler; tam yapıları için aracın şemasını inceleyin. Doğrulama URL koşullarını, DOM seçicilerini, çerez adlarını ve isteğe bağlı bir doğrulama isteğini destekler. **Yapılandırılan tüm kontroller başarılı olmalıdır.**

Kimlik doğrulama gerektiren çalışmadan önce veya oturumun sona erdiğinden şüphelendiğinizde, döndürülen `journey_id` ile `ogma_auth_journey_ensure` çağırın. Araç mevcut oturumu doğrular, kaydedilmiş durumu dener ve ancak bundan sonra yeniden oturum açar. Bu, sürekli çalışan otomatik yenileme hizmeti değil, açıkça çağrılan bir kurtarma işlemidir.

### Elle MFA veya diğer kontrol noktaları {#manual-mfa-or-other-checkpoints}

Genel bir elle devralma için `ogma_browser_human_takeover_start` kullanın, operatörden adımı tamamlamasını isteyin ve `ogma_browser_human_takeover_status` ile kontrol edin. Devralma etkinken ajanın tarayıcı işlemleri engellenir. Döndürülen `takeover_id` ile tamamlayın; devam etmeden önce yeni bir anlık görüntü alın.

Bir **oturum açma akışı** MFA aşamasında durakladığında, operatör tamamladıktan sonra o akışın `journey_id` ve `takeover_id` değerleriyle `ogma_auth_journey_resume` kullanın. Bu, akışı sürdürür ve kimlik doğrulamayı denetler. MFA'yı atlatmayın veya operatörü beklerken kimlik bilgilerini tekrar tekrar göndermeyin.

## Yeniden üretilebilir kanıt toplama {#capture-reproducible-evidence}

İlgili etkileşimden önce `ogma_browser_trace_start` başlatın ve `trace_id` değerini saklayın. `ogma_browser_trace_note` ile not ekleyin, `ogma_browser_trace_stop` ile durdurun ve ardından `ogma_browser_trace_export` ile dışa aktarın. Dışa aktarma, etkin projede bir JSON artefaktı oluşturur. İzler hafif olay günlükleridir; video kayıtları veya tam DevTools performans izleri değildir.

Öncesi/sonrası arayüz karşılaştırmaları için bir anlık görüntü alın ve `ogma_browser_snapshot_save` ile arşivleyin. İşlemden sonra tekrarlayın ve `ogma_browser_page_state_compare` ile karşılaştırın. Yalnızca 20 arşivlenmiş anlık görüntü tutulur. Arayüz eşdeğerliği veya durum kodu farkı, yetkilendirme açığının kanıtı değil, destekleyici kanıttır.

Sonuç `browser_action_id` içeriyorsa `ogma_browser_action_correlation` kullanın. İlişkilendirme, olayları bir işlemin zaman aralığıyla eşleştirir; arka plan istekleri bu aralıkla örtüşebilir. Sonuç çıkarmadan önce tam istek/yanıt kanıtlarını koruyun. Yerleşimin önemli olduğu durumlarda ekran görüntüleri, anlamsal ve HTTP kanıtlarını tamamlar.

## Hatalardan kurtarma {#recover-from-errors}

| Hata veya belirti | Sonraki adım |
| --- | --- |
| `stale_snapshot` | Tam bir anlık görüntü alın ve yeni bir referans seçin. Eski referansı yeniden denemeyin. |
| Öğe gizli/devre dışı veya `pointer_intercepted` | Yeni bir anlık görüntü/ekran görüntüsü inceleyin, uygun olduğunda üst katmanları kapatın veya beklenen durumu bekleyin. Varsayılan çözüm olarak zorla tıklamayın. |
| Seçici bulunamadı | Mevcut DOM'u/formu, sekmeyi ve çerçeveyi yeniden inceleyin. O bağlamda gerçekten bulunan bir seçici kullanın. |
| `ambiguous_match` veya `option_not_found` | Gerçek seçenek etiketlerini/değerlerini inceleyin ve seçimi daraltın. |
| `human_takeover_active` | Operatörü bekleyin ve doğru devralmayı tamamlayın/sürdürün; tarayıcı işlemleri göndermeye devam etmeyin. |
| İşlem takılmış görünüyor | Tekrarlanması aynı etkiyi garanti etmeyen bir işlemi yinelemeden önce iletişim kutusu durumunu, konsol/ağ farklarını ve mevcut sayfayı kontrol edin. |
| Tarayıcı çöktü veya köprü bağlantısı kesildi | Önce `ogma_browser_health`, ardından `ogma_browser_recover` çağırın. `relaunch_required` döndürürse `ogma_browser_launch` çağırın. |
| MCP bağlantısı yeniden başlatıldı | Yeniden bağlanın, durumu yeniden keşfedin ve eski onay belirteçlerini ve anlık görüntü referanslarını atın. Oturum çalışma notları kalıcı notlar değildir. |

Kurtarma, varsayılan olarak toplanmış kanıtları korur ancak eski anlık görüntüleri ve geçici etkileşim durumunu temizler. Sonrasında kimlik doğrulamayı ve sekme bağlamını yeniden kontrol edin. Bu araçlar tarayıcı kapsamını genişletir; her web sitesinin, oturum açma akışının veya güvenlik testinin insan müdahalesi olmadan tamamlanacağını garanti etmez.
