Skip to main content
Glama

start_trace

Destructive

Starts bounded Frida tracing for an explicit Android PID or spawned package, with exact Java selectors, native decoding, and scoped network, storage, Handler, Executor, JNI, and IPC observers.

Instructions

Start bounded Frida observation of an explicit Android PID or spawn package. Supports exact Java selectors with trace-local loaders, deferred hooks, explicit native decoding, View/JNI and scoped network/storage/Handler/Executor/IPC observers. Scoped observer features need their nonempty scopes. Optional java_deoptimize explicitly changes ART execution throughout this process; inspect java:deoptimization coverage. inspect_trace reports coverage. Up to four distinct explicit targets; no automatic child attachment. run_id must be a retained analysis run. Native decoding relies on caller-supplied ABI meaning; historical registrations and unobserved paths remain unknown.

Input Schema

NameRequiredDescriptionDefault
configYes
adb_serialNo
analysis_project_idNoOptional investigation to retain this tool result in. Does not prove target identity or causal relationships.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.4.0

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already flag destructive/openWorld/non-idempotent, and the description adds substantive behavior beyond them: java_deoptimize alters ART execution process-wide and is 'not undone on detach,' native decoding relies on caller-supplied ABI meaning, historical and unobserved paths stay unknown, and native_backtrace tradeoffs are noted. This is exactly the kind of mutation-impact context an agent needs for a destructive tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core action and target in the opening clause, then grouped by concern (Java, observers, deoptimization, limits, caveats). Sentences are long and clause-dense, but each carries distinct constraints rather than filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a highly complex, deeply nested tool with no output schema, it covers targeting rules, preconditions, destructive side effects, and where to check results (inspect_trace). The main gap is return shape and lifecycle (what the trace handle/run_id is, how to stop it via stop_trace), which an agent must infer from sibling tools.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 33%, so the description must compensate, and it does add meaning for several nested areas: which observer families exist and that scoped ones require nonempty scope arrays, the run_id retention requirement, and the semantics of java_deoptimize/native decoding. It still leaves many config fields (max_events, max_bytes, capture_arguments, duration_seconds, ui_clicks) without narrative guidance.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The first sentence gives a precise verb ('Start'), a precise mechanism ('bounded Frida observation'), and exact targeting ('explicit Android PID or spawn package'). It also enumerates the observation domains (Java selectors, native decoding, View/JNI, network/storage/Handler/Executor/IPC), which lets an agent distinguish this from the lighter-weight add_java_hooks or the group variant start_trace_group.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It states clear preconditions: run_id must be a retained analysis run, scoped observer features need nonempty scopes, up to four distinct explicit targets, no automatic child attachment. It also points to inspect_trace for coverage verification. What is missing is explicit routing language naming when to prefer start_trace_group or add_java_hooks instead.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Deploy Server

Other Tools