Releases: zinja-coder/jadx-ai-mcp
v5.0.0 The Xrefs Update
New MCP Tools:
-
xrefs-to-class- Find all references to a class
Returns method-level references: { class, method }
Returns class-level references: { class, method: "" }
Supports pagination via offset and limit parameters -
/xrefs-to-method- Find all references to a method
Includes override-related methods for polymorphic support
Matches JADX GUI's "Find Usage" behavior
Supports pagination -
/xrefs-to-field- Find all references to a field
Returns methods that access the field
Method field is always non-empty (field access always occurs within a method)
Supports pagination
Bug Fix:
- There was a bug in get_main_application_classes_code(), implmentation was missing on plugin side and on the jadx_mcp_server.py side, the json key name was mismatch, the plugin is sending the data in 'classes' but jadx_mcp_server.py was looking for some other key.
What's Changed
- add xref feature implements by @ljt270864457 in #59
- feat: added pagination support in get_all_resource_file_names() mcp tool by @zinja-coder in #61
- optimize: separated pagination utils class from main jadx ai mcp file… by @zinja-coder in #62
- Code Improvements
- Separated PaginationUtils class to progress towards modular design.
- **BELOW CONTRIBUTIONS ARE MADE BY @ljt270864457 **
- Refactoring: Extracted common helper methods to reduce code duplication:
- validateRequiredParam() - Parameter validation
- findClassByName() - Class lookup
- findMethodsByName() - Method lookup (supports constructors)
- findFieldByName() - Field lookup
- collectMethodNodeReferences() - Reference collection with deduplication
- sendXrefsResponse() - Paginated response handling
Checksum SHA256:
- jadx-ai-mcp-5.0.0.jar:
a071a47587dc0810ecfe013f505eb893f1807e2a54573637dfbaabd1fb957f23 - jadx-mcp-server-v5.0.0.zip:
5e7d4a4773c125d754f6d9e5a4c457116b29ac54c0ea97fc8187a187cacf4e85
Full Changelog: v4.2.0...v5.0.0
v4.2.0 Rename Package
New MCP tool
rename_package(): Renames a package and all its classes.
- Args:
1.old_package_name: The current package path to be renamed (e.g., "com.abc.def")
2.new_package_name: The target package path (e.g., "com.example.newpkg")
- Returns: The response from the JADX server with rename results.
Full Changelog: v4.1.0...v4.2.0
Checksum SHA256:
- jadx-ai-mcp-4.2.0.jar:
1d78aef061cd90b7de164603d8c7e023b9e62e2c8307a425a936dd2d86c01d48 - jadx-mcp-server-v4.2.0.zip:
5bf6a92e862f08ef92c6e37c8c1c8767f2af9e4bb4a5493348c1132462908bee
v4.1.0 Search Classes By Keyword
New MCP Tool
search_classes_by_keyword(): Search for classes whose source code contains a specific keyword (supports pagination)- During Android APK reverse engineering and security analysis, analysts often need to quickly locate classes that contain specific keywords (e.g., "encrypt", "password", "API_KEY", etc.). The existing get_all_classes() tool only lists class names, and manually searching through decompiled code is time-consuming. This feature provides a powerful search capability that scans the actual source code of all classes.
Changes
- Feature commit by @ljt270864457 in #50
- feat: merged the PR 50, new mcp tool to search classes code for speci… by @zinja-coder in #51
- Full Changelog: v4.0.0...v4.1.0
New Contributors
- @ljt270864457 made their first contribution in #50
Checksum SHA256:
- jadx-ai-mcp-4.1.0.jar:
76ac405e2cdddb4d7af48b4bee3fa046be65a63addddcdf506430130a0c0448e - jadx-mcp-server-4.1.0.zip:
11d3e4096cb1a3d7e2ec503293fea1d2210816499ee3d23d5d1f2947188c58a6
v4.0.0 DEBUGGER MCP TOOLS
New MCP Tools
debug_get_stack_frames(): returns stack frame from Jadx Debugger, can be used to analyze the execution flow of the APK..debug_get_threads(): returns threads insights from Jadx Debuggerdebug_get_variables(): returns variables insights from jJadx Debugger
Demo:
adx-ai-mcp-debug-demo-1.2.mp4
What's Changed
- feat: improved message for class not found error, now this error will plrint class name as well to tell which calss is not found
- refactor: removed .idea folder
- fix: fixed following build error -> JadxAIMCP.java:[56,24] package jadx.gui.plugins does not exist
- refactor: migrated to com.zin.jadxaimcp package name
Full Changelog: v3.3.5...v4.0.0
Checksum SHA256:
- jadx-mcp-server-v4.0.0.zip :
596d8f74694ff7b14230d5825f1b33f0a35be2d4a76380808708be3a48b60585 - jadx-ai-mcp-4.0.0.jar:
bb225f0eb3db9a0929df88c98a05286e351afc7ca8bd25c2f2bad6f8f70a3634
v3.3.5 fix for encoding error
Bug Fix:
- Fixed the the issue #42 - banner unicode character encoding error by catching UnicodeEncodeError and printing normal message, 2 updated banner to v3.3.5
Checksum SHA256:
- jadx-ai-mcp-3.3.5.jar:
7c76cb89ab5b6da0b291dccc54c45c03cf2cd44f05d3b61f2f8fc2738e36a0cc - jadx-mcp-server-v3.3.5.zip:
db3c6b1e096b2c04fe01cfa93e5f91bece9c4edbac303d3f9ad1e93b4a31d91b
v3.3.4
Bug Fix:
- Fixed the dependency issue in jadx mcp server zinja-coder/jadx-mcp-server#23
Checksum SHA256:
- jadx-ai-mcp-3.3.4.jar:
d328c808e933125ed2d427f6f2e4448051e8a16c119be459ff576631495c1922 - jadx-mcp-server-v3.3.4.zip:
34725fcf948e31f54197ff1e206d750ea33b28c14791b8fa1d75240fa13cd080
v3.3.3 HotFix and Banner
What's Changed
- Bugfix37 by @ljt270864457 in #38
- Test implemented for bug #37 in test.sh
- feat: implemented banner for ASCII title, version by in #39
New Contributors
- @ljt270864457 made their contribution in https://github.com/zinja-coder/jadx-ai-mcp/pull/#38 and helped fixing issue #37 ->
Bug: Inner classes with $ symbol cannot be retrieved via /class-source endpoint
Full Changelog: v3.3.2...v3.3.3
Checksum SHA256:
- jadx-ai-mcp-3.3.3.jar:
f6246c51f365f1ab279e3d7dfef44696f4ba9e439166bf7212cc2b125745efe4 - jadx-mcp-server-v3.3.3.zip:
27accb429681b6f5348d0016dc598e6b1861dbd55a92e387919d76d20267b158
v3.3.2 Bug Fixes
Bug Fixes
- fixed the following error -> ERROR - Error in paginated request to strings: the JSON object must be str, bytes or bytearray, not dict
- fixed the following error -> "HTTP error 400: {"error":"Missing required parameter 'class'"}." in following mcp tools -> get_fields_of_class, get_methods_of_class
- fixed the following error -> Unexpected error: Expecting value: line 1 column 1 (char 0).
- Added dict as a return type in MCP tools to keep up to date with FastMCP -> this solves #33
Optimization
- Performed heavy code optimization on jadx_mcp_server.py see full changelog for details.
- Improved the
test.shscript to test the both plugin and server thoroughly.
Full Changelog: v3.3.1...v3.3.2
Checksum SHA256:
- jadx-ai-mcp-3.3.2.jar -
f72801d9c666c59b0f0fa9412f8e0de5ec8586544adb508e0b54da5d6902d27c - jadx-mcp-server-v3.3.2.zip -
1a99cb568be8bb3fb75c4b3cd584df7a96710a46a3308280168404be261fecce
v3.3.1
What's Changed
- fix(plugin): Fix method renaming logic in JadxAIMCP plugin by @badmonkey7 in #26
New Contributors
- @tbodt made their first contribution in https://github.com/zinja-coder/jadx-mcp-server/pull/#12
Full Changelog: v3.3.0...v3.3.1
Checksum sha256:
- jadx-mcp-server-v3.3.1.zip :
0ef02846889a20281f0828bac3a06b9d3a50661b2041ebc4695e024b9b59feca - jadx-ai-mcp-3.3.1.jar :
db7d44f270dbbcee8bf17a41c82d3061379123f0c19d8ba5c797bcb1a0322b78
v3.3.0 Pagination Overhaul
What's Changed
- Pagination Overhaul:
- Completely rewritten better, improved, efficient and reliable pagination logic.
- Added pagination support in
get_main_application_classes_code,get_stringsandget_all_classesmcp tools. - Removed pagination from all other mcp tools due to redundancy and out of place feature.
- Migrated to core FastMCP library
- Moved to up to date FastMCP library
- HTTP Stream support up to date with FastMCP library
Bug Fixes:
- N/A
Full Changelog: v3.2.0...v3.3.0
Checksum SHA-256:
- jadx-ai-mcp-3.3.0.jar:
2f8a1a734090cc8ae960beb2209842f2b06b64a888a065611439fffe928f53de - jadx-mcp-server-v3.3.0.zip:
38eb57c29d0e2739a28fda8483d501490a68599c54c5dff9e31c014689de8489