@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.
- package/CHANGELOG.md +871 -0
- package/LICENSE +21 -0
- package/README.md +358 -0
- package/README.tr.md +358 -0
- package/index.js +1725 -0
- package/package.json +89 -0
- package/tools/crash-logs/index.js +29 -0
- package/tools/design-check/content-cardinality.js +204 -0
- package/tools/design-check/geometry.js +140 -0
- package/tools/design-check/index.js +219 -0
- package/tools/design-check/mock-detect.js +213 -0
- package/tools/design-check/report.js +596 -0
- package/tools/design-check/scan.js +91 -0
- package/tools/design-check/scenario-inventory.js +598 -0
- package/tools/design-check/visual-compare.js +961 -0
- package/tools/ios-app-store-audit/context.js +181 -0
- package/tools/ios-app-store-audit/data/apple-required-sdks.json +32 -0
- package/tools/ios-app-store-audit/data/debug-tools-blocklist.json +133 -0
- package/tools/ios-app-store-audit/index.js +164 -0
- package/tools/ios-app-store-audit/models.js +57 -0
- package/tools/ios-app-store-audit/rules/asset-validation.js +72 -0
- package/tools/ios-app-store-audit/rules/binary-size.js +70 -0
- package/tools/ios-app-store-audit/rules/code-signing.js +95 -0
- package/tools/ios-app-store-audit/rules/dead-reference.js +131 -0
- package/tools/ios-app-store-audit/rules/debug-tool-leak.js +185 -0
- package/tools/ios-app-store-audit/rules/duplicate-resource.js +130 -0
- package/tools/ios-app-store-audit/rules/embedded-sdk.js +126 -0
- package/tools/ios-app-store-audit/rules/entitlement.js +105 -0
- package/tools/ios-app-store-audit/rules/extension-signing.js +105 -0
- package/tools/ios-app-store-audit/rules/info-plist.js +158 -0
- package/tools/ios-app-store-audit/rules/ipv6-compliance.js +101 -0
- package/tools/ios-app-store-audit/rules/privacy-manifest.js +121 -0
- package/tools/ios-app-store-audit/rules/production-hygiene.js +237 -0
- package/tools/ios-app-store-audit/rules/provisioning-profile.js +127 -0
- package/tools/ios-app-store-audit/rules/required-reason-api.js +123 -0
- package/tools/ios-app-store-audit/rules/sdk-floor.js +104 -0
- package/tools/ios-app-store-audit/rules/swift-abi.js +64 -0
- package/tools/ios-app-store-audit/rules/team-id.js +62 -0
- package/tools/ios-testflight/index.js +489 -0
- package/tools/ui-inspect/index.js +57 -0
- package/ui-tree-dumper.swift +122 -0
package/README.tr.md
ADDED
|
@@ -0,0 +1,358 @@
|
|
|
1
|
+
# @mmerterden/multi-agent-toolkit-mcp
|
|
2
|
+
|
|
3
|
+
[](https://www.npmjs.com/package/@mmerterden/multi-agent-toolkit-mcp)
|
|
4
|
+
[](https://www.npmjs.com/package/@mmerterden/multi-agent-toolkit-mcp)
|
|
5
|
+
[](https://github.com/mmerterden/multi-agent-toolkit-mcp)
|
|
6
|
+
[](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
|