Debugg AI

resmi

Kod üretme aracılarınızın, Debugg AI test platformu aracılığıyla uzak tarayıcılardaki yeni kod değişikliklerine karşı sıfır yapılandırmalı uçtan uca testler oluşturmasını ve çalıştırmasını sağlayın.

Debugg AI MCP ile neler yapabilirsiniz?

  • Herhangi bir URL'ye karşı bir AI tarayıcı aracısı çalıştırın — ne test edileceğini doğal dilde tanımlayın ve check_app_in_browser gezinir, etkileşime girer ve ekran görüntüleriyle birlikte geçti/kaldı sonucunu döndürür.
  • LLM maliyeti olmadan birden fazla sayfayı inceleyin — tek bir toplu işlemde hızlı ekran görüntüleri, konsol hataları ve ağ özetleri için probe_page'e en fazla 20 URL gönderin.
  • Bir bilgi grafiği taraması tetikleyin — uygulamanızı keşfetmesi ve projenin bilgi grafiğini doldurması için bir AI aracısına trigger_crawl kullanın.
  • Test paketlerini ve durumlarını yönetintest_suite aracılığıyla test paketleri oluşturun, listeleyin, çalıştırın ve sonuçlarını kontrol edin; ayrıca test_case ile bireysel durumları tanımlayın.
  • Yürütme yapıtlarını inceleyin — hataları ayıklamak için executions aracılığıyla tam yürütme ayrıntılarını, ekran görüntülerini, HAR izlerini ve konsol günlüklerini alın.
  • Projeleri, ortamları ve yürütmeleri kaynak olarak tarayın — araçları çağırmadan bağlam için varlıklara doğrudan debugg-ai:// URI'leri aracılığıyla başvurun.

Dokümantasyon

Debugg AI — MCP Sunucusu

Model Context Protocol üzerinden yapay zeka destekli tarayıcı testi. Herhangi bir URL'ye (veya localhost'a) yönlendirin ve neyi test edeceğinizi tanımlayın — bir yapay zeka ajanı uygulamanızda gezinir ve ekran görüntüleriyle birlikte başarılı/başarısız sonucunu döndürür.

Debugg AI MCP server

Kurulum

Node.js 20.20.0 veya üstü gerektirir (posthog-node@^5.26.0 kaynaklı geçişli gereksinim).

debugg.ai adresinden bir API anahtarı alın, ardından MCP istemci yapılandırmanıza ekleyin:

{
  "mcpServers": {
    "debugg-ai": {
      "command": "npx",
      "args": ["-y", "@debugg-ai/debugg-ai-mcp"],
      "env": {
        "DEBUGGAI_API_KEY": "your_api_key_here"
      }
    }
  }
}

Veya Docker ile:

docker run -i --rm --init -e DEBUGGAI_API_KEY=your_api_key quinnosha/debugg-ai-mcp

Araçlar

Sunucu 8 araç sunar: üç Tarayıcı aracı ve yönetilen her varlık için bir eylem tabanlı araç. Başlıca araçlar check_app_in_browser (tam yapay zeka ajanı) ve probe_page (hafif, LLM içermeyen sayfa sondası). Geri kalanlar — project, environment, test_suite, test_case, executions — her biri işlemi seçen bir action ayırtıcı (örn. {"action":"list"}) alır. Yıkıcı delete eylemleri onay gerektirir (destekleniyorsa bir uyarı istemi, aksi takdirde confirm: true).

Tarayıcı

check_app_in_browser

Uygulamanıza karşı bir yapay zeka tarayıcı ajanı çalıştırır. Ajan gezinir, etkileşime girer ve ekran görüntüleriyle rapor verir. Localhost URL'leri ngrok aracılığıyla otomatik olarak tünellenir.

ParametreTürAçıklama
descriptionstring gerekliNe test edilecek (doğal dil)
urlstring gerekliHedef URL — http://localhost:3000 otomatik tünellenir
environmentIdstringBelirli bir ortamın UUID'si
credentialIdstringBelirli bir kimlik bilgisinin UUID'si
credentialRolestringRole göre bir kimlik bilgisi seç (örn. admin, guest)
usernamestringGiriş için kullanıcı adı (geçici — kalıcı değil)
passwordstringGiriş için parola (geçici — kalıcı değil)
repoNamestringOtomatik algılanan git repo adını geçersiz kıl (örn. my-org/my-repo)

Çağrı başına bir odaklanmış kontrol. Ajanın ~25 adımlık dahili bütçesi vardır; daha geniş suitleri birden çok çağrıya bölün.

Her başarılı çalıştırma, ekran görüntüsüyle birlikte bir browserSession bloğu döndürür — yakalanan HAR (tam ağ izi) ve konsol günlüğü (her JS konsol mesajı) için önceden imzalanmış S3 URL'leri. Bunları, tür denetimlerini ve birim testlerini geçen yeniden getirme döngüleri, hidrasyon hataları ve diğer çalışma zamanı sorunlarını tespit etmek için kullanın:

"browserSession": {
  "harUrl": "https://...session_18139.har?X-Amz-...",
  "consoleLogUrl": "https://...session_18139_console.json?X-Amz-...",
  "recordingUrl": "https://...session_18139_recording.webm?X-Amz-...",
  "harStatus": "downloaded",
  "consoleLogStatus": "downloaded",
  "harRedactionStatus": "redacted",
  "consoleLogRedactionStatus": "redacted"
}

URL'ler kısa ömürlü önceden imzalanmış S3'tür — yenilemek için executions {action:"get", uuid} aracılığıyla üst yürütmeyi yeniden getirin. harStatus / consoleLogStatus, 'downloaded' (URL getirilebilir), 'not_available' (sayfa hiçbir şey yaymadı), 'failed' (yakalama bozuldu) durumlarını ayırt eder. Yeni bir çalıştırmada URL'ler genellikle null olur çünkü yakalama, ajan tamamlandıktan sonra eşzamansız olarak yüklenir — durum 'downloaded' değerine ulaşana kadar executions {action:"get", uuid: executionId}'i yoklayın. Yetkilendirme / Çerez / token/secret/api_key başlıkları, yapıtlar kalıcı hale getirilmeden önce sunucu tarafında temizlenir.

trigger_crawl

Projenin bilgi grafiğini doldurmak için sunucu tarafı bir tarayıcı-ajan taraması başlatır. Localhost URL'leri otomatik olarak tünellenir. Başarılı alımda knowledgeGraph.imported === true ile birlikte {executionId, status, targetUrl, durationMs, outcome?, crawlSummary?, knowledgeGraph?, browserSession?} döndürür. browserSession bloğu (yukarıdakiyle aynı şekle sahip HAR + konsol günlüğü URL'leri) tamamlanan taramalarda da bulunur.

probe_page

Hafif, LLM içermeyen toplu sayfa sondası. 1-20 URL iletin; her biri gezinir, yüklenmeyi bekler ve işlenmiş durumu döndürür — ekran görüntüsü + sayfa meta verileri + yapılandırılmış konsol hataları + ağ özeti. Ajan döngüsü yok, LLM maliyeti yok, senaryo doğrulamaları yok. "/settings'i bozdum mu?", yeniden düzenleme sonrası çoklu rota duman testi, CI PR başına taramalar ve check_app_in_browser'in 60-150 saniyelik ajan döngüsünün aşırı olduğu hızlı çalışıyor mu kontrolleri için kullanın.

ParametreTürAçıklama
targetsarray gerekli1-20 giriş: [{url, waitForSelector?, waitForLoadState?, timeoutMs?}]
targets[].urlstring gerekliGenel URL veya localhost (otomatik tünellenir)
targets[].waitForLoadStateenum'load' (varsayılan) / 'domcontentloaded' / 'networkidle'
targets[].waitForSelectorstringGezinmeden sonra beklemek için isteğe bağlı CSS seçici
targets[].timeoutMsnumberURL başına zaman aşımı, 1000-30000 (varsayılan 10000)
includeHtmlbooleanHer sonuçta ham HTML döndür (varsayılan false)
captureScreenshotsbooleanHedef başına bir PNG döndür (varsayılan true)

Tüm toplu iş, tek bir arka uç yürütmesi + tarayıcı oturumu + tünel paylaşır — tek bir çağrıda 5 URL, 5 paralel tek URL çağrısından önemli ölçüde daha hızlıdır. URL başına error alanı toplu iş dayanıklılığını korur: tek bir başarısız hedef diğerlerini etkilemez.

networkSummary toplama anahtarı origin + pathname'dir — yeniden getirme döngüleri (?n=0..4 aynı uç noktaya tekrar tekrar isabet eder) sayıyla birlikte tek bir girişe daraltılır, böylece /api/poll'ün count: 47 ile görünmesi, kullanıcıların başlangıçta istediği eyleme dönüştürülebilir "sonsuz yeniden getirme döngüsü" sinyalidir.

Performans bütçesi: 1 URL için <10s, 20 URL için <25s. Localhost ölü bağlantı noktası, bir iş akışı yürütmesi harcamadan <2s içinde LocalServerUnreachable döndürür.

project

EylemParametrelerSonuç
get{uuid}Düzenlenmiş proje detayı
list{q?, page?, pageSize?}Sayfalandırılmış özetler
create{name, platform, (teamUuid|teamName), (repoUuid|repoName)}Oluşturulan proje

Takım ve repo, uuid veya isim (büyük/küçük harfe duyarlı tam eşleşme; hiçbiri yoksa NotFound, birden fazla varsa AmbiguousMatch) ile çözümlenir. update/delete yoktur — DebuggAI web uygulamasından bir projeyi yeniden adlandırın veya silin.

environment

EylemParametrelerSonuç
get{uuid, projectUuid?}Kimlik bilgileri satır içi olan ortam (parolalar asla döndürülmez)
list{projectUuid?, q?, page?, pageSize?}Sayfalandırılmış ortamlar, her biri bir kimlik bilgisi dizisiyle
create{name, url, description?, projectUuid?, credentials?}Oluşturulan ortam (isteğe bağlı olarak kimlik bilgilerini tohumlar)
update{uuid, name?, url?, description?, addCredentials?, updateCredentials?, removeCredentialIds?}Yamalanmış ortam; kimlik bilgisi işlemleri kaldır → güncelle → ekle sırasıyla çalışır
delete{uuid, projectUuid?, confirm?}Ortamı siler (kimlik bilgilerini basamaklandırır) — onay gerektirir

projectUuid atlandığında git reposundan otomatik olarak çözümlenir. Kimlik bilgisi başına hatalar, ortam işlemini engellemeden credentialWarnings[] içinde yüzeye çıkar.

test_suite

EylemParametrelerSonuç
list{projectUuid|projectName, search?, page?, pageSize?}Durum + başarı oranıyla sayfalandırılmış suitler
create{name, description, projectUuid|projectName}Oluşturulan suit
run{suiteUuid|(suiteName+project), targetUrl?}Tüm testleri eşzamansız olarak tetikler
results{suiteUuid|(suiteName+project)}Suit + test başına sonuçlar
delete{suiteUuid|(suiteName+project), confirm?}Geçici silme — onay gerektirir

test_case

EylemParametrelerSonuç
create{name, description, agentTaskDescription, suiteUuid|(suiteName+project), relativeUrl?, maxSteps?}Oluşturulan test senaryosu (otomatik çalıştırılmaz)
update{testUuid, name?, description?, agentTaskDescription?}Yamalanmış test senaryosu
delete{testUuid, confirm?}Geçici silme — onay gerektirir

executions

EylemParametrelerSonuç
get{uuid}Tam detay (nodeExecutions + durum + hataBilgisi) + ekran görüntüsü/gif yapıtları
list{status?, projectUuid?, page?, pageSize?}Sayfalandırılmış özetler

Arka uçtan gelen 404, {error: 'NotFound', message, uuid} ile birlikte isError: true olarak yüzeye çıkar. Kimlik bilgileri her zaman parolalar olmadan döndürülür.

Sayfalandırma

Her filtre modu yanıtı sayfalandırılmıştır. Yanıt şekli:

{
  "filter": { "...echoed query params..." },
  "pageInfo": { "page": 1, "pageSize": 20, "totalCount": 47, "totalPages": 3, "hasMore": true },
  "<items>": [ ... ]
}

İsteğe bağlı page (1 indeksli, varsayılan 1) ve pageSize (varsayılan 20, maksimum 200; aşırı büyük değerler sınırlandırılır) iletin. Hiçbir yanıt asla sessizce kesilmez.

Kaynaklar

Araçların yanı sıra, sunucu salt okunur varlıkları MCP kaynakları olarak sunar, böylece istemciler bunlara göz atabilir ve bağlam olarak @-bahsedebilir:

URINe
debugg-ai://projectsTüm projeler (ilk sayfa)
debugg-ai://environmentsOtomatik algılanan proje için ortamlar
debugg-ai://executionsSon yürütmeler (ilk sayfa)
debugg-ai://project/{uuid}Bir proje, tam detay
debugg-ai://environment/{uuid}Bir ortam (kimlik bilgileri satır içi, parolalar sansürlü)
debugg-ai://execution/{uuid}Bir yürütme, tam düğüm detayı + yapıt bağlantıları

Okumalar, project / environment / executions araçlarıyla aynı işleyicilere gönderilir, bu nedenle veri ve yetkilendirme aynıdır. Kaynaklar eklemelidir — kaynak desteği olmayan istemciler araçları kullanmaya devam eder.

Güvenlik değişmezleri

  • Parolalar yalnızca yazılabilir. Hiçbir araçtan gelen yanıt gövdesinde asla görünmezler.
  • Tünel URL'leri (*.ngrok.debugg.ai), ajan tarafından yazılan metin de dahil olmak üzere tüm tarayıcı-ajan yanıtlarından çıkarılır.
  • Arka uçtan gelen 404'ler, {error: 'NotFound', ...} ile birlikte isError: true olarak yüzeye çıkar, asla fırlatılan istisnalar olarak değil.
  • Eksik DEBUGGAI_API_KEY, ilk çağrıda yapılandırılmış bir araç hatası olarak yüzeye çıkar — sunucu yine de araçları normal şekilde kaydeder ve listeler.

v3.0.0'a Geçiş (eylem tabanlı araçlar)

v3, fiil başına 20 aracı 8 eylem tabanlı araçta birleştirdi. Eski araç → yeni tool {action}:

KaldırılanYerine Geçen
search_projectsproject {action:"get"} / project {action:"list"}
create_projectproject {action:"create"}
update_project, delete_projectKaldırıldı — DebuggAI web uygulamasını kullanın
search_environmentsenvironment {action:"get"} / {action:"list"}
create_environment / update_environment / delete_environmentenvironment {action:"create"|"update"|"delete"}
create_test_suite / search_test_suites / run_test_suite / get_test_suite_results / delete_test_suitetest_suite {action:"create"|"list"|"run"|"results"|"delete"}
create_test_case / update_test_case / delete_test_casetest_case {action:"create"|"update"|"delete"}
search_executionsexecutions {action:"get"|"list"}
trigger_crawl headless paramıKaldırıldı — her zaman başsız

delete eylemleri artık onay gerektirir (uyarı istemi veya confirm: true). İstemciler, MCP yeniden başlatıldığında yeni yüzeyi alır.

v1.x'ten Geçiş (v2.0.0'da kırıcı değişiklik)

v2, 22 araçlık bir yüzeyi 11'e indirdi. Eski araç → yeni araç eşlemesi:

KaldırılanYerine Geçen
list_projects, get_projectsearch_projects (uuid modu vs filtre modu)
list_environments, get_environmentsearch_environments
list_credentials, get_credentialsearch_environments — her ortamda satır içi kimlik bilgileri
create_credentialcreate_environment({credentials: [...]}) tohumu veya update_environment({addCredentials: [...]})
update_credentialupdate_environment({updateCredentials: [{uuid, ...patch}]})
delete_credentialupdate_environment({removeCredentialIds: [uuid]})
list_teams, list_reposcreate_project({teamName, repoName}) — belirsizlik işleme ile isim çözümleme
list_executions, get_executionsearch_executions
cancel_executionKaldırıldı — arka uç kapanması otomatiktir

Yanıt şekli değişiklikleri: liste yanıtlarındaki yalın count alanı kaldırıldı — pageInfo.totalCount kullanın.

Yapılandırma

Ortam değişkeniGerekliAmaç
DEBUGGAI_API_KEYevetArka uç API anahtarı. Takma adlar: DEBUGGAI_API_TOKEN, DEBUGGAI_JWT_TOKEN.
DEBUGGAI_API_URLhayırArka uç temel URL'si. Varsayılan: https://api.debugg.ai.
DEBUGGAI_TOKEN_TYPEhayırtoken (varsayılan) veya bearer.
LOG_LEVELhayırerror / warn / info (varsayılan) / debug.
POSTHOG_API_KEYhayırGömülü telemetri proje anahtarını geçersiz kıl (örn. özel çatal).
DEBUGGAI_TELEMETRY_DISABLEDhayırTelemetriyi tamamen devre dışı bırakmak için 1 / true / yes / on olarak ayarlayın.
DEBUGGAI_API_KEY=your_api_key

Uzak / HTTP aktarımı (isteğe bağlı)

Varsayılan olarak sunucu stdio (yerel npx) konuşur. Bunun yerine, durumsuz Streamable HTTP + OAuth üzerinden barındırılan, çok kullanıcılı bir uzak MCP olarak çalışabilir:

DEBUGGAI_MCP_TRANSPORT=http PORT=3000 DEBUGGAI_TOKEN_TYPE=bearer npx -y @debugg-ai/debugg-ai-mcp@latest

Bu bir OAuth Kaynak Sunucusudur: her POST /mcp, Authorization: Bearer <token> gerektirir; eksik/geçersiz token'lar, RFC 9728 meta verisine işaret eden bir WWW-Authenticate ile birlikte 401 alır ve istemciler, tanıtılan yetkilendirme sunucusuna karşı OAuth akışını çalıştırır. Taşıyıcı, istek kapsamındadır — api.debugg.ai bunu doğrular.

Uç NoktaAmaç
POST /mcpMCP Akışkan HTTP (taşıyıcı korumalı)
GET /.well-known/oauth-protected-resourceRFC 9728 meta verisi (yetkilendirme sunucusu keşfi)
GET /healthYük dengeleyici / ECS sağlık kontrolü
Ortam değişkeniVarsayılanAmaç
DEBUGGAI_MCP_TRANSPORTstdioUzak aktarım için http olarak ayarlayın
PORT3000HTTP dinleme portu
DEBUGGAI_MCP_PUBLIC_URLhttps://mcp.debugg.aiBu sunucunun genel kaynak URL'si (RFC 9728 resource)
DEBUGGAI_OAUTH_ISSUERhttps://auth.debugg.aiİstemcilere tanıtılan yetkilendirme sunucusu
DEBUGGAI_TOKEN_TYPEtokenOAuth token'larının Authorization: Bearer olarak iletilmesi için bearer olarak ayarlayın

stdio kurulumlarında bunların hiçbirine gerek yoktur.

Telemetri

MCP sunucusu, varsayılan olarak etkin telemetri ile gelir — gömülü, salt yazılır bir PostHog proje anahtarı (phc_*) sayesinde ekip, önbellek isabet oranlarını, yoklama sıklığını, tünel güvenilirliğini ve kurulum tabanındaki diğer operasyonel metrikleri gözlemleyebilir. Yakalanan olaylar:

OlayNe zaman
tool.executed / tool.failedAraç çağrısı başına
workflow.executedTarayıcı ajanı yürütmesi başına (pollCount, durationMs, finalIntervalMs taşır)
tunnel.provisioned / tunnel.provision_retry / tunnel.stoppedTünel yaşam döngüsü olayı başına
template.lookup / project.lookupSoğuk çağrıda durationMs ile önbellek isabet/ıska

Gizlilik duruşu:

  • Ayırt edici kimlik SHA-256(api_key).slice(0, 16) şeklindedir — asla ham anahtar değil, PII içermez.
  • phc_* anahtarları PostHog kuralı gereği salt yazılırdır; kaynağa gömmek güvenlidir.
  • Tamamen devre dışı bırakmak için DEBUGGAI_TELEMETRY_DISABLED=1 ayarlayın (işlemsiz bir sağlayıcıya çözümlenir; süreçten hiçbir olay çıkmaz).

Aktif mod başlangıçta günlüğe kaydedilir:

Telemetry enabled (PostHog, DebuggAI default project). Set DEBUGGAI_TELEMETRY_DISABLED=1 to opt out.
Telemetry enabled (PostHog, custom POSTHOG_API_KEY)
Telemetry disabled (DEBUGGAI_TELEMETRY_DISABLED is set)

Yerel Geliştirme

npm install
npm run build
npm run test:e2e        # real end-to-end evals against the backend

Değerlendirme paketi, derlenmiş MCP sunucusunu bir alt süreç olarak başlatır, her aracı gerçek bir arka uca karşı çalıştırır ve akış başına yapıtları scripts/evals/artifacts/<timestamp>/ dizinine yazar. Bireysel senaryolar için scripts/evals/flows/ dosyasına bakın.

MCP kaydı: debugg-ai-local ve debugg-ai

Bu repo, proje kapsamlı debugg-ai-local adlı bir sunucuyu node dist/index.js adresine — yeni derlenmiş yerel koda — işaret edecek şekilde kaydeden bir .mcp.json dosyasıyla gelir. Yalnızca Claude Code'un çalışma dizini bu repo olduğunda etkinleşir.

Diğer projeleriniz, yayımlanmış npm paketinden çeken kullanıcı kapsamlı debugg-ai kaydını kullanmalıdır:

npm run mcp:global      # registers debugg-ai in ~/.claude.json to npx -y @debugg-ai/debugg-ai-mcp

Burada kod düzenledikten sonra, debugg-ai-local aracının bir sonraki çağrılışında değişikliklerinizi alması için npm run mcp:local komutunu çalıştırın (yalnızca yeniden derler).

Bağlantılar

Panel · Dokümanlar · Sorunlar · Discord


Apache-2.0 Lisansı © 2025 DebuggAI