WormaCeptor

السجل الرسمي أدوات المطورين

Inspect a running Android debug app: network traffic, crashes, logs, databases and preferences

التثبيت

أضف هذا إلى إعدادات MCP في عميلك (Claude Desktop: claude_desktop_config.json، وCursor: ‏.cursor/mcp.json، ويستخدم VS Code وغيره الصيغة نفسها «mcpServers»).

NPM package wormaceptor-mcp
Claude Code
claude mcp add wormaceptor -- npx -y wormaceptor-mcp@3.4.2
إعداد JSON (Claude Desktop وCursor وVS Code)
{
    "mcpServers": {
        "wormaceptor": {
            "command": "npx",
            "args": [
                "-y",
                "wormaceptor-mcp@3.4.2"
            ]
        }
    }
}

التوثيق

مأخوذ من ملف README للمشروع على GitHub ويُحدَّث أسبوعيًا. تفتح الروابط على GitHub.

المحتويات
  1. WormaCeptor
  2. Demo
  3. Quick Start
  4. Features
  5. How It Works
  6. Redacting Sensitive Data
  7. AI Agents (MCP)
  8. Documentation
  9. Contributing
  10. License

WormaCeptor

Your AI agent can read your code. Now it can read your running Android app. WormaCeptor puts network traffic, crashes, logs, databases and preferences one tool call away for Claude Code, Cursor and other MCP clients, and on screen for you. No proxy, no certificates. Ships only in debug builds through Gradle's debugImplementation, so nothing reaches production. Set up the agent in two lines.

Demo

An agent finds and fixes a failing checkout by reading the app's network traffic through WormaCeptor:

Network inspection, system tools, and performance monitoring side by side:

Watch the demo video


Quick Start

Make sure mavenCentral() is declared in your settings.gradle.kts (it's in the default Android template):

dependencyResolutionManagement {
    repositories {
        mavenCentral()
    }
}

Add the dependencies in your app's build.gradle.kts:

dependencies {
    implementation("com.azikar24.wormaceptor:wormaceptor-client:3.4.2")
    debugImplementation("com.azikar24.wormaceptor:wormaceptor-persistence:3.4.2")
}

Initialize in your Application class:

import com.azikar24.wormaceptor.api.WormaCeptorApi

class App : Application() {
    override fun onCreate() {
        super.onCreate()
        WormaCeptorApi.init(this)
    }
}

Add the interceptor to your OkHttp client:

import com.azikar24.wormaceptor.api.WormaCeptorInterceptor

val client = OkHttpClient.Builder()
    .addInterceptor(WormaCeptorInterceptor())
    .build()

Open WormaCeptor from anywhere:

startActivity(WormaCeptorApi.getLaunchIntent(context))

You can also enable the shake gesture with WormaCeptorApi.startActivityOnShake(activity). Using Ktor? See the Ktor guide.


Features

Network: Intercept HTTP/HTTPS via OkHttp or Ktor, monitor WebSocket connections and WebView requests, copy URLs or export as cURL, JSON and HAR, throttle with the rate limiter, and mock responses with Mock Rules (turn any captured request into a mock with Add to Mock)

Performance: Track FPS, memory, and CPU in real time with a live overlay, catch memory leaks and StrictMode thread violations, spot excessive Compose recompositions

System: Browse SQLite databases, edit SharedPreferences, inspect DataStore and encrypted storage, explore files, view loaded native libraries and Gradle dependencies, read device info and logcat, capture crash reports

Testing: Fire test push notifications, manage FCM tokens, mock GPS locations, encrypt/decrypt and hash with the crypto tool

AI agents: An optional MCP server lets Claude Code, Cursor, and other MCP clients query the running debug app: 44 tools for transactions, crashes, logs, performance, storage, mock rules, request replay, and actions. See AI Agents (MCP)

Every feature is its own module. Enable exactly what you need at init time, disable the rest. See Feature Toggles.


How It Works

Your release APK never sees debug code. Here's why:

  1. wormaceptor-client ships in all build types. It contains only interfaces and a reflection-based lookup, no debug logic.
  2. wormaceptor-persistence (or wormaceptor-imdb) ships only in debug via debugImplementation. It registers itself through classpath discovery.
  3. In release builds, no implementation exists on the classpath. wormaceptor-client falls back to a no-op automatically. No ProGuard rules, no runtime checks, no dead code.

More details in No-Op Behavior.


Redacting Sensitive Data

Strip credentials and PII before they hit the inspector.

val interceptor = WormaCeptorInterceptor()
    .redactHeader("Authorization")
    .redactJsonValue("password")
    .redactXmlValue("apiKey")
    .redactBody("ssn=\\d{3}-\\d{2}-\\d{4}")

For global redaction that applies across all interceptors, use WormaCeptorApi.redactionConfig. See the Data Redaction guide.


AI Agents (MCP)

Add the MCP device server to your debug build and your AI coding agent can read live app data over MCP instead of you pasting logs.

debugImplementation("com.azikar24.wormaceptor:wormaceptor-mcp-server:3.4.2")

Register the bridge with your client (needs Node.js 18+, Java 17+ and adb; the launcher downloads the matching bridge jar and checks its SHA-256):

claude mcp add --transport stdio wormaceptor -- npx -y wormaceptor-mcp@3.4.2

No Node? Download wormaceptor-mcp-bridge.jar from the latest release and run it with java -jar.

The server binds to 127.0.0.1 on the device and the bridge reaches it through adb forward. Bearer-token auth is available and off by default; read Security before using it on a shared device. Setup, all 44 tools, and configuration: docs/MCP.md. Walkthrough: docs/MCP_TUTORIAL.md.


Documentation

Full docs at wormaceptor.com: Getting Started


Contributing

PRs welcome. See CONTRIBUTING.md for setup, architecture rules and the PR process. To get started:

./gradlew build              # Build everything
./gradlew spotlessApply      # Format code
./gradlew :app:installDebug  # Run the demo app

License

MIT, see LICENSE.

الأسئلة الشائعة

ما هو WormaCeptor؟

Inspect a running Android debug app: network traffic, crashes, logs, databases and preferences

كيف أثبّت WormaCeptor؟

يعمل على جهازك. في Claude Code: claude mcp add wormaceptor -- npx -y wormaceptor-mcp@3.4.2. وفي العملاء الآخرين، الصق إعداد JSON من هذه الصفحة في إعدادات MCP الخاصة بهم.

هل يحتاج WormaCeptor إلى مفتاح API؟

لا يذكر إدراجه في السجل أي مفتاح أو سر إلزامي. قد تتطلب بعض الميزات حسابًا لدى الخدمة التي يتصل بها.

هل WormaCeptor مفتوح المصدر؟

نعم. شيفرته متاحة على GitHub بترخيص MIT.

من يصون WormaCeptor؟

ينشره wormaceptor. يدرجه AI.tn لكنه لا يصونه ولا يوصي به.

من سجل MCP الرسمي. الإدراج ليس توصية: راجع شيفرة الخادم وصلاحياته قبل منحه الوصول إلى بياناتك.