{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_pj4jq7dvv6v7","handle":"iflow-mcp-ruoji6-java-decompile-mcp","url":"https://wellknown.network/agents/iflow-mcp-ruoji6-java-decompile-mcp","links":{"self":"https://wellknown.network/agents/iflow-mcp-ruoji6-java-decompile-mcp/record.json","html":"https://wellknown.network/agents/iflow-mcp-ruoji6-java-decompile-mcp","markdown":"https://wellknown.network/agents/iflow-mcp-ruoji6-java-decompile-mcp/record.md","api":"https://wellknown.network/api/v1/agents/iflow-mcp-ruoji6-java-decompile-mcp","status":"https://wellknown.network/api/v1/agents/iflow-mcp-ruoji6-java-decompile-mcp/status","claim":"https://wellknown.network/agents/iflow-mcp-ruoji6-java-decompile-mcp/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/iflow-mcp-ruoji6-java-decompile-mcp/claim.json","badge":"https://wellknown.network/agents/iflow-mcp-ruoji6-java-decompile-mcp/badge.svg","openapi":"https://wellknown.network/openapi.json","history":"https://wellknown.network/api/v1/agents/iflow-mcp-ruoji6-java-decompile-mcp/history","tools":"https://wellknown.network/api/v1/agents/iflow-mcp-ruoji6-java-decompile-mcp/tools"},"ard":{"identifier":"urn:air::server:iflow-mcp-ruoji6-java-decompile-mcp","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"iflow-mcp_ruoji6-java-decompile-mcp","summary":"MCP server for Java class and jar file decompilation using CFR","description":"# Java Decompiler MCP Server\n\n一个基于 MCP (Model Context Protocol) 的 Java 反编译工具，使用 CFR 反编译器对 `.class` 和 `.jar` 文件进行反编译。\n\n## 功能特性\n\n- ✅ 单个文件反编译（.class / .jar）\n- ✅ 多个文件批量反编译\n- ✅ 目录递归扫描反编译\n- ✅ 自定义输出目录\n- ✅ 自动下载 CFR 反编译器\n- ✅ 直接保存到文件系统（避免 token 限制）\n- ✅ 实时进度显示\n- ✅ 详细统计信息\n- ✅ **多线程并发处理（大幅提升速度）**\n\n## 改进亮点\n\n### 🚀 解决大文件/大量文件反编译问题\n\n**问题：** 当反编译大量文件时，如果将所有结果作为字符串返回，可能超过 MCP 的 token 限制（例如 413,072 字符）。\n\n**解决方案：**\n\n1. **直接保存到文件系统**（推荐）\n   - 新增 `save_to_file` 参数（默认 `true`）\n   - 反编译结果直接写入指定目录\n   - 仅返回摘要信息（成功数、失败数、输出路径等）\n   - 避免通过 MCP 传输大量内容\n\n2. **实时进度显示**\n   - 新增 `show_progress` 参数（默认 `true`）\n   - 显示当前处理进度：`[1/46] 处理中: Controller.class`\n   - 实时反馈处理状态\n\n3. **详细统计报告**\n   - 成功/失败/跳过文件数\n   - 生成的 .java 文件总数\n   - 输出目录路径\n   - 清晰的格式化输出\n\n### 使用示例\n\n**场景 1：反编译大量文件（推荐方式）**\n```python\n# 使用 8 个线程并发处理，大幅提升速度\ndecompile_directory(\n    directory_path=\"/path/to/classes\",\n    output_dir=\"/path/to/output\",\n    save_to_file=True,      # 默认值\n    show_progress=True,     # 显示进度\n    max_workers=8           # 8 线程并发\n)\n```\n\n**场景 2：反编译少量文件并查看内容**\n```python\n# 返回反编译内容（仅适用于小文件）\ndecompile_file(\n    file_path=\"/path/to/MyClass.class\",\n    save_to_file=False      # 返回内容而不是保存\n)\n```\n\n**场景 3：静默批量处理**\n```python\n# 不显示详细进度，仅返回统计，单线程处理\ndecompile_files(\n    file_paths=[...],\n    show_progress=False,    # 仅显示统计信息\n    max_workers=1           # 单线程\n)\n```\n\n## 环境要求\n\n- Python >= 3.10\n- Java Runtime Environment (JRE)\n- uv (Python 包管理器)\n\n## 安装\n\n### 方式一：通过 uvx 直接使用（推荐）\n\n无需安装，直接在 MCP 配置中使用(可让ai自动下载cfr-0.152.jar然后你手动配置路径)：\n\n```json\n{\n  \"mcpServers\": {\n    \"java-decompiler\": {\n      \"type\": \"stdio\",\n      \"command\": \"uvx\",\n      \"args\": [\"java-decompile-mcp\"],\n      \"env\": {\n        \"CFR_PATH\": \"/你的路径/cfr-0.152.jar\"\n      },\n      \"disabled\": false\n    }\n  }\n}\n```\n\n### 方式二：本地开发\n\n```bash\n# 克隆项目\ngit clone <repository-url>\ncd java-decompile-mcp\n\n# 创建虚拟环境并安装依赖\nuv venv\nsource .venv/bin/activate  # macOS/Linux\n# 或 .venv\\Scripts\\activate  # Windows\n\nuv pip install \"mcp>=1.0.0\"\n```\n\n## MCP 配置\n\n### 方式一：使用 uvx（推荐，已发布到 PyPI）\n\n在 `.kiro/settings/mcp.json…","publisher":null,"homepage":"https://github.com/RuoJi6/java-decompile-mcp","repository":"https://github.com/RuoJi6/java-decompile-mcp","version":"0.3.1","license":"MIT","protocols":["mcp"],"tags":["cfr","decompiler","java","mcp","reverse-engineering"],"pricing":null,"endpoints":[{"url":"pypi:iflow-mcp_ruoji6-java-decompile-mcp","type":"package_pypi","auth":null,"probeable":false},{"url":"pypi:java-decompile-mcp","type":"package_pypi","auth":null,"probeable":false}],"skills":null,"tools":null,"extra":null,"attribution":{"kind":"pypi","name":"pypi","license":"pypi","repoUrl":"pypi","summary":"pypi","version":"pypi","description":"pypi","homepageUrl":"pypi"}},"derived":{"capabilities":[{"slug":"dev.filesystem","name":"Filesystem","confidence":0.802,"provenance":"derived"},{"slug":"dev.version-control","name":"Version Control","confidence":0.791,"provenance":"derived"}],"categories":["dev"],"language":"fr"},"observed":{"status":"unknown","statusReason":"Distributed as a package to run locally; no network endpoint to check.","lastOkAt":null,"lastProbedAt":null,"statusComputedAt":null,"reliability30d":null,"latestObservations":[],"tools":null,"package":{"name":"iflow-mcp_ruoji6-java-decompile-mcp","registry":"pypi","observedAt":"2026-09-15T21:22:10.273Z","publishedAt":"2026-02-26T16:11:01.758220Z","latestVersion":"0.3.1"},"toolSurface":null,"endpointFacts":[]},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"pypi","key":"iflow-mcp_ruoji6-java-decompile-mcp","url":"https://pypi.org/project/iflow-mcp_ruoji6-java-decompile-mcp/","firstSeenAt":"2026-09-09T21:23:27.554Z","fetchedAt":"2026-09-15T20:19:09.920Z","normalizedAt":"2026-09-15T20:19:09.920Z"},{"source":"pypi","key":"java-decompile-mcp","url":"https://pypi.org/project/java-decompile-mcp/","firstSeenAt":"2026-09-09T22:22:17.669Z","fetchedAt":"2026-09-15T21:20:38.558Z","normalizedAt":"2026-09-15T21:20:38.558Z"}]},"firstSeenAt":"2026-09-09T21:23:27.554Z","updatedAt":"2026-09-15T21:22:10.273Z"}