Skip to main content
Glama

trace_android_references

Idempotent

Trace incoming static references to an exact Android class or unique method in an APK to identify where it is used, without executing the target or inferring runtime calls.

Instructions

Trace incoming static references to an exact Android class or unique method. Overloaded method reference queries are explicitly unsupported by the current engine. Source lines and DEX offsets remain unknown; no runtime calls are inferred.

Input Schema

NameRequiredDescriptionDefault
pathYesLocal APK path; the target is never executed
class_nameYesExact fully qualified class name
method_nameNoOmit for class references; ambiguous overloaded methods are unsupported
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.1/5.0
Behavior4/5

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

Beyond the annotations, it discloses meaningful output limits: source lines and DEX offsets are unknown and no runtime calls are inferred, which prevents over-interpretation of results. The annotations (readOnlyHint=false, destructiveness=false, idempotent=true) set the safety profile, and the description adds the analytical-epistemic limits. It does not explain what a result actually contains, which keeps it from a 5.

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

Conciseness5/5

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

Three dense sentences with zero filler, front-loaded with the core action followed by scope limits and output caveats. Every sentence carries information an agent needs.

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

Completeness3/5

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

There is no output schema, so the description carries the burden of describing results, and it only says what is NOT returned (source lines, DEX offsets, runtime calls). It never states what a reference result looks like (reference list, caller class/method, per-reference identity), leaving the agent guessing about the response shape for a 4-parameter analysis tool.

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

Parameters3/5

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

Schema coverage is 100%, so the schema already documents all four parameters, including that method_name should be omitted for class references and that ambiguity is unsupported. The description's 'exact class or unique method' phrasing reinforces the method_name constraint but adds no new syntax or format detail beyond the schema. Baseline 3 applies.

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?

States a specific verb and resource: 'trace incoming static references' to 'an exact Android class or unique method'. The word 'static' plus 'incoming' cleanly separates it from runtime siblings like get_trace_events and from native xrefs tools, so an agent can route without opening the schema.

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?

Gives real scope exclusions: overloaded method reference queries are unsupported, and no runtime calls are inferred, which tells the agent to use a runtime tool for dynamic edges. It stops short of naming concrete alternative siblings or stating preconditions such as when a path is required versus an existing project.

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