npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@mmerterden/multi-agent-toolkit-mcp

v3.1.0

Published

MCP server for iOS Simulator, Android Emulator and headless web control. 84 tools: device automation (tap/swipe/type), accessibility audits, visual diff, crash logs, App Store / Play Store pre-submission compliance. Runs standalone over stdio with any MCP

Readme

@mmerterden/multi-agent-toolkit-mcp

npm version npm downloads GitHub stars License: MIT

🇬🇧 English: README.md

iOS Simulator, Android Emulator ve headless web kontrolü için 84 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.

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.

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.

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.

7 kategori:

  • Device Control (59 araç) - screenshot, tap, swipe, type, navigate, dark mode, locale, orientation, location, permissions, push notifications, gerçek start/stop ekran kaydı
  • 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ı
  • Accessibility Audit (2 araç) - eksik label'ları, küçük tap target'larını, eksik identifier'ları otomatik tespit et (scope filtreleme desteklenir)
  • 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ı, ...)
  • 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.
  • 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
  • Autonomous Agent DSL (2 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. agent_query_output, satır içi dönemeyecek kadar büyük olan önceki bir çağrının tam çıktısını arar; böylece bir takip sorusu pahalı aracı yeniden koşturmak anlamına gelmez.

Hızlı Başlangıç

Seçenek A - Kaynaktan kur (önerilen, auth gerekmez)

En basit yol. ~/.npmrc'yi henüz yapılandırmasan bile çalışır.

git clone [email protected]:mmerterden/multi-agent-toolkit-mcp.git
cd multi-agent-toolkit-mcp
npm install

# Opsiyonel: web araçları Playwright gerektirir
npm i -g playwright && npx playwright install chromium

# 'multi-agent-toolkit-mcp' olarak global kullanılabilir yap
npm link

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).

Seçenek B - npx (kurulum gerekmez - public registry)

npx @mmerterden/multi-agent-toolkit-mcp

Kurulum (Seçenek A veya B'den sonra)

Claude Code / Claude Desktop

{
  "mcpServers": {
    "multi-agent-toolkit": {
      "command": "npx",
      "args": ["-y", "@mmerterden/multi-agent-toolkit-mcp"]
    }
  }
}

Cursor

.cursor/mcp.json'a ekle:

{
  "mcpServers": {
    "multi-agent-toolkit": {
      "command": "npx",
      "args": ["-y", "@mmerterden/multi-agent-toolkit-mcp"]
    }
  }
}

Antigravity

.agent/mcp_config.json'a (ya da global ~/.gemini/antigravity/mcp_config.json'a) ekle:

{
  "mcpServers": {
    "multi-agent-toolkit": {
      "command": "npx",
      "args": ["-y", "@mmerterden/multi-agent-toolkit-mcp"]
    }
  }
}

Copilot CLI

~/.copilot/settings.json'a ekle:

{
  "mcpServers": {
    "multi-agent-toolkit": {
      "command": "npx",
      "args": ["-y", "@mmerterden/multi-agent-toolkit-mcp"]
    }
  }
}

Codex CLI

Kendi config'ini Codex'in yazmasına izin ver - ~/.codex/config.toml'u o sahiplenir (marketplace ve plugin durumu da orada yaşar), ve komut idempotent'tir:

codex mcp add multi-agent-toolkit -- npx -y @mmerterden/multi-agent-toolkit-mcp
codex mcp list                 # doğrula
codex doctor --json            # checks["mcp.config"] "ok" okumalı

Referans olarak, bu şunu üretir:

[mcp_servers.multi-agent-toolkit]
command = "npx"
args = ["-y", "@mmerterden/multi-agent-toolkit-mcp"]

Multi-agent pipeline'ın install --codex'i codex mcp add adımını senin için çalıştırır.

Sorun Giderme

npx @mmerterden/multi-agent-toolkit-mcp 401/404 veriyor, ya da eski bir versiyonu çözüyor

Bu paket public npm registry'de - token gerekmez. Hâlâ başarısız oluyorsa, en olası sebep bu paketin GitHub Packages'tan taşınmadan önceki bir kalıntı scope override'ı: ~/.npmrc'de @mmerterden:registry=https://npm.pkg.github.com gibi bir satır olup olmadığına bak. O satır her @mmerterden-scope'lu install/publish'i (bu paket dahil) GitHub Packages'a yönlendirir, ki o da public görünümlü bir paket adı için bile auth'suz bir okumaya 401 döner. O satırı kaldır (ya da gerçekten GitHub Packages'a ihtiyacı olan @mmerterden paketine scope'la) ve tekrar dene.

VS Code Copilot Chat

.vscode/mcp.json'a ekle:

{
  "servers": {
    "multi-agent-toolkit": {
      "command": "npx",
      "args": ["-y", "@mmerterden/multi-agent-toolkit-mcp"]
    }
  }
}

Gereksinimler

  • Node.js 18+
  • iOS araçları: macOS + Xcode (xcrun simctl'i sağlar)
  • Android araçları: Android SDK Platform-Tools (adb'yi sağlar)
  • Web araçları (opsiyonel): playwright - bir kere kur:
    npm i -g playwright && npx playwright install chromium
    (ya da webkit / firefox - motoru her web_goto çağrısında seç.)

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.

Agent DSL Örneği

Tek bir MCP çağrısında scriptlenmiş bir login akışı çalıştır:

{
  "tool": "agent_run_steps",
  "args": {
    "steps": [
      { "tool": "web_goto", "args": { "url": "https://example.com/login" } },
      { "tool": "web_type", "args": { "selector": "#email", "text": "[email protected]" } },
      { "tool": "web_type", "args": { "selector": "#password", "text": "s3cret" } },
      { "tool": "web_click", "args": { "selector": "button[type=submit]" }, "wait_ms": 1000 },
      { "tool": "web_wait_for", "args": { "selector": ".dashboard" } },
      { "tool": "web_screenshot", "args": { "full_page": true } }
    ]
  }
}

Agent'ın hata durumunda kendini düzeltebilmesi için adım-başına durum döner.

iOS Araçları (38)

| Araç | Açıklama | |------|-------------| | ios_list_devices | Mevcut tüm simulator'ları listele | | ios_boot_device | Bir simulator'ı boot et | | ios_screenshot | Screenshot yakala (base64 PNG) | | ios_tap | Koordinatlara tap yap | | ios_swipe | Swipe hareketi | | ios_type_text | Odaklanmış alana metin yaz | | ios_launch_app | Bundle ID ile uygulama başlat | | ios_terminate_app | Uygulamayı sonlandır | | ios_list_apps | Kurulu uygulamaları listele | | ios_go_home | Home tuşuna bas | | ios_set_appearance | Açık/koyu modu ayarla | | ios_set_content_size | Dynamic Type boyutunu ayarla | | ios_set_locale | Uygulama dilini değiştir | | ios_open_url | URL veya deep link aç | | 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 | | ios_push_notification | Simüle edilmiş push gönder | | ios_grant_permission | Gizlilik izni ver | | ios_revoke_permission | İzni geri al | | ios_reset_permissions | Tüm izinleri sıfırla | | ios_set_location | Simüle edilmiş GPS ayarla | | ios_clear_location | Konumu temizle | | ios_set_increase_contrast | Increase Contrast'ı aç/kapat | | ios_record_video | Ekran kaydı - action:"start" arka planda kaydeder, action:"stop" video dosyasını döner | | ios_add_media | Fotoğraf kütüphanesine ekle | | ios_keychain_reset | Keychain'i sıfırla | | ios_get_app_container | Uygulama dosya yolunu al | | ios_erase_device | Simulator'ı fabrika ayarlarına döndür | | ios_get_ui_tree | Accessibility UI ağacı | | ios_accessibility_audit | Otomatik denetim: eksik label'lar, küçük tap target'ları, eksik identifier'lar | | ios_biometric | Face ID / Touch ID'yi simüle et (eşleşme veya başarısızlık) | | ios_archive_audit | .xcarchive'ı App Store uyumluluğu için denetle (daha hafif, deprecated - ios_app_store_audit'i kullan) | | 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 | | 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 | | 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 | | 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 | | ios_xcresult | ID ile önceki bir build'e derinlemesine gir - modlar: summary, errors, warnings, log, tests. Token-verimli kademeli açığa çıkarma | | 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ı | | 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 |

Android Araçları (30)

| Araç | Açıklama | |------|-------------| | android_list_devices | Bağlı cihazları listele | | android_screenshot | Screenshot yakala (base64 PNG) | | android_tap | Koordinatlara tap yap | | android_swipe | Swipe hareketi | | android_type_text | Metin yaz | | android_key_event | Tuş olayı gönder (HOME, BACK, ENTER) | | android_launch_app | Package ile uygulama başlat | | android_stop_app | Uygulamayı zorla durdur | | android_list_packages | Kurulu package'ları listele | | android_go_home | Home'a bas | | android_go_back | Back'e bas | | android_get_ui_tree | UI hiyerarşisi (uiautomator XML) - path ham dökümü dosyaya yazar, filter:"interactive" kompakt aksiyon-elemanı listesi döner | | android_set_dark_mode | Koyu modu aç/kapat | | android_set_font_scale | Font ölçeğini ayarla | | android_set_locale | Locale'i değiştir | | android_set_location | Sahte GPS konumu | | android_grant_permission | Runtime izni ver | | android_revoke_permission | İzni geri al | | android_record_screen | Ekran kaydı - action:"start" arka planda kaydeder, action:"stop" videoyu cihazdan çeker | | android_install_apk | APK kur | | android_uninstall_app | Uygulamayı kaldır | | android_logcat | Logları görüntüle | | android_get_screen_size | Ekran çözünürlüğünü al | | android_open_url | URL veya deep link aç | | android_clear_app_data | Uygulama verisini temizle | | android_accessibility_audit | Otomatik denetim: eksik contentDescription, küçük touch target'lar, eksik resource-id | | android_launch_time | Soğuk başlangıç süresini ölç (ms) | | android_apk_audit | APK'yı Play Store uyumluluğu için denetle | | android_list_crashes | adb crash log buffer'ını dök, tail-sınırlı | | android_set_orientation | Portrait/landscape'e döndür (user_rotation'ı sabitler, auto-rotate'i kapatır) |

Design Araçları (6)

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.

| Araç | Açıklama | |------|-------------| | 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. | | 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. | | design_mock_launch | Kurulu bir uygulamayı mock modda başlat (iOS UserDefaults launch arg / Android intent extra). | | design_ui_geometry | Piksel-seviyesi boşluk ölçümü için mevcut ekranın düz element bounding box'ları + ekran boyutu. | | 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. | | 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). |

Kullanım Senaryoları

  • Görsel bug avcılığı - Her ekranın screenshot'ını al, AI layout sorunları için analiz etsin
  • Dark mode testi - Görünümü değiştir, screenshot al, karşılaştır
  • Accessibility denetimi - Eksik label'ları, küçük tap target'ları otomatik tespit et (<44pt iOS / <48dp Android)
  • Store uyumluluğu - Submission öncesi .xcarchive veya .apk'yı denetle (signing, debug araçları, privacy manifest)
  • Biyometrik test - Face ID / Touch ID başarı ve başarısızlık akışlarını simüle et
  • Performans - Android soğuk başlangıç süresini ölç (ms)
  • Lokalizasyon testi - Locale'i değiştir, tüm ekranların screenshot'ını al
  • App Store screenshot'ları - Temiz status bar + otomatik navigasyon
  • Regresyon testi - Akışlarda tap'le gez, davranışı doğrula

Nasıl Çalışır

graph LR
    subgraph "Sen"
        PROMPT["Prompt"]
    end

    subgraph "AI Asistanı"
        AI["Claude Code / Copilot CLI (doğrulanmış)\ndiğer herhangi bir MCP client"]
    end

    subgraph "multi-agent-toolkit-mcp"
        MCP["MCP Sunucusu"]
        IOS["iOS Araçları (37)\nxcrun simctl"]
        AND["Android Araçları (28)\nadb"]
        WEB["Web Araçları (8)\nPlaywright"]
        DSL["Agent DSL (1)\nBatch runner"]
    end

    subgraph "Cihazlar"
        SIM["📱 iOS Simulator"]
        EMU["🤖 Android Emulator"]
        BROWSER["🌐 Tarayıcı"]
    end

    PROMPT --> AI
    AI -- "MCP Protokolü" --> MCP
    MCP --> IOS --> SIM
    MCP --> AND --> EMU
    MCP --> WEB --> BROWSER
    MCP --> DSL
    SIM -- "screenshot / UI ağacı" --> AI
    EMU -- "screenshot / UI ağacı" --> AI
    BROWSER -- "screenshot / metin" --> AI

    style MCP fill:#8b5cf6,color:#fff
    style IOS fill:#3b82f6,color:#fff
    style AND fill:#10b981,color:#fff
    style WEB fill:#f59e0b,color:#fff
  1. AI asistanın bir cihazla etkileşime girmesi gerektiğine karar verir
  2. MCP protokolü üzerinden ios_screenshot veya android_tap gibi bir araç çağırır
  3. Bu sunucu çağrıyı alır ve native komutu çalıştırır (xcrun simctl veya adb)
  4. Sonuç (screenshot, UI ağacı, aksiyon onayı) AI'a döner
  5. AI sonucu analiz eder ve sonraki aksiyona karar verir

Ne'yi sarmalıyor:

  • iOS: xcrun simctl (Xcode Command Line Tools'un bir parçası)
  • Android: adb (Android SDK Platform-Tools'un bir parçası)
  • Web: Playwright (Chromium / WebKit / Firefox)

Ne YAPMIYOR:

  • Kaynak koduna erişmiyor
  • Herhangi bir sunucuya veri göndermiyor
  • Bir hesap veya API key gerektirmiyor
  • Proje dosyalarını değiştirmiyor

Her şey lokalde, kendi makinende çalışır.

Lisans

MIT