@mmerterden/multi-agent-toolkit-mcp 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/CHANGELOG.md +871 -0
  2. package/LICENSE +21 -0
  3. package/README.md +358 -0
  4. package/README.tr.md +358 -0
  5. package/index.js +1725 -0
  6. package/package.json +89 -0
  7. package/tools/crash-logs/index.js +29 -0
  8. package/tools/design-check/content-cardinality.js +204 -0
  9. package/tools/design-check/geometry.js +140 -0
  10. package/tools/design-check/index.js +219 -0
  11. package/tools/design-check/mock-detect.js +213 -0
  12. package/tools/design-check/report.js +596 -0
  13. package/tools/design-check/scan.js +91 -0
  14. package/tools/design-check/scenario-inventory.js +598 -0
  15. package/tools/design-check/visual-compare.js +961 -0
  16. package/tools/ios-app-store-audit/context.js +181 -0
  17. package/tools/ios-app-store-audit/data/apple-required-sdks.json +32 -0
  18. package/tools/ios-app-store-audit/data/debug-tools-blocklist.json +133 -0
  19. package/tools/ios-app-store-audit/index.js +164 -0
  20. package/tools/ios-app-store-audit/models.js +57 -0
  21. package/tools/ios-app-store-audit/rules/asset-validation.js +72 -0
  22. package/tools/ios-app-store-audit/rules/binary-size.js +70 -0
  23. package/tools/ios-app-store-audit/rules/code-signing.js +95 -0
  24. package/tools/ios-app-store-audit/rules/dead-reference.js +131 -0
  25. package/tools/ios-app-store-audit/rules/debug-tool-leak.js +185 -0
  26. package/tools/ios-app-store-audit/rules/duplicate-resource.js +130 -0
  27. package/tools/ios-app-store-audit/rules/embedded-sdk.js +126 -0
  28. package/tools/ios-app-store-audit/rules/entitlement.js +105 -0
  29. package/tools/ios-app-store-audit/rules/extension-signing.js +105 -0
  30. package/tools/ios-app-store-audit/rules/info-plist.js +158 -0
  31. package/tools/ios-app-store-audit/rules/ipv6-compliance.js +101 -0
  32. package/tools/ios-app-store-audit/rules/privacy-manifest.js +121 -0
  33. package/tools/ios-app-store-audit/rules/production-hygiene.js +237 -0
  34. package/tools/ios-app-store-audit/rules/provisioning-profile.js +127 -0
  35. package/tools/ios-app-store-audit/rules/required-reason-api.js +123 -0
  36. package/tools/ios-app-store-audit/rules/sdk-floor.js +104 -0
  37. package/tools/ios-app-store-audit/rules/swift-abi.js +64 -0
  38. package/tools/ios-app-store-audit/rules/team-id.js +62 -0
  39. package/tools/ios-testflight/index.js +489 -0
  40. package/tools/ui-inspect/index.js +57 -0
  41. package/ui-tree-dumper.swift +122 -0
package/README.tr.md ADDED
@@ -0,0 +1,358 @@
1
+ # @mmerterden/multi-agent-toolkit-mcp
2
+
3
+ [![npm version](https://img.shields.io/npm/v/@mmerterden/multi-agent-toolkit-mcp)](https://www.npmjs.com/package/@mmerterden/multi-agent-toolkit-mcp)
4
+ [![npm downloads](https://img.shields.io/npm/dw/@mmerterden/multi-agent-toolkit-mcp)](https://www.npmjs.com/package/@mmerterden/multi-agent-toolkit-mcp)
5
+ [![GitHub stars](https://img.shields.io/github/stars/mmerterden/multi-agent-toolkit-mcp)](https://github.com/mmerterden/multi-agent-toolkit-mcp)
6
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
7
+
8
+ 🇬🇧 English: [README.md](./README.md)
9
+
10
+ iOS Simulator, Android Emulator ve headless web kontrolü için **83 araç**. AI kodlama asistanının mobil uygulamalarını görmesini, onlarla etkileşime girmesini ve denetlemesini sağlayan bir MCP sunucusu - ayrıca tarayıcıları sürer, 18-kurallık bir App Store uyumluluk denetimi çalıştırır ve çok-adımlı batch akışlarını orkestre eder.
11
+
12
+ **Public npm registry** üzerinden dağıtılır - `npx @mmerterden/multi-agent-toolkit-mcp`, auth'suz, token'sız, `~/.npmrc` ayarı gerekmeden çözülür.
13
+
14
+ **Claude Code, Copilot CLI ve Codex CLI üzerinde doğrulanmıştır** - release kapılarının fiilen çalıştırdığı üç host. Standart bir stdio MCP sunucusu olduğu için Cursor, Antigravity, VS Code Copilot Chat, Claude Desktop ve diğer herhangi bir MCP client'ında da çalışır; bunlar için config parçacıkları aşağıda, ama burada hiçbir şey onları kontrol etmiyor.
15
+
16
+ Bu ayrımı net tutmakta fayda var. Bu satır bir zamanlar beş host'u "multi-agent-pipeline'ın tam-orkestrasyon hedefleri" olarak adlandırıyordu, bu da pipeline v10.7.0'da Cursor / Antigravity / Codex / Copilot Chat adaptörleri silindiğinde doğru olmaktan çıktı. Codex CLI, pipeline v13.0.0'da yetenek üzerinden birinci-sınıf bir hedef olarak geri döndü - artık skill'leri, paralel sub-agent'ları, hook'ları ve MCP'si var - ve doğrulanmış listede sadece bir kapı onu çalıştırdığı için yer alıyor, başka bir yerde desteklendiği için değil. Kimsenin çalıştırmadığı host'ları iddia etmek de bedavaya gelmiyor: 2.20.0 ve 2.21.0, ilk araçta yasa dışı bir `outputSchema` gönderdi, bu yüzden Claude Code tüm `tools/list`'i reddetti ve 78'in sıfırını sundu - birincil host'ta, iki release boyunca, bu repo'daki her kapı yeşilken.
17
+
18
+ **7 kategori:**
19
+ - **Device Control** (59 araç) - screenshot, tap, swipe, type, navigate, dark mode, locale, orientation, location, permissions, push notifications, gerçek start/stop ekran kaydı
20
+ - **Crash Diagnostics** (2 araç) - `ios_list_crashes` host'un DiagnosticReports dizinini okur, `android_list_crashes` adb crash buffer'ını döker, ikisi de tail-sınırlı
21
+ - **Accessibility Audit** (2 araç) - eksik label'ları, küçük tap target'larını, eksik identifier'ları otomatik tespit et (scope filtreleme desteklenir)
22
+ - **Store Compliance** (5 araç) - App Store / Play Store hazırlığı; **18-kurallık derin `ios_app_store_audit`**, Apple ITMS hata kodları + App Store Review Guidelines'a çapraz referans verir (privacy manifest, required-reason API, Info.plist, code signing, entitlements, gömülü SDK, IPv6, debug-tool sızıntısı, ...)
23
+ - **Web Automation** (8 araç) - Playwright-destekli: goto, click (CSS selector'lar), type, JS eval, selector bekleme, metin çıkarma, screenshot. Chromium / WebKit / Firefox motorları. **`playwright` peer dependency'si gerektirir.**
24
+ - **Design Audit** (6 araç) - mock-mode vs Figma uygunluğu: scenario envanteri, mock tespiti, mock launch, canlı UI geometrisi, piksel/geometri/tipografi karşılaştırması, ve coverage kapısıyla birlikte HTML/PDF rapor
25
+ - **Autonomous Agent DSL** (1 araç) - `agent_run_steps`, tek bir MCP round trip'inde {tool, args, continue_on_error?, wait_ms?} adımlarından oluşan bir batch dizisini çalıştırır. Scriptlenmiş login akışları, form doldurma, çok-adımlı QA yolları için ideal.
26
+
27
+ ## Hızlı Başlangıç
28
+
29
+ ### Seçenek A - Kaynaktan kur (önerilen, auth gerekmez)
30
+
31
+ En basit yol. `~/.npmrc`'yi henüz yapılandırmasan bile çalışır.
32
+
33
+ ```bash
34
+ git clone git@github.com:mmerterden/multi-agent-toolkit-mcp.git
35
+ cd multi-agent-toolkit-mcp
36
+ npm install
37
+
38
+ # Opsiyonel: web araçları Playwright gerektirir
39
+ npm i -g playwright && npx playwright install chromium
40
+
41
+ # 'multi-agent-toolkit-mcp' olarak global kullanılabilir yap
42
+ npm link
43
+ ```
44
+
45
+ Sonra klonun içinde `git pull && npm install` ile güncelle. İlgili tag'i checkout ederek belirli bir versiyona pinle (`git tag -l` ile listele).
46
+
47
+ ### Seçenek B - npx (kurulum gerekmez - public registry)
48
+
49
+ ```bash
50
+ npx @mmerterden/multi-agent-toolkit-mcp
51
+ ```
52
+
53
+ ### Kurulum (Seçenek A veya B'den sonra)
54
+
55
+ #### Claude Code / Claude Desktop
56
+
57
+ ```json
58
+ {
59
+ "mcpServers": {
60
+ "multi-agent-toolkit": {
61
+ "command": "npx",
62
+ "args": ["-y", "@mmerterden/multi-agent-toolkit-mcp"]
63
+ }
64
+ }
65
+ }
66
+ ```
67
+
68
+ #### Cursor
69
+
70
+ `.cursor/mcp.json`'a ekle:
71
+ ```json
72
+ {
73
+ "mcpServers": {
74
+ "multi-agent-toolkit": {
75
+ "command": "npx",
76
+ "args": ["-y", "@mmerterden/multi-agent-toolkit-mcp"]
77
+ }
78
+ }
79
+ }
80
+ ```
81
+
82
+ #### Antigravity
83
+
84
+ `.agent/mcp_config.json`'a (ya da global `~/.gemini/antigravity/mcp_config.json`'a) ekle:
85
+ ```json
86
+ {
87
+ "mcpServers": {
88
+ "multi-agent-toolkit": {
89
+ "command": "npx",
90
+ "args": ["-y", "@mmerterden/multi-agent-toolkit-mcp"]
91
+ }
92
+ }
93
+ }
94
+ ```
95
+
96
+ #### Copilot CLI
97
+
98
+ `~/.copilot/settings.json`'a ekle:
99
+ ```json
100
+ {
101
+ "mcpServers": {
102
+ "multi-agent-toolkit": {
103
+ "command": "npx",
104
+ "args": ["-y", "@mmerterden/multi-agent-toolkit-mcp"]
105
+ }
106
+ }
107
+ }
108
+ ```
109
+
110
+ #### Codex CLI
111
+
112
+ Kendi config'ini Codex'in yazmasına izin ver - `~/.codex/config.toml`'u o
113
+ sahiplenir (marketplace ve plugin durumu da orada yaşar), ve komut idempotent'tir:
114
+
115
+ ```bash
116
+ codex mcp add multi-agent-toolkit -- npx -y @mmerterden/multi-agent-toolkit-mcp
117
+ codex mcp list # doğrula
118
+ codex doctor --json # checks["mcp.config"] "ok" okumalı
119
+ ```
120
+
121
+ Referans olarak, bu şunu üretir:
122
+ ```toml
123
+ [mcp_servers.multi-agent-toolkit]
124
+ command = "npx"
125
+ args = ["-y", "@mmerterden/multi-agent-toolkit-mcp"]
126
+ ```
127
+
128
+ Multi-agent pipeline'ın `install --codex`'i `codex mcp add` adımını senin için çalıştırır.
129
+
130
+ ## Sorun Giderme
131
+
132
+ ### `npx @mmerterden/multi-agent-toolkit-mcp` 401/404 veriyor, ya da eski bir versiyonu çözüyor
133
+
134
+ Bu paket **public** npm registry'de - token gerekmez. Hâlâ başarısız oluyorsa,
135
+ en olası sebep bu paketin GitHub Packages'tan taşınmadan önceki bir kalıntı
136
+ scope override'ı: `~/.npmrc`'de `@mmerterden:registry=https://npm.pkg.github.com`
137
+ gibi bir satır olup olmadığına bak. O satır **her** `@mmerterden`-scope'lu
138
+ install/publish'i (bu paket dahil) GitHub Packages'a yönlendirir, ki o da
139
+ public görünümlü bir paket adı için bile auth'suz bir okumaya 401 döner. O
140
+ satırı kaldır (ya da gerçekten GitHub Packages'a ihtiyacı olan `@mmerterden`
141
+ paketine scope'la) ve tekrar dene.
142
+
143
+ #### VS Code Copilot Chat
144
+
145
+ `.vscode/mcp.json`'a ekle:
146
+ ```json
147
+ {
148
+ "servers": {
149
+ "multi-agent-toolkit": {
150
+ "command": "npx",
151
+ "args": ["-y", "@mmerterden/multi-agent-toolkit-mcp"]
152
+ }
153
+ }
154
+ }
155
+ ```
156
+
157
+ ### Gereksinimler
158
+
159
+ - **Node.js 18+**
160
+ - **iOS araçları**: macOS + Xcode (`xcrun simctl`'i sağlar)
161
+ - **Android araçları**: Android SDK Platform-Tools (`adb`'yi sağlar)
162
+ - **Web araçları** (opsiyonel): `playwright` - bir kere kur:
163
+ ```bash
164
+ npm i -g playwright && npx playwright install chromium
165
+ ```
166
+ (ya da `webkit` / `firefox` - motoru her `web_goto` çağrısında seç.)
167
+
168
+ > Xcode kurulu değilse, iOS araçları crash etmek yerine anlaşılır bir mesaj döner. Android ve Web araçları için de aynı - elindekini kullan.
169
+
170
+ ### Agent DSL Örneği
171
+
172
+ Tek bir MCP çağrısında scriptlenmiş bir login akışı çalıştır:
173
+
174
+ ```json
175
+ {
176
+ "tool": "agent_run_steps",
177
+ "args": {
178
+ "steps": [
179
+ { "tool": "web_goto", "args": { "url": "https://example.com/login" } },
180
+ { "tool": "web_type", "args": { "selector": "#email", "text": "user@example.com" } },
181
+ { "tool": "web_type", "args": { "selector": "#password", "text": "s3cret" } },
182
+ { "tool": "web_click", "args": { "selector": "button[type=submit]" }, "wait_ms": 1000 },
183
+ { "tool": "web_wait_for", "args": { "selector": ".dashboard" } },
184
+ { "tool": "web_screenshot", "args": { "full_page": true } }
185
+ ]
186
+ }
187
+ }
188
+ ```
189
+
190
+ Agent'ın hata durumunda kendini düzeltebilmesi için adım-başına durum döner.
191
+
192
+ ### iOS Araçları (38)
193
+
194
+ | Araç | Açıklama |
195
+ |------|-------------|
196
+ | `ios_list_devices` | Mevcut tüm simulator'ları listele |
197
+ | `ios_boot_device` | Bir simulator'ı boot et |
198
+ | `ios_screenshot` | Screenshot yakala (base64 PNG) |
199
+ | `ios_tap` | Koordinatlara tap yap |
200
+ | `ios_swipe` | Swipe hareketi |
201
+ | `ios_type_text` | Odaklanmış alana metin yaz |
202
+ | `ios_launch_app` | Bundle ID ile uygulama başlat |
203
+ | `ios_terminate_app` | Uygulamayı sonlandır |
204
+ | `ios_list_apps` | Kurulu uygulamaları listele |
205
+ | `ios_go_home` | Home tuşuna bas |
206
+ | `ios_set_appearance` | Açık/koyu modu ayarla |
207
+ | `ios_set_content_size` | Dynamic Type boyutunu ayarla |
208
+ | `ios_set_locale` | Uygulama dilini değiştir |
209
+ | `ios_open_url` | URL veya deep link aç |
210
+ | `ios_status_bar` | Status bar'ı override et - preset'leri destekler (App Store screenshot'ları için `clean` 9:41/%100, `testing`, `low-battery`, `airplane`) artı manuel zaman/pil |
211
+ | `ios_push_notification` | Simüle edilmiş push gönder |
212
+ | `ios_grant_permission` | Gizlilik izni ver |
213
+ | `ios_revoke_permission` | İzni geri al |
214
+ | `ios_reset_permissions` | Tüm izinleri sıfırla |
215
+ | `ios_set_location` | Simüle edilmiş GPS ayarla |
216
+ | `ios_clear_location` | Konumu temizle |
217
+ | `ios_set_increase_contrast` | Increase Contrast'ı aç/kapat |
218
+ | `ios_record_video` | Ekran kaydı - action:"start" arka planda kaydeder, action:"stop" video dosyasını döner |
219
+ | `ios_add_media` | Fotoğraf kütüphanesine ekle |
220
+ | `ios_keychain_reset` | Keychain'i sıfırla |
221
+ | `ios_get_app_container` | Uygulama dosya yolunu al |
222
+ | `ios_erase_device` | Simulator'ı fabrika ayarlarına döndür |
223
+ | `ios_get_ui_tree` | Accessibility UI ağacı |
224
+ | `ios_accessibility_audit` | Otomatik denetim: eksik label'lar, küçük tap target'ları, eksik identifier'lar |
225
+ | `ios_biometric` | Face ID / Touch ID'yi simüle et (eşleşme veya başarısızlık) |
226
+ | `ios_archive_audit` | .xcarchive'ı App Store uyumluluğu için denetle (daha hafif, deprecated - `ios_app_store_audit`'i kullan) |
227
+ | `ios_app_store_audit` | .xcarchive üzerinde derin 18-kurallık App Store uyumluluk denetimi - privacy manifest, required-reason API, Info.plist, code signing, entitlements, gömülü SDK, IPv6, debug-tool sızıntısı, binary boyutu, ölü referanslar, duplicate kaynaklar, team ID, provisioning profile, Swift ABI, extension signing, asset doğrulama, production hijyeni, SDK tabanı (ITMS-90725) kapsar. Apple ITMS hata kodları + App Store Review Guidelines'a çapraz referans verir |
228
+ | `ios_export_ipa` | `xcodebuild -exportArchive` üzerinden bir .xcarchive'ı imzalı bir .ipa'ya export et. exportOptions.plist'i argümanlardan üretir (method varsayılan olarak `app-store-connect`). 0 ile çıkıp .ipa üretmeyen bir çalıştırma başarısızlık olarak raporlanır |
229
+ | `ios_testflight_validate` | Apple'ın kendi pre-submission doğrulaması, `xcrun altool --validate-app` üzerinden, dönen ITMS kodları ima ettikleri App Store kuralına eşlenmiş halde. Statik analizin yapısal olarak yakalayamayacağını yakalar: kayıtsız bundle ID, profile/app-record uyuşmazlığı, zaten kullanılmış bir version+build, App ID için provision edilmemiş entitlement'lar. 3-katmanlı auth (ASC API key → Apple ID + app-specific şifre keychain/env referansıyla → gerekçesiyle `SKIPPED`). **`SKIPPED` bir pass değildir** |
230
+ | `ios_xcodebuild` | Bir Xcode projesini build / test / clean / archive et. Tek satırlık özet + xcresult ID döner; tam log context dışında kalır |
231
+ | `ios_xcresult` | ID ile önceki bir build'e derinlemesine gir - modlar: `summary`, `errors`, `warnings`, `log`, `tests`. Token-verimli kademeli açığa çıkarma |
232
+ | `ios_visual_diff` | İki PNG screenshot'ı karşılaştır (pixelmatch). diff_pct, threshold'a karşı pass/fail, opsiyonel diff PNG döner. Açık/koyu mod, locale, dynamic type genelinde snapshot regresyonları için kullanışlı |
233
+ | `ios_list_crashes` | Host'un DiagnosticReports dizinindeki güncel crash raporlarını listele - süreç adına göre filtrele, yaş ve sayı ile sınırla |
234
+
235
+ ### Android Araçları (30)
236
+
237
+ | Araç | Açıklama |
238
+ |------|-------------|
239
+ | `android_list_devices` | Bağlı cihazları listele |
240
+ | `android_screenshot` | Screenshot yakala (base64 PNG) |
241
+ | `android_tap` | Koordinatlara tap yap |
242
+ | `android_swipe` | Swipe hareketi |
243
+ | `android_type_text` | Metin yaz |
244
+ | `android_key_event` | Tuş olayı gönder (HOME, BACK, ENTER) |
245
+ | `android_launch_app` | Package ile uygulama başlat |
246
+ | `android_stop_app` | Uygulamayı zorla durdur |
247
+ | `android_list_packages` | Kurulu package'ları listele |
248
+ | `android_go_home` | Home'a bas |
249
+ | `android_go_back` | Back'e bas |
250
+ | `android_get_ui_tree` | UI hiyerarşisi (uiautomator XML) - `path` ham dökümü dosyaya yazar, filter:"interactive" kompakt aksiyon-elemanı listesi döner |
251
+ | `android_set_dark_mode` | Koyu modu aç/kapat |
252
+ | `android_set_font_scale` | Font ölçeğini ayarla |
253
+ | `android_set_locale` | Locale'i değiştir |
254
+ | `android_set_location` | Sahte GPS konumu |
255
+ | `android_grant_permission` | Runtime izni ver |
256
+ | `android_revoke_permission` | İzni geri al |
257
+ | `android_record_screen` | Ekran kaydı - action:"start" arka planda kaydeder, action:"stop" videoyu cihazdan çeker |
258
+ | `android_install_apk` | APK kur |
259
+ | `android_uninstall_app` | Uygulamayı kaldır |
260
+ | `android_logcat` | Logları görüntüle |
261
+ | `android_get_screen_size` | Ekran çözünürlüğünü al |
262
+ | `android_open_url` | URL veya deep link aç |
263
+ | `android_clear_app_data` | Uygulama verisini temizle |
264
+ | `android_accessibility_audit` | Otomatik denetim: eksik contentDescription, küçük touch target'lar, eksik resource-id |
265
+ | `android_launch_time` | Soğuk başlangıç süresini ölç (ms) |
266
+ | `android_apk_audit` | APK'yı Play Store uyumluluğu için denetle |
267
+ | `android_list_crashes` | adb crash log buffer'ını dök, tail-sınırlı |
268
+ | `android_set_orientation` | Portrait/landscape'e döndür (user_rotation'ı sabitler, auto-rotate'i kapatır) |
269
+
270
+ ### Design Araçları (6)
271
+
272
+ Mock-mode vs Figma tasarım denetimi. Jenerik ve platform-bağımsız - ağır orkestrasyonun (Figma çekme, varyant eşleme, ekran navigasyonu, rapor derleme) çağıranda yaşaması beklenir; bunlar mekanik ilkel işlemleri açığa çıkarır.
273
+
274
+ | Araç | Açıklama |
275
+ |------|-------------|
276
+ | `design_mock_detect` | Bir projenin mock/stub modunu desteklediğini (`true` / `false` / `debug-only`) isimlendirme konvansiyonları, `#if DEBUG` DI, MockData fixture'ları ve bilinen runtime switch key'leri (genişletilebilir) üzerinden tespit et. Aktivasyon + varyant ipuçları + kanıt döner. |
277
+ | `design_scenario_inventory` | Mock build'in açığa çıkardığı her state sürücüsünü enumerate et - relaunch flag'leri, `*Scenario` / `*Outcome` enum case'leri, reference-prefix varyantları (ekran-başına mock repository'ler içindeki `hasPrefix("F6DI")` dalları, genelde en büyük grup), akış-geneli senaryo kodları, MockData fixture'ları, custom-scheme deep link'ler - her biri dosya+satır kanıtıyla. Her hedefi (`relaunch` vs `in-app`) fiyatlandırır ve bir çalıştırma `plan`ına gruplar, böylece bir relaunch o ekrandaki her in-app state'e hizmet eder. Bir denetime "UI'da bitmiş hissedene kadar gez" yerine sayılabilir bir hedef seti verir. |
278
+ | `design_mock_launch` | Kurulu bir uygulamayı mock modda başlat (iOS UserDefaults launch arg / Android intent extra). |
279
+ | `design_ui_geometry` | Piksel-seviyesi boşluk ölçümü için mevcut ekranın düz element bounding box'ları + ekran boyutu. |
280
+ | `design_visual_compare` | Bir Figma render'ını canlı bir screenshot ile boyut uyuşmazlığında başarısız olmadan karşılaştır: ölçeği normalize eder, chrome'u kırpar, algısal diff %'sini, boşluk/boyut/pozisyonu (px), rengi (ΔE) ve tipografiyi raporlar. figma/live/diff/overlay/side-by-side PNG'leri yazar. |
281
+ | `design_report` | Bir tasarım-denetim rapor nesnesini kendi kendine yeten HTML'e (base64 görseller, CSS-konumlandırılmış annotasyonlar) + opsiyonel PDF'e render et. Bir coverage kapısı zorlar: her hedef denetlenmeli ya da açık bir gerekçeyle atlanmalı, böylece kısmi bir denetim temiz bir rapor olarak render edilemez. Metin bir label pack'ten gelir (varsayılan İngilizce, Türkçe dahili olarak yerleşik). |
282
+
283
+ ### Kullanım Senaryoları
284
+
285
+ - **Görsel bug avcılığı** - Her ekranın screenshot'ını al, AI layout sorunları için analiz etsin
286
+ - **Dark mode testi** - Görünümü değiştir, screenshot al, karşılaştır
287
+ - **Accessibility denetimi** - Eksik label'ları, küçük tap target'ları otomatik tespit et (<44pt iOS / <48dp Android)
288
+ - **Store uyumluluğu** - Submission öncesi .xcarchive veya .apk'yı denetle (signing, debug araçları, privacy manifest)
289
+ - **Biyometrik test** - Face ID / Touch ID başarı ve başarısızlık akışlarını simüle et
290
+ - **Performans** - Android soğuk başlangıç süresini ölç (ms)
291
+ - **Lokalizasyon testi** - Locale'i değiştir, tüm ekranların screenshot'ını al
292
+ - **App Store screenshot'ları** - Temiz status bar + otomatik navigasyon
293
+ - **Regresyon testi** - Akışlarda tap'le gez, davranışı doğrula
294
+
295
+ ### Nasıl Çalışır
296
+
297
+ ```mermaid
298
+ graph LR
299
+ subgraph "Sen"
300
+ PROMPT["Prompt"]
301
+ end
302
+
303
+ subgraph "AI Asistanı"
304
+ AI["Claude Code / Copilot CLI (doğrulanmış)\ndiğer herhangi bir MCP client"]
305
+ end
306
+
307
+ subgraph "multi-agent-toolkit-mcp"
308
+ MCP["MCP Sunucusu"]
309
+ IOS["iOS Araçları (37)\nxcrun simctl"]
310
+ AND["Android Araçları (28)\nadb"]
311
+ WEB["Web Araçları (8)\nPlaywright"]
312
+ DSL["Agent DSL (1)\nBatch runner"]
313
+ end
314
+
315
+ subgraph "Cihazlar"
316
+ SIM["📱 iOS Simulator"]
317
+ EMU["🤖 Android Emulator"]
318
+ BROWSER["🌐 Tarayıcı"]
319
+ end
320
+
321
+ PROMPT --> AI
322
+ AI -- "MCP Protokolü" --> MCP
323
+ MCP --> IOS --> SIM
324
+ MCP --> AND --> EMU
325
+ MCP --> WEB --> BROWSER
326
+ MCP --> DSL
327
+ SIM -- "screenshot / UI ağacı" --> AI
328
+ EMU -- "screenshot / UI ağacı" --> AI
329
+ BROWSER -- "screenshot / metin" --> AI
330
+
331
+ style MCP fill:#8b5cf6,color:#fff
332
+ style IOS fill:#3b82f6,color:#fff
333
+ style AND fill:#10b981,color:#fff
334
+ style WEB fill:#f59e0b,color:#fff
335
+ ```
336
+
337
+ 1. AI asistanın bir cihazla etkileşime girmesi gerektiğine karar verir
338
+ 2. MCP protokolü üzerinden `ios_screenshot` veya `android_tap` gibi bir araç çağırır
339
+ 3. Bu sunucu çağrıyı alır ve native komutu çalıştırır (`xcrun simctl` veya `adb`)
340
+ 4. Sonuç (screenshot, UI ağacı, aksiyon onayı) AI'a döner
341
+ 5. AI sonucu analiz eder ve sonraki aksiyona karar verir
342
+
343
+ **Ne'yi sarmalıyor:**
344
+ - **iOS**: `xcrun simctl` (Xcode Command Line Tools'un bir parçası)
345
+ - **Android**: `adb` (Android SDK Platform-Tools'un bir parçası)
346
+ - **Web**: Playwright (Chromium / WebKit / Firefox)
347
+
348
+ **Ne YAPMIYOR:**
349
+ - Kaynak koduna erişmiyor
350
+ - Herhangi bir sunucuya veri göndermiyor
351
+ - Bir hesap veya API key gerektirmiyor
352
+ - Proje dosyalarını değiştirmiyor
353
+
354
+ Her şey lokalde, kendi makinende çalışır.
355
+
356
+ ## Lisans
357
+
358
+ MIT