mcpField
D
dejared

dejared

本地服务
github.com/hqkh4nh开发工具710 周前更新

关于 dejared

dejared-mcp 是面向 AI 编码 Agent 和开发者的 Java 归档分析器,适用于调查没有源代码的库。它可浏览归档内容、搜索字节码、提取元数据,并使用 CFR、Vineflower 或 Procyon 反编译类。

主要功能

  1. 01浏览包、类和资源
  2. 02读取内嵌文本资源
  3. 03搜索类名和字节码字符串
  4. 04提取类与包的元数据
  5. 05使用三种引擎反编译类

适用场景

  1. 01检查没有源文件的第三方库
  2. 02查找内嵌配置或清单数据
  3. 03沿堆栈跟踪调查依赖库
  4. 04检查混淆过的插件或 Mod

MCP 相关

这是一个 MCP 服务,提供九种工具用于归档发现、字节码搜索、元数据提取和类反编译,并通过 stdio 与 MCP 客户端通信。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"hqkh4nh-dejared": {
"command": "npx",
"args": [
"-y",
"dejared-mcp"
]
}
}
}
启动命令npx -y dejared-mcp

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmdejared-mcp1.2.1

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

Java Node.js npm version npm downloads License: MIT

dejared-mcp:Java 反编译 MCP 服务

dejared-mcp 是一款支持 Model Context Protocol 的 Java 反编译器和 JAR 分析工具。它能让 AI 编码 Agent(Claude Code、Codex、Cursor、VS Code)打开 .jar、.war、.ear 或 .aar 文件,列出其中的内容、搜索字节码,并使用 CFR、Vineflower 或 Procyon 将任意类反编译回 Java 源代码。

Claude Code Codex Install in VS Code Add to Cursor

目录

概述

dejared-mcp 是一款基于 Java、以 npm 包形式分发的 MCP 服务。它提供九种工具,分为三个类别:探索、搜寻和深度分析。AI 助手可以使用这些工具浏览 JAR 文件结构、搜索字节码中的类和字符串字面量,并将 .class 文件反编译为可读的 Java 源代码。

当依赖项没有附带源码时,可以使用它来查看第三方库的实际行为、恢复嵌入在 JAR 中的 application.yml 或 MANIFEST.MF、沿着堆栈跟踪深入分析没有源码的库,或检查混淆过的插件或模组。它可以取代手动运行 jar tf、unzip、javap,或使用桌面反编译器。

任何基于 ZIP 的 Java 归档文件都适用:.jar、.war、.ear、.aar 以及 Spring Boot fat-jar。

npm 包充当轻量级封装程序,首次运行时会下载并缓存服务 JAR,随后通过 java -jar 使用 stdio 传输方式启动它。

前置条件

  • Node.js 20 或更高版本
  • Java 17 或更高版本(JRE 即可)

快速开始

推荐通过插件安装。只需两条命令,即可为 Agent 提供这两部分内容:九种 MCP 工具,以及在需要时提示它使用这些工具,而不是调用 jar tf、unzip 或 javap 的 jar-analysis 技能。

claude plugin marketplace add hqkh4nh/dejared-mcp
claude plugin install dejared@dejared-mcp-marketplace

Codex 也提供相同的套件。请参阅作为插件安装。 其他客户端请使用普通 MCP 配置。

安装为插件(推荐)

MCP 服务本身为 Agent 提供 9 个工具,但不会告诉 Agent 何时 使用这些工具,因此大多数 Agent 仍习惯使用 jar tf、unzip -p 和 javap -p,从不使用你安装的工具。

插件会将这两部分打包在一起:

部分作用
MCP 服务功能 下列出的 9 个工具
jar-analysis 技能将 JAR 问题交由这些工具处理,优先选择开销较小的工具,并知道应尝试使用哪个反编译器

目前有两个工具支持此插件。其他所有工具均为 仅支持 MCP。

Claude Code
claude plugin marketplace add hqkh4nh/dejared-mcp
claude plugin install dejared@dejared-mcp-marketplace

在会话中,也可以使用 /plugin marketplace add ... 和 /plugin install ... 执行相同操作。如果安装摘要显示 Run /reload-plugins to activate,请运行此命令。

Codex
codex plugin marketplace add hqkh4nh/dejared-mcp
codex plugin add dejared@dejared-mcp-marketplace

之后启动新会话,以加载捆绑的技能和服务。使用 codex mcp list 检查。dejared 应显示为 enabled。

安装为 MCP 服务

适用于没有插件系统的客户端。你可以使用这些工具,但不会获得引导 Agent 使用它们的技能。

大多数客户端都接受以下标准配置:

{
  "mcpServers": {
    "dejared": {
      "command": "npx",
      "args": ["-y", "dejared-mcp"]
    }
  }
}
从命令行安装

如果你的工具有 CLI,只需一行命令:

claude mcp add dejared -- npx -y dejared-mcp     # Claude Code
codex mcp add dejared -- npx -y dejared-mcp      # Codex
amp mcp add dejared -- npx -y dejared-mcp        # Amp
gemini mcp add dejared npx -y dejared-mcp        # Gemini CLI
配置文件位置

将标准配置放入相应工具的配置文件中:

工具位置
Claude Desktop%APPDATA%\Claude\claude_desktop_config.json(Windows) · ~/Library/Application Support/Claude/claude_desktop_config.json(macOS)
Claude Code项目根目录下的 .mcp.json
Cursor.cursor/mcp.json(项目级) · ~/.cursor/mcp.json(全局)
Windsurf设置中的 MCP 服务面板,或设置文件中的 mcpServers
ClineMCP 设置文件,可通过扩展的 MCP Servers 面板访问
Antigravity Editor~/.gemini/antigravity/mcp_config.json
Kiro.kiro/settings/mcp.json
Copilot CLI~/.copilot/mcp-config.json,或运行 /mcp add
Gemini CLI~/.gemini/settings.json(全局) · .gemini/settings.json(项目级)
Goose高级设置 → 扩展 → 添加自定义扩展,类型选择 STDIO
JetBrains IDEs设置 → 工具 → AI 助手 → Model Context Protocol(MCP)
Qodo Gen聊天面板 → 连接更多工具 → + 添加新的 MCP

有几种配置需要额外设置。展开下方内容查看。

Codex:使用 TOML,而非 JSON
codex mcp add dejared -- npx -y dejared-mcp
codex mcp list

-- 很重要:其后的所有内容都是服务的启动命令。

也可以编辑 ~/.codex/config.toml(全局)或 .codex/config.toml(项目级):

[mcp_servers.dejared]
command = "npx"
args = ["-y", "dejared-mcp"]

# Only if Java is not on your PATH
[mcp_servers.dejared.env]
DEJARED_JAVA_PATH = "/path/to/java"
VS Code (GitHub Copilot):使用 servers,而非 mcpServers

创建或编辑 .vscode/mcp.json:

{
  "servers": {
    "dejared": {
      "command": "npx",
      "args": ["-y", "dejared-mcp"]
    }
  }
}

保存后,点击服务条目上方的 Start,然后在 Copilot Chat 中使用 Agent 模式。

opencode:命令为数组

编辑 ~/.config/opencode/opencode.json:

{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "dejared": {
      "type": "local",
      "command": ["npx", "-y", "dejared-mcp"],
      "enabled": true
    }
  }
}
纯 Java(无需 Node.js)

如果你希望直接运行服务 JAR,而不使用 Node.js:

  1. 从 GitHub Releases 下载最新的 JAR。

  2. 运行:

    java -jar dejared-mcp-<version>.jar
    
  3. 将 MCP 客户端配置为直接使用 JAR,而不是 npx:

    {
      "mcpServers": {
        "dejared": {
          "command": "java",
          "args": ["-jar", "/path/to/dejared-mcp-<version>.jar"]
        }
      }
    }
    

功能

内容发现

浏览和读取 JAR 内容。

工具描述
dejared_list_packages列出所有包及其类数量
dejared_list_classes列出指定包中的类
dejared_list_resources列出非类资源文件
dejared_read_resource读取文本资源(YAML、XML、properties、JSON 等)
搜索

在 JAR 文件中搜索。

工具描述
dejared_search_class按名称搜索类
dejared_search_string在字节码中搜索字符串字面量(URL、SQL、错误消息)
深度分析

检查元数据并反编译类。

工具描述
dejared_get_metadata通过 ASM 提取类元数据(速度快,无需反编译)
dejared_dump_package_metadata批量提取整个包的元数据
dejared_decompile_class将 .class 文件反编译为 Java 源代码

反编译引擎

dejared-mcp 支持三种反编译引擎。可以通过 dejared_decompile_class 工具按请求指定引擎。

引擎描述
CFR(默认)可靠的通用反编译器
VineflowerFernFlower 的现代分支,能够很好地处理较新的 Java 特性
Procyon备选引擎,在某些边缘情况下处理得更好

自定义 Java 路径

如果 Java 不在系统 PATH 中,请在 MCP 配置中设置 DEJARED_JAVA_PATH 环境变量。此设置适用于所有基于 npx 的配置:

{
  "mcpServers": {
    "dejared": {
      "command": "npx",
      "args": ["-y", "dejared-mcp"],
      "env": {
        "DEJARED_JAVA_PATH": "/path/to/java"
      }
    }
  }
}

服务配置

属性默认值描述
dejared.cache.max-size500反编译 LRU 缓存中的最大条目数
dejared.security.max-resource-size5242880资源文件的最大大小(字节)
dejared.security.decompile-timeout-seconds30每次反编译的超时时间

工作原理

npm 包是一个精简的 Node.js 封装。首次运行时,它会:

  1. 检查平台缓存目录中是否有与当前版本匹配的缓存 JAR。
    • Linux:$XDG_CACHE_HOME/dejared-mcp(默认值为 ~/.cache/dejared-mcp)
    • macOS:~/Library/Caches/dejared-mcp
    • Windows:%LOCALAPPDATA%\dejared-mcp
  2. 如果 JAR 未缓存,则从 GitHub Releases 下载。
  3. 启动 java -jar,并继承标准输入输出以传输 MCP 通信。

服务使用标准输入输出通过模型上下文协议进行通信。

常见问题与故障排除

问:已安装 Java,但服务找不到它。

请在 MCP 配置中设置 DEJARED_JAVA_PATH 环境变量。参见自定义 Java 路径。

问:服务启动时出现权限错误。

请确保缓存的 JAR 文件可读。缓存位置取决于你的平台。缓存目录路径请参见工作原理。

问:反编译超时或返回错误。

某些类难以反编译。可以在 dejared_decompile_class 工具中指定 vineflower 或 procyon,尝试使用其他引擎。默认超时时间为 30 秒,可以通过 dejared.security.decompile-timeout-seconds 调整。

问:需要哪个版本的 Java?

Java 17 或更高版本。JRE 已足够,无需完整的 JDK。

问:可以在没有 Node.js 的情况下运行服务吗?

可以。从 GitHub Releases 下载 JAR,然后直接使用 java -jar 运行。参见安装为 MCP 服务中的“纯 Java”部分。

参与贡献

欢迎贡献。请遵循以下指南:

  1. Fork 仓库,并从 master 创建功能分支。
  2. 确保更改可以编译并通过现有测试。
  3. 编写清晰的提交消息,说明每项更改的目的。
  4. 针对 master 提交 Pull Request,并描述更改内容及原因。

项目结构中列出的每个清单文件都包含一个 version 字段;如果其中任何字段与 package.json 不一致,CI 将导致构建失败。请一并更新它们。

项目结构
dejared-mcp/
├── bin/                    # Node.js CLI entry point
├── lib/                    # Node.js wrapper (JAR download and process management)
├── java-mcp/               # Java MCP server (Spring Boot, Gradle)
│   └── src/
├── skills/                 # Agent skills, shared by every plugin manifest below
├── .mcp.json               # MCP server definition, shared the same way
├── .claude-plugin/         # Claude Code plugin + marketplace manifests
├── .codex-plugin/          # Codex plugin manifest
├── .agents/plugins/        # Codex marketplace manifest
├── package.json            # npm package manifest
└── server.json             # MCP Registry manifest
从源代码构建
cd java-mcp
./gradlew build
报告问题

请在 GitHub Issues 中提交问题,并附上重现步骤、Java 版本和 Node.js 版本。

第三方许可证

本项目使用了以下开源库:

库许可证
Spring BootApache 2.0
Spring AIApache 2.0
ASMBSD 3-Clause
CFRMIT
VineflowerApache 2.0
ProcyonApache 2.0

许可证

本项目采用 MIT License 许可。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。