Data as of
JADX-AI-MCP for Windsurf: Setup & Config
Windsurf: Connect an MCP assistant to JADX's live Android decompilation context.
What you can do with JADX-AI-MCP in Windsurf
Choose it for assistant-assisted Android reverse engineering inside an active JADX session.
- Follow references to understand an APK's behavior.
- Inspect manifest entries, resources, and debugger state together.
Before you start: JADX-AI-MCP in Windsurf
- Java 11 or newer
- Python 3.10 or newer
- JADX with the JADX-AI-MCP plugin installed
- Companion JADX MCP Server
- uv
This follows the README's Cherry Studio configuration. Replace the directory with the companion server checkout. The plugin and server are separate components; uv venv alone does not start the MCP server.
JADX-AI-MCP Windsurf configuration
Choose Windsurf configuration scope
For JADX-AI-MCP, open macOS/Linux: ~/.codeium/windsurf/mcp_config.json Windows: %USERPROFILE%\.codeium\windsurf\mcp_config.json. Merge into mcpServers; remote endpoints use serverUrl.
Add JADX-AI-MCP to Windsurf
Use the jadx-ai-mcp entry below in mcpServers. Keep JADX-AI-MCP's documented stdio connection fields and your other Windsurf entries.
Check JADX-AI-MCP in Windsurf
JADX-AI-MCP: Refresh MCP in Windsurf settings and inspect Cascade’s tools.
Config file · macOS/Linux: ~/.codeium/windsurf/mcp_config.json
Windows: %USERPROFILE%\.codeium\windsurf\mcp_config.json
{
"mcpServers": {
"jadx-ai-mcp": {
"command": "uv",
"args": [
"--directory",
"path/to/jadx-mcp-server",
"run",
"jadx_mcp_server.py"
],
"env": {}
}
}
}JADX-AI-MCP tools available to Windsurf
JADX-AI-MCP's stored tool list documents 29 tools; compare it with Windsurf's connected tool list, because the stored list is not a live check.
- fetch_current_class
After refreshing JADX-AI-MCP in Windsurf settings, check Cascade's tool list for fetch_current_class.
Read the selected class name and source from JADX.
- get_selected_text
After refreshing JADX-AI-MCP in Windsurf settings, check Cascade's tool list for get_selected_text.
Retrieve text highlighted in the decompiler.
- get_all_classes
After refreshing JADX-AI-MCP in Windsurf settings, check Cascade's tool list for get_all_classes.
- get_class_source
After refreshing JADX-AI-MCP in Windsurf settings, check Cascade's tool list for get_class_source.
- get_method_by_name
After refreshing JADX-AI-MCP in Windsurf settings, check Cascade's tool list for get_method_by_name.
- search_method_by_name
After refreshing JADX-AI-MCP in Windsurf settings, check Cascade's tool list for search_method_by_name.
- search_classes_by_keyword
After refreshing JADX-AI-MCP in Windsurf settings, check Cascade's tool list for search_classes_by_keyword.
- get_methods_of_class
After refreshing JADX-AI-MCP in Windsurf settings, check Cascade's tool list for get_methods_of_class.
- get_fields_of_class
After refreshing JADX-AI-MCP in Windsurf settings, check Cascade's tool list for get_fields_of_class.
- get_smali_of_class
After refreshing JADX-AI-MCP in Windsurf settings, check Cascade's tool list for get_smali_of_class.
Retrieve a class's smali representation.
- get_main_activity_class
After refreshing JADX-AI-MCP in Windsurf settings, check Cascade's tool list for get_main_activity_class.
Resolve the main activity declared in the Android manifest.
- get_main_application_classes_code
After refreshing JADX-AI-MCP in Windsurf settings, check Cascade's tool list for get_main_application_classes_code.
Read source for application classes selected through the manifest package.
- get_main_application_classes_names
After refreshing JADX-AI-MCP in Windsurf settings, check Cascade's tool list for get_main_application_classes_names.
List application class names associated with the manifest package.
- get_android_manifest
After refreshing JADX-AI-MCP in Windsurf settings, check Cascade's tool list for get_android_manifest.
Retrieve the application's AndroidManifest.xml.
- get_manifest_component
After refreshing JADX-AI-MCP in Windsurf settings, check Cascade's tool list for get_manifest_component.
Read one manifest component rather than the full document.
- get_strings
After refreshing JADX-AI-MCP in Windsurf settings, check Cascade's tool list for get_strings.
- get_all_resource_file_names
After refreshing JADX-AI-MCP in Windsurf settings, check Cascade's tool list for get_all_resource_file_names.
- get_resource_file
After refreshing JADX-AI-MCP in Windsurf settings, check Cascade's tool list for get_resource_file.
- rename_class
After refreshing JADX-AI-MCP in Windsurf settings, check Cascade's tool list for rename_class.
- rename_method
After refreshing JADX-AI-MCP in Windsurf settings, check Cascade's tool list for rename_method.
- rename_field
After refreshing JADX-AI-MCP in Windsurf settings, check Cascade's tool list for rename_field.
- rename_package
After refreshing JADX-AI-MCP in Windsurf settings, check Cascade's tool list for rename_package.
- rename_variable
After refreshing JADX-AI-MCP in Windsurf settings, check Cascade's tool list for rename_variable.
Rename a local variable within a method.
- debug_get_stack_frames
After refreshing JADX-AI-MCP in Windsurf settings, check Cascade's tool list for debug_get_stack_frames.
Inspect stack frames from the JADX debugger.
- debug_get_threads
After refreshing JADX-AI-MCP in Windsurf settings, check Cascade's tool list for debug_get_threads.
Retrieve thread information from the debugger.
- debug_get_variables
After refreshing JADX-AI-MCP in Windsurf settings, check Cascade's tool list for debug_get_variables.
Read debugger variable values.
- xrefs_to_class
After refreshing JADX-AI-MCP in Windsurf settings, check Cascade's tool list for xrefs_to_class.
Find class and method references targeting a class.
- xrefs_to_method
After refreshing JADX-AI-MCP in Windsurf settings, check Cascade's tool list for xrefs_to_method.
Find method references, including override-related methods.
- xrefs_to_field
After refreshing JADX-AI-MCP in Windsurf settings, check Cascade's tool list for xrefs_to_field.
Locate methods that access a field.
Troubleshooting JADX-AI-MCP in Windsurf
- Check uv on the machine running Windsurf's MCP integration for JADX-AI-MCP; refresh MCP and inspect Cascade's tools.
- JADX-AI-MCP uses stdio here: Windsurf must keep the configured process running; protocol output belongs on stdout and diagnostics on stderr.
- Known limitation: Requires a plugin plus a separate Python server.
- Known limitation: Remote setups must distinguish the MCP listener from the JADX plugin connection.
- General Windsurf troubleshooting lives in the /clients/windsurf guide.
JADX-AI-MCP — details. Windsurf guide