app_crashes
This tool on every surface: CLI · MCP · Python · JavaScript · Go · Java · .NET
The crashes the device recorded — Java exceptions, native signals and apps that stopped responding — newest first, with the line worth reading first. Pass an id from the list to read one report in full; an ANR's leads with its reason and the stuck main thread. Android rate-limits crash records per app, so an app that crashed many times in a few minutes may crash again and add nothing — the next record says how many were dropped. Not drained: a crash is a record, kept across reboots until it ages out, so asking twice shows it twice. Android reads dropbox; an iOS simulator reads the Mac's crash reports for that simulator, and a real iPhone its own, over USB.
Read-only: readOnlyHint is true.
Arguments
| Name | Type | Required | What it is |
|---|---|---|---|
app | string | Only this app's crashes, by package or bundle id. | |
device | string | Device serial to target, e.g. "emulator-5554". Omit when only one device is running. | |
driver | string: uiautomator2, uiautomator, wda | Driver to use: "uiautomator2" (default for Android; fast, installs a server APK on first use), "uiautomator" (Android, installs nothing, slower, cannot type), or "wda" (WebDriverAgent: iOS simulators and iPhones). | |
id | string | Read this report in full, e.g. "data_app_crash@1790357773461". | |
limit | integer | The newest reports to list, at most. Default 20. |
Examples
Each is the arguments of a tools/call request; the first is shown whole.
List one app's crashes
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "app_crashes",
"arguments": {
"app": "com.example.shop"
}
}
}