MCP ile tarayıcı otomasyonu
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 ü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 kullanın.
Etkileşim döngüsü
- Mevcut sekmeleri
ogma_browser_get_tabsile inceleyin. Yerleşik tarayıcı kullanılamıyorsaogma_browser_launchile başlatın. Varsayılan proxy portu8080'dir; dinleyiciniz başka bir port kullanıyorsaproxy_portile belirtin. ogma_browser_navigateile gezinin; belirli bir sekmeyi hedeflerkentab_idiletin.- Etkileşimli öğeleri ve mevcut durumlarını bulmak için
ogma_browser_snapshotsonucunu okuyun. - Desteklenen bir öğe referansı veya gerçek sayfadan elde edilmiş bir seçiciyle tek bir işlem gerçekleştirin.
- 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
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
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
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
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
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
| 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
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
Ö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ı
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
İ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
| 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.