Skip to main content
Glama
bartest5

JADX-MCP-SERVER

by bartest5

Search Classes By Keyword

search_classes_by_keyword

Search decompiled Android classes by keyword across class names, methods, fields, code, or comments, with optional package filtering and pagination for targeted code analysis.

Instructions

Search for classes containing a specific keyword with flexible filtering options.

This tool performs a comprehensive search across decompiled Android code, allowing you to:

  1. Search within specific packages by providing a package name

  2. Target specific search scopes (class names, method names, fields, code content, comments)

  3. Combine multiple search scopes for precise results

Input Schema

NameRequiredDescriptionDefault
countNoMaximum number of results to return. Default: 20
offsetNoStarting index for pagination. Default: 0
packageNoPackage name to limit the search scope. - If empty string (default), searches across all packages in the APK - If provided, only searches within classes belonging to the specified package - Example: "com.example.app" to search only in that package
search_inNoComma-separated list of search scopes to target. Valid values: - "class": Search in class names only - "method": Search in method names only - "field": Search in field names only - "code": Search in code content (method bodies, statements, etc.) - "comment": Search in comments You can specify one or multiple scopes: - Single scope: "class" (only class names) - Multiple scopes: "class,method" (class names OR method names) - Combined: "class,method,code" (searches in all three scopes) Default: "code" (searches in code content)code
search_termYesThe keyword or string to search for. This is the main search query.

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

B3.3/5.0
Behavior3/5

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

No annotations are provided, so the description must carry the behavioral burden; it implies a read-only search but never states cost, caching, or performance characteristics of scanning a whole APK. Pagination behavior via count/offset is only visible in the schema, and there is no note about how many matches are scanned before returning.

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

Conciseness3/5

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

The opening sentence is well front-loaded, but the numbered list largely restates the search_in enum values that the schema already enumerates verbatim, so several lines do not earn their place. Structure is readable, content is partly redundant.

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?

An output schema exists, so return values need not be explained, and all five parameters are documented in the schema. What remains missing is fit within the toolset — when this search should be used instead of the many sibling class/method retrieval tools — leaving the selection decision under-supported.

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 description coverage is 100%, so the baseline is 3. The description's bullets echo the package and search_in semantics already fully documented in the schema, adding framing ('combine multiple scopes for precise results') but no new syntax or default behavior beyond what the properties describe.

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

Purpose4/5

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

States a specific verb (search) and resource (classes) plus the matching basis (keyword), so the agent knows it retrieves classes rather than a single known class. It does not name or differentiate itself from near-siblings like search_method_by_name or get_all_classes, and 'search across decompiled Android code' slightly muddies whether the unit of result is a class or a code match.

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

Usage Guidelines3/5

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

The three bullets imply when the tool is useful (targeting a package, narrowing to scopes), but there is no explicit statement of when to prefer it over get_all_classes, get_class_source, or search_method_by_name. Usage context is inferable but never spelled out.

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