[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-zinja-coder--jadx-ai-mcp":3,"tool-zinja-coder--jadx-ai-mcp":61},[4,18,26,36,44,53],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":17},4358,"openclaw","openclaw\u002Fopenclaw","OpenClaw 是一款专为个人打造的本地化 AI 助手，旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚，能够直接接入你日常使用的各类通讯渠道，包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息，OpenClaw 都能即时响应，甚至支持在 macOS、iOS 和 Android 设备上进行语音交互，并提供实时的画布渲染功能供你操控。\n\n这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地，用户无需依赖云端服务即可享受快速、私密的智能辅助，真正实现了“你的数据，你做主”。其独特的技术亮点在于强大的网关架构，将控制平面与核心助手分离，确保跨平台通信的流畅性与扩展性。\n\nOpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者，以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力（支持 macOS、Linux 及 Windows WSL2），即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你",349277,3,"2026-04-06T06:32:30",[13,14,15,16],"Agent","开发框架","图像","数据工具","ready",{"id":19,"name":20,"github_repo":21,"description_zh":22,"stars":23,"difficulty_score":10,"last_commit_at":24,"category_tags":25,"status":17},3808,"stable-diffusion-webui","AUTOMATIC1111\u002Fstable-diffusion-webui","stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面，旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点，将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。\n\n无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师，还是想要深入探索模型潜力的开发者与研究人员，都能从中获益。其核心亮点在于极高的功能丰富度：不仅支持文生图、图生图、局部重绘（Inpainting）和外绘（Outpainting）等基础模式，还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外，它内置了 GFPGAN 和 CodeFormer 等人脸修复工具，支持多种神经网络放大算法，并允许用户通过插件系统无限扩展能力。即使是显存有限的设备，stable-diffusion-webui 也提供了相应的优化选项，让高质量的 AI 艺术创作变得触手可及。",162132,"2026-04-05T11:01:52",[14,15,13],{"id":27,"name":28,"github_repo":29,"description_zh":30,"stars":31,"difficulty_score":32,"last_commit_at":33,"category_tags":34,"status":17},1381,"everything-claude-code","affaan-m\u002Feverything-claude-code","everything-claude-code 是一套专为 AI 编程助手（如 Claude Code、Codex、Cursor 等）打造的高性能优化系统。它不仅仅是一组配置文件，而是一个经过长期实战打磨的完整框架，旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。\n\n通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能，everything-claude-code 能显著提升 AI 在复杂任务中的表现，帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略，使得模型响应更快、成本更低，同时有效防御潜在的攻击向量。\n\n这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库，还是需要 AI 协助进行安全审计与自动化测试，everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目，它融合了多语言支持与丰富的实战钩子（hooks），让 AI 真正成长为懂上",147882,2,"2026-04-09T11:32:47",[14,13,35],"语言模型",{"id":37,"name":38,"github_repo":39,"description_zh":40,"stars":41,"difficulty_score":32,"last_commit_at":42,"category_tags":43,"status":17},2271,"ComfyUI","Comfy-Org\u002FComfyUI","ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎，专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式，采用直观的节点式流程图界面，让用户通过连接不同的功能模块即可构建个性化的生成管线。\n\n这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景，也能自由组合模型、调整参数并实时预览效果，轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性，不仅支持 Windows、macOS 和 Linux 全平台，还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构，并率先支持 SDXL、Flux、SD3 等前沿模型。\n\n无论是希望深入探索算法潜力的研究人员和开发者，还是追求极致创作自由度的设计师与资深 AI 绘画爱好者，ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",108111,"2026-04-08T11:23:26",[14,15,13],{"id":45,"name":46,"github_repo":47,"description_zh":48,"stars":49,"difficulty_score":32,"last_commit_at":50,"category_tags":51,"status":17},4721,"markitdown","microsoft\u002Fmarkitdown","MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具，专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片（含 OCR）、音频（含语音转录）、HTML 乃至 YouTube 链接等多种格式的解析，能够精准提取文档中的标题、列表、表格和链接等关键结构信息。\n\n在人工智能应用日益普及的今天，大语言模型（LLM）虽擅长处理文本，却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点，它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式，成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外，它还提供了 MCP（模型上下文协议）服务器，可无缝集成到 Claude Desktop 等 LLM 应用中。\n\n这款工具特别适合开发者、数据科学家及 AI 研究人员使用，尤其是那些需要构建文档检索增强生成（RAG）系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性，但其核心优势在于为机器",93400,"2026-04-06T19:52:38",[52,14],"插件",{"id":54,"name":55,"github_repo":56,"description_zh":57,"stars":58,"difficulty_score":10,"last_commit_at":59,"category_tags":60,"status":17},4487,"LLMs-from-scratch","rasbt\u002FLLMs-from-scratch","LLMs-from-scratch 是一个基于 PyTorch 的开源教育项目，旨在引导用户从零开始一步步构建一个类似 ChatGPT 的大型语言模型（LLM）。它不仅是同名技术著作的官方代码库，更提供了一套完整的实践方案，涵盖模型开发、预训练及微调的全过程。\n\n该项目主要解决了大模型领域“黑盒化”的学习痛点。许多开发者虽能调用现成模型，却难以深入理解其内部架构与训练机制。通过亲手编写每一行核心代码，用户能够透彻掌握 Transformer 架构、注意力机制等关键原理，从而真正理解大模型是如何“思考”的。此外，项目还包含了加载大型预训练权重进行微调的代码，帮助用户将理论知识延伸至实际应用。\n\nLLMs-from-scratch 特别适合希望深入底层原理的 AI 开发者、研究人员以及计算机专业的学生。对于不满足于仅使用 API，而是渴望探究模型构建细节的技术人员而言，这是极佳的学习资源。其独特的技术亮点在于“循序渐进”的教学设计：将复杂的系统工程拆解为清晰的步骤，配合详细的图表与示例，让构建一个虽小但功能完备的大模型变得触手可及。无论你是想夯实理论基础，还是为未来研发更大规模的模型做准备",90106,"2026-04-06T11:19:32",[35,15,13,14],{"id":62,"github_repo":63,"name":64,"description_en":65,"description_zh":66,"ai_summary_zh":66,"readme_en":67,"readme_zh":68,"quickstart_zh":69,"use_case_zh":70,"hero_image_url":71,"owner_login":72,"owner_name":73,"owner_avatar_url":74,"owner_bio":75,"owner_company":76,"owner_location":76,"owner_email":77,"owner_twitter":78,"owner_website":79,"owner_url":80,"languages":81,"stars":86,"forks":87,"last_commit_at":88,"license":89,"difficulty_score":90,"env_os":91,"env_gpu":92,"env_ram":92,"env_deps":93,"category_tags":99,"github_topics":100,"view_count":32,"oss_zip_url":76,"oss_zip_packed_at":76,"status":17,"created_at":114,"updated_at":115,"faqs":116,"releases":147},5895,"zinja-coder\u002Fjadx-ai-mcp","jadx-ai-mcp","Plugin for JADX to integrate MCP server","jadx-ai-mcp 是一款专为 Android 逆向分析打造的智能增强插件，它无缝集成于流行的反编译工具 JADX 中，并引入了 MCP（模型上下文协议）服务器架构。简单来说，它让 jadx 具备了与大型语言模型（如 Claude）直接对话的能力，将传统静态代码分析升级为 AI 辅助的智能洞察。\n\n在面对复杂的 Android APK 文件时，人工逐行阅读反编译代码往往耗时费力且容易遗漏关键逻辑。jadx-ai-mcp 正是为了解决这一痛点而生，它能够自动提取代码上下文并发送给 AI 模型，帮助用户快速识别潜在的安全漏洞、梳理业务逻辑或解释晦涩的算法实现，从而大幅降低逆向工程的门槛和时间成本。\n\n这款工具非常适合安全研究人员、移动应用开发者以及逆向工程爱好者使用。无论是进行恶意软件分析、应用安全审计，还是学习第三方应用的架构设计，用户都能从中获益。其独特的技术亮点在于实现了“完全自动化”的工作流：无需手动复制粘贴代码片段，插件即可在 JADX 界面内通过标准 MCP 协议与大模型实时交互，让 AI 成为你随叫随到的逆向分析专家，使复杂的技术分析过程变得更加轻松高效。","\u003Cdiv align=\"center\">\n\n# JADX-AI-MCP (Part of Zin MCP Suite)\n\n⚡ Fully automated MCP server + JADX plugin built to communicate with LLM through MCP to analyze Android APKs using LLMs like Claude — uncover vulnerabilities, analyze APK, and reverse engineer effortlessly.\n\n![GitHub contributors JADX-AI-MCP](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fcontributors\u002Fzinja-coder\u002Fjadx-ai-mcp)\n![GitHub contributors JADX-MCP-SERVER](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fcontributors\u002Fzinja-coder\u002Fjadx-mcp-server)\n![GitHub all releases](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fdownloads\u002Fzinja-coder\u002Fjadx-ai-mcp\u002Ftotal)\n![GitHub release (latest by SemVer)](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fdownloads\u002Fzinja-coder\u002Fjadx-ai-mcp\u002Flatest\u002Ftotal)\n![Latest release](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Frelease\u002Fzinja-coder\u002Fjadx-ai-mcp.svg)\n![Java 11+](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FJava-11%2B-blue)\n![Python 3.10+](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fpython-3%2E10%2B-blue)\n[![License](http:\u002F\u002Fimg.shields.io\u002F:license-apache-blue.svg)](http:\u002F\u002Fwww.apache.org\u002Flicenses\u002FLICENSE-2.0.html)\n\n#### ⭐ Contributors\n\nThanks to these wonderful people for their contributions ⭐\n\u003Ctable>\n  \u003Ctr align=\"center\">\n  \u003Ctd>\n      \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fljt270864457\">\n        \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fzinja-coder_jadx-ai-mcp_readme_37503f87f3a8.png\" width=\"30px;\" alt=\"\"\u002F>\n        \u003Cbr \u002F>\u003Csub>\u003Cb>ljt270864457\u003C\u002Fb>\u003C\u002Fsub>\n      \u003C\u002Fa>\n    \u003C\u002Ftd>\n    \u003Ctd>\n      \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fp0px\">\n        \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fzinja-coder_jadx-ai-mcp_readme_5e9d6f1e7e46.png\" width=\"30px;\" alt=\"\"\u002F>\n        \u003Cbr \u002F>\u003Csub>\u003Cb>p0px\u003C\u002Fb>\u003C\u002Fsub>\n      \u003C\u002Fa>\n    \u003C\u002Ftd>\n    \u003Ctd>\n      \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fbx33661\">\n        \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fzinja-coder_jadx-ai-mcp_readme_224ac1822a32.png\" width=\"30px;\" alt=\"\"\u002F>\n        \u003Cbr \u002F>\u003Csub>\u003Cb>bx33661\u003C\u002Fb>\u003C\u002Fsub>\n      \u003C\u002Fa>\n    \u003C\u002Ftd>\n    \u003Ctd>\n      \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FHaicaji\">\n        \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fzinja-coder_jadx-ai-mcp_readme_e9b4a1a3bd37.png\" width=\"30px;\" alt=\"\"\u002F>\n        \u003Cbr \u002F>\u003Csub>\u003Cb>Haicaji\u003C\u002Fb>\u003C\u002Fsub>\n      \u003C\u002Fa>\n    \u003C\u002Ftd>\n    \u003Ctd>\n      \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FChineseAStar\">\n        \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fzinja-coder_jadx-ai-mcp_readme_ed31f3fd5e97.png\" width=\"30px;\" alt=\"\"\u002F>\n        \u003Cbr \u002F>\u003Csub>\u003Cb>ChineseAStar\u003C\u002Fb>\u003C\u002Fsub>\n      \u003C\u002Fa>\n    \u003C\u002Ftd>\n    \u003Ctd>\n      \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fcyal1r\">\n        \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fzinja-coder_jadx-ai-mcp_readme_3bd85e50d2d6.png\" width=\"30px;\" alt=\"\"\u002F>\n        \u003Cbr \u002F>\u003Csub>\u003Cb>cyal1\u003C\u002Fb>\u003C\u002Fsub>\n      \u003C\u002Fa>\n    \u003C\u002Ftd>\n    \u003Ctd>\n      \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fbadmonkey7\">\n        \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fzinja-coder_jadx-ai-mcp_readme_fb2997d68267.png\" width=\"30px;\" alt=\"\"\u002F>\n        \u003Cbr \u002F>\u003Csub>\u003Cb>badmonkey7\u003C\u002Fb>\u003C\u002Fsub>\n      \u003C\u002Fa>\n    \u003C\u002Ftd>\n       \u003Ctd>\n      \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Ftiann\">\n        \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fzinja-coder_jadx-ai-mcp_readme_d9580322364b.png\" width=\"30px;\" alt=\"\"\u002F>\n        \u003Cbr \u002F>\u003Csub>\u003Cb>tiann\u003C\u002Fb>\u003C\u002Fsub>\n      \u003C\u002Fa>\n    \u003C\u002Ftd>\n    \u003Ctd>\n      \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FZERO-A-ONE\">\n        \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fzinja-coder_jadx-ai-mcp_readme_88263ba21f46.png\" width=\"30px;\" alt=\"\"\u002F>\n        \u003Cbr \u002F>\u003Csub>\u003Cb>ZERO-A-ONE\u003C\u002Fb>\u003C\u002Fsub>\n      \u003C\u002Fa>\n    \u003C\u002Ftd>\n    \u003Ctd>\n      \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fneoz\">\n        \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fzinja-coder_jadx-ai-mcp_readme_15a970b3f3b1.png\" width=\"30px;\" alt=\"\"\u002F>\n        \u003Cbr \u002F>\u003Csub>\u003Cb>neoz\u003C\u002Fb>\u003C\u002Fsub>\n      \u003C\u002Fa>\n    \u003C\u002Ftd>\n    \u003Ctd>\n      \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FSamadiPour\">\n        \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fzinja-coder_jadx-ai-mcp_readme_9ac13b490252.png\" width=\"30px;\" alt=\"\"\u002F>\n        \u003Cbr \u002F>\u003Csub>\u003Cb>SamadiPour\u003C\u002Fb>\u003C\u002Fsub>\n      \u003C\u002Fa>\n    \u003C\u002Ftd>\n    \u003Ctd>\n      \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fwuseluosi\">\n        \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fzinja-coder_jadx-ai-mcp_readme_21e523826702.png\" width=\"30px;\" alt=\"\"\u002F>\n        \u003Cbr \u002F>\u003Csub>\u003Cb>wuseluosi\u003C\u002Fb>\u003C\u002Fsub>\n      \u003C\u002Fa>\n    \u003C\u002Ftd>\n    \u003Ctd>\n      \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FCainYzb\">\n        \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fzinja-coder_jadx-ai-mcp_readme_920c63df6451.png\" width=\"30px;\" alt=\"\"\u002F>\n        \u003Cbr \u002F>\u003Csub>\u003Cb>CainYzb\u003C\u002Fb>\u003C\u002Fsub>\n      \u003C\u002Fa>\n    \u003C\u002Ftd>\n    \u003Ctd>\n      \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Ftbodt\">\n        \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fzinja-coder_jadx-ai-mcp_readme_ee9fc857eb22.png\" width=\"30px;\" alt=\"\"\u002F>\n        \u003Cbr \u002F>\u003Csub>\u003Cb>tbodt\u003C\u002Fb>\u003C\u002Fsub>\n      \u003C\u002Fa>\n    \u003C\u002Ftd>\n    \u003Ctd>\n      \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FLilNick0101\">\n        \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fzinja-coder_jadx-ai-mcp_readme_68fc069b2968.png\" width=\"30px;\" alt=\"\"\u002F>\n        \u003Cbr \u002F>\u003Csub>\u003Cb>LilNick0101\u003C\u002Fb>\u003C\u002Fsub>\n      \u003C\u002Fa>\n    \u003C\u002Ftd>\n    \u003Ctd>\n      \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Flwsinclair\">\n        \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fzinja-coder_jadx-ai-mcp_readme_aab59eafc7ba.png\" width=\"30px;\" alt=\"\"\u002F>\n        \u003Cbr \u002F>\u003Csub>\u003Cb>lwsinclair\u003C\u002Fb>\u003C\u002Fsub>\n      \u003C\u002Fa>\n    \u003C\u002Ftd>\n  \u003C\u002Ftr>\n\u003C\u002Ftable>\n\n\n\n\u003C\u002Fdiv>\n\n\u003C!-- It is a still in early stage of development, so expects bugs, crashes and logical erros.-->\n\n\u003C!-- Standalone Plugin for [JADX](https:\u002F\u002Fgithub.com\u002Fskylot\u002Fjadx) (Started as Fork) with Model Context Protocol (MCP) integration for AI-powered static code analysis and real-time code review and reverse engineering tasks using Claude.-->\n\n\n\u003Cdiv align=\"center\">\n    \u003Cimg alt=\"banner\" height=\"480px\" widht=\"620px\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fzinja-coder_jadx-ai-mcp_readme_75a05da792ee.png\">\n\u003C\u002Fdiv>\n\n\u003C!-- ![jadx-ai-banner.png](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fzinja-coder_jadx-ai-mcp_readme_75a05da792ee.png) Image generated using AI tools. -->\n\n#### Read The Docs\n - Read The Docs is now live: https:\u002F\u002Fjadx-ai-mcp.readthedocs.io\u002Fen\u002Flatest\u002F\n\n---\n\n## 🤖 What is JADX-AI-MCP?\n\n**JADX-AI-MCP** is a plugin for the [JADX decompiler](https:\u002F\u002Fgithub.com\u002Fskylot\u002Fjadx) that integrates directly with [Model Context Protocol (MCP)](https:\u002F\u002Fgithub.com\u002Fanthropic\u002Fmcp) to provide **live reverse engineering support with LLMs like Claude**.\n\nThink: \"Decompile → Context-Aware Code Review → AI Recommendations\" — all in real time.\n\n#### High Level Sequence Diagram\n\n```mermaid\nsequenceDiagram\nLLM CLIENT->>JADX MCP SERVER: INVOKE MCP TOOL\nJADX MCP SERVER->>JADX AI MCP PLUGIN: INVOKE HTTP REQUEST\nJADX AI MCP PLUGIN->>REQUEST HANDLERS: INVOKE HTTP REQUEST HANDLER\nREQUEST HANDLERS->>JADX GUI: PERFORM ACTION\u002FGATHER DATA\nJADX GUI->>REQUEST HANDLERS: ACTION PERFORMED\u002FDATA GATHERED\nREQUEST HANDLERS->>JADX AI MCP PLUGIN: CRAFT HTTP RESPONSE\nJADX AI MCP PLUGIN->>JADX MCP SERVER:HTTP RESPONSE\nJADX MCP SERVER->>LLM CLIENT: MCP TOOL RESULT\n```\n\n### Watch the demos!\n\n- **Perform quick analysis**\n  \nhttps:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002Fb65c3041-fde3-4803-8d99-45ca77dbe30a\n\n- **Quickly find vulnerabilities**\n\nhttps:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002Fc184afae-3713-4bc0-a1d0-546c1f4eb57f\n\n- **Multiple AI Agents Support**\n\nhttps:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002F6342ea0f-fa8f-44e6-9b3a-4ceb8919a5b0\n\n- **Run with your favorite LLM Client**\n\nhttps:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002Fb4a6b280-5aa9-4e76-ac72-a0abec73b809\n\n- **Analyze The APK Resources**\n\nhttps:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002Ff42d8072-0e3e-4f03-93ea-121af4e66eb1\n\n- **Your AI Assistant during debugging of APK using JADX**\n\nhttps:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002F2b0bd9b1-95c1-4f32-9b0c-38b864dd6aec\n\nIt is combination of two tools:\n1. JADX-AI-MCP\n2. [JADX MCP SERVER](https:\u002F\u002Fgithub.com\u002Fzinja-coder\u002Fjadx-mcp-server)\n\n## 🤖 What is JADX-MCP-SERVER?\n\n**JADX MCP Server** is a standalone Python server that interacts with a `JADX-AI-MCP` plugin (see: [jadx-ai-mcp](https:\u002F\u002Fgithub.com\u002Fzinja-coder\u002Fjadx-ai-mcp)) via MCP (Model Context Protocol). It lets LLMs communicate with the decompiled Android app context live.\n\n---\n\n## Other projects in Zin MCP Suite\n - **[APKTool-MCP-Server](https:\u002F\u002Fgithub.com\u002Fzinja-coder\u002Fapktool-mcp-server)**\n - **[JADX-MCP-Server](https:\u002F\u002Fgithub.com\u002Fzinja-coder\u002Fjadx-mcp-server)**\n - **[ZIN-MCP-Client](https:\u002F\u002Fgithub.com\u002Fzinja-coder\u002Fzin-mcp-client)**\n\n## Current MCP Tools\n\nThe following MCP tools are available:\n\n- `fetch_current_class()` — Get the class name and full source of selected class\n- `get_selected_text()` — Get currently selected text\n- `get_all_classes()` — List all classes in the project\n- `get_class_source()` — Get full source of a given class\n- `get_method_by_name()` — Fetch a method's source\n- `search_method_by_name()` — Search method across classes\n- `search_classes_by_keyword()` — Search for classes whose source code contains a specific keyword (supports pagination)\n- `get_methods_of_class()` — List methods in a class\n- `get_fields_of_class()` — List fields in a class\n- `get_smali_of_class()` — Fetch smali of class\n- `get_main_activity_class()` — Fetch main activity from jadx mentioned in AndroidManifest.xml file.\n- `get_main_application_classes_code()` — Fetch all the main application classes' code based on the package name defined in the AndroidManifest.xml.\n- `get_main_application_classes_names()` — Fetch all the main application classes' names based on the package name defined in the AndroidManifest.xml.\n- `get_android_manifest()` — Retrieve and return the AndroidManifest.xml content.\n- `get_manifest_component` - Retrieve specific manifest component instead of whole manifest file\n- `get_strings()` : Fetches the strings.xml file\n- `get_all_resource_file_names()` : Retrieve all resource files names that exists in application\n- `get_resource_file()` : Retrieve resource file content\n- `rename_class()` : Renames the class name\n- `rename_method()` : Renames the method\n- `rename_field()` : Renames the field\n- `rename_package()` : Renames whole package\n- `rename_variable()` : Renames the variable within a method\n- `debug_get_stack_frames()` : Get the stack frames from jadx debugger\n- `debug_get_threads()` : Get the insights of threads from jadx debugger\n- `debug_get_variables()` : Get the variables from jadx debugger\n- `xrefs_to_class()` : Find all references to a class (returns method-level and class-level references, supports pagination)\n- `xrefs_to_method()` : Find all references to a method (includes override-related methods, supports pagination)\n- `xrefs_to_field()` : Find all references to a field (returns methods that access the field, supports pagination)\n  \n---\n\n## 🗒️ Sample Prompts\n\n🔍 Basic Code Understanding\n\n    \"Explain what this class does in one paragraph.\"\n\n    \"Summarize the responsibilities of this method.\"\n\n    \"Is there any obfuscation in this class?\"\n\n    \"List all Android permissions this class might require.\"\n\n🛡️ Vulnerability Detection\n\n    \"Are there any insecure API usages in this method?\"\n\n    \"Check this class for hardcoded secrets or credentials.\"\n\n    \"Does this method sanitize user input before using it?\"\n\n    \"What security vulnerabilities might be introduced by this code?\"\n\n🛠️ Reverse Engineering Helpers\n\n    \"Deobfuscate and rename the classes and methods to something readable.\"\n\n    \"Can you infer the original purpose of this smali method?\"\n\n    \"What libraries or SDKs does this class appear to be part of?\"\n\n    \"Tell me which classes contains code related to 'encryption'?\"\n\n📦 Static Analysis\n\n    \"List all network-related API calls in this class.\"\n\n    \"Identify file I\u002FO operations and their potential risks.\"\n\n    \"Does this method leak device info or PII?\"\n\n🤖 AI Code Modification\n\n    \"Refactor this method to improve readability.\"\n\n    \"Add comments to this code explaining each step.\"\n\n    \"Rewrite this Java method in Python for analysis.\"\n\n📄 Documentation & Metadata\n\n    \"Generate Javadoc-style comments for all methods.\"\n\n    \"What package or app component does this class likely belong to?\"\n\n    \"Can you identify the Android component type (Activity, Service, etc.)?\"\n\n🐞 Debugger Assistant\n```\n   \"Fetch stack frames, varirables and threads from debugger and provide summary\"\n\n   \"Based the stack frames from debugger, explain the execution flow of the application\"\n\n   \"Based on the state of variables, is there security threat?\"\n```\n\n---\n\n## 🛠️ Getting Started \n\n### 1. Download from Releases: https:\u002F\u002Fgithub.com\u002Fzinja-coder\u002Fjadx-ai-mcp\u002Freleases\n\n> [!NOTE]\n>\n> Download both `jadx-ai-mcp-\u003Cversion>.jar` and `jadx-mcp-server-\u003Cversion>.zip` files.\n\n\n```bash\n# 0. Download the jadx-ai-mcp-\u003Cversion>.jar and jadx-mcp-server-\u003Cversion>.zip\nhttps:\u002F\u002Fgithub.com\u002Fzinja-coder\u002Fjadx-ai-mcp\u002Freleases\n\n# 1. \nunzip jadx-ai-mcp-\u003Cversion>.zip\n\n├jadx-mcp-server\u002F\n  ├── jadx_mcp.py\n  ├── requirements.txt\n  ├── README.md\n  ├── LICENSE\n\n├jadx-ai-mcp-\u003Cversion>.jar\n\n# 2. Install the plugin\n\n# For this you can follow two approaches:\n\n## 1. One liner - execute below command in your shell\njadx plugins --install \"github:zinja-coder:jadx-ai-mcp\"\n\n## The above one line code will install the latest version of the plugin directly into the jadx, no need to download the jadx-ai-mcp's .jar file.\n## 2. Or you can use JADX-GUI to install it by following images as shown below:\n```\n\n\u003Cdiv align=\"center\">\n    \u003Cimg alt=\"banner\" height=\"480px\" widht=\"620px\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fzinja-coder_jadx-ai-mcp_readme_895bc00097a0.png\">\n\u003C\u002Fdiv>\n\n\u003Cdiv align=\"center\">\n    \u003Cimg alt=\"banner\" height=\"480px\" widht=\"620px\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fzinja-coder_jadx-ai-mcp_readme_cfad6e08ed53.png\">\n\u003C\u002Fdiv>\n\n\u003Cdiv align=\"center\">\n    \u003Cimg alt=\"banner\" height=\"480px\" widht=\"620px\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fzinja-coder_jadx-ai-mcp_readme_6d25cb1e79a1.png\">\n\u003C\u002Fdiv>\n\n\n```bash\n## 3. GUI method, download the .jar file and follow below steps shown in images\n```\n![img.png](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fzinja-coder_jadx-ai-mcp_readme_8d9af4712341.png)\n![img_1.png](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fzinja-coder_jadx-ai-mcp_readme_237632fb774a.png)\n![img_2.png](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fzinja-coder_jadx-ai-mcp_readme_026c55c76cf5.png)\n![img_3.png](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fzinja-coder_jadx-ai-mcp_readme_e65a77991ca9.png)\n```bash\n# 3. Navigate to jadx-mcp-server directory\ncd jadx-mcp-server\n\n# 4. This project uses uv - https:\u002F\u002Fgithub.com\u002Fastral-sh\u002Fuv instead of pip for dependency management.\n    ## a. Install uv (if you dont have it yet)\ncurl -LsSf https:\u002F\u002Fastral.sh\u002Fuv\u002Finstall.sh | sh\n    ## b. OPTIONAL, if for any reasons, you get dependecy errors in jadx-mcp-server, Set up the environment\nuv venv\nsource .venv\u002Fbin\u002Factivate  # or .venv\\Scripts\\activate on Windows\n    ## c. OPTIONAL Install dependencies\nuv pip install httpx fastmcp\n\n# The setup for jadx-ai-mcp and jadx_mcp_server is done.\n```\n\n## 🤖 2. Use Claude Desktop\n\nMake sure Claude Desktop is running with MCP enabled.\n\nFor instance, I have used following for Kali Linux: https:\u002F\u002Fgithub.com\u002Faaddrick\u002Fclaude-desktop-debian\n\nConfigure and add MCP server to LLM file:\n```bash\nnano ~\u002F.config\u002FClaude\u002Fclaude_desktop_config.json\n```\n\nFor:\n   - Windows: `%APPDATA%\\Claude\\claude_desktop_config.json`\n   - macOS: `~\u002FLibrary\u002FApplication Support\u002FClaude\u002Fclaude_desktop_config.json`\n   \nAnd following content in it:\n```json\n{\n    \"mcpServers\": {\n        \"jadx-mcp-server\": {\n            \"command\": \"\u002F\u003Cpath>\u002F\u003Cto>\u002Fuv\", \n            \"args\": [\n                \"--directory\",\n                \"\u003C\u002FPATH\u002FTO\u002F>jadx-mcp-server\u002F\",\n                \"run\",\n                \"jadx_mcp_server.py\"\n            ]\n        }\n    }\n}\n```\n\nReplace:\n\n- `path\u002Fto\u002Fuv` with the actual path to your `uv` executable\n- `path\u002Fto\u002Fjadx-mcp-server` with the absolute path to where you cloned this\nrepository\n\nThen, navigate code and interact via real-time code review prompts using the built-in integration.\n\n**OR**\n\nor you can install the jadx_mcp_server directly as executable directly using below command:\n\n```\nuv tool install git+https:\u002F\u002Fgithub.com\u002Fzinja-coder\u002Fjadx-mcp-server\n```\n\nand then you can just provide `jadx_mcp_server` in `command` section of mcp configuration.\n\n## 3. Use Cherry Studio\n\nIf you want to configure the MCP tool in Cherry Studio, you can refer to the following configuration.\n- Type: stdio\n- command: uv\n- argument:\n```bash\n--directory\npath\u002Fto\u002Fjadx-mcp-server\nrun\njadx_mcp_server.py\n```\n- `path\u002Fto\u002Fjadx-mcp-server` with the absolute path to where you cloned this\nrepository\n\n## 4. Using LMStudio\n\nYou can also use JADX AI MCP Server with LM Studio by configuring it's mcp.json file. Here's the video guide.\n\nhttps:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002Fb4a6b280-5aa9-4e76-ac72-a0abec73b809\n\n## 5. Running in HTTP Stream Mode\n\nYou can also use Jadx in HTTP Stream Mode using `--http` option with `jadx_mcp_server.py` as shown in following:\n\n```bash\nuv run jadx_mcp_server.py --http\n\nOR\n\nuv run jadx_mcp_server.py --http --port 9999\n```\n\n### Advanced CLI Options — Understanding the Flags\n\nThere are **two separate connections** and each has its own host\u002Fport:\n\n```\n┌─────────────┐    --host \u002F --port     ┌──────────────────┐   --jadx-host \u002F --jadx-port   ┌──────────────────┐\n│  LLM Client │ ◄──────────────────►   │  jadx-mcp-server │ ──────────────────────────►   │  JADX-GUI Plugin │\n│  (Claude,   │   Where the MCP server │                  │   Where the MCP server looks  │  (jadx-ai-mcp)   │\n│   Codex..)  │   LISTENS for clients  │                  │   for the JADX plugin         │                  │\n└─────────────┘                        └──────────────────┘                               └──────────────────┘\n```\n\n| Flag | Default | Controls |\n|------|---------|----------|\n| `--http` | off | Use HTTP transport instead of stdio |\n| `--host` | `127.0.0.1` | **Where the MCP server listens** (bind address for LLM clients) |\n| `--port` | `8651` | **Which port the MCP server listens on** |\n| `--jadx-host` | `127.0.0.1` | **Where to find the JADX plugin** (the target JADX-GUI machine) |\n| `--jadx-port` | `8650` | **Which port the JADX plugin is on** |\n\n### Usage Examples\n\n**Scenario 1 — Everything on the same machine (most common):**\n```bash\n# Default: MCP server on localhost:8651, connects to JADX plugin on localhost:8650\nuv run jadx_mcp_server.py --http\n```\n\n**Scenario 2 — Docker container or WSL (MCP server accessible from host network):**\n```bash\n# MCP server listens on ALL interfaces so the host can reach it\n# JADX plugin is still on the same machine\nuv run jadx_mcp_server.py --http --host 0.0.0.0\n```\n\n**Scenario 3 — JADX-GUI running on a different machine (e.g., remote VM):**\n```bash\n# MCP server runs locally, but connects to JADX plugin on a remote machine\nuv run jadx_mcp_server.py --http --jadx-host 192.168.1.100\n```\n\n**Scenario 4 — Full remote setup (everything on different machines):**\n```bash\n# MCP server listens on all interfaces on port 9999\n# JADX plugin is on a different machine at 192.168.1.100:8652\nuv run jadx_mcp_server.py --http --host 0.0.0.0 --port 9999 --jadx-host 192.168.1.100 --jadx-port 8652\n```\n\n> [!CAUTION]\n> ### ⚠️ Security Warning — Remote Binding\n>\n> When using `--host 0.0.0.0` (or any non-localhost address), the MCP server binds to **all network interfaces** over **plain HTTP with no authentication**. This means:\n>\n> - **Anyone on the network** can connect and invoke all MCP tools\n> - There is **no TLS encryption** — traffic can be intercepted\n> - An attacker can use the server to **read decompiled code**, **rename classes\u002Fmethods**, and **access debug info**\n>\n> **Mitigations:**\n> - Only bind to `0.0.0.0` on **trusted, isolated networks** (e.g., Docker bridge, local VM)\n> - Use a **firewall** to restrict access to the MCP port\n> - Consider an **SSH tunnel** instead: `ssh -L 8651:127.0.0.1:8651 remote-host`\n\n### Stdio Mode Compatibility\n\n> [!NOTE]\n> When running in **stdio** mode (the default, without `--http`), all human-readable output (banner, health check) is written to **stderr** to keep **stdout** reserved for the MCP JSON-RPC stream. This ensures compatibility with Codex, Claude Desktop, and other stdio-based MCP clients.\n\n## 6. Custom port and host configuration for JADX AI MCP Plugin\n\n\u003Cimg width=\"800\" height=\"335\" alt=\"image\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fzinja-coder_jadx-ai-mcp_readme_2e6be87c6224.png\" \u002F>\n\n1. Configure Port: Configure the port on which the JADX AI MCP Plugin will listen on.\n2. Default Port: Revert back the changes and listen on default port.\n3. Restart Server: Force restart the JADX AI MCP Plugin server.\n4. Server Status: Check the status of JADX AI MCP Plugin server.\n\nTo connect with JADX AI MCP Plugin running on custom port, the `--jadx-port` option will be used as shown in following:\n```\nuv run jadx_mcp_server.py --jadx-port 8652\n```\n\nIf the JADX AI MCP Plugin is running on a **different machine** (e.g., JADX on a remote VM, MCP server on your local host), use the `--jadx-host` option:\n```bash\n# Connect to JADX plugin on a remote host\nuv run jadx_mcp_server.py --jadx-host 192.168.1.100 --jadx-port 8650\n```\n\n### CLI Reference — Understanding the Flags\n\nThere are **two separate connections** and each has its own host\u002Fport:\n\n```\n┌─────────────┐    --host \u002F --port     ┌──────────────────┐   --jadx-host \u002F --jadx-port   ┌──────────────────┐\n│  LLM Client │ ◄──────────────────►   │  jadx-mcp-server │ ──────────────────────────►   │  JADX-GUI Plugin │\n│  (Claude,   │   Where the MCP server │                  │   Where the MCP server looks  │  (jadx-ai-mcp)   │\n│   Codex..)  │   LISTENS for clients  │                  │   for the JADX plugin         │                  │\n└─────────────┘                        └──────────────────┘                               └──────────────────┘\n```\n\n| Flag | Default | Controls |\n|------|---------|----------|\n| `--http` | off | Use HTTP transport instead of stdio |\n| `--host` | `127.0.0.1` | **Where the MCP server listens** (bind address for LLM clients) |\n| `--port` | `8651` | **Which port the MCP server listens on** |\n| `--jadx-host` | `127.0.0.1` | **Where to find the JADX plugin** (the target JADX-GUI machine) |\n| `--jadx-port` | `8650` | **Which port the JADX plugin is on** |\n\n### Usage Examples\n\n**Scenario 1 — Everything on the same machine (most common):**\n```bash\n# Default: MCP server on localhost:8651, connects to JADX plugin on localhost:8650\nuv run jadx_mcp_server.py --http\n```\n\n**Scenario 2 — Docker container or WSL (MCP server accessible from host network):**\n```bash\n# MCP server listens on ALL interfaces so the host can reach it\n# JADX plugin is still on the same machine\nuv run jadx_mcp_server.py --http --host 0.0.0.0\n```\n\n**Scenario 3 — JADX-GUI running on a different machine (e.g., remote VM):**\n```bash\n# MCP server runs locally, but connects to JADX plugin on a remote machine\nuv run jadx_mcp_server.py --http --jadx-host 192.168.1.100\n```\n\n**Scenario 4 — Full remote setup (everything on different machines):**\n```bash\n# MCP server listens on all interfaces on port 9999\n# JADX plugin is on a different machine at 192.168.1.100:8652\nuv run jadx_mcp_server.py --http --host 0.0.0.0 --port 9999 --jadx-host 192.168.1.100 --jadx-port 8652\n```\n\nThe MCP Configuration for custom jadx port will be as follows for claude:\n\n```\n{\n  \"mcpServers\": {\n    \"jadx-mcp-server\": {\n      \"command\": \"\u002Fpath\u002Fto\u002Fuv\",\n      \"args\": [\n        \"--directory\",\n        \"\u002Fpath\u002Fto\u002Fjadx-mcp-server\u002F\",\n        \"run\",\n        \"jadx_mcp_server.py\",\n        \"--jadx-port\",\n        \"8652\"\n      ]\n    }\n  }\n}\n```\n\n## Give it a shot\n\n1. Run jadx-gui and load any .apk file\n\n![img_1.png](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fzinja-coder_jadx-ai-mcp_readme_cefc7dc55c81.png)\n\n2. Start claude - You must see hammer symbol\n\n![img2.png](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fzinja-coder_jadx-ai-mcp_readme_4e5d33a5fa47.png)\n\n3. Click on the `hammer` symbol and you should you see somthing like following:\n\n![img3.png](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fzinja-coder_jadx-ai-mcp_readme_758a816e61c3.png)\n\n4. Run following prompt:\n```text\nfetch currently selected class and perform quick sast on it\n```\n![img4.png](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fzinja-coder_jadx-ai-mcp_readme_39b3a9ce2eff.png)\n\n5. Allow access when prompted:\n\n![img_1.png](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fzinja-coder_jadx-ai-mcp_readme_612ba83af431.png)\n\n6. HACK!\n\n![img_2.png](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fzinja-coder_jadx-ai-mcp_readme_9192b5dbe558.png)\n\nThis plugin allows total control over the GUI and internal project model to support deeper LLM integration, including:\n\n- Exporting selected class to MCP\n- Running automated Claude analysis\n- Receiving back suggestions inline\n\n---\n\n## Troubleshooting\n\n[Check here](https:\u002F\u002Fgithub.com\u002Fzinja-coder\u002Fjadx-ai-mcp\u002Fedit\u002Fjadx-ai\u002FTROUBLESHOOTING.md)\n\n## NOTE For Contributors\n\n - The files related to JADX-AI-MCP can be found under this repo.\n\n - The files related to **jadx-mcp-server** can be found [here](https:\u002F\u002Fgithub.com\u002Fzinja-coder\u002Fjadx-mcp-server).\n\n## To report bugs, issues, feature suggestion, Performance issue, general question, Documentation issue.\n - Kindly open an issue with respective template.\n\n - Tested on Claude Desktop Client, support for other AI will be tested soon!\n\n## 🙏 Credits\n\nThis project is a plugin for JADX, an amazing open-source Android decompiler created and maintained by [@skylot](https:\u002F\u002Fgithub.com\u002Fskylot). All core decompilation logic belongs to them. I have only extended it to support my MCP server with AI capabilities.\n\n[📎 Original README (JADX)](https:\u002F\u002Fgithub.com\u002Fskylot\u002Fjadx)\n\nThe original README.md from jadx is included here in this repository for reference and credit.\n\nThis MCP server is made possible by the extensibility of JADX-GUI and the amazing Android reverse engineering community.\n\nAlso huge thanks to [@aaddrick](https:\u002F\u002Fgithub.com\u002Faaddrick) for developing Claude desktop for Debian based linux.\n\nAnd in last thanks to [@anthropics](https:\u002F\u002Fgithub.com\u002Fanthropics) for developing the Model Context Protocol and [@FastMCP](https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Fpython-sdk) team\n\nApart from this, huge thanks to all open source projects which serve as a dependencies for this project and which made this possible.\n\n### Dependencies\n\nThis project uses following awesome libraries.\n\n- Plugin - Java\n  - Javalin     - https:\u002F\u002Fjavalin.io\u002F - Apache 2.0 License\n  - SLF4J       - https:\u002F\u002Fslf4j.org\u002F  - MIT License\n  - org.w3c.dom - https:\u002F\u002Fmvnrepository.com\u002Fartifact\u002Forg.w3c.dom - W3C Software and Document License\n\n- MCP Server - Python\n  - FastMCP - https:\u002F\u002Fgithub.com\u002Fjlowin\u002Ffastmcp - Apache 2.0 License\n  - httpx   - https:\u002F\u002Fwww.python-httpx.org      - BSD-3-Clause (“BSD licensed”) \n\n## 📄 License\n\nJADX-AI-MCP and all related projects inherits the Apache 2.0 License from the original JADX repository.\n\n## ⚖️ Legal Warning\n\n**Disclaimer**\n\nThe tools `jadx-ai-mcp` and `jadx_mcp_server` are intended strictly for educational, research, and ethical security assessment purposes. They are provided \"as-is\" without any warranties, expressed or implied. Users are solely responsible for ensuring that their use of these tools complies with all applicable laws, regulations, and ethical guidelines.\n\nBy using `jadx-ai-mcp` or `jadx_mcp_server`, you agree to use them only in environments you are authorized to test, such as applications you own or have explicit permission to analyze. Any misuse of these tools for unauthorized reverse engineering, infringement of intellectual property rights, or malicious activity is strictly prohibited.\n\nThe developers of `jadx-ai-mcp` and `jadx_mcp_server` shall not be held liable for any damage, data loss, legal consequences, or other consequences resulting from the use or misuse of these tools. Users assume full responsibility for their actions and any impact caused by their usage.\n\nUse responsibly. Respect intellectual property. Follow ethical hacking practices.\n\n---\n\n## 🙌 Contribute or Support\n\n- Found it useful? Give it a ⭐️\n- Got ideas? Open an [issue](https:\u002F\u002Fgithub.com\u002Fzinja-coder\u002Fjadx-ai-mcp\u002Fissues) or submit a PR\n- Built something on top? DM me or mention me — I’ll add it to the README!\n- Do you like my work and keep it going? Sponsor this project.\n  \n---\n\nBuilt with ❤️ for the reverse engineering and AI communities.\n","\u003Cdiv align=\"center\">\n\n# JADX-AI-MCP（Zin MCP 套件的一部分）\n\n⚡ 全自动 MCP 服务器 + JADX 插件，专为通过 MCP 与 LLM 对接而构建，可利用 Claude 等大语言模型分析 Android APK 文件，轻松发现漏洞、分析 APK 并进行逆向工程。\n\n![GitHub contributors JADX-AI-MCP](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fcontributors\u002Fzinja-coder\u002Fjadx-ai-mcp)\n![GitHub contributors JADX-MCP-SERVER](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fcontributors\u002Fzinja-coder\u002Fjadx-mcp-server)\n![GitHub all releases](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fdownloads\u002Fzinja-coder\u002Fjadx-ai-mcp\u002Ftotal)\n![GitHub release (latest by SemVer)](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fdownloads\u002Fzinja-coder\u002Fjadx-ai-mcp\u002Flatest\u002Ftotal)\n![Latest release](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Frelease\u002Fzinja-coder\u002Fjadx-ai-mcp.svg)\n![Java 11+](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FJava-11%2B-blue)\n![Python 3.10+](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fpython-3%2E10%2B-blue)\n[![License](http:\u002F\u002Fimg.shields.io\u002F:license-apache-blue.svg)](http:\u002F\u002Fwww.apache.org\u002Flicenses\u002FLICENSE-2.0.html)\n\n#### ⭐ 贡献者\n\n感谢以下各位的贡献 ⭐\n\u003Ctable>\n  \u003Ctr align=\"center\">\n  \u003Ctd>\n      \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fljt270864457\">\n        \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fzinja-coder_jadx-ai-mcp_readme_37503f87f3a8.png\" width=\"30px;\" alt=\"\"\u002F>\n        \u003Cbr \u002F>\u003Csub>\u003Cb>ljt270864457\u003C\u002Fb>\u003C\u002Fsub>\n      \u003C\u002Fa>\n    \u003C\u002Ftd>\n    \u003Ctd>\n      \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fp0px\">\n        \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fzinja-coder_jadx-ai-mcp_readme_5e9d6f1e7e46.png\" width=\"30px;\" alt=\"\"\u002F>\n        \u003Cbr \u002F>\u003Csub>\u003Cb>p0px\u003C\u002Fb>\u003C\u002Fsub>\n      \u003C\u002Fa>\n    \u003C\u002Ftd>\n    \u003Ctd>\n      \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fbx33661\">\n        \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fzinja-coder_jadx-ai-mcp_readme_224ac1822a32.png\" width=\"30px;\" alt=\"\"\u002F>\n        \u003Cbr \u002F>\u003Csub>\u003Cb>bx33661\u003C\u002Fb>\u003C\u002Fsub>\n      \u003C\u002Fa>\n    \u003C\u002Ftd>\n    \u003Ctd>\n      \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FHaicaji\">\n        \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fzinja-coder_jadx-ai-mcp_readme_e9b4a1a3bd37.png\" width=\"30px;\" alt=\"\"\u002F>\n        \u003Cbr \u002F>\u003Csub>\u003Cb>Haicaji\u003C\u002Fb>\u003C\u002Fsub>\n      \u003C\u002Fa>\n    \u003C\u002Ftd>\n    \u003Ctd>\n      \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FChineseAStar\">\n        \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fzinja-coder_jadx-ai-mcp_readme_ed31f3fd5e97.png\" width=\"30px;\" alt=\"\"\u002F>\n        \u003Cbr \u002F>\u003Csub>\u003Cb>ChineseAStar\u003C\u002Fb>\u003C\u002Fsub>\n      \u003C\u002Fa>\n    \u003C\u002Ftd>\n    \u003Ctd>\n      \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fcyal1r\">\n        \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fzinja-coder_jadx-ai-mcp_readme_3bd85e50d2d6.png\" width=\"30px;\" alt=\"\"\u002F>\n        \u003Cbr \u002F>\u003Csub>\u003Cb>cyal1\u003C\u002Fb>\u003C\u002Fsub>\n      \u003C\u002Fa>\n    \u003C\u002Ftd>\n    \u003Ctd>\n      \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fbadmonkey7\">\n        \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fzinja-coder_jadx-ai-mcp_readme_fb2997d68267.png\" width=\"30px;\" alt=\"\"\u002F>\n        \u003Cbr \u002F>\u003Csub>\u003Cb>badmonkey7\u003C\u002Fb>\u003C\u002Fsub>\n      \u003C\u002Fa>\n    \u003C\u002Ftd>\n       \u003Ctd>\n      \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Ftiann\">\n        \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fzinja-coder_jadx-ai-mcp_readme_d9580322364b.png\" width=\"30px;\" alt=\"\"\u002F>\n        \u003Cbr \u002F>\u003Csub>\u003Cb>tiann\u003C\u002Fb>\u003C\u002Fsub>\n      \u003C\u002Fa>\n    \u003C\u002Ftd>\n    \u003Ctd>\n      \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FZERO-A-ONE\">\n        \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fzinja-coder_jadx-ai-mcp_readme_88263ba21f46.png\" width=\"30px;\" alt=\"\"\u002F>\n        \u003Cbr \u002F>\u003Csub>\u003Cb>ZERO-A-ONE\u003C\u002Fb>\u003C\u002Fsub>\n      \u003C\u002Fa>\n    \u003C\u002Ftd>\n    \u003Ctd>\n      \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fneoz\">\n        \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fzinja-coder_jadx-ai-mcp_readme_15a970b3f3b1.png\" width=\"30px;\" alt=\"\"\u002F>\n        \u003Cbr \u002F>\u003Csub>\u003Cb>neoz\u003C\u002Fb>\u003C\u002Fsub>\n      \u003C\u002Fa>\n    \u003C\u002Ftd>\n    \u003Ctd>\n      \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FSamadiPour\">\n        \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fzinja-coder_jadx-ai-mcp_readme_9ac13b490252.png\" width=\"30px;\" alt=\"\"\u002F>\n        \u003Cbr \u002F>\u003Csub>\u003Cb>SamadiPour\u003C\u002Fb>\u003C\u002Fsub>\n      \u003C\u002Fa>\n    \u003C\u002Ftd>\n    \u003Ctd>\n      \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fwuseluosi\">\n        \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fzinja-coder_jadx-ai-mcp_readme_21e523826702.png\" width=\"30px;\" alt=\"\"\u002F>\n        \u003Cbr \u002F>\u003Csub>\u003Cb>wuseluosi\u003C\u002Fb>\u003C\u002Fsub>\n      \u003C\u002Fa>\n    \u003C\u002Ftd>\n    \u003Ctd>\n      \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FCainYzb\">\n        \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fzinja-coder_jadx-ai-mcp_readme_920c63df6451.png\" width=\"30px;\" alt=\"\"\u002F>\n        \u003Cbr \u002F>\u003Csub>\u003Cb>CainYzb\u003C\u002Fb>\u003C\u002Fsub>\n      \u003C\u002Fa>\n    \u003C\u002Ftd>\n    \u003Ctd>\n      \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Ftbodt\">\n        \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fzinja-coder_jadx-ai-mcp_readme_ee9fc857eb22.png\" width=\"30px;\" alt=\"\"\u002F>\n        \u003Cbr \u002F>\u003Csub>\u003Cb>tbodt\u003C\u002Fb>\u003C\u002Fsub>\n      \u003C\u002Fa>\n    \u003C\u002Ftd>\n    \u003Ctd>\n      \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FLilNick0101\">\n        \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fzinja-coder_jadx-ai-mcp_readme_68fc069b2968.png\" width=\"30px;\" alt=\"\"\u002F>\n        \u003Cbr \u002F>\u003Csub>\u003Cb>LilNick0101\u003C\u002Fb>\u003C\u002Fsub>\n      \u003C\u002Fa>\n    \u003C\u002Ftd>\n    \u003Ctd>\n      \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Flwsinclair\">\n        \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fzinja-coder_jadx-ai-mcp_readme_aab59eafc7ba.png\" width=\"30px;\" alt=\"\"\u002F>\n        \u003Cbr \u002F>\u003Csub>\u003Cb>lwsinclair\u003C\u002Fb>\u003C\u002Fsub>\n      \u003C\u002Fa>\n    \u003C\u002Ftd>\n  \u003C\u002Ftr>\n\u003C\u002Ftable>\n\n\n\n\u003C\u002Fdiv>\n\n\u003C!-- 目前仍处于开发初期，可能存在 bug、崩溃及逻辑错误。 -->\n\n\u003C!-- 一个独立的 [JADX](https:\u002F\u002Fgithub.com\u002Fskylot\u002Fjadx) 插件（最初作为分支项目启动），集成了模型上下文协议（MCP），用于借助 Claude 等工具实现 AI 驱动的静态代码分析、实时代码审查及逆向工程任务。 -->\n\n\n\u003Cdiv align=\"center\">\n    \u003Cimg alt=\"banner\" height=\"480px\" widht=\"620px\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fzinja-coder_jadx-ai-mcp_readme_75a05da792ee.png\">\n\u003C\u002Fdiv>\n\n\u003C!-- ![jadx-ai-banner.png](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fzinja-coder_jadx-ai-mcp_readme_75a05da792ee.png) 使用 AI 工具生成的图像。 -->\n\n#### 文档阅读\n - 文档现已上线：https:\u002F\u002Fjadx-ai-mcp.readthedocs.io\u002Fen\u002Flatest\u002F\n\n---\n\n## 🤖 什么是 JADX-AI-MCP？\n\n**JADX-AI-MCP** 是一个针对 [JADX 反编译器](https:\u002F\u002Fgithub.com\u002Fskylot\u002Fjadx) 的插件，它直接与 [模型上下文协议（MCP）](https:\u002F\u002Fgithub.com\u002Fanthropic\u002Fmcp) 集成，以提供 **基于 Claude 等 LLM 的实时逆向工程支持**。\n\n可以理解为：“反编译 → 上下文感知代码审查 → AI 建议”——全程实时完成。\n\n#### 高级序列图\n\n```mermaid\nsequenceDiagram\nLLM CLIENT->>JADX MCP SERVER: INVOKE MCP TOOL\nJADX MCP SERVER->>JADX AI MCP PLUGIN: INVOKE HTTP REQUEST\nJADX AI MCP PLUGIN->>REQUEST HANDLERS: INVOKE HTTP REQUEST HANDLER\nREQUEST HANDLERS->>JADX GUI: PERFORM ACTION\u002FGATHER DATA\nJADX GUI->>REQUEST HANDLERS: ACTION PERFORMED\u002FDATA GATHERED\nREQUEST HANDLERS->>JADX AI MCP PLUGIN: CRAFT HTTP RESPONSE\nJADX AI MCP PLUGIN->>JADX MCP SERVER:HTTP RESPONSE\nJADX MCP SERVER->>LLM CLIENT: MCP TOOL RESULT\n```\n\n### 观看演示！\n\n- **快速分析**\n  \nhttps:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002Fb65c3041-fde3-4803-8d99-45ca77dbe30a\n\n- **快速查找漏洞**\n\nhttps:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002Fc184afae-3713-4bc0-a1d0-546c1f4eb57f\n\n- **多 AI 代理支持**\n\nhttps:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002F6342ea0f-fa8f-44e6-9b3a-4ceb8919a5b0\n\n- **使用您喜爱的 LLM 客户端运行**\n\nhttps:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002Fb4a6b280-5aa9-4e76-ac72-a0abec73b809\n\n- **分析 APK 资源**\n\nhttps:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002Ff42d8072-0e3e-4f03-93ea-121af4e66eb1\n\n- **在使用 JADX 调试 APK 时的 AI 助手**\n\nhttps:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002F2b0bd9b1-95c1-4f32-9b0c-38b864dd6aec\n\n它是两种工具的结合：\n1. JADX-AI-MCP\n2. [JADX MCP 服务器](https:\u002F\u002Fgithub.com\u002Fzinja-coder\u002Fjadx-mcp-server)\n\n## 🤖 什么是 JADX-MCP-服务器？\n\n**JADX MCP 服务器** 是一个独立的 Python 服务器，它通过 MCP（模型上下文协议）与 `JADX-AI-MCP` 插件（参见：[jadx-ai-mcp](https:\u002F\u002Fgithub.com\u002Fzinja-coder\u002Fjadx-ai-mcp)）进行交互。它使大型语言模型能够实时与反编译后的 Android 应用程序上下文进行通信。\n\n---\n\n## Zin MCP 套件中的其他项目\n - **[APKTool-MCP-Server](https:\u002F\u002Fgithub.com\u002Fzinja-coder\u002Fapktool-mcp-server)**\n - **[JADX-MCP-Server](https:\u002F\u002Fgithub.com\u002Fzinja-coder\u002Fjadx-mcp-server)**\n - **[ZIN-MCP-Client](https:\u002F\u002Fgithub.com\u002Fzinja-coder\u002Fzin-mcp-client)**\n\n## 当前的 MCP 工具\n\n以下 MCP 工具可供使用：\n\n- `fetch_current_class()` — 获取所选类的类名和完整源代码\n- `get_selected_text()` — 获取当前选中的文本\n- `get_all_classes()` — 列出项目中的所有类\n- `get_class_source()` — 获取给定类的完整源代码\n- `get_method_by_name()` — 获取某个方法的源代码\n- `search_method_by_name()` — 在类中搜索方法\n- `search_classes_by_keyword()` — 搜索源代码中包含特定关键字的类（支持分页）\n- `get_methods_of_class()` — 列出类中的所有方法\n- `get_fields_of_class()` — 列出类中的所有字段\n- `get_smali_of_class()` — 获取类的 smali 代码\n- `get_main_activity_class()` — 从 AndroidManifest.xml 文件中获取 jadx 提到的主活动类。\n- `get_main_application_classes_code()` — 根据 AndroidManifest.xml 中定义的包名，获取所有主应用类的代码。\n- `get_main_application_classes_names()` — 根据 AndroidManifest.xml 中定义的包名，获取所有主应用类的名称。\n- `get_android_manifest()` — 检索并返回 AndroidManifest.xml 的内容。\n- `get_manifest_component` — 检索特定的清单组件，而不是整个清单文件\n- `get_strings()` ：获取 strings.xml 文件\n- `get_all_resource_file_names()` ：检索应用程序中存在的所有资源文件名\n- `get_resource_file()` ：检索资源文件的内容\n- `rename_class()` ：重命名类名\n- `rename_method()` ：重命名方法\n- `rename_field()` ：重命名字段\n- `rename_package()` ：重命名整个包\n- `rename_variable()` ：重命名方法内的变量\n- `debug_get_stack_frames()` ：从 jadx 调试器获取堆栈帧\n- `debug_get_threads()` ：从 jadx 调试器获取线程信息\n- `debug_get_variables()` ：从 jadx 调试器获取变量\n- `xrefs_to_class()` ：查找对某个类的所有引用（返回方法级和类级引用，支持分页）\n- `xrefs_to_method()` ：查找对某个方法的所有引用（包括覆盖相关的方法，支持分页）\n- `xrefs_to_field()` ：查找对某个字段的所有引用（返回访问该字段的方法，支持分页）\n\n---\n\n## 🗒️ 示例提示\n\n🔍 基本代码理解\n\n    “用一段话解释这个类的作用。”\n\n    “总结一下这个方法的职责。”\n\n    “这个类中是否有混淆代码？”\n\n    “列出这个类可能需要的所有 Android 权限。”\n\n🛡️ 漏洞检测\n\n    “这个方法中是否存在不安全的 API 使用？”\n\n    “检查这个类中是否有硬编码的秘密或凭据。”\n\n    “这个方法在使用用户输入之前是否进行了清理？”\n\n    “这段代码可能会引入哪些安全漏洞？”\n\n🛠️ 反向工程助手\n\n    “对类和方法进行去混淆并重命名为易读的名称。”\n\n    “你能推断出这个 smali 方法的原始用途吗？”\n\n    “这个类似乎属于哪些库或 SDK？”\n\n    “告诉我哪些类包含与‘加密’相关的代码？”\n\n📦 静态分析\n\n    “列出这个类中所有的网络相关 API 调用。”\n\n    “识别文件 I\u002FO 操作及其潜在风险。”\n\n    “这个方法是否会泄露设备信息或 PII？”\n\n🤖 AI 代码修改\n\n    “重构这个方法以提高可读性。”\n\n    “为这段代码添加注释，解释每一步的操作。”\n\n    “将这个 Java 方法重写为 Python 代码以便分析。”\n\n📄 文档与元数据\n\n    “为所有方法生成 Javadoc 样式的注释。”\n\n    “这个类可能属于哪个包或应用组件？”\n\n    “你能识别出 Android 组件类型吗（Activity、Service 等）？”\n\n🐞 调试器助手\n```\n   “从调试器获取堆栈帧、变量和线程，并提供摘要。”\n\n   “根据调试器提供的堆栈帧，解释应用程序的执行流程。”\n\n   “根据变量的状态，是否存在安全威胁？”\n```\n\n---\n\n## 🛠️ 开始使用\n\n### 1. 从发布页面下载：https:\u002F\u002Fgithub.com\u002Fzinja-coder\u002Fjadx-ai-mcp\u002Freleases\n\n> [!注意]\n>\n> 请同时下载 `jadx-ai-mcp-\u003Cversion>.jar` 和 `jadx-mcp-server-\u003Cversion>.zip` 文件。\n\n\n```bash\n# 0. 下载 jadx-ai-mcp-\u003Cversion>.jar 和 jadx-mcp-server-\u003Cversion>.zip\nhttps:\u002F\u002Fgithub.com\u002Fzinja-coder\u002Fjadx-ai-mcp\u002Freleases\n\n# 1. \n解压 jadx-ai-mcp-\u003Cversion>.zip\n\n├jadx-mcp-server\u002F\n  ├── jadx_mcp.py\n  ├── requirements.txt\n  ├── README.md\n  ├── LICENSE\n\n├jadx-ai-mcp-\u003Cversion>.jar\n\n# 2. 安装插件\n\n# 为此，您可以采取两种方法：\n\n## 1. 一行命令 - 在您的终端中执行以下命令\njadx plugins --install \"github:zinja-coder:jadx-ai-mcp\"\n\n## 上述一行命令会直接将最新版本的插件安装到 jadx 中，无需下载 jadx-ai-mcp 的 .jar 文件。\n## 2. 或者，您也可以使用 JADX-GUI 按照下图所示的方式进行安装：\n```\n\n\u003Cdiv align=\"center\">\n    \u003Cimg alt=\"banner\" height=\"480px\" widht=\"620px\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fzinja-coder_jadx-ai-mcp_readme_895bc00097a0.png\">\n\u003C\u002Fdiv>\n\n\u003Cdiv align=\"center\">\n    \u003Cimg alt=\"banner\" height=\"480px\" widht=\"620px\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fzinja-coder_jadx-ai-mcp_readme_cfad6e08ed53.png\">\n\u003C\u002Fdiv>\n\n\u003Cdiv align=\"center\">\n    \u003Cimg alt=\"banner\" height=\"480px\" widht=\"620px\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fzinja-coder_jadx-ai-mcp_readme_6d25cb1e79a1.png\">\n\u003C\u002Fdiv>\n\n\n```bash\n## 3. GUI 方法，下载 .jar 文件并按照图片中的步骤操作\n```\n![img.png](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fzinja-coder_jadx-ai-mcp_readme_8d9af4712341.png)\n![img_1.png](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fzinja-coder_jadx-ai-mcp_readme_237632fb774a.png)\n![img_2.png](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fzinja-coder_jadx-ai-mcp_readme_026c55c76cf5.png)\n![img_3.png](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fzinja-coder_jadx-ai-mcp_readme_e65a77991ca9.png)\n```bash\n# 3. 进入 jadx-mcp-server 目录\ncd jadx-mcp-server\n\n# 4. 该项目使用 uv - https:\u002F\u002Fgithub.com\u002Fastral-sh\u002Fuv 代替 pip 进行依赖管理。\n    ## a. 安装 uv（如果您还没有安装）\ncurl -LsSf https:\u002F\u002Fastral.sh\u002Fuv\u002Finstall.sh | sh\n    ## b. 可选，如果由于某种原因，您在 jadx-mcp-server 中遇到依赖错误，请设置环境\nuv venv\nsource .venv\u002Fbin\u002Factivate  # 或 .venv\\Scripts\\activate 在 Windows 上\n    ## c. 可选 安装依赖\nuv pip install httpx fastmcp\n\n# 至此，jadx-ai-mcp 和 jadx_mcp_server 的设置已完成。\n```\n\n## 🤖 2. 使用 Claude Desktop\n\n确保 Claude Desktop 已启用 MCP 并正在运行。\n\n例如，我在 Kali Linux 上使用了以下项目：https:\u002F\u002Fgithub.com\u002Faaddrick\u002Fclaude-desktop-debian\n\n配置并添加 MCP 服务器到 LLM 文件中：\n\n```bash\nnano ~\u002F.config\u002FClaude\u002Fclaude_desktop_config.json\n```\n\n对于：\n\n- Windows：`%APPDATA%\\Claude\\claude_desktop_config.json`\n- macOS：`~\u002FLibrary\u002FApplication Support\u002FClaude\u002Fclaude_desktop_config.json`\n\n并在文件中加入以下内容：\n\n```json\n{\n    \"mcpServers\": {\n        \"jadx-mcp-server\": {\n            \"command\": \"\u002F\u003Cpath>\u002F\u003Cto>\u002Fuv\", \n            \"args\": [\n                \"--directory\",\n                \"\u003C\u002FPATH\u002FTO\u002F>jadx-mcp-server\u002F\",\n                \"run\",\n                \"jadx_mcp_server.py\"\n            ]\n        }\n    }\n}\n```\n\n请替换：\n\n- `path\u002Fto\u002Fuv` 为你的 `uv` 可执行文件的实际路径\n- `path\u002Fto\u002Fjadx-mcp-server` 为克隆此仓库的绝对路径\n\n随后，你就可以通过内置集成，在代码导航和实时代码审查提示中进行交互了。\n\n**或者**\n\n你也可以直接使用以下命令将 jadx_mcp_server 安装为可执行文件：\n\n```\nuv tool install git+https:\u002F\u002Fgithub.com\u002Fzinja-coder\u002Fjadx-mcp-server\n```\n\n然后在 mcp 配置的 `command` 部分直接指定 `jadx_mcp_server` 即可。\n\n## 3. 使用 Cherry Studio\n\n如果你想在 Cherry Studio 中配置 MCP 工具，可以参考以下配置：\n\n- 类型：stdio\n- 命令：uv\n- 参数：\n```bash\n--directory\npath\u002Fto\u002Fjadx-mcp-server\nrun\njadx_mcp_server.py\n```\n- `path\u002Fto\u002Fjadx-mcp-server` 为克隆此仓库的绝对路径\n\n## 4. 使用 LMStudio\n\n你也可以通过配置 LMStudio 的 mcp.json 文件来使用 JADX AI MCP 服务器。以下是视频教程：\n\nhttps:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002Fb4a6b280-5aa9-4e76-ac72-a0abec73b809\n\n## 5. 以 HTTP 流模式运行\n\n你还可以使用 `--http` 选项以 HTTP 流模式运行 jadx_mcp_server.py，如下所示：\n\n```bash\nuv run jadx_mcp_server.py --http\n\n或\n\nuv run jadx_mcp_server.py --http --port 9999\n```\n\n### 高级 CLI 选项 — 标志解析\n\n这里有 **两条独立的连接**，每条都有自己的主机\u002F端口：\n\n```\n┌─────────────┐    --host \u002F --port     ┌──────────────────┐   --jadx-host \u002F --jadx-port   ┌──────────────────┐\n│  LLM Client │ ◄──────────────────►   │  jadx-mcp-server │ ──────────────────────────►   │  JADX-GUI Plugin │\n│  (Claude,   │   MCP 服务器在此监听客户端   │                  │   MCP 服务器在此寻找 JADX 插件   │  (jadx-ai-mcp)   │\n│   Codex..)  │                        │                  │                               │                  │\n└─────────────┘                        └──────────────────┘                               └──────────────────┘\n```\n\n| 标志 | 默认值 | 功能 |\n|------|---------|------|\n| `--http` | 关闭 | 使用 HTTP 传输代替 stdio |\n| `--host` | `127.0.0.1` | **MCP 服务器监听的地址**（LLM 客户端的绑定地址） |\n| `--port` | `8651` | **MCP 服务器监听的端口** |\n| `--jadx-host` | `127.0.0.1` | **找到 JADX 插件的位置**（目标 JADX-GUI 机器） |\n| `--jadx-port` | `8650` | **JADX 插件所在的端口** |\n\n### 使用示例\n\n**场景 1 — 所有组件在同一台机器上（最常见）：**\n```bash\n# 默认：MCP 服务器在 localhost:8651，连接到 localhost:8650 的 JADX 插件\nuv run jadx_mcp_server.py --http\n```\n\n**场景 2 — Docker 容器或 WSL（MCP 服务器可通过宿主机网络访问）：**\n```bash\n# MCP 服务器监听所有接口，以便宿主机可以访问\n# JADX 插件仍在同一台机器上\nuv run jadx_mcp_server.py --http --host 0.0.0.0\n```\n\n**场景 3 — JADX-GUI 运行在另一台机器上（例如远程 VM）：**\n```bash\n# MCP 服务器本地运行，但连接到远程机器上的 JADX 插件\nuv run jadx_mcp_server.py --http --jadx-host 192.168.1.100\n```\n\n**场景 4 — 完全远程设置（所有组件位于不同机器上）：**\n```bash\n# MCP 服务器监听所有接口，端口为 9999\n# JADX 插件位于另一台机器上，地址为 192.168.1.100:8652\nuv run jadx_mcp_server.py --http --host 0.0.0.0 --port 9999 --jadx-host 192.168.1.100 --jadx-port 8652\n```\n\n> [!CAUTION]\n> ### ⚠️ 安全警告 — 远程绑定\n>\n> 当使用 `--host 0.0.0.0`（或任何非 localhost 地址）时，MCP 服务器会绑定到 **所有网络接口**，并通过 **无认证的纯 HTTP** 进行通信。这意味着：\n>\n> - **网络中的任何人**都可以连接并调用所有 MCP 工具\n> - 没有 **TLS 加密** — 数据可能被截获\n> - 攻击者可以利用该服务器 **读取反编译后的代码**、**重命名类\u002F方法**，以及 **访问调试信息**。\n>\n> **缓解措施：**\n> - 仅在 **受信任的隔离网络**（如 Docker 网桥、本地 VM）上绑定到 `0.0.0.0`\n> - 使用 **防火墙** 限制对 MCP 端口的访问\n> - 考虑使用 **SSH 隧道**：`ssh -L 8651:127.0.0.1:8651 remote-host`\n\n### stdio 模式兼容性\n\n> [!NOTE]\n> 在 **stdio** 模式下运行时（默认，不带 `--http`），所有人类可读的输出（横幅、健康检查）都会写入 **stderr**，以保留 **stdout** 用于 MCP JSON-RPC 流。这确保了与 Codex、Claude Desktop 等基于 stdio 的 MCP 客户端的兼容性。\n\n## 6. 自定义端口和主机配置用于 JADDO AI MCP 插件\n\n\u003Cimg width=\"800\" height=\"335\" alt=\"image\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fzinja-coder_jadx-ai-mcp_readme_2e6be87c6224.png\" \u002F>\n\n1. 配置端口：设置 JADDO AI MCP 插件监听的端口。\n2. 默认端口：恢复默认设置，使用默认端口。\n3. 重启服务器：强制重启 JADDO AI MCP 插件服务器。\n4. 服务器状态：查看 JADDO AI MCP 插件服务器的状态。\n\n若要连接到运行在自定义端口上的 JADDO AI MCP 插件，需使用 `--jadx-port` 选项，如下所示：\n\n```bash\nuv run jadx_mcp_server.py --jadx-port 8652\n```\n\n如果 JADDO AI MCP 插件运行在 **另一台机器** 上（例如，JADDO 在远程 VM 上，MCP 服务器在你的本地主机上），则使用 `--jadx-host` 选项：\n\n```bash\n# 连接到远程主机上的 JADDO 插件\nuv run jadx_mcp_server.py --jadx-host 192.168.1.100 --jadx-port 8650\n```\n\n### CLI 参考 — 理解标志位\n\n这里有**两个独立的连接**，每个连接都有自己的主机\u002F端口：\n\n```\n┌─────────────┐    --host \u002F --port     ┌──────────────────┐   --jadx-host \u002F --jadx-port   ┌──────────────────┐\n│  LLM 客户端 │ ◄──────────────────►   │  jadx-mcp-server │ ──────────────────────────►   │  JADX-GUI 插件 │\n│  (Claude,   │   MCP 服务器监听客户端   │                  │   MCP 服务器寻找 JADX 插件   │  (jadx-ai-mcp)   │\n│   Codex..)  │                        │                  │                               │                  │\n└─────────────┘                        └──────────────────┘                               └──────────────────┘\n```\n\n| 标志 | 默认值 | 控制内容 |\n|------|--------|----------|\n| `--http` | 关 | 使用 HTTP 传输代替 stdio |\n| `--host` | `127.0.0.1` | **MCP 服务器监听的地址**（LLM 客户端的绑定地址） |\n| `--port` | `8651` | **MCP 服务器监听的端口** |\n| `--jadx-host` | `127.0.0.1` | **查找 JADX 插件的位置**（目标 JADX-GUI 机器） |\n| `--jadx-port` | `8650` | **JADX 插件所在的端口** |\n\n### 使用示例\n\n**场景 1 — 所有组件在同一台机器上（最常见）：**\n```bash\n# 默认：MCP 服务器在 localhost:8651，连接到 localhost:8650 的 JADX 插件\nuv run jadx_mcp_server.py --http\n```\n\n**场景 2 — Docker 容器或 WSL（MCP 服务器可通过宿主机网络访问）：**\n```bash\n# MCP 服务器监听所有接口，以便宿主机可以访问\n# JADX 插件仍在同一台机器上\nuv run jadx_mcp_server.py --http --host 0.0.0.0\n```\n\n**场景 3 — JADX-GUI 运行在另一台机器上（例如远程 VM）：**\n```bash\n# MCP 服务器本地运行，但连接到远程机器上的 JADX 插件\nuv run jadx_mcp_server.py --http --jadx-host 192.168.1.100\n```\n\n**场景 4 — 完全远程设置（所有组件在不同机器上）：**\n```bash\n# MCP 服务器监听所有接口，端口为 9999\n# JADX 插件在另一台机器上，地址为 192.168.1.100:8652\nuv run jadx_mcp_server.py --http --host 0.0.0.0 --port 9999 --jadx-host 192.168.1.100 --jadx-port 8652\n```\n\n针对 Claude 的自定义 jadx 端口的 MCP 配置如下：\n\n```\n{\n  \"mcpServers\": {\n    \"jadx-mcp-server\": {\n      \"command\": \"\u002Fpath\u002Fto\u002Fuv\",\n      \"args\": [\n        \"--directory\",\n        \"\u002Fpath\u002Fto\u002Fjadx-mcp-server\u002F\",\n        \"run\",\n        \"jadx_mcp_server.py\",\n        \"--jadx-port\",\n        \"8652\"\n      ]\n    }\n  }\n}\n```\n\n## 试试看\n\n1. 运行 jadx-gui 并加载任意 .apk 文件\n\n![img_1.png](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fzinja-coder_jadx-ai-mcp_readme_cefc7dc55c81.png)\n\n2. 启动 Claude - 您应该会看到锤子图标\n\n![img2.png](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fzinja-coder_jadx-ai-mcp_readme_4e5d33a5fa47.png)\n\n3. 点击“锤子”图标，您应该会看到类似以下的内容：\n\n![img3.png](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fzinja-coder_jadx-ai-mcp_readme_758a816e61c3.png)\n\n4. 输入以下提示：\n```text\n获取当前选中的类，并对其执行快速 SAST 分析\n```\n![img4.png](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fzinja-coder_jadx-ai-mcp_readme_39b3a9ce2eff.png)\n\n5. 在出现提示时允许访问：\n\n![img_1.png](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fzinja-coder_jadx-ai-mcp_readme_612ba83af431.png)\n\n6. 黑客攻击！\n\n![img_2.png](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fzinja-coder_jadx-ai-mcp_readme_9192b5dbe558.png)\n\n此插件允许完全控制 GUI 和内部项目模型，以支持更深入的 LLM 集成，包括：\n\n- 将选定的类导出到 MCP\n- 运行自动化的 Claude 分析\n- 接收内联建议\n\n---\n\n## 故障排除\n\n[请在此处查看](https:\u002F\u002Fgithub.com\u002Fzinja-coder\u002Fjadx-ai-mcp\u002Fedit\u002Fjadx-ai\u002FTROUBLESHOOTING.md)\n\n## 贡献者须知\n\n- 与 JADX-AI-MCP 相关的文件可在本仓库中找到。\n- 与 **jadx-mcp-server** 相关的文件可在 [此处](https:\u002F\u002Fgithub.com\u002Fzinja-coder\u002Fjadx-mcp-server) 找到。\n\n## 如需报告 bug、问题、功能建议、性能问题、一般性疑问或文档问题，请使用相应的模板提交 issue。\n\n- 已在 Claude Desktop Client 上测试，对其他 AI 的支持将很快推出！\n\n## 🙏 致谢\n\n该项目是为 JADX 开发的一个插件，JADX 是由 [@skylot](https:\u002F\u002Fgithub.com\u002Fskylot) 创建并维护的优秀开源 Android 反编译工具。所有核心反编译逻辑均归其所有。我仅扩展了它，使其能够通过我的 MCP 服务器支持 AI 功能。\n\n[📎 原始 README (JADX)](https:\u002F\u002Fgithub.com\u002Fskylot\u002Fjadx)\n\n原始的 README.md 已包含在本仓库中，以供参考和致谢。\n\n该 MCP 服务器的实现得益于 JADX-GUI 的可扩展性以及出色的 Android 逆向工程社区。\n\n同时，非常感谢 [@aaddrick](https:\u002F\u002Fgithub.com\u002Faaddrick) 为基于 Debian 的 Linux 开发了 Claude 桌面版。\n\n最后，感谢 [@anthropics](https:\u002F\u002Fgithub.com\u002Fanthropics) 开发了 Model Context Protocol，以及 [@FastMCP](https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Fpython-sdk) 团队。\n\n除此之外，还要感谢所有为本项目提供依赖并使其成为可能的开源项目。\n\n### 依赖项\n\n本项目使用了以下优秀的库：\n\n- 插件 - Java\n  - Javalin     - https:\u002F\u002Fjavalin.io\u002F - Apache 2.0 许可证\n  - SLF4J       - https:\u002F\u002Fslf4j.org\u002F  - MIT 许可证\n  - org.w3c.dom - https:\u002F\u002Fmvnrepository.com\u002Fartifact\u002Forg.w3c.dom - W3C 软件与文档许可证\n\n- MCP 服务器 - Python\n  - FastMCP - https:\u002F\u002Fgithub.com\u002Fjlowin\u002Ffastmcp - Apache 2.0 许可证\n  - httpx   - https:\u002F\u002Fwww.python-httpx.org      - BSD-3-Clause（“BSD 许可”）\n\n## 📄 许可证\n\nJADX-AI-MCP 以及所有相关项目继承了来自原始 JADX 仓库的 Apache 2.0 许可证。\n\n## ⚖️ 法律声明\n\n**免责声明**\n\n工具 `jadx-ai-mcp` 和 `jadx_mcp_server` 仅用于教育、研究和道德安全评估目的。它们按“原样”提供，不提供任何明示或暗示的保证。用户应自行负责确保其使用这些工具符合所有适用的法律、法规和道德准则。\n\n通过使用 `jadx-ai-mcp` 或 `jadx_mcp_server`，您同意仅在您有权测试的环境中使用它们，例如您拥有的应用程序或经明确许可可分析的应用程序。严禁将这些工具用于未经授权的逆向工程、侵犯知识产权或恶意活动。\n\n`jadx-ai-mcp` 和 `jadx_mcp_server` 的开发者对因使用或滥用这些工具而导致的任何损害、数据丢失、法律后果或其他后果概不负责。用户应对自己的行为及其使用所产生的任何影响承担全部责任。\n\n请负责任地使用。尊重知识产权。遵循道德黑客实践。\n\n---\n\n## 🙌 贡献或支持\n\n- 觉得有用吗？给个 ⭐️ 吧！\n- 有想法吗？打开一个 [issue](https:\u002F\u002Fgithub.com\u002Fzinja-coder\u002Fjadx-ai-mcp\u002Fissues) 或提交 PR。\n- 基于此构建了什么新东西吗？私信我或提及我——我会将其添加到 README 中！\n- 喜欢我的工作并希望继续支持吗？请赞助本项目。\n\n---\n\n用 ❤️ 为逆向工程和 AI 社区打造。","# JADX-AI-MCP 快速上手指南\n\nJADX-AI-MCP 是一款集成了 Model Context Protocol (MCP) 的 JADX 插件，旨在通过大语言模型（如 Claude）实现对 Android APK 的实时逆向工程、漏洞分析和代码审查。它由 **JADX 插件端** 和 **独立的 Python MCP 服务端** 两部分组成。\n\n## 1. 环境准备\n\n在开始之前，请确保您的开发环境满足以下要求：\n\n*   **操作系统**: Windows, macOS 或 Linux\n*   **Java**: JDK 11 或更高版本 (用于运行 JADX)\n*   **Python**: Python 3.10 或更高版本 (用于运行 MCP Server)\n*   **JADX**: 已安装基础的 JADX 反编译器\n*   **LLM 客户端**: 支持 MCP 协议的客户端（如 Claude Desktop, Zed, 或其他 MCP Host）\n\n## 2. 安装步骤\n\n### 第一步：下载组件\n访问 GitHub Releases 页面下载最新版本的两个核心文件：\n*   `jadx-ai-mcp-\u003Cversion>.jar` (JADX 插件)\n*   `jadx-mcp-server-\u003Cversion>.zip` (MCP 服务端)\n\n> 下载地址：https:\u002F\u002Fgithub.com\u002Fzinja-coder\u002Fjadx-ai-mcp\u002Freleases\n\n### 第二步：部署 MCP 服务端\n解压下载的 ZIP 文件，并安装 Python 依赖。\n\n```bash\n# 解压文件\nunzip jadx-mcp-server-\u003Cversion>.zip\n\n# 进入目录\ncd jadx-mcp-server\n\n# 安装 Python 依赖\npip install -r requirements.txt\n```\n\n### 第三步：安装 JADX 插件\n将 `.jar` 文件放入 JADX 的插件目录中。\n\n*   **Linux\u002FmacOS**: `~\u002F.config\u002Fjadx\u002Fplugins\u002F`\n*   **Windows**: `%APPDATA%\\jadx\\plugins\\`\n\n如果目录不存在，请手动创建。重启 JADX 以加载插件。\n\n### 第四步：配置 MCP 客户端\n在您使用的 LLM 客户端配置文件（通常是 `claude_desktop_config.json` 或类似配置）中添加 MCP Server 配置。\n\n**配置示例 (JSON):**\n\n```json\n{\n  \"mcpServers\": {\n    \"jadx-ai\": {\n      \"command\": \"python\",\n      \"args\": [\"\u002F绝对路径\u002Fto\u002Fjadx-mcp-server\u002Fjadx_mcp.py\"],\n      \"env\": {\n        \"JADX_PLUGIN_PORT\": \"8080\" \n      }\n    }\n  }\n}\n```\n*注意：启动 JADX 后，插件默认会监听一个端口（通常在插件设置中可查看或默认为 8080），确保 MCP Server 能连接到该端口。具体端口请以 JADX 插件界面提示为准。*\n\n## 3. 基本使用\n\n完成安装配置后，按照以下流程开始分析：\n\n1.  **启动 JADX** 并打开目标 APK 文件。\n2.  **确认插件运行**：在 JADX 界面中确认 JADX-AI-MCP 插件状态正常（通常会有日志输出显示服务已启动）。\n3.  **连接 LLM**：打开您的 LLM 客户端（如 Claude Desktop），确保其已加载上述配置的 `jadx-ai` MCP 服务。\n4.  **发送指令**：在聊天窗口中直接输入自然语言指令，AI 将自动调用工具分析当前打开的 APK。\n\n**常用指令示例：**\n\n*   **代码理解**:\n    > \"Explain what this class does in one paragraph.\"\n    > (解释这个类的作用，概括为一段话。)\n\n*   **漏洞检测**:\n    > \"Check this class for hardcoded secrets or credentials.\"\n    > (检查此类中是否有硬编码的密钥或凭证。)\n\n*   **资源分析**:\n    > \"List all network-related API calls in this class.\"\n    > (列出此类中所有与网络相关的 API 调用。)\n\n*   **调试辅助** (需在调试模式下):\n    > \"Fetch stack frames from debugger and provide summary.\"\n    > (获取调试器的堆栈帧并提供摘要。)\n\n通过以上步骤，您即可利用 AI 能力大幅提升 Android 逆向分析的效率。","某安全团队在紧急评估一款疑似窃取用户隐私的第三方安卓应用时，需要快速定位其数据泄露逻辑。\n\n### 没有 jadx-ai-mcp 时\n- 分析师需手动遍历 JADX 中成千上万个混淆后的类名和方法，像大海捞针般寻找敏感 API 调用点。\n- 面对复杂的控制流和加密字符串，人工还原业务逻辑耗时极长，往往需要数小时才能理清数据流向。\n- 不同分析师的经验差异导致分析结果不稳定，容易遗漏隐蔽的后门代码或深层漏洞。\n- 编写分析报告时，需反复截图、复制代码片段并手动注释，文档整理工作占据了大量时间。\n\n### 使用 jadx-ai-mcp 后\n- 直接在 JADX 界面通过 MCP 协议调用大模型，一键询问“查找所有上传通讯录的代码”，瞬间定位关键函数。\n- 利用 AI 自动解构混淆逻辑并解释加密算法，将原本数小时的逆向分析过程压缩至几分钟内完成。\n- 借助大模型的通用知识库，自动识别出非标准的恶意行为模式，显著降低了因人为疏忽导致的漏报风险。\n- 支持让 AI 直接生成包含代码片段和逻辑推导的专业分析报告草稿，实现了从分析到输出的无缝衔接。\n\njadx-ai-mcp 通过将大模型的推理能力注入逆向工程流程，把安卓安全分析从“体力劳动”升级为高效的“人机协作”。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fzinja-coder_jadx-ai-mcp_75a05da7.png","zinja-coder","Jafar Pathan","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fzinja-coder_e4a93040.jpg","Why Think Out Of The Box, When You Can Hack The Box... X)",null,"jafarpathan9090@gmail.com","zinja_coder","https:\u002F\u002Fzinja-coder.github.io\u002F","https:\u002F\u002Fgithub.com\u002Fzinja-coder",[82],{"name":83,"color":84,"percentage":85},"Java","#b07219",100,1682,176,"2026-04-09T08:42:17","Apache-2.0",4,"Windows, macOS, Linux","未说明",{"notes":94,"python":95,"dependencies":96},"该工具由两部分组成：JADX 插件 (JAR) 和独立的 Python MCP 服务器。需要预先安装 Java 11+ 以运行 JADX，并需配置支持 MCP 协议的 LLM 客户端（如 Claude）。README 中未明确提及具体的 GPU、内存需求或额外的 Python 第三方库列表（仅提到有 requirements.txt），主要依赖为 jadx-mcp-server 项目本身。","3.10+",[97,98],"jadx-ai-mcp (JAR plugin)","jadx-mcp-server (Python server)",[35,13,15,14],[101,102,103,104,105,106,107,108,109,110,111,112,113],"ai","mcp-server","mobile","pentesting","reverse-engineering","sast","java","llm","mcp","mcp-servers","model-context-protocol","model-context-protocol-servers","vapt","2026-03-27T02:49:30.150509","2026-04-09T21:34:26.126940",[117,122,127,132,137,142],{"id":118,"question_zh":119,"answer_zh":120,"source_url":121},26757,"更新后出现 HTTP 502 错误，之前运行正常，如何解决？","这通常是因为启动服务器时缺少了必要的参数。请确保使用以下完整命令启动服务：\n`uv run jadx_mcp_server.py --http --port 9000 --jadx-port 8651`\n特别注意必须包含 `--http` 和 `--port` 参数，如果之前漏掉这些参数会导致连接失败。","https:\u002F\u002Fgithub.com\u002Fzinja-coder\u002Fjadx-ai-mcp\u002Fissues\u002F53",{"id":123,"question_zh":124,"answer_zh":125,"source_url":126},26758,"所有请求都返回 502 错误，但服务器显示正在运行且 curl 测试端口正常，原因是什么？","这通常是由全局代理配置引起的。即使你在代理设置中将 `127.0.0.1` 列入了排除列表，某些底层库（如 httpx）仍可能通过代理发送请求。\n解决方案：\n1. 尝试暂时关闭全局代理。\n2. 或者检查并修复代理软件的本地回环排除规则。\n3. 如果问题依旧，尝试重启系统以清除可能的端口占用或网络状态异常。","https:\u002F\u002Fgithub.com\u002Fzinja-coder\u002Fjadx-ai-mcp\u002Fissues\u002F23",{"id":128,"question_zh":129,"answer_zh":130,"source_url":131},26759,"遇到 HTTP 503 错误，且工具栏中看不到锤子图标怎么办？","这是一个已知问题，已在插件版本 v2.2.4 中修复。\n请前往发布页面下载并安装最新版本：https:\u002F\u002Fgithub.com\u002Fzinja-coder\u002Fjadx-ai-mcp\u002Freleases\u002Ftag\u002Fv2.2.4\n更新后请重启 JADX，确保配置中使用 `127.0.0.1` 而不是 `localhost` 以避免潜在的解析问题。","https:\u002F\u002Fgithub.com\u002Fzinja-coder\u002Fjadx-ai-mcp\u002Fissues\u002F12",{"id":133,"question_zh":134,"answer_zh":135,"source_url":136},26760,"启动时报告 'Antigravity Error: calling initialize: EOF' 错误，如何解决？","这个错误通常是因为缺少必要的 Python 依赖包。\n解决方法：\n1. 进入项目目录。\n2. 安装缺失的依赖，特别是 `requests` 库。可以使用命令：`pip install requests` 或在 uv 环境中运行相应的安装命令。\n3. 确保所有 `requirements` 中列出的包都已正确安装。","https:\u002F\u002Fgithub.com\u002Fzinja-coder\u002Fjadx-ai-mcp\u002Fissues\u002F58",{"id":138,"question_zh":139,"answer_zh":140,"source_url":141},26761,"编译项目时提示找不到 'io.github.skylot:jadx-all:jar:1.5.3' 依赖怎么办？","这表明 Maven 无法从中央仓库找到指定版本的 JADX 依赖。\n解决方法：\n1. 确认你使用的 JADX 核心版本与插件要求的版本一致。\n2. 尝试清理本地 Maven 缓存并重新构建：`mvn clean install -U`。\n3. 如果问题持续，检查是否需要在 `pom.xml` 中手动指定正确的 jadx 版本或添加额外的 Maven 仓库源。维护者建议在后续版本中已添加新方法解决此类依赖问题，建议更新至最新代码。","https:\u002F\u002Fgithub.com\u002Fzinja-coder\u002Fjadx-ai-mcp\u002Fissues\u002F32",{"id":143,"question_zh":144,"answer_zh":145,"source_url":146},26762,"安装插件时报错 'Can't find compatible version to install' 怎么处理？","这通常意味着当前安装的 JADX 版本与插件版本不兼容，或者插件安装器无法自动匹配版本。\n建议步骤：\n1. 检查你的 JADX 版本号。\n2. 前往插件发布页 (Releases) 查找与你 JADX 版本明确兼容的插件版本。\n3. 尝试升级到最新的 JADX 和插件版本（例如 v3.3.2 或更高），因为新版本通常修复了版本检测逻辑。\n4. 如果是在旧版本上遇到此问题，请考虑手动安装插件而非使用自动安装功能。","https:\u002F\u002Fgithub.com\u002Fzinja-coder\u002Fjadx-ai-mcp\u002Fissues\u002F30",[148,153,158,163,168,173,178,183,188,193,198,203,208,213,218,223,228,233,238,243],{"id":149,"version":150,"summary_zh":151,"released_at":152},171985,"v6.3.0","## JADX-AI-MCP v6.3.0 发行说明\n我们很高兴地宣布 JADX-AI-MCP v6.3.0 正式发布。此次更新从根本上改进了 MCP 服务器与 JADX 插件之间的连接方式，增强了传输层的安全性，并修复了影响远程\u002FDocker 工作流及 JSON-RPC 稳定性的关键问题。\n\n### 核心特性与架构变更\n\n1. 高级网络拓扑（`--host` 和 `--jadx-host`）  \n   架构经过重新设计，支持更灵活的部署场景，例如将服务器运行在 Docker、WSL 或远程虚拟机中，而与 JADX GUI 分离。\n   \n   - **`--host [IP]`：** Python MCP 服务器现在可以绑定到任意网络接口（如 `0.0.0.0`），允许来自外部网络的 LLM 客户端通过 HTTP 连接。\n   - **`--jadx-host [IP]`：** 替代了插件中硬编码的 `127.0.0.1`。MCP 服务器现在可以连接到运行在完全不同机器上的 JADX 插件。\n\n2. **深度 Stdio 完整性（修复 Claude Desktop 和 LM Studio）**  \n   当服务器以 `stdio` 模式运行时（Claude Desktop 和 Codex 使用该模式），此前任何人类可读的日志都会污染 `stdout`，从而严重破坏 JSON-RPC 流。\n   - 所有应用横幅、启动检查和内部日志现已被严格重定向至 `stderr`。\n   - `stdout` 现在完全专用于纯 MCP 通信。\n\n3. 高级工具参数  \n   清单提取：新增 `get_manifest_component` 工具，用于有针对性地提取精确的 AndroidManifest XML 组件（Activity、Receiver、Service）。\n\n### 🛡️ 安全与稳定性\n- **代理隔离（`trust_env=False`）：** 内部 HTTP 客户端在将流量路由至 JADX 插件时，现会忽略系统代理变量（`http_proxy`\u002F`https_proxy`）。这可防止操作系统级别的 VPN 和企业代理意外拦截或破坏内部的 `127.0.0.1` API 循环。\n- **运行时安全警告：** 当使用 `--host` 绑定到 `0.0.0.0` 等远程接口时，服务器会立即发出不可忽略的初始化警告，提示在开放网络上使用未加密、未认证的 HTTP 传输所带来的风险。\n\n### 校验和 SHA256：\n- jadx-mcp-server-6.3.0.zip: `36b7139e16f754b13c04d995b868eb1d33785e36944b9af65f311fc3f95c94bf`\n- jadx-ai-mcp-6.3.0.jar: `5ccd9593eab85f69115647b3bfba84eb290b620fcd4015c5b8343a90701813d2`\n\n### 新贡献者：\n- @bx33661\n- @Haicaji\n- @ChineseAStar \n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002Fzinja-coder\u002Fjadx-ai-mcp\u002Fcompare\u002Fv6.2.0...v6.3.0","2026-03-29T16:31:31",{"id":154,"version":155,"summary_zh":156,"released_at":157},171986,"v6.2.0","## 修复的问题：\n* 修复了以下问题 -> #81 插件服务器现在能够在 JADX 重新初始化插件时可靠地释放端口。ServerSocketChannel 的提取采用了稳健的多级回退反射策略，兼容 Jetty 12 的内部 API 变更，确保跨类加载器的清理工作能够正确执行。\n\n## 变更内容\n* 依赖升级\n    * Javalin 6.4.0 → 6.7.0（JADX 插件）— 更新至最新的 Javalin 6.x 版本（仍支持 JVM 11）\n    * FastMCP → 3.0.2（Python MCP 服务器）— 更新至最新的 FastMCP 版本\n        * 在 pyproject.toml 中将 mcp[cli] 依赖替换为 fastmcp>=3.0.2\n        * 清理了 requirements.txt 文件（移除了标准库条目，并添加了版本固定）\n\n**完整变更日志**: https:\u002F\u002Fgithub.com\u002Fzinja-coder\u002Fjadx-ai-mcp\u002Fcompare\u002Fv6.1.0...v6.2.0\n\n## 校验和 SHA256:\n- jadx-ai-mcp-6.2.0.jar: `fbd327a274c7afc3b736c20d43c9196e668bd94cd634fe3402661a9cf98e288a`\n- jadx-mcp-server-v6.2.0.zip: `d5af3480c42ce87e322ec0c08784e4f82ea7bf646af56b4a3a7540032159a6ce`","2026-02-28T17:08:29",{"id":159,"version":160,"summary_zh":161,"released_at":162},171987,"v6.1.0","## 变更内容\n\n目前已有两项最具影响力的贡献。\n\n* 1. @ljt270864457 在 https:\u002F\u002Fgithub.com\u002Fzinja-coder\u002Fjadx-ai-mcp\u002Fpull\u002F80 中对 handleSearchClassesByKeyword 进行了增强：\n     1. 包过滤——将搜索范围限制在特定包内，并对 jadx 混淆的包进行特殊处理。\n     2. 多位置搜索——可在多个位置（类名、方法名、字段名、代码、注释）中进行搜索，参数采用 URL 友好的小写形式。\n     3. 改进的方法搜索——通过包含方法名、构造函数名和参数类型，匹配 jadx 的搜索行为。\n\n* 2. 功能：@p0px 在 https:\u002F\u002Fgithub.com\u002Fzinja-coder\u002Fjadx-ai-mcp\u002Fpull\u002F83 中实现了变量\u002F参数重命名功能。这一新的 mcp 工具可用于重命名变量，进一步去混淆代码。\n\n## 贡献者\n* @ljt270864457 在 https:\u002F\u002Fgithub.com\u002Fzinja-coder\u002Fjadx-ai-mcp\u002Fpull\u002F80 中做出了贡献。\n* @p0px 在 https:\u002F\u002Fgithub.com\u002Fzinja-coder\u002Fjadx-ai-mcp\u002Fpull\u002F83 中完成了首次贡献。\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002Fzinja-coder\u002Fjadx-ai-mcp\u002Fcompare\u002Fv6.0.0...v6.1.0\n\n## 校验和 SHA256：\n - jadx-ai-mcp-6.1.0.jar: `ba3a0f66e1aa253ab85faa5c22625d20936aac90543238c09e633f1970852c41`\n - jadx-mcp-server-v6.1.0.zip: `572b814636eebfe5840c9cc5987e1e8c9f38269a118e9b73cccdd178a574e5ca`","2026-01-24T19:12:59",{"id":164,"version":165,"summary_zh":166,"released_at":167},171988,"v6.0.0","# 发布 v6.0.0：模块化架构更新 🏗️\n\n\u003Cimg width=\"480px\" height=\"620px\" alt=\"ChatGPT 图片 2025年12月29日 下午11:56:12\" src=\"https:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002F59ba6b65-79a2-4488-97c5-90f22f29bde3\" \u002F>\n\n### **重大架构重构**\n本次发布标志着项目历史上的一个重要里程碑。我们已将 Java 插件和 Python MCP 服务器从单体式设计过渡到完全模块化的架构。这一变革为更快的功能开发、更便捷的贡献以及更高的稳定性奠定了基础。\n\n📚 新文档\n\n我们现已推出完整的文档站点！再也不用猜测如何配置端口或编写自定义工具了。\n - 首页：[jadx-ai-mcp.readthedocs.io](https:\u002F\u002Fjadx-ai-mcp.readthedocs.io\u002Fen\u002Flatest\u002F)\n\n### **核心亮点**\n*   **模块化 Java 后端**：将原本约 3,800 行的单体文件 `JadxAIMCP.java` 重构为面向特定领域的路由处理器。\n    *   **核心逻辑**：`McpServer.java` 现在负责管理服务器的生命周期。\n    *   **路由处理器**：为不同功能拆分出独立的类：\n        *   `ClassRoutes`（类导航与源代码）\n        *   `SearchRoutes`（方法与类搜索）\n        *   `ResourceRoutes`（清单与资源）\n        *   `RefactoringRoutes`（重命名操作）\n        *   `XrefsRoutes`（交叉引用与使用情况）\n        *   `DebugRoutes`（堆栈帧与变量）\n    *   **UI 分离**：所有 Swing 组件均已移至 `PluginMenu.java`。\n*   **模块化 Python 服务器**：`jadx_mcp_server.py` 脚本已被拆分为结构化的包：\n    *   工具现归于 `src\u002Fserver\u002Ftools\u002F` 目录下（例如 `class_tools.py`、`search_tools.py`）。\n    *   配置集中于 `src\u002Fserver\u002Fconfig.py`。\n*   **维护性提升**：\n    *   主文件大小缩减了 **95%**。\n    *   清晰的关注点分离使得新增端点更加容易。\n    *   单个组件的可测试性显著增强。\n\n### **新增内容**\n*   **性能优化**：由于更整洁的类加载机制，内存占用降低，启动时间更快。\n*   **标准化错误处理**：所有 API 端点的错误响应更加一致。\n\n### **面向贡献者**\n*   **新的目录结构**：请参考 README 中更新后的项目结构。现在添加新功能只需创建一个新的路由类，并将其注册到 `McpServer` 即可。\n*   **更好的入门体验**：代码库现已具备自描述性，导航也更为简便。\n\n### **完整变更日志**\n*   将 `JadxAIMCP.java` 重构为模块化组件。\n*   实现了用于集中管理 Javalin 的 `McpServer`。\n*   创建了用于 UI 交互的 `PluginMenu`。\n*   将 Python MCP 服务器模块化为 `src\u002Fserver` 包。\n\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002Fzinja-coder\u002Fjadx-ai-mcp\u002Fcompare\u002Fv5.0.0...v6.0.0\n***\n\n*衷心感谢所有支持此次重构工作的各位！您的耐心与反馈","2025-12-29T19:34:03",{"id":169,"version":170,"summary_zh":171,"released_at":172},171989,"v5.0.0","## 新增 MCP 工具：\n   -   `xrefs-to-class` - 查找对某个类的所有引用\n        返回方法级别的引用：{ 类, 方法 }\n        返回类级别的引用：{ 类, 方法: \"\" }\n        支持通过 offset 和 limit 参数进行分页\n\n   -  `\u002Fxrefs-to-method` - 查找对某个方法的所有引用\n        包含与重写相关的方法，以支持多态\n        行为与 JADX GUI 的“查找用法”功能一致\n        支持分页\n\n   -  `\u002Fxrefs-to-field` - 查找对某个字段的所有引用\n        返回访问该字段的方法\n        方法字段始终非空（因为字段访问必定发生在方法内）\n        支持分页\n\n## 错误修复：\n* `get_main_application_classes_code()` 中存在一个 bug：插件端和 `jadx_mcp_server.py` 端的实现均缺失，且 JSON 键名不匹配。插件发送的数据使用的是 `'classes'` 键，而 `jadx_mcp_server.py` 却在寻找其他键。\n\n## 变更内容\n* 添加由 @ljt270864457 在 https:\u002F\u002Fgithub.com\u002Fzinja-coder\u002Fjadx-ai-mcp\u002Fpull\u002F59 中实现的引用查询功能。\n* 功能：由 @zinja-coder 在 https:\u002F\u002Fgithub.com\u002Fzinja-coder\u002Fjadx-ai-mcp\u002Fpull\u002F61 中为 `get_all_resource_file_names()` MCP 工具添加了分页支持。\n* 优化：由 @zinja-coder 在 https:\u002F\u002Fgithub.com\u002Fzinja-coder\u002Fjadx-ai-mcp\u002Fpull\u002F62 中将分页工具类从主 `jadx ai mcp` 文件中分离出来。\n* 代码改进\n    * 将 `PaginationUtils` 类分离，以推进模块化设计。\n    * **以下贡献由 @ljt270864457 完成**\n    * 重构：提取通用辅助方法以减少代码重复：\n    *  `validateRequiredParam()` - 参数校验\n    *  `findClassByName()` - 类查找\n    *  `findMethodsByName()` - 方法查找（支持构造函数）\n    *  `findFieldByName()` - 字段查找\n    *  `collectMethodNodeReferences()` - 带去重的引用收集\n    *  `sendXrefsResponse()` - 分页响应处理\n\n## 校验和 SHA256：\n- jadx-ai-mcp-5.0.0.jar: `a071a47587dc0810ecfe013f505eb893f1807e2a54573637dfbaabd1fb957f23`\n- jadx-mcp-server-v5.0.0.zip: `5e7d4a4773c125d754f6d9e5a4c457116b29ac54c0ea97fc8187a187cacf4e85`\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002Fzinja-coder\u002Fjadx-ai-mcp\u002Fcompare\u002Fv4.2.0...v5.0.0","2025-12-05T00:26:41",{"id":174,"version":175,"summary_zh":176,"released_at":177},171990,"v4.2.0","## 新的 MCP 工具\n- `rename_package()`：重命名一个包及其所有类。\n  - 参数：\n    1. `old_package_name`：要重命名的当前包路径（例如：“com.abc.def”）\n    2. `new_package_name`：目标包路径（例如：“com.example.newpkg”）\n  - 返回值：来自 JADX 服务器的重命名结果响应。\n\n**完整更新日志**：https:\u002F\u002Fgithub.com\u002Fzinja-coder\u002Fjadx-ai-mcp\u002Fcompare\u002Fv4.1.0...v4.2.0\n\n## 校验和 SHA256：\n- jadx-ai-mcp-4.2.0.jar：`1d78aef061cd90b7de164603d8c7e023b9e62e2c8307a425a936dd2d86c01d48`\n- jadx-mcp-server-v4.2.0.zip：`5bf6a92e862f08ef92c6e37c8c1c8767f2af9e4bb4a5493348c1132462908bee`","2025-11-27T18:20:30",{"id":179,"version":180,"summary_zh":181,"released_at":182},171991,"v4.1.0","## 新的 MCP 工具\n- `search_classes_by_keyword()`：搜索源代码中包含特定关键字的类（支持分页）\n  - 在 Android APK 的逆向工程和安全分析过程中，分析师经常需要快速定位包含特定关键字的类（例如“encrypt”、“password”、“API_KEY”等）。现有的 `get_all_classes()` 工具仅列出类名，而手动浏览反编译后的代码则非常耗时。此功能提供了一种强大的搜索能力，可以直接扫描所有类的实际源代码。\n\n## 变更\n* 功能提交由 @ljt270864457 在 https:\u002F\u002Fgithub.com\u002Fzinja-coder\u002Fjadx-ai-mcp\u002Fpull\u002F50 中完成\n* feat: 合并了 PR 50，新增用于搜索类代码中特定内容的 MCP 工具，由 @zinja-coder 在 https:\u002F\u002Fgithub.com\u002Fzinja-coder\u002Fjadx-ai-mcp\u002Fpull\u002F51 中完成\n* **完整变更日志**：https:\u002F\u002Fgithub.com\u002Fzinja-coder\u002Fjadx-ai-mcp\u002Fcompare\u002Fv4.0.0...v4.1.0\n\n## 新贡献者\n* @ljt270864457 在 https:\u002F\u002Fgithub.com\u002Fzinja-coder\u002Fjadx-ai-mcp\u002Fpull\u002F50 中完成了首次贡献\n\n## 校验和 SHA256：\n- jadx-ai-mcp-4.1.0.jar：`76ac405e2cdddb4d7af48b4bee3fa046be65a63addddcdf506430130a0c0448e`\n- jadx-mcp-server-4.1.0.zip：`11d3e4096cb1a3d7e2ec503293fea1d2210816499ee3d23d5d1f2947188c58a6`","2025-11-21T11:46:03",{"id":184,"version":185,"summary_zh":186,"released_at":187},171992,"v4.0.0","## 新的 MCP 工具\n1. `debug_get_stack_frames()`：从 Jadx 调试器返回堆栈帧，可用于分析 APK 的执行流程。\n2. `debug_get_threads()`：从 Jadx 调试器返回线程信息。\n3. `debug_get_variables()`：从 jJadx 调试器返回变量信息。\n\n演示：\n\nhttps:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002F2b0bd9b1-95c1-4f32-9b0c-38b864dd6aec\n\n\n## 变更内容\n- 功能：改进了“类未找到”错误提示信息，现在会同时打印出未找到的类名，以便明确是哪个类缺失。\n- 重构：移除了 `.idea` 文件夹。\n- 修复：修复了以下构建错误 -> JadxAIMCP.java:[56,24] 包 jadx.gui.plugins 不存在。\n- 重构：迁移到了 `com.zin.jadxaimcp` 包名。\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002Fzinja-coder\u002Fjadx-ai-mcp\u002Fcompare\u002Fv3.3.5...v4.0.0\n\n### 校验和 SHA256：\n - jadx-mcp-server-v4.0.0.zip：`596d8f74694ff7b14230d5825f1b33f0a35be2d4a76380808708be3a48b60585`\n - jadx-ai-mcp-4.0.0.jar：`bb225f0eb3db9a0929df88c98a05286e351afc7ca8bd25c2f2bad6f8f70a3634`","2025-11-04T23:31:01",{"id":189,"version":190,"summary_zh":191,"released_at":192},171993,"v3.3.5","### 错误修复：\n\n   - 修复了问题 #42 —— 横幅中的 Unicode 字符编码错误，通过捕获 `UnicodeEncodeError` 并输出正常消息来解决；已将横幅更新至 v3.3.5。\n\n### 校验和 SHA256：\n\n   - jadx-ai-mcp-3.3.5.jar：`7c76cb89ab5b6da0b291dccc54c45c03cf2cd44f05d3b61f2f8fc2738e36a0cc`\n   - jadx-mcp-server-v3.3.5.zip：`db3c6b1e096b2c04fe01cfa93e5f91bece9c4edbac303d3f9ad1e93b4a31d91b`","2025-10-31T16:47:34",{"id":194,"version":195,"summary_zh":196,"released_at":197},171994,"v3.3.4","### 错误修复：\n - 修复了 jadx mcp 服务器中的依赖问题 https:\u002F\u002Fgithub.com\u002Fzinja-coder\u002Fjadx-mcp-server\u002Fissues\u002F23\n\n### 校验和 SHA256：\n - jadx-ai-mcp-3.3.4.jar: `d328c808e933125ed2d427f6f2e4448051e8a16c119be459ff576631495c1922`\n - jadx-mcp-server-v3.3.4.zip: `34725fcf948e31f54197ff1e206d750ea33b28c14791b8fa1d75240fa13cd080`","2025-10-27T19:24:49",{"id":199,"version":200,"summary_zh":201,"released_at":202},171995,"v3.3.3","## What's Changed\r\n* Bugfix37 by @ljt270864457  in https:\u002F\u002Fgithub.com\u002Fzinja-coder\u002Fjadx-ai-mcp\u002Fpull\u002F38\r\n* Test implemented for bug #37 in test.sh\r\n* feat: implemented banner for ASCII title, version by in https:\u002F\u002Fgithub.com\u002Fzinja-coder\u002Fjadx-ai-mcp\u002Fpull\u002F39\r\n\r\n## New Contributors\r\n- @ljt270864457  made their contribution in https:\u002F\u002Fgithub.com\u002Fzinja-coder\u002Fjadx-ai-mcp\u002Fpull\u002F#38 and helped fixing issue #37 -> `Bug: Inner classes with $ symbol cannot be retrieved via \u002Fclass-source endpoint`\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fzinja-coder\u002Fjadx-ai-mcp\u002Fcompare\u002Fv3.3.2...v3.3.3\r\n\r\n## Checksum SHA256:\r\n - jadx-ai-mcp-3.3.3.jar: `f6246c51f365f1ab279e3d7dfef44696f4ba9e439166bf7212cc2b125745efe4`\r\n - jadx-mcp-server-v3.3.3.zip: `27accb429681b6f5348d0016dc598e6b1861dbd55a92e387919d76d20267b158`","2025-10-22T08:51:39",{"id":204,"version":205,"summary_zh":206,"released_at":207},171996,"v3.3.2","## Bug Fixes\r\n - fixed the following error -> ERROR - Error in paginated request to strings: the JSON object must be str, bytes or bytearray, not dict\r\n - fixed the following error -> \"HTTP error 400: {\"error\":\"Missing required parameter 'class'\"}.\" in following mcp tools -> get_fields_of_class, get_methods_of_class\r\n - fixed the following error -> Unexpected error: Expecting value: line 1 column 1 (char 0).\r\n - Added dict as a return type in MCP tools to keep up to date with FastMCP -> this solves #33 \r\n\r\n## Optimization\r\n - Performed heavy code optimization on jadx_mcp_server.py see full changelog for details.\r\n - Improved the `test.sh` script to test the both plugin and server thoroughly.\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fzinja-coder\u002Fjadx-ai-mcp\u002Fcompare\u002Fv3.3.1...v3.3.2\r\n\r\n## Checksum SHA256:\r\n - jadx-ai-mcp-3.3.2.jar - `f72801d9c666c59b0f0fa9412f8e0de5ec8586544adb508e0b54da5d6902d27c`\r\n - jadx-mcp-server-v3.3.2.zip - `1a99cb568be8bb3fb75c4b3cd584df7a96710a46a3308280168404be261fecce`","2025-10-16T23:47:27",{"id":209,"version":210,"summary_zh":211,"released_at":212},171997,"v3.3.1","## What's Changed\r\n* fix(plugin): Fix method renaming logic in JadxAIMCP plugin  by @badmonkey7 in https:\u002F\u002Fgithub.com\u002Fzinja-coder\u002Fjadx-ai-mcp\u002Fpull\u002F26\r\n\r\n## New Contributors\r\n- @tbodt  made their first contribution in https:\u002F\u002Fgithub.com\u002Fzinja-coder\u002Fjadx-mcp-server\u002Fpull\u002F#12\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fzinja-coder\u002Fjadx-ai-mcp\u002Fcompare\u002Fv3.3.0...v3.3.1\r\n\r\n## Checksum sha256:\r\n - jadx-mcp-server-v3.3.1.zip : `0ef02846889a20281f0828bac3a06b9d3a50661b2041ebc4695e024b9b59feca`\r\n - jadx-ai-mcp-3.3.1.jar : `db7d44f270dbbcee8bf17a41c82d3061379123f0c19d8ba5c797bcb1a0322b78`","2025-09-11T07:47:47",{"id":214,"version":215,"summary_zh":216,"released_at":217},171998,"v3.3.0","## What's Changed\r\n - **Pagination Overhaul**: \r\n     - Completely rewritten better, improved, efficient and reliable pagination logic. \r\n     - Added pagination support in `get_main_application_classes_code`, `get_strings` and `get_all_classes` mcp tools.\r\n     - Removed pagination from all other mcp tools due to redundancy and out of place feature.\r\n     - Migrated to core FastMCP library\r\n     - Moved to up to date FastMCP library\r\n     - HTTP Stream support up to date with FastMCP library\r\n\r\n## Bug Fixes:\r\n - N\u002FA\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fzinja-coder\u002Fjadx-ai-mcp\u002Fcompare\u002Fv3.2.0...v3.3.0\r\n\r\n\r\n## Checksum SHA-256: \r\n - jadx-ai-mcp-3.3.0.jar: `2f8a1a734090cc8ae960beb2209842f2b06b64a888a065611439fffe928f53de`\r\n - jadx-mcp-server-v3.3.0.zip: `38eb57c29d0e2739a28fda8483d501490a68599c54c5dff9e31c014689de8489`","2025-09-09T16:44:53",{"id":219,"version":220,"summary_zh":221,"released_at":222},171999,"v3.2.0","## What's Changed\r\n - Health check implemented to better troubleshoot the issues\r\n - Custom port option for JADX AI MCP Plugin which can be configured through JADX\r\n - Option to force restart the JADX AI MCP Plugin server\r\n - Option to revert back to default port\r\n - Option to check the status of JADX AI MCP Plugin server\r\n\r\n## Bug Fixes:\r\n - fixed bug where there is no exception message being printed when there is issue jadx mcp plugin\r\n - fixed bug where there is no info being printed on mcp server \r\n - Fixed #23 by providing multiple port options\r\n\r\n## New Contributors\r\n* @CainYzb  made their first contribution in https:\u002F\u002Fgithub.com\u002Fzinja-coder\u002Fjadx-mcp-server\u002Fpull\u002F11\r\n\r\n## Full Changelog\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fzinja-coder\u002Fjadx-ai-mcp\u002Fcompare\u002Fv3.1.0...v3.2.0\r\n\r\n## Checksum SHA-256: \r\n - jadx-ai-mcp-3.2.0.jar: `cdfc5ff6d2188875fd6f38717ad9da683f8a60d508439e508677738165bb9056`\r\n - jadx-mcp-server-v3.2.0.zip: `80fb5c6f434682bb6daa7e5a2bfc15d2bbb54dd219644a8b73523163d8c01766`","2025-09-06T16:33:58",{"id":224,"version":225,"summary_zh":226,"released_at":227},172000,"v3.1.0","## What's New:\r\n - HTTP Stream Support for MCP Server. Now jadx mcp server can be run with `--http` option to run mcp server in HTTP Stream mode.\r\n - Two new options:\r\n     -  `--http`: Runs server in http stream mode \r\n     -  `--port`: Specify port number for MCP Server to listen on in HTTP Stream mode. (Default - 8651)\r\n   \r\n## Bug Fixes:\r\n - Jadx plugin will now wait for jadx to fully load fixing the issues #20 and #19 \r\n\r\n## Checksum SHA256:\r\n - jadx-ai-mcp-3.1.0.jar: `08958332128e690c10539fbc79b3b5e8ea9da3838ee60193c20c8f78cbb09148`\r\n - jadx-mcp-server-v3.1.0.zip: `d064476d0b80bfacd20d5680ff958cc240ca106f8814aa9af85f6b98edd8a13b`","2025-08-31T13:26:37",{"id":229,"version":230,"summary_zh":231,"released_at":232},172001,"v3.0.0","## What's Changed\r\n - New MCP Tools \r\n     - rename class, rename method and rename field by @badmonkey7 to rename the components for better understanding of code. \r\n - fix subclass name logic by @badmonkey7 in https:\u002F\u002Fgithub.com\u002Fzinja-coder\u002Fjadx-ai-mcp\u002Fpull\u002F17\r\n\r\n## New Contributors\r\n* @badmonkey7 made their first contribution in https:\u002F\u002Fgithub.com\u002Fzinja-coder\u002Fjadx-ai-mcp\u002Fpull\u002F17\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fzinja-coder\u002Fjadx-ai-mcp\u002Fcompare\u002Fv2.2.12...v3.0.0\r\n\r\n## Checksum SHA-256: \r\n - jadx-ai-mcp-3.0.0.jar: `fa7bfcadd858d7740183c3a93625f16c53c1a826d94a6f13810d5d03e5861e73`\r\n - jadx-mcp-server-v3.0.0.zip: `246f40d32aaec2521c658e5c067001df19b24439c6e75e0de9a5265f4a9d2a0d`","2025-07-31T20:26:20",{"id":234,"version":235,"summary_zh":236,"released_at":237},172002,"v2.2.12","### Fixes:\r\n- Fixed the Issue #9 \r\n\r\n\r\n### Checksum:\r\n   -  jadx-ai-mcp-2.2.12.jar: 45ebda1e943a2b546a1126647065de955153c8206371e2feee507da4604f4f25\r\n   -  jadx-mcp-server-v2.2.12.zip: 5fef9935b8bbaa4730fc0142e67ed610be3eb064de55b71934f2ad75303f6633\r\n","2025-07-31T19:46:59",{"id":239,"version":240,"summary_zh":241,"released_at":242},172003,"v2.2.11","## Bug Fixes\r\n* Fixed lot's of mismatch between Jadx plugin and MCP Server. See full change log.\r\n\r\n## What's Changed\r\n* Removed Caching to simplify the script and for smooth error free working.\r\n* Optimized the readme and added the configuration method for Cherry Studio by @ZERO-A-ONE in https:\u002F\u002Fgithub.com\u002Fzinja-coder\u002Fjadx-ai-mcp\u002Fpull\u002F16\r\n\r\n## New Contributors\r\n* @ZERO-A-ONE made their first contribution in https:\u002F\u002Fgithub.com\u002Fzinja-coder\u002Fjadx-ai-mcp\u002Fpull\u002F16\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fzinja-coder\u002Fjadx-ai-mcp\u002Fcompare\u002Fv2.2.4...v2.2.11\r\n\r\n## Checksum\r\n* jadx-ai-mcp-2.2.11.jar: `f94f4743e45c712454fdc33da6597f00301de42d672f346d112c0f12fcaf5e82`\r\n* jadx-mcp-server-v2.2.11.zip: `0903894c0b66285d92cb29d119f0bf96baf59b098f485c66c4d3729a4ed64177`","2025-06-19T14:56:15",{"id":244,"version":245,"summary_zh":246,"released_at":247},172004,"v2.2.4","### Whats New:\r\n\r\n- New MCP Tools:\r\n    - **get_strings()** : Fetches the strings.xml file\r\n    - **get_all_resource_file_names()** : Retrieve all resource files names that exists in application\r\n    - **get_resource_file()** : Retrieve resource file content  \r\n\r\n### Bug Fix \u002F Optimization:\r\n- Added fix for following -> [Issue: 12](https:\u002F\u002Fgithub.com\u002Fzinja-coder\u002Fjadx-ai-mcp\u002Fissues\u002F12) \r\n- Better error logging\r\n- Removed redundant code\u002F better in-case sensitive logic to search methods across classes\r\n- Added proper reference to the code borrowed from JADX\r\n- Restructured code for better readability and understanding\r\n- Added error handling for missing query parameters\r\n- Fixed logging issue, previously sl4j was not logging which is fixed now.\r\n- Fixed endpoint mismatches along with data format mismatch between jadx plugin and jadx mcp server.\r\n\r\n### Contributors:\r\n@SamadiPour for providing fix for #12 \r\n\r\n### CheckSum:\r\njadx-ai-mcp-2.2.4.jar - `sha256 - 0ef89ae3aa04965ebb1b433069eacb1be53da7cf270ec310ba9fe3f6508672a7`\r\njadx-mcp-server-v2.2.4.zip - `sha256 - a0bef7a03cee2530253419a23006d1e9f25eedef97fcb4f9aed25650b924bc5a`","2025-05-09T16:46:45"]