Token导航 LogoToken导航

MCP Server · 开发工具

Java Class Analyzer MCP

一个基于MCP协议的Java类分析服务,提供依赖扫描、类反编译和结构分析功能,适用于AI辅助编程和代码生成场景。

未说明官方级别未说明来源级核验工具 3
代码生成TypeScriptCursor

快速开始

公开资料没有提供安装命令,按仓库或官方文档接入。
作者 / 组织
ETHAN0430
提供方
ETHAN0430

工具数量

3

来源目录标注

资源数量

0

来源目录标注

提示词数量

0

来源目录标注

GitHub Star

5

仓库热度

收录来源

1 个

MCP World

选型结论

Java Class Analyzer MCP 属于开发工具类 MCP Server,公开资料标注 3 个工具,通过传输方式未标注接入,适配 Cursor,没有现成的安装命令;接入前先确认权限范围。

分类

开发工具

传输方式

未说明

认证方式

无需认证

部署方式

公开资料未说明

安装与配置

公开目录没有给出安装命令,需要按仓库 README安装;下面按同类条目的通用流程说明。

公开命令不是通用的启动方式,拼不出可靠配置示例;请在客户端 MCP 配置里按官方文档填写 command 和 args。

上手步骤

  1. 1

    先确认运行方式

    公开资料没有标注传输方式,先看仓库 README,确认是本地进程还是远程地址。

  2. 2

    获取服务

    公开目录没有给出安装命令,按仓库 README里的步骤安装或获取服务。

  3. 3

    写入客户端配置

    在客户端的 MCP 配置里填启动命令和参数,保存后完全退出客户端再打开,让新配置生效。

  4. 4

    验证是否可用

    连接成功后客户端会列出 3 个工具,随便调一个只读工具确认能返回结果。

接入前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

公开资料仍需确认:安装命令

详细介绍

Java Class Analyzer MCP Server

一个基于Model Context Protocol (MCP)的Java类分析服务,可以扫描Maven项目依赖、反编译Java类文件、获取class方法列表等详细信息,并提供给LLM进行代码分析。

致谢

本项目源自 handsomestWei/java-class-analyzer-mcp-server,感谢原作者的开源贡献。

🚀 核心突破与改进

  • 修复 Cursor/stdio 兼容性:修复原版只支持字节跳动Trae,而在 Cursor 下 完全不可用的致命问题。
  • 全版本 JDK 深度适配:补齐了原版缺失的 JDK 类扫描能力,完美支持 Java 8 (rt.jar) 及 Java 9+ 模块化系统 (jrt://)。
  • CFR 反编译引擎工程化:内置 CFR 0.152 核心,解决了原版 npm 安装后找不到反编译工具、环境变量不生效等分发难题。
  • 工业级 Maven 执行器:重写了依赖扫描逻辑,支持 Windows 环境下含空格路径、.cmd 脚本,并加入超时与健壮的错误处理机制。
  • 智能项目隔离缓存:重构了缓存架构,按项目根目录和包名进行强隔离,彻底解决临时文件污染工程根目录的问题。
  • 企业级分发优化:适配公网 npm/npx 分发,并针对 AI Agent 优化了 Tool Definitions,使其能更精准地自动按需触发。

适用场景

Cursor等AI工具直接生成调用二方(内部调用)、三方包(外部调用)接口的代码,但因AI无法读取未在当前工程中打开的依赖源码,导致生成的代码错误频出,甚至出现幻觉式编码。

为解决此问题,一般会直接拷贝源码内容喂给LLM;或者先将源码文件放到当前工程内,再在对话中引用。

而使用本地反编译MCP方案最有效,能精准解析jar包中的类与方法,显著提升代码生成的准确性和可用性。

功能特性

  • 🚀 使用方便:mcp服务基于TypeScript实现,使用npm打包,方便分发和安装,弱环境依赖。
  • 🔍 依赖扫描: 自动扫描Maven项目的所有依赖JAR包
  • 📦 类索引: 建立类全名到JAR包路径的映射索引
  • 🔄 反编译: 使用CFR工具(已内置有)实时反编译.class文件为Java源码
  • 📊 类分析: 分析Java类的结构、方法、字段、继承关系等
  • 💾 智能缓存: 按包名结构缓存反编译结果,支持缓存控制
  • 🚀 自动索引: 执行分析前自动检查并创建索引
  • ⚙️ 灵活配置: 支持外部指定CFR工具路径
  • 🤖 LLM集成: 通过MCP协议为LLM提供Java代码分析能力

使用示例

在IDE中注册mcp服务

在智能体对话中使用mcp

使用说明

mcp服务安装

推荐方式:直接在 MCP 客户端配置文件中添加以下配置:

{
  "mcpServers": {
    "java-class-analyzer": {
      "command": "npx",
      "args": [
        "-y",
        "@jianxiancyf/java-class-analyzer-mcp-server@latest",
        "start",
        "--stdio"
      ],
      "env": {
        "npm_config_registry": "https://registry.npmjs.org/",
        "NODE_ENV": "production"
      }
    }
  }
}

可选方式:

  • 全局安装:
  npm install -g @jianxiancyf/java-class-analyzer-mcp-server
  • 本地安装:
  npm install @jianxiancyf/java-class-analyzer-mcp-server

可选环境变量

在配置的 env 中可以添加以下可选环境变量:

  • MAVEN_REPO: Maven 本地仓库路径(默认:~/.m2/repository)
  • JAVA_HOME: Java 安装路径(默认:使用 PATH 中的 java)
  • CFR_PATH: CFR 反编译工具路径(默认:使用内置版本)

示例(添加可选环境变量):

{
  "mcpServers": {
    "java-class-analyzer": {
      "command": "npx",
      "args": [
        "-y",
        "@jianxiancyf/java-class-analyzer-mcp-server@latest",
        "start"
      ],
      "env": {
        "npm_config_registry": "https://registry.npmjs.org/",
        "NODE_ENV": "production",
        "MAVEN_REPO": "D:/maven/repository",
        "JAVA_HOME": "C:/Program Files/Java/jdk-11"
      }
    }
  }
}

可选:SSE 传输方式

如果需要使用 SSE 方式(需要手动启动服务器):

  1. 手动启动服务器:
java-class-analyzer-mcp start --sse --port 6666
  1. 在客户端配置中使用 URL:
{
  "mcpServers": {
    "java-class-analyzer": {
      "url": "http://localhost:6666/sse",
      "env": {
        "npm_config_registry": "https://registry.npmjs.org/",
        "NODE_ENV": "production"
      }
    }
  }
}

让Cursor Agent自动使用MCP工具

为了让Cursor Agent在识别到三方依赖时自动使用MCP工具(无需手动指定),请按以下步骤配置:

  1. 确保MCP服务器已正确配置(参考上面的配置说明)
  1. 创建 .cursorrules 文件(项目根目录):

项目已包含 .cursorrules 文件,其中定义了自动使用MCP工具的规则。Cursor Agent会根据这些规则自动识别需要使用MCP的场景。

  1. 工具描述已优化:

MCP工具的描述已优化,明确说明了何时应该自动使用这些工具,AI会更容易识别触发场景。

  1. 自动触发场景:

- 代码中出现 import 三方包时 - 生成调用三方库API的代码时 - 需要了解三方类的结构、方法签名时 - 错误排查涉及三方依赖时

可用的工具

1. scan_dependencies

扫描Maven项目的所有依赖,建立类名到JAR包的映射索引。当需要分析三方依赖类时,应先执行此工具建立索引。

参数:

  • projectPath (string): Maven项目根目录路径
  • forceRefresh (boolean, 可选): 是否强制刷新索引,默认false

示例:

{
  "name": "scan_dependencies",
  "arguments": {
    "projectPath": "/path/to/your/maven/project",
    "forceRefresh": false
  }
}
2. decompile_class

反编译指定的Java类文件,返回Java源码。当代码中使用了三方依赖类(如import语句、类引用),或需要查看三方类的实现细节、方法签名时,Cursor Agent应自动使用此工具,获取准确的类信息,避免生成错误的代码。

参数:

  • className (string): 要反编译的Java类全名,如:com.example.QueryBizOrderDO
  • projectPath (string): Maven项目根目录路径
  • useCache (boolean, 可选): 是否使用缓存,默认true。避免每次都重复生成。
  • cfrPath (string, 可选): CFR反编译工具的jar包路径。已内置有,可以额外指定版本。

示例:

{
  "name": "decompile_class",
  "arguments": {
    "className": "com.example.QueryBizOrderDO",
    "projectPath": "/path/to/your/maven/project",
    "useCache": true,
    "cfrPath": "/path/to/cfr-0.152.jar"
  }
}
3. analyze_class

分析Java类的结构、方法、字段等信息。当需要了解三方依赖类的API(方法名、参数类型、返回类型、字段定义)时,Cursor Agent应自动使用此工具。特别适用于生成调用三方库代码的场景,确保方法签名和参数类型完全正确。

参数:

  • className (string): 要分析的Java类全名
  • projectPath (string): Maven项目根目录路径

示例:

{
  "name": "analyze_class",
  "arguments": {
    "className": "com.example.QueryBizOrderDO",
    "projectPath": "/path/to/your/maven/project",
  }
}

缓存文件

在当前工程,会生成以下缓存目录和文件。

  • .mcp-class-index.json: 类索引缓存文件
  • .mcp-decompile-cache/: 反编译结果缓存目录(按包名结构)
  • .mcp-class-temp/: 临时文件目录(按包名结构)

工作流程

  1. 自动索引: 首次调用analyze_class或decompile_class时,自动检查并创建索引
  2. 智能缓存: 反编译结果按包名结构缓存,支持缓存控制
  3. 分析类: 使用analyze_class或decompile_class获取类的详细信息
  4. LLM分析: 将反编译的源码提供给LLM进行代码分析

技术架构

核心组件

  • DependencyScanner: 负责扫描Maven依赖和建立类索引
  • DecompilerService: 负责反编译.class文件
  • JavaClassAnalyzer: 负责分析Java类结构
  • MCP Server: 提供标准化的MCP接口

依赖扫描流程

  1. 执行mvn dependency:tree获取依赖树
  2. 解析每个JAR包,提取所有.class文件
  3. 建立"类全名 -> JAR包路径"的映射索引
  4. 缓存索引到.mcp-class-index.json文件

反编译流程

  1. 根据类名查找对应的JAR包路径
  2. 检查缓存,如果存在且启用缓存则直接返回
  3. 从JAR包中提取.class文件到.mcp-class-temp目录(按包名结构)
  4. 使用CFR工具反编译.class文件
  5. 保存反编译结果到缓存.mcp-decompile-cache目录(按包名结构)
  6. 返回Java源码

故障排除

常见问题

  1. Maven命令失败

- 确保Maven已安装并在PATH中 - 检查项目是否有有效的pom.xml文件

  1. CFR反编译失败

- 确保CFR jar包已下载(支持任意版本号) - 检查Java环境是否正确配置 - 可通过cfrPath参数指定CFR路径

  1. 类未找到

- 程序会自动检查并创建索引 - 检查类名是否正确 - 确保项目依赖已正确解析

测试说明

构建项目

npm install
npm run build

测试工具使用

项目提供了独立的测试工具,可以直接测试MCP服务的各个功能,无需通过MCP客户端。

# 测试所有工具
node test-tools.js

# 测试特定工具
node test-tools.js --tool decompile_class --class com.alibaba.excel.EasyExcelFactory --project /path/to/project

# 不使用缓存
node test-tools.js --tool decompile_class --no-cache

# 指定CFR路径
node test-tools.js --tool decompile_class --cfr-path /path/to/cfr.jar

测试工具参数

  • -t, --tool : 指定要测试的工具 (scan|decompile|analyze|all)
  • -p, --project : 项目路径
  • -c, --class : 要分析的类名
  • --no-refresh: 不强制刷新依赖索引
  • --no-cache: 不使用反编译缓存
  • --cfr-path : 指定CFR反编译工具的jar包路径
  • -h, --help: 显示帮助信息

日志级别控制

通过 NODE_ENV 环境变量控制日志输出:

  • development: 输出详细调试信息
  • production: 只输出关键信息

更新日志

v1.0.3 (feature/sse分支)

🚀 新增功能
  • JDK类支持:完整支持Java标准库类的扫描和反编译

- 支持Java 8及之前的rt.jar扫描 - 支持Java 9+模块化JDK(jrt://文件系统)的类扫描 - 自动检测JDK版本并使用相应的扫描策略 - 使用Java命令访问jrt://文件系统,支持所有JDK模块类

  • 内置CFR工具:内置CFR 0.152版本jar包(lib/cfr-0.152.jar)

- 无需单独下载CFR工具即可使用 - 优先检查CFR_PATH环境变量 - 改进CFR查找路径,支持npm包安装后的路径结构 - 仍支持通过CFR_PATH环境变量指定自定义CFR路径

🔧 核心改进
  • Maven命令执行优化:

- 使用spawn替代exec,正确处理包含空格的路径 - Windows平台特殊处理:支持.cmd文件和包含空格的路径 - 改进错误处理和超时机制(60秒超时) - 更好的跨平台兼容性

  • JAR包解析增强:

- 处理JAR包中的绝对路径条目(跳过以/开头的无效条目) - 支持.jmod文件格式(Java模块文件,处理classes/目录结构) - 改进错误处理:单个条目处理失败不中断整个流程 - 处理absolute path错误,避免因无效条目导致解析失败 - 跳过内部类(包含$符号的类文件)

  • 缓存路径优化:

- 使用项目路径作为缓存根目录,而不是process.cwd() - 统一管理临时文件目录(.mcp-class-temp) - 临时Java文件统一放在项目缓存目录下,避免污染根目录 - 改进缓存路径结构,按包名组织

  • 工具描述优化:优化MCP工具的描述文本,使AI更容易自动识别和使用

- scan_dependencies: 明确说明在缺类/引入三方或JDK类时自动调用 - decompile_class: 明确说明在需查看依赖或JDK类实现时自动调用 - analyze_class: 明确说明在需生成调用代码或确认签名时自动调用

  • 错误处理改进:

- 更详细的错误信息和警告提示 - 索引文件验证:检查索引文件是否存在且有效 - 工具调用异常处理:提供友好的错误提示和建议 - stdio模式下完全静默,避免干扰MCP协议通信

  • 版本管理:从package.json动态读取版本号,确保版本一致性
🐛 Bug修复
  • 修复Maven命令执行问题:

- 修复Windows平台路径包含空格时命令执行失败的问题 - 修复.cmd文件无法执行的问题 - 修复超时处理不生效的问题

  • 修复JAR包解析问题:

- 修复JAR包包含绝对路径条目导致解析失败的问题 - 修复.jmod文件无法解析的问题 - 修复单个条目处理失败导致整个JAR解析失败的问题 - 修复内部类被错误包含的问题

  • 修复JDK类扫描问题:

- 修复Java 9+模块化JDK无法扫描的问题 - 修复JDK类无法反编译的问题 - 修复jrt://文件系统访问问题

  • 修复CFR工具查找问题:

- 修复npm包安装后CFR工具找不到的问题 - 修复CFR_PATH环境变量不生效的问题 - 改进CFR查找路径优先级

  • 修复缓存路径问题:

- 修复缓存文件保存到错误位置的问题 - 修复临时文件污染根目录的问题

  • 修复其他问题:

- 修复索引文件为空时的处理问题 - 修复类查找超时无提示的问题 - 修复错误信息不够详细的问题

📦 依赖更新
  • archiver: ^6.0.1 → ^7.0.1
  • jest: ^29.7.0 → ^30.2.0
  • @types/jest: ^29.5.8 → ^30.0.0
  • 新增overrides配置:强制使用glob ^10.0.0
📝 文档更新
  • 添加"让Cursor Agent自动使用MCP工具"章节
  • 完善工具使用说明,强调自动触发场景
  • 添加致谢章节
  • 更新配置示例,说明默认使用SSE模式
📁 文件变更
  • 新增:.cursorignore - Cursor忽略文件配置
  • 新增:lib/cfr-0.152.jar - 内置CFR工具
  • 删除:mcp-server-config.json - 配置文件模板(改为通过CLI命令生成)
  • 修改:src/index.ts - 改进错误处理、工具描述优化
  • 修改:src/cli.ts - 版本号动态读取、改进配置生成
  • 修改:src/scanner/DependencyScanner.ts - JDK类支持、Maven命令优化、JAR解析增强
  • 修改:src/decompiler/DecompilerService.ts - JDK模块类反编译、CFR查找优化、缓存路径优化
  • 修改:package.json - 更新版本号和依赖
  • 修改:.gitignore - 更新忽略规则

工具与能力

工具数量

3

资源数量

0

提示词数量

0

能力标签

Java类分析TypeScript混合部署Maven依赖扫描反编译工具AI辅助编程代码生成

支持客户端

Cursor

数量来自来源目录的标注,具体工具清单以官方文档为准。

典型使用场景

让助手直接读代码

把仓库、提交记录和 issue 交给模型检索,补全和重构时不用来回复制文件。

在对话里跑命令

触发构建、测试和脚本,执行结果直接回到上下文,省去切终端。

接进开发流程

把 PR、CI 状态和代码审查接进助手,减少在几个工具之间跳。

选择建议

值得选的地方

  • 只提供 3 个工具,职责集中,接入后不容易误操作。
  • 公开说明写得比较完整,接入前能看清能力边界。

先想清楚的地方

  • 公开资料没有可直接复制的安装命令,第一次接入要自己找入口。
  • 公开摘要偏短,具体能力和限制要回到仓库确认。
  • 第三方目录整理,版本更新和行为细节以官方仓库为准。

更适合

  • 需要在开发工具场景里让模型直接调用外部能力的人。
  • 已经在用 Cursor 的用户,接入路径最短。
  • 愿意照着官方文档一步步配环境的人。

不太适合

  • 希望一条命令就装好、不想看文档的人。
  • 需要厂商级 SLA 和技术支持的生产环境。

同类对比

5 个同类
MCP Server工具数传输方式安装命令收录来源最后核验
Java Class Analyzer MCP

MCP World · 本页

3未说明未标注1 个2026-05-17
Git 838e2ec1

MCP World

12stdio有2 个2026-05-17
Markitdown MCP 2c653a5f

MCP World

1stdio有1 个2026-05-17
Context7 MCP C671e75a

MCP World

0stdio有1 个2026-05-17
Context7 831acf40

MCP World

0stdio有1 个2026-05-17

按同分类和工具数量挑出最接近的几条,字段以各自详情页为准。

常见问题

5 条

Java Class Analyzer MCP 怎么安装?

公开目录没有给出可以直接复制的安装命令,需要按仓库 README里的步骤安装;装好后写进客户端的 MCP 配置再重启。

Java Class Analyzer MCP 怎么在 Claude Desktop、Cursor 里配置?

它是传输方式未标注,客户端配置里要写启动命令和参数,运行环境是 未标注;保存后完全退出客户端再打开,配置才会生效。

Java Class Analyzer MCP 收费吗?

本站只整理公开资料,不代收费用,也没有标注具体价格。是否收费取决于服务本身和背后的接口额度,正式使用前按官方说明确认。

Java Class Analyzer MCP 需要 API Key 吗?

公开资料标注为无需认证,装好就能连;如果实际调用时报鉴权错误,按官方文档补上凭据。

Java Class Analyzer MCP 支持哪些客户端?

公开资料标注支持 Cursor;其他客户端只要能配置 MCP Server,也能用同样的命令或地址接入。

来源信息

继续浏览同类 MCP