The Kotzilla MCP server lets your AI coding agent, like Claude Code or Cursor, find and fix ANRs, slow screens, and slow startups from your app's production data.
With this release, your agent finds the root cause, fixes the issue, verifies the fix on a fresh session, and closes it once you approve.
Setup takes two prompts.
An ANR (Application Not Responding) happens when your app's main thread stays blocked long enough for Android to show the "App isn't responding" dialog. For input events, that limit is five seconds. Android vitals or your crash reporter tells you the main thread was blocked.
To fix it, you still need the screen, the component, and the code path behind it.
Then you change the code and check that the change worked.
AI coding agents are good at the code change.
To do the rest, they need two things: production data that shows where to look, and a way to check the result.
The October 19, 2026 Kotzilla release connects both, from setup to a closed issue.
If you remember one thing from this post: the agent verifies the fix on a fresh session, then closes the issue once you approve.
This post walks through the full flow to fix Android ANRs with an AI coding agent, using one real example.
The release updates three parts of the Kotzilla Platform:
| Component | Version | What changed |
|---|---|---|
| Kotzilla MCP Server | 1.18.3 | Setup with one prompt, a new update_issue_status tool, native HTTP for Cursor, render timeline around the issue in get_issue_context |
| Kotzilla SDK | 3.0.1 | Startup follows TTID, slow screen and ANR detection for Fragments and Compose screens, new @TrackScreen annotation |
| Kotzilla Console | 4.19.1 | Investigate with MCP button, cleaner issues, issue status changes from the issues list, combined versions on the dashboard |
MCP (Model Context Protocol) is an open standard that lets an AI agent call tools in other services. Through the Kotzilla MCP server, your coding agent works from your app's production data and can change an issue's status in Kotzilla.
You connect your agent with two prompts: one installs the MCP server, and a second one registers your app and adds SDK 3.0.
In Claude Code, Cursor or any coding agent, paste this prompt:
Set up Kotzilla MCP server using https://kotzilla.io/llms.txt Then sign in with your Kotzilla account, and ask your agent to register your app and set up the SDK. New SDK installs use SDK 3.0.
Note: If your app already uses SDK 2.3.x, no code change is needed to upgrade to 3.0. SDK 2.1.1 is now the minimum version. Apps on older SDKs can no longer send sessions, so check the version upgrade guide before your next release.
For details on each step, see the MCP setup guide. If you build for Kotlin Multiplatform, the Kotzilla MCP server for KMP covers that setup.
SDK 3.0 changes how app startup is measured, and extends slow screen and ANR detection to more screens.
With SDK 3.0.1, app startup follows Android's time to initial display (TTID), the time it takes to display your app's first frame:
onCreate.For each startup issue, the session timeline shows the components resolved during the start, with their timing and thread, so you see which one held the main thread.
Ask your agent about the same issue, and it gets that context through the MCP server: the startup sequence on the main thread, what blocks it, and the next step to fix it.
SDK 3.0 extends slow screen and ANR detection to Fragments in any Activity, and to Compose screens outside Navigation with the new @TrackScreen annotation. Apply the Kotzilla plugin in the module that declares the function:
@TrackScreen(name = "SettingsDialogScreen")
@Composable
private fun TrackedSettingsDialog(onDismiss: () -> Unit) {
SettingsDialog(onDismiss = onDismiss)
} The screen then shows up in Screen Rendering, next to your Navigation screens.
Each screen is timed on its own load work, including a Compose screen's first composition and a Fragment's setup. The time a screen spends waiting behind a dialog or in another tab is left out.
prepareKotzillaMapping<Variant> task prepares the mapping file so you can upload it from the Console.See the full list in the SDK changelog.
Your agent finds the root cause, applies a fix, verifies it on a fresh session, and proposes closing the issue in Kotzilla. Ask for it in your prompt, and it closes the issue with the version that fixed it.
Here is an example, from start to finish.
You give the agent this prompt:
Fix the ANR in BookmarksRoute screen and close the issue once the fix is verified It lists your app's issues (get_issues) and picks the ANR on BookmarksRoute.
It gets the render timeline around the ANR (get_issue_context), with the main-thread work that caused it.
It reads the ANR fix guidance (get_fix_guidance), applies the fix, then compares a fresh session with a local baseline.
It proposes closing the issue with the before/after evidence. Once you approve, update_issue_status closes it with the version that fixed it.
You can also start from the Kotzilla Console. On your app dashboard, click Investigate with MCP. The Claude or Cursor desktop app opens with a prompt for the app and time window you selected. You can also copy the prompt into any other assistant.
If the MCP server is not set up yet, Add in Claude or Add in Cursor installs it from the same window.
You can install the Kotzilla MCP server from Claude Code, Cursor or any coding agent, with one prompt. Cursor connects natively over HTTP. The Investigate with MCP button in the Console opens the Claude or Cursor desktop app, and you can copy its prompt into any other assistant.
After it verifies a fix on a fresh session, the agent proposes closing the issue in Kotzilla, and closes it once you approve. You can also open, acknowledge or close an issue yourself from the issues list in the Console.
No code change is needed to upgrade from SDK 2.3.x. To track a Compose screen outside Navigation, add the @TrackScreen annotation to it.
SDK 2.1.1 is now the minimum version. Apps on older SDKs can no longer send sessions.
Paste this prompt into your coding agent:
Set up Kotzilla MCP server using https://kotzilla.io/llms.txtIf you try it, we'd like to hear which agent you used and what it found in your app.