Skip to main content
Glama

JADX-MCP-SERVER (часть пакета Zin для обратного проектирования MCP)

⚡ Полностью автоматизированный сервер MCP, созданный для взаимодействия с плагином JADX-AI-MCP для анализа APK-файлов Android с использованием LLM, таких как Claude, — выявляйте уязвимости, анализируйте манифесты и выполняйте обратную разработку без особых усилий.

Участники GitHub JADX-AI-MCPУчастники GitHub JADX-MCP-SERVERGitHub все релизыРелиз GitHub (последний от SemVer)Последний релизЯва 11+Питон 3.10+ Лицензия


Загрузить сейчас: https://github.com/zinja-coder/jadx-ai-mcp/releases


🤖 Что такое JADX-MCP-SERVER?

JADX MCP Server — это автономный сервер Python, который взаимодействует с модифицированной версией jadx-gui (см.: jadx-ai-mcp ) через MCP (Model Context Protocol). Он позволяет LLM взаимодействовать с декомпилированным контекстом приложения Android в реальном времени.

Related MCP server: Binary Ninja MCP Server

🤖 Что такое JADX-AI-MCP?

JADX-AI-MCP — это плагин для декомпилятора JADX , который напрямую интегрируется с Model Context Protocol (MCP) для обеспечения поддержки обратного проектирования в реальном времени с помощью LLM, таких как Claude .

Подумайте: «Декомпиляция → Контекстно-зависимый анализ кода → Рекомендации ИИ» — все в режиме реального времени.

Посмотрите демо!

https://github.com/user-attachments/assets/b65c3041-fde3-4803-8d99-45ca77dbe30a

https://github.com/user-attachments/assets/c184afae-3713-4bc0-a1d0-546c1f4eb57f

https://github.com/user-attachments/assets/6342ea0f-fa8f-44e6-9b3a-4ceb8919a5b0

Это комбинация двух инструментов:

  1. JADX-AI-MCP

  2. СЕРВЕР MCP JADX


Зин МЦП Суи

Текущие инструменты MCP

Доступны следующие инструменты MCP:

  • fetch_current_class() — Получить имя класса и полный исходный код выбранного класса

  • get_selected_text() — Получить текущий выбранный текст

  • get_all_classes() — Список всех классов в проекте

  • get_class_source() — Получить полный исходный код указанного класса

  • get_method_by_name() — Извлечь исходный код метода

  • search_method_by_name() — Метод поиска по классам

  • get_methods_of_class() — Список методов в классе

  • get_fields_of_class() — Список полей в классе

  • get_smali_of_class() — Извлечь smali класса

  • get_main_activity_class() — Извлекает основную активность из jadx, указанную в файле AndroidManifest.xml.

  • get_main_application_classes_code() — извлекает код всех основных классов приложения на основе имени пакета, определенного в AndroidManifest.xml.

  • get_main_application_classes_names() — извлекает имена всех основных классов приложения на основе имени пакета, определенного в AndroidManifest.xml.

  • get_android_manifest() — извлекает и возвращает содержимое AndroidManifest.xml.

  • get_strings() : извлекает файл strings.xml

  • get_all_resource_file_names() : извлечение всех имен файлов ресурсов, существующих в приложении

  • get_resource_file() : Извлечение содержимого файла ресурсов


Примечание: Проверено на Claude Desktop. Поддержка других LLM может быть протестирована в будущем.

🗒️ Примеры подсказок

🔍 Базовое понимание кода

"Explain what this class does in one paragraph."

"Summarize the responsibilities of this method."

"Is there any obfuscation in this class?"

"List all Android permissions this class might require."

🛡️ Обнаружение уязвимостей

"Are there any insecure API usages in this method?"

"Check this class for hardcoded secrets or credentials."

"Does this method sanitize user input before using it?"

"What security vulnerabilities might be introduced by this code?"

🛠️ Помощники обратного инжиниринга

"Deobfuscate and rename the classes and methods to something readable."

"Can you infer the original purpose of this smali method?"

"What libraries or SDKs does this class appear to be part of?"

📦 Статический анализ

"List all network-related API calls in this class."

"Identify file I/O operations and their potential risks."

"Does this method leak device info or PII?"

🤖 Модификация кода ИИ

"Refactor this method to improve readability."

"Add comments to this code explaining each step."

"Rewrite this Java method in Python for analysis."

📄 Документация и метаданные

"Generate Javadoc-style comments for all methods."

"What package or app component does this class likely belong to?"

"Can you identify the Android component type (Activity, Service, etc.)?"

🛠️ Начало работы

ЧИТАЙТЕ ЗДЕСЬ

Запуск на локальном LLM с использованием Ollama и Zin MCP Client — рекомендуется

⚡ Легкий, быстрый, простой клиент MCP на основе CLI для серверов STDIO MCP, который заполнит пробел и обеспечит мост между вашими локальными LLM, работающими под управлением Ollama, и серверами MCP.

Проверьте сейчас: https://github.com/zinja-coder/zin-mcp-client

Демонстрация: выполнение проверки кода для локального поиска уязвимостей

https://github.com/user-attachments/assets/4cd26715-b5e6-4b4b-95e4-054de6789f42

🛣️ План действий на будущее

  • [x] Добавить поддержку apktool

  • [ ] Добавить поддержку кода Hermes (приложение ReactNative)

  • [ ] Добавить больше полезных инструментов MCP

  • [ ] Сделать так, чтобы LLM мог изменять код на JADX

  • [ ] Добавить шаблоны подсказок, предоставить llm доступ к файлам Android APK как к ресурсам

  • [ ] Создание клиента MCP для поддержки локального LLM

  • [ ] КОНЕЧНАЯ ЦЕЛЬ : Сделать так, чтобы все инструменты для обратной разработки и модификации APK-файлов Android подключались к единому серверу MCP, чтобы максимально упростить обратную разработку файлов APK исключительно из Vibes.

ПРИМЕЧАНИЕ для авторов

  • Файлы, относящиеся к JADX-AI-MCP, можно найти здесь.

  • Файлы, относящиеся к jadx-mcp-server, можно найти только в этом репозитории.

🙏 Кредиты

Этот проект представляет собой плагин для JADX, потрясающего декомпилятора Android с открытым исходным кодом, созданного и поддерживаемого @skylot . Вся основная логика декомпиляции принадлежит им. Я только расширил его для поддержки моего сервера MCP с возможностями ИИ.

📎 Оригинальный README (JADX)

Оригинальный файл README.md от jadx включен в этот репозиторий для справки и указания авторства.

Этот сервер MCP стал возможным благодаря расширяемости JADX-GUI и замечательному сообществу специалистов по обратной разработке Android.

Также огромное спасибо @aaddrick за разработку рабочего стола Claude для Linux на базе Debian.

И в заключение спасибо @anthropics за разработку Model Context Protocol и команде @FastMCP

И все разработчики и участники проектов с открытым исходным кодом, которые создают библиотеки и зависимости, делающие возможными подобные проекты.

Проверено и получен значок оценки

Благодарим Mseep.net за проведение аудита и предоставление значка оценки.

📄 Лицензия

Этот плагин наследует лицензию Apache 2.0 из оригинального репозитория JADX.

⚖️ Юридическое предупреждение

Отказ от ответственности

Инструменты jadx-ai-mcp и jadx_mcp_server предназначены исключительно для образовательных, исследовательских целей и оценки этической безопасности. Они предоставляются «как есть» без каких-либо гарантий, явных или подразумеваемых. Пользователи несут исключительную ответственность за обеспечение того, чтобы их использование этих инструментов соответствовало всем применимым законам, правилам и этическим нормам.

Используя jadx-ai-mcp или jadx_mcp_server , вы соглашаетесь использовать их только в средах, которые вы авторизованы для тестирования, например, в приложениях, которыми вы владеете или у вас есть явное разрешение на анализ. Любое ненадлежащее использование этих инструментов для несанкционированного обратного проектирования, нарушения прав интеллектуальной собственности или вредоносной деятельности строго запрещено.

Разработчики jadx-ai-mcp и jadx_mcp_server не несут ответственности за любой ущерб, потерю данных, правовые последствия или другие последствия, возникшие в результате использования или неправильного использования этих инструментов. Пользователи несут полную ответственность за свои действия и любые последствия, вызванные их использованием.

Используйте ответственно. Уважайте интеллектуальную собственность. Следуйте этичным методам взлома.


🙌 Внесите свой вклад или поддержите

  • Нашли полезным? Поставьте ⭐️

  • Есть идеи? Откройте тему или отправьте PR

  • Построили что-нибудь сверху? Напишите мне в личку или упомяните меня — я добавлю это в README!


Создано с ❤️ для сообществ, занимающихся обратной разработкой и ИИ.

Available Tools

32 tools
clear_cacheA

Clear the decompilation source cache and reset counters. Use when switching APKs or to free memory.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior3/5

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

Adds details about resetting counters, but does not mention potential side effects like invalidating cached data or whether the operation is reversible. No annotations exist to offset this.

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?

Two concise sentences that front-load the action and purpose, with no redundant words.

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?

Given zero parameters and an existing output schema (not described), the description adequately covers purpose and usage. Slightly more detail on behavior could be added, but it's sufficient.

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?

No parameters, so baseline 4 applies. Description does not need to add parameter info.

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?

Clearly states verb 'Clear' and resource 'decompilation source cache', and uniquely identifies the tool among siblings (no similar clear/reset tools).

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?

Explicitly says 'Use when switching APKs or to free memory', providing clear context. No alternatives listed, but no siblings serve the same purpose.

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

debug_get_stack_framesB

Get current stack frames (call stack).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior2/5

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

No annotations exist, so the description must disclose behavioral traits. However, it only states the action without detailing side effects, permissions, or performance implications. A short phrase like 'Get current stack frames' is insufficient for full transparency.

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?

The description is a single concise sentence, front-loading the core purpose. It wastes no words, but could be slightly expanded with context without losing conciseness.

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?

Given the tool's simplicity (no params) and presence of an output schema, the description minimally covers what the tool does. However, it lacks context on how the output is structured or typical use cases, leaving it somewhat incomplete for an agent.

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?

The input schema has no parameters (0 properties), and schema coverage is 100% (since there are none). The description adds no parameter-specific information beyond the schema, meeting the baseline of 3 for high coverage.

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 description uses a specific verb ('Get') and resource ('current stack frames'), clearly indicating the tool retrieves the call stack. It distinguishes from siblings like 'debug_get_threads' and 'debug_get_variables' that handle different debugging data.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. It does not mention typical debugging scenarios or relationships with sibling tools, leaving the agent without context for selection.

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

debug_get_threadsA

Get all threads in the debugged process.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior2/5

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

No annotations are provided, and the description is minimal. It does not disclose behavioral traits such as whether the process must be paused, error conditions, or performance implications.

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?

One concise sentence conveying the essential information with no wasted words. Appropriate for a simple tool.

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?

Given the tool's simplicity (no parameters, no annotations, output schema exists), the description adequately describes the functionality. It could mention that it returns a list of threads, but the output schema likely covers that.

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?

The input schema has no parameters, so baseline is 4. The description adds no parameter information, but none is needed.

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 description clearly states the action (Get), resource (all threads), and context (in the debugged process). It is distinct from sibling tools like debug_get_stack_frames and debug_get_variables.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives. The description does not specify prerequisites or conditions, leaving the agent to infer usage from context.

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

debug_get_variablesA

Get current variables when process is suspended.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It discloses the key behavioral constraint (process must be suspended) but does not mention side effects, permissions, or output format. With an output schema present, the return structure is covered, but behavioral details are minimal.

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?

The description is a single, clear sentence with no wasted words. Every part is essential and front-loaded.

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 simple parameterless tool with an output schema, the description provides the essential purpose and condition. It is adequate but could be slightly more detailed about usage context, though the presence of an output schema covers return values.

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?

The input schema has no parameters (schema coverage 100%), so the description adds no parameter info. Per guidelines, with 0 parameters, the baseline is 4, and the description does not need to go beyond that.

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 description uses a specific verb 'Get' and resource 'current variables' with a clear condition 'when process is suspended'. It clearly distinguishes from sibling tools like debug_get_stack_frames or debug_get_threads.

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?

The description states when to use it (when process is suspended), providing clear context. However, it does not explicitly mention when not to use it or suggest alternatives, though siblings like rename_variable imply a potential next step.

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

fetch_current_classA

Fetch the currently selected class and its code from the JADX-GUI plugin.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It only says 'fetch' which implies a read operation, but it does not disclose behavior when no class is selected, whether there are side effects, or any permissions needed.

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?

The description is a single, front-loaded sentence with no unnecessary words. It conveys the essential information efficiently.

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?

Given the tool has no parameters and an output schema exists (providing return structure), the description adequately explains the purpose. However, it could clarify what 'code' includes (e.g., decompiled source) and that it depends on GUI state.

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?

The input schema has no parameters, so the description adds value by explaining what is fetched (the currently selected class and its code). Schema coverage is 100%, so baseline is 3; the description moves it to 4 by providing clear context for the parameterless operation.

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 description clearly states the verb 'Fetch', the resource 'currently selected class and its code', and the source 'JADX-GUI plugin'. It is specific and distinguishes from sibling tools like get_all_classes or get_class_source by implying a GUI context.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives such as get_class_source, get_selected_text, or other class-related tools. The description does not mention prerequisites or when not to use.

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

get_all_classesC

Returns a list of all classes in the project with pagination support.

ParametersJSON Schema
NameRequiredDescriptionDefault
offsetNo
countNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.7/5.0
Behavior2/5

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

With no annotations, the description must disclose behavioral traits, but it only mentions pagination without explaining the behavior of offset and count. It does not state whether the tool is read-only, has side effects, or respects any project state.

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 description is a single sentence, concise and front-loaded, but omits critical details that would earn its place. It is efficient but sacrifices completeness.

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?

Given that an output schema exists, the description need not explain return values. However, it lacks context about pagination behavior and parameter constraints, making it incomplete for effective use.

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

Parameters2/5

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

Schema description coverage is 0%, so the description should explain the parameters. It only says 'pagination support', leaving the meaning of 'offset' and 'count' ambiguous. The defaults are not mentioned in the description, relying on the schema.

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?

The description clearly states the tool returns all classes with pagination support, distinguishing it from more specific class lookup tools like get_class_source or search_classes_by_keyword. However, it could better specify the scope of 'all classes' and differentiate from potential sibling tools like fetch_current_class.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives (e.g., search_classes_by_keyword) is provided. There is no mention of use cases, prerequisites, or when pagination is necessary.

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

get_all_resource_file_namesC

Retrieve all resource files names.

ParametersJSON Schema
NameRequiredDescriptionDefault
offsetNo
countNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.4/5.0
Behavior2/5

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

The description provides minimal behavioral information. It does not mention that the tool is read-only, the format of returned names, pagination behavior, or any requirements. With no annotations, the description carries the full burden but fails to disclose important traits.

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 description is very concise, using a single sentence with no filler. However, it is under-specified; conciseness should not sacrifice completeness.

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

Completeness2/5

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

Despite the presence of an output schema, the description is insufficient. It does not clarify that the tool returns all names (possibly paginated), nor does it mention the role of offset and count. The absence of annotations increases the need for a more complete description.

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

Parameters1/5

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

The description adds no meaning to the parameters 'offset' and 'count', which have 0% schema coverage. These parameters control pagination, but the description does not explain their purpose or effect.

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?

The description clearly states the verb 'retrieve' and the resource 'all resource files names', indicating the tool returns a list of file names. However, it does not differentiate from the sibling tool 'get_resource_file' which likely retrieves a single file's content.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives like 'get_resource_file' or others in the sibling list. The description lacks any context on prerequisites or scenarios.

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

get_android_manifestA

Retrieve and return the AndroidManifest.xml content.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior2/5

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

No annotations are provided; the description only mentions retrieval without details on behavior (e.g., caching, format, size limits). The burden is high, and the description lacks sufficient disclosure.

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?

The description is a single sentence, front-loaded with the key information, and contains no redundant words. Every part earns its place.

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?

Given no parameters, the description is mostly adequate, but it lacks details about the output format (e.g., XML string vs parsed object) and does not leverage the existing output schema context to simplify further.

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?

The tool has no parameters, and schema coverage is 100% (empty properties). The description adds minimal extra value ('AndroidManifest.xml content'), but baseline is 4 due to zero parameters.

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 description clearly states the action ('Retrieve and return') and the specific resource ('AndroidManifest.xml content'), distinguishing it from sibling tools that deal with classes, methods, or resources.

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 description implies usage for obtaining the manifest but provides no explicit guidance on when to use this tool versus alternatives like 'get_resource_file' or 'get_main_activity_class'. No exclusions are stated.

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

get_cache_statsA

Get decompilation cache statistics: hits, misses, hit_rate, cached_classes, compressed_mb, compression_ratio.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations, the description carries the burden. It explicitly states that the tool retrieves statistics (a read operation) and lists the outputs, indicating no destructive side effects. This is sufficient for a simple read tool.

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?

The description is a single, well-structured sentence that front-loads the action and lists the key statistics. Every word earns its place with no redundancy.

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

Completeness5/5

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

Given the tool's simplicity (no parameters, output schema exists), the description provides all necessary context: what it does and what it returns. No additional details are required.

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?

The tool has zero parameters and the schema coverage is 100% (empty object). The description does not need to add parameter details. The baseline for 0 parameters is 4, and the description meets it.

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 description uses the specific verb 'get' with the resource 'decompilation cache statistics' and enumerates the exact fields returned (hits, misses, hit_rate, etc.). It clearly distinguishes from siblings like 'clear_cache' which performs a different operation.

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 description implies the tool is for retrieving cache statistics but provides no explicit guidance on when to use it over alternatives or any prerequisites. However, given its simplicity and no parameters, the lack of explicit guidance is a minor gap.

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

get_class_sourceB

Fetch the Java source of a specific class.

ParametersJSON Schema
NameRequiredDescriptionDefault
class_nameYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior3/5

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

With no annotations, the description carries the full burden but only states 'Fetch', implying no side effects. It does not disclose error conditions or requirements like class being decompiled, but the simplicity mitigates the need for extensive disclosure.

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?

A single sentence that is front-loaded with the verb and resource, containing zero waste.

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?

Given the existence of an output schema, the description does not need to explain return values, but it omits context such as when the class source might be unavailable or error conditions, leaving some gaps for a tool with many siblings.

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

Parameters2/5

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

The parameter 'class_name' is self-explanatory from its name, but the description adds no additional meaning like format (e.g., fully qualified) or constraints, and the schema has 0% description coverage.

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 description clearly states the verb 'Fetch' and the resource 'Java source of a specific class', distinguishing it from sibling tools like get_smali_of_class which fetch smali code.

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

Usage Guidelines2/5

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

No guidance is given on when to use this tool versus alternatives, nor are any conditions or prerequisites mentioned.

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

get_fields_of_classB

List all field names in a class.

ParametersJSON Schema
NameRequiredDescriptionDefault
class_nameYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It states only the basic function, without disclosing whether it is read-only (implied by name), whether it returns all fields (including inherited?), or any permission requirements.

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?

The description is a single efficient sentence with no wasted words. It is adequately concise for a simple tool, though it could benefit from additional structure if parameters were more complex.

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?

Given the tool has an output schema, return values need not be detailed. However, the description omits any mention of edge cases (e.g., class not found) or behavior (e.g., string ordering). It is minimally viable for a one-parameter read tool.

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

Parameters2/5

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

With 0% schema description coverage, the description should explain the parameter class_name (e.g., fully qualified format, case sensitivity, existence requirements). It does not, leaving the agent to infer meaning from the parameter name alone.

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 description 'List all field names in a class.' clearly specifies the action (list) and the resource (field names in a class). It directly distinguishes itself from sibling tools like get_methods_of_class, which lists methods.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives such as get_xrefs_to_field or get_methods_of_class. The description does not mention any preconditions or exclusions.

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

get_main_activity_classA

Fetch the main activity class from AndroidManifest.xml.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden. It discloses the source (AndroidManifest.xml) but adds no details about side effects, permissions, or performance.

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?

Single sentence with no superfluous words. Direct and to the point.

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

Completeness5/5

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

For a simple tool with no parameters and an output schema, the description is complete enough. It covers what the tool does and its data source.

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?

No parameters exist; schema coverage is 100%. The description adds context that the tool fetches from a specific XML file, which is meaningful beyond the empty schema.

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 description clearly states the action ('Fetch') and the resource ('main activity class from AndroidManifest.xml'). It distinguishes from siblings like 'get_android_manifest' which retrieves the entire manifest.

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?

No explicit guidance on when to use this tool versus alternatives. The purpose is implied but not explained in context of sibling tools.

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

get_main_application_classes_codeB

Fetch main application classes' code with pagination.

ParametersJSON Schema
NameRequiredDescriptionDefault
offsetNo
countNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior3/5

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

With no annotations, the description implies a read-only fetch operation, which is adequate but lacks details on behavior like rate limits, error conditions, or handling of default parameters. It mentions pagination but does not elaborate on outcomes.

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?

The description is a single concise sentence that directly states the tool's function with no wasted words, achieving high efficiency.

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?

Given the presence of an output schema, the description doesn't need to detail return values. However, it lacks context on ordering, default behavior for zero count, and how pagination is applied. It is minimally complete but could be more helpful.

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

Parameters2/5

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

Schema coverage is 0%, so the description must compensate. It mentions 'pagination' but does not explain the semantics of offset and count, their defaults (0), or how zero values affect results. This is insufficient for effective parameter understanding.

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 description clearly states 'Fetch main application classes' code with pagination,' specifying the verb 'Fetch' and the resource 'main application classes' code,' which distinguishes it from sibling tools like get_main_application_classes_names and get_class_source.

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

Usage Guidelines2/5

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

The description does not provide guidance on when to use this tool versus alternatives, such as get_class_source or get_main_application_classes_names. No context on prerequisites or scenarios is given.

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

get_main_application_classes_namesA

Fetch main application classes' names from Manifest package.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of disclosing behavior. It only states the basic purpose and does not mention side effects, permissions, or error conditions, leaving significant gaps.

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?

The description is a single, well-structured sentence that immediately conveys the tool's purpose without any extraneous words.

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?

Given the zero parameters and presence of an output schema (which explains return values), the description is mostly complete. It lacks definition of 'main application classes' but that is a minor gap.

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?

The input schema has zero parameters and 100% coverage, so the description does not need to elaborate on parameter semantics. The baseline of 4 is appropriate.

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 description clearly states the verb 'Fetch', the resource 'main application classes' names', and the source 'from Manifest package'. It effectively distinguishes from siblings like 'get_main_application_classes_code' (code vs names) and 'get_main_activity_class' (single vs multiple).

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?

No explicit guidance on when to use this tool versus alternatives is provided, though the purpose is clear enough to infer appropriate use cases. Exclusions or when-not-to-use are absent.

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

get_manifest_componentA

Retrieve specified component data from AndroidManifest.xml, support filter exported components. Support standard Android components: activity, provider, service, receiver.

ParametersJSON Schema
NameRequiredDescriptionDefault
component_typeYes
only_exportedNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior2/5

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

No annotations provided, so description carries burden. Describes 'retrieve' as read operation but gives no detail on behavior (e.g., error handling, whether data is parsed, performance). Does not disclose what happens on invalid component_type or manifest missing. Minimal behavioral context.

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?

Two concise sentences, first states core action and filter, second adds supported types. No extraneous text. Front-loaded with key information.

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?

Given 30+ sibling tools and no annotations, description covers basics but misses crucial context: prerequisites (e.g., manifest already loaded), return behavior on missing components, and any side effects. Output schema exists but description standalone lacks completeness for safe invocation.

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 has 0% description coverage, so description adds value by listing examples for component_type (activity, provider, etc.) and explaining only_exported as a filter. Clarifies that component_type refers to standard Android components, improving schema understanding. Could specify whether component_type is restricted to those four.

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?

Description clearly states the verb 'retrieve' and resource 'component data from AndroidManifest.xml'. It distinguishes itself from siblings like 'get_android_manifest' by specifying it targets a single component type with optional export filtering. Lists supported component types (activity, provider, service, receiver) for exactness.

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?

Implied usage: use when you need a specific component's data with optional exported filter. However, no explicit when-to-use or when-not-to-use compared to alternatives like 'get_android_manifest'. No prerequisites mentioned. Lacks guidance on choosing between this and other get_* tools.

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

get_method_by_nameC

Fetch the source code of a method from a specific class.

ParametersJSON Schema
NameRequiredDescriptionDefault
class_nameYes
method_nameYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

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

No annotations exist, so description carries full burden. It only states 'fetch source code', implying a read operation, but fails to disclose error behavior (e.g., if method not found), side effects, or performance implications.

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?

The description is a single sentence with no unnecessary words. However, it is slightly under-informative; extra context could be added without harming conciseness.

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

Completeness2/5

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

For a tool with 2 parameters and many siblings, the description is too sparse. It does not mention output format (though output schema exists), error cases, or how it differs from similar tools like 'get_class_source'.

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

Parameters2/5

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

Schema description coverage is 0%, and the description does not explain the parameters beyond their names. While 'class_name' and 'method_name' are self-explanatory, the description adds no meaning or constraints (e.g., format, existence).

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 description clearly states the tool retrieves source code of a method from a specific class, specifying verb 'fetch', resource 'source code', and context 'from a specific class'. It differentiates from siblings like 'get_methods_of_class' (lists methods) and 'search_method_by_name' (searches across classes).

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

Usage Guidelines2/5

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

No guidelines on when to use this tool versus alternatives (e.g., 'get_class_source' for entire class, 'search_method_by_name' for searching). No prerequisites or context for usage are provided.

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

get_methods_of_classB

List all method names in a class.

ParametersJSON Schema
NameRequiredDescriptionDefault
class_nameYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It only states a read operation ('list') without disclosing any behavioral traits such as side effects, permissions, or edge cases.

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?

A single, front-loaded sentence with no wasted words, efficiently conveying the core function.

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?

For a simple 1-param tool with an output schema, the description provides the essential function. However, it lacks mention of error cases (e.g., invalid class name) or return format details, relying on the output schema.

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

Parameters2/5

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

With 0% schema description coverage, the description should compensate but only vaguely references the class_name parameter via 'in a class'. No details on format or constraints are added.

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 description clearly states the verb 'list' and resource 'method names' with scope 'in a class'. It effectively distinguishes from siblings like get_fields_of_class or get_method_by_name.

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 description implies use when needing all method names of a class, but provides no explicit guidance on when not to use or mentions of alternatives among the many sibling tools.

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

get_package_treeA

Get all packages in the APK sorted by class count. Shows total_classes, total_packages, and per-package name, class_count, is_likely_library. Use this first to understand the APK structure before searching.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.7/5.0
Behavior4/5

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

With no annotations, the description fully details the output (total_classes, total_packages, per-package data) and sorting, but does not explicitly state it is a read-only operation, which is implied but could be more transparent.

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?

Two sentences: the first defines the output and sorting, the second provides usage guidance. No redundancy or unnecessary text.

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

Completeness5/5

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

Given the presence of an output schema, the description sufficiently explains what the tool returns. It also covers the purpose and usage, making it complete for an agent.

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?

The tool has 0 parameters; baseline is 4 according to rules. The description adds no parameter info but none is needed since there are no params.

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 description clearly states the tool gets all packages sorted by class count and lists the output fields. It distinguishes itself from sibling tools by advising to use it first for understanding APK structure.

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

Usage Guidelines5/5

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

Explicitly says 'Use this first to understand the APK structure before searching', giving clear when-to-use guidance and implying an alternative (searching) for further analysis.

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

get_resource_fileC

Retrieve resource file content.

ParametersJSON Schema
NameRequiredDescriptionDefault
resource_nameYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.8/5.0
Behavior2/5

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

No annotations are present, and the description does not disclose any behavioral traits such as output format, size limits, or error handling. The existence of an output schema is not leveraged in the description.

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?

The description is extremely concise at one sentence, making it easy to parse. It is front-loaded with the core action, but may be overly minimal.

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

Completeness2/5

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

Despite having an output schema, the description fails to provide context about what constitutes a resource file, potential edge cases, or how the output is structured, leaving the agent underinformed.

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

Parameters1/5

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

Schema description coverage is 0%, and the description does not explain the meaning or format of the 'resource_name' parameter, leaving the agent without guidance on how to supply it correctly.

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?

The description clearly states the action (retrieve) and object (resource file content). It is specific and directly relates to the tool's name, but does not explicitly differentiate from sibling tools like 'get_all_resource_file_names'.

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 description implies usage when the content of a resource file is needed, but provides no explicit guidance on when to use this tool versus similar tools or any prerequisites or exclusions.

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

get_selected_textA

Returns the currently selected text in the decompiled code view.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/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 behavioral disclosure. It correctly indicates a read operation ('returns') but does not explain behavior when no text is selected or whether it can fail. For a zero-parameter tool, this is acceptable but not thorough.

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?

A single, front-loaded sentence. No extraneous words; every word serves a purpose. It is appropriately concise for the tool's simplicity.

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?

The tool is simple with no parameters and an output schema present. The description covers the core purpose, but could be more complete by addressing what happens on no selection or different contexts. Still, it is largely sufficient.

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?

The tool has no parameters, so the input schema is vacuously 100% covered. The description does not need to add parameter info. Baseline is 4 for zero-parameter tools with no missing param details.

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 description clearly states the tool returns selected text from the decompiled code view, using a specific verb-resource pair. It distinguishes from all 27 siblings, none of which retrieve selected text.

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 description implies use when selected text is needed but gives no explicit guidance on when to use versus alternatives or edge cases like no selection. It is adequate but leaves the agent to infer context.

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

get_smali_of_classC

Fetch the smali representation of a class.

ParametersJSON Schema
NameRequiredDescriptionDefault
class_nameYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.6/5.0
Behavior2/5

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

With no annotations, the description carries the full burden. It fails to disclose important behavioral traits like whether the operation is read-only (likely yes), what happens if the class doesn't exist, or performance implications. The description adds minimal value beyond the tool name.

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 description is a single sentence, which is concise but arguably too brief. While it avoids verbosity, it omits crucial details that could be included in a slightly longer description.

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

Completeness2/5

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

Given the presence of an output schema, the description could omit return details, but it still fails to explain what 'smali representation' means or how it relates to other representations. An agent unfamiliar with Android internals would lack context.

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

Parameters2/5

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

Schema description coverage is 0%, so the description should compensate. It only mentions 'class_name' implicitly via the tool's purpose, but does not explain what format the class name should be in (e.g., fully qualified dot notation) or constraints.

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?

The description clearly states the verb 'fetch' and the resource 'smali representation of a class'. However, it does not differentiate from sibling tools like get_class_source or get_fields_of_class that might also retrieve class details.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives, such as get_class_source or get_fields_of_class, nor are any prerequisites or limitations mentioned.

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

get_stringsC

Retrieve contents of strings.xml files.

ParametersJSON Schema
NameRequiredDescriptionDefault
offsetNo
countNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.4/5.0
Behavior2/5

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

With no annotations, the description must convey behavioral traits. It only says 'Retrieve contents,' which implies a read operation, but gives no details about pagination, permissions, or return format. The presence of offset and count suggests pagination, but this is not disclosed.

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 description is a single sentence, which is concise but incomplete. It sacrifices necessary detail for brevity, making it minimally helpful rather than efficient.

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

Completeness2/5

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

While an output schema exists and may document return values, the description lacks essential details about parameters (offset and count). For a simple tool with two parameters, the description is insufficient for correct invocation.

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

Parameters1/5

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

Schema description coverage is 0%, so the description must explain parameters, but it does not mention offset or count at all. The agent has no insight into what these parameters do, despite defaults being provided.

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?

The description clearly states 'Retrieve contents of strings.xml files,' identifying the verb and resource. However, it does not differentiate from siblings like get_resource_file, which could retrieve the same file, so it lacks distinctiveness.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives like get_resource_file or get_all_resource_file_names. There is no mention of when to set offset or count parameters, leaving the agent to infer usage without context.

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

get_xrefs_to_classB

Find all references to a class.

ParametersJSON Schema
NameRequiredDescriptionDefault
class_nameYes
offsetNo
countNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of disclosing behavior. It only states 'find all references' without explaining pagination (offset, count), whether it is read-only, or what the output format is. Since an output schema exists but is not described, the agent may not understand the return structure.

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?

The description is a single sentence with no extraneous information. It is front-loaded and efficient, fulfilling the requirement of being concise.

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

Completeness2/5

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

Given the tool's three parameters and the presence of sibling tools, the description is insufficient. It lacks usage guidelines, parameter semantics, and behavioral details, leaving gaps that the structured fields do not fill.

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

Parameters2/5

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

Schema coverage is 0% and the description does not elaborate on any parameters. 'class_name' is inferred from the tool name, but 'offset' and 'count' are unexplained, leaving the agent unaware of their roles in pagination.

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 description 'Find all references to a class' uses a specific verb and resource, clearly stating the tool's function. It distinguishes itself from sibling tools like 'get_xrefs_to_field' and 'get_xrefs_to_method' by specifying the target as a class.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives such as 'get_methods_of_class' or 'get_fields_of_class'. The description does not mention prerequisites, context, or exclusions.

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

get_xrefs_to_fieldC

Find all references to a field.

ParametersJSON Schema
NameRequiredDescriptionDefault
class_nameYes
field_nameYes
offsetNo
countNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.7/5.0
Behavior2/5

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

With no annotations, the description bears full responsibility for behavioral disclosure, but it only states the basic function. It omits traits like pagination (offset/count parameters), read-only nature, or output format. Minimal disclosure.

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 description is extremely concise (5 words), but it sacrifices necessary details. It is not inappropriately long, but fails to convey essential information.

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

Completeness2/5

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

Given the tool has 4 parameters, an output schema, and sibling tools requiring differentiation, the description is insufficient. It lacks mention of pagination, required fields, and result format.

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

Parameters1/5

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

Schema description coverage is 0%, and the description adds no meaning to any parameter. It does not explain that class_name and field_name are required or what offset and count control.

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 description 'Find all references to a field' clearly states the verb (find) and resource (references to a field), distinguishing it from sibling tools like get_xrefs_to_class and get_xrefs_to_method.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives, nor does it mention prerequisites or exclusions. The single sentence lacks any usage context.

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

get_xrefs_to_methodC

Find all references to a method.

ParametersJSON Schema
NameRequiredDescriptionDefault
class_nameYes
method_nameYes
offsetNo
countNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.7/5.0
Behavior2/5

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

With no annotations, the description must disclose behavior. It only states 'Find all references,' without mentioning pagination (offset, count), required parameters, or side effects. This is insufficient.

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?

The description is a single sentence that is concise and front-loaded with the action. However, it is too brief and lacks structure for a tool with 4 parameters.

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

Completeness2/5

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

Given the tool has 4 parameters and no param descriptions, the description is incomplete. It doesn't hint at parameter usage or return value structure, though an output schema exists but is not described.

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

Parameters2/5

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

The schema has 0% description coverage, and the description does not explain any parameters (e.g., what class_name or method_name mean, or how offset/count affect results). Minimal value added.

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?

The description clearly states the tool finds all references to a method, which is a specific verb and resource. However, it does not differentiate from sibling tools like get_xrefs_to_class or get_xrefs_to_field, leaving ambiguity.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives, such as get_xrefs_to_class. No context on prerequisites or exclusions is given.

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

rename_classC

Renames a specific class.

ParametersJSON Schema
NameRequiredDescriptionDefault
class_nameYes
new_nameYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.6/5.0
Behavior2/5

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

With no annotations, the description bears full burden for behavioral disclosure. It fails to mention effects on other references, reversibility, permissions, or UI updates. The minimal text does not compensate for missing annotations.

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 description is a single sentence, which is concise but not wasteful. However, it is too terse to be fully informative; a slightly longer description adding usage context would be more valuable.

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

Completeness2/5

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

For a mutation tool with 2 parameters and no annotations, the description is incomplete. It does not specify return behavior, whether it updates references, or any prerequisites. The presence of an output schema does not excuse the lack of context in the description.

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

Parameters2/5

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

Schema coverage is 0% with no parameter descriptions. The description adds no meaning beyond parameter names; it does not clarify expected formats (e.g., full path vs simple name for class_name) or constraints on new_name.

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?

The description clearly states the action (renames) and resource (class), distinguishing it from sibling rename tools for field, method, package, and variable. However, it could be more specific by indicating the context, such as 'in the current decompilation session'.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool over alternatives like rename_field or rename_method. There is no mention of prerequisites, side effects, or conditions that would help the agent decide.

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

rename_fieldC

Renames a specific field.

ParametersJSON Schema
NameRequiredDescriptionDefault
class_nameYes
field_nameYes
new_nameYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.7/5.0
Behavior2/5

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

No annotations are provided, so the description must disclose behavioral traits. It only says 'Renames...' without stating that it modifies state, requires permissions, or has side effects. This is insufficient for understanding the tool's behavior.

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 description is very concise at one sentence, but this conciseness comes at the cost of missing critical details. It is efficient but not informative enough for a 3-parameter tool.

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

Completeness2/5

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

Given the lack of annotations and param descriptions, the description should provide context about the tool's operation and return value. It does not mention that it modifies state, nor does it reference the output schema (which exists). The description is incomplete for effective use.

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

Parameters1/5

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

Schema description coverage is 0%, meaning the input schema provides no descriptions for parameters. The description adds no meaning beyond parameter names, leaving the agent to guess the roles of class_name, field_name, and new_name.

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 description 'Renames a specific field' clearly states the action and resource. It distinguishes from sibling tools like rename_class, rename_method, and rename_variable, which rename different entities.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives. The description does not mention prerequisites, conditions, or when not to use rename_field.

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

rename_methodD

Renames a specific method.

ParametersJSON Schema
NameRequiredDescriptionDefault
method_nameYes
new_nameYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

D1.5/5.0
Behavior1/5

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

No annotations provided, and the description does not disclose any behavioral traits (e.g., whether renaming affects references, reversibility, or side effects). Completely inadequate for a mutation operation.

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 description is a single sentence, which is concise, but it sacrifices all substantive content. Being short is not beneficial if it fails to inform.

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

Completeness1/5

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

Despite having an output schema and multiple sibling tools, the description provides no context about return values, error conditions, or how this tool fits into the broader toolset. Extremely incomplete.

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

Parameters1/5

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

Schema description coverage is 0%, and the description adds no meaning to the parameters. The names 'method_name' and 'new_name' are self-explanatory, but no format, constraints, or examples are given.

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

Purpose2/5

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

The description states it renames a method, but it is a tautology of the tool name and does not differentiate from sibling rename tools (e.g., rename_class, rename_field). No context on what 'method' refers to.

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

Usage Guidelines1/5

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

No guidance on when to use this tool versus alternatives like rename_field or rename_class. Lacks any mention of prerequisites or context.

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

rename_packageB

Renames a package and all its classes.

ParametersJSON Schema
NameRequiredDescriptionDefault
old_package_nameYes
new_package_nameYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It states renaming occurs but does not disclose side effects (e.g., impact on imports, permission needs, rollback possibility). Minimal behavioral disclosure.

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?

Single sentence, no filler words. Efficiently communicates the core action.

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

Completeness2/5

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

With no annotations and no parameter descriptions, the description is too brief. It lacks context about return values (despite output schema existing), prerequisites (e.g., package must exist), and potential risks (e.g., breaking dependencies).

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

Parameters2/5

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

Schema has two parameters with 0% description coverage. Description does not add any meaning beyond parameter names, such as expected formats, constraints, or differences between old and new package names.

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?

Description clearly states the tool renames a package and all its classes, which is a specific verb-resource pair. It distinguishes from sibling tools like rename_class, rename_field, etc., which target different entities.

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?

No explicit guidance on when to use this tool versus alternatives. The name implies its context, but there is no explanation of prerequisites or when not to use it (e.g., if package has dependent classes).

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

rename_variableC

Renames a specific variable in a method.

ParametersJSON Schema
NameRequiredDescriptionDefault
class_nameYes
method_nameYes
variable_nameYes
new_nameYes
regNo
ssaNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description must cover behavioral traits. It only says 'renames' which implies mutation, but does not disclose side effects, persistence, scope, or whether changes are reversible.

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 description is very short (one sentence), but it omits important details. It is concise but under-specified, lacking critical information for correct use.

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

Completeness2/5

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

Given the complexity (6 parameters, no schema or annotation details), the description is incomplete. It does not explain optional parameters, return values (though output schema exists), or any constraints.

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

Parameters2/5

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

Schema description coverage is 0%, and the description does not explain any parameters. Required parameters are self-explanatory from names, but optional parameters like 'reg' and 'ssa' are unexplained.

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 description clearly states 'Renames a specific variable in a method', specifying both the action (rename) and the resource (variable in a method). This distinguishes it from sibling tools like rename_field or rename_method.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives like rename_method or rename_field. There is no mention of context, prerequisites, or exclusions.

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

search_classes_by_keywordA

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

ParametersJSON Schema
NameRequiredDescriptionDefault
search_termYesThe keyword or string to search for. This is the main search query.
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
offsetNoStarting index for pagination. Default: 0
countNoMaximum number of results to return. Default: 20

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior3/5

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

No annotations provided, so description carries burden. Describes search behavior and filtering but does not explicitly state that the tool is read-only or non-destructive. Assumed safe but not confirmed.

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?

Description is a well-structured paragraph with clear numbered points, concise but covers essential aspects. No fluff, but could be slightly more compact.

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

Completeness5/5

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

Given the tool's complexity (keyword search, package filtering, multiple scopes, pagination) and presence of output schema, the description fully covers what the tool does and its parameters. No gaps identified.

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 descriptions cover all parameters (100% coverage). Description adds value by explaining how parameters combine (e.g., 'combine multiple search scopes for precise results'), providing context beyond schema alone.

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?

Description explicitly states 'Search for classes containing a specific keyword', clearly specifying the action and resource. It distinguishes from siblings like search_method_by_name and get_all_classes by focusing on keyword-based class search across decompiled code.

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?

Description lists capabilities but does not explicitly state when to use this tool versus alternatives. Usage is implied but no clear 'when not to use' or comparison with sibling tools.

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

search_method_by_nameC

Search for a method name across all classes.

ParametersJSON Schema
NameRequiredDescriptionDefault
method_nameYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.7/5.0
Behavior2/5

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

No annotations are provided, and the description does not disclose any behavioral traits (e.g., read-only, performance implications, or scope of search). The agent has no information beyond the action.

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?

The description is a single concise sentence, efficiently conveying the core purpose. However, it could be more structured (e.g., bullet points) to aid scanning.

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

Completeness2/5

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

Given the tool's complexity (searching across all classes) and the existence of an output schema, the description should hint at what is returned (e.g., method signatures with class names). Its brevity leaves significant gaps.

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

Parameters2/5

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

The sole parameter 'method_name' has no description in the schema (0% coverage). The description adds no meaning beyond the parameter name, leaving the agent to guess format or constraints.

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?

The description clearly states the action (search) and resource (method name across all classes), making it easy to understand the tool's purpose. However, it does not specify the matching behavior (e.g., exact, substring, regex), slightly reducing clarity.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus related siblings like 'get_method_by_name' or 'get_methods_of_class'. The user must infer from the name, which is insufficient.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 32 tool updatesv0.1.0
    • First observedclear_cache
    • First observeddebug_get_stack_frames
    • First observeddebug_get_threads
    • First observeddebug_get_variables
    • First observedfetch_current_class
    • First observedget_all_classes
    • First observedget_all_resource_file_names
    • First observedget_android_manifest
    • First observedget_cache_stats
    • First observedget_class_source
    • First observedget_fields_of_class
    • First observedget_main_activity_class
    • First observedget_main_application_classes_code
    • First observedget_main_application_classes_names
    • First observedget_manifest_component
    • First observedget_method_by_name
    • First observedget_methods_of_class
    • First observedget_package_tree
    • First observedget_resource_file
    • First observedget_selected_text
    • First observedget_smali_of_class
    • First observedget_strings
    • First observedget_xrefs_to_class
    • First observedget_xrefs_to_field
    • First observedget_xrefs_to_method
    • First observedrename_class
    • First observedrename_field
    • First observedrename_method
    • First observedrename_package
    • First observedrename_variable
    • First observedsearch_classes_by_keyword
    • First observedsearch_method_by_name

TDQS

B3/5.0
Disambiguation5/5

Each tool targets a distinct action and resource, with clear separation between listing, searching, renaming, debugging, and cache management. No two tools appear to do the same thing.

Naming Consistency4/5

Naming follows a consistent verb_noun pattern within subdomains (get_, rename_, search_, debug_, clear_, fetch_). The debug_get_ prefix is slightly inconsistent but still readable.

Tool Count2/5

With 32 tools, the server exceeds the typical well-scoped range. While many tools are useful, the number feels excessive and could be streamlined into fewer, more general tools.

Completeness5/5

The tool surface covers the full lifecycle of APK analysis: class retrieval, field/method access, cross-references, renaming, manifest parsing, resource handling, debugging, and cache management. No obvious gaps.

Maintenance

ActivityMaintained
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    A Model Context Protocol server that enables Large Language Models to interact with Binary Ninja for reverse engineering tasks like viewing assembly code, decompiled code, renaming functions, and adding comments.
    3
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    An Model Context Protocol server that enables LLMs to autonomously reverse engineer applications by exposing Ghidra's decompilation and analysis tools. It allows AI agents to list code structures, rename methods, and analyze binaries directly through MCP-compatible clients.
    Apache 2.0

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/zinja-coder/jadx-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server