通用Java类分析MCP工具,让AI自动分析Maven项目依赖中的类。
✅ 完整JavaDoc支持 - 自动从sources.jar读取原始源码
✅ 智能降级 - sources.jar → CFR → javap 四级降级
✅ 通用可配置 - 支持任何Maven项目和groupId
✅ 灵活配置 - 通过mcp.json或config.json配置
✅ 自动化 - CFR反编译器可选自动下载
cd .cursor/java-class-analyzer
npm install有三种配置方式,按优先级:
{
"mcpServers": {
"java-class-analyzer": {
"command": "node",
"args": [".cursor/java-class-analyzer/index.js"],
"env": {
"MAVEN_REPO": "${HOME}/.m2/repository",
"GROUP_ID_MAPPINGS": "[{\"groupId\":\"com/mycompany\",\"prefix\":\"com.mycompany.\"}]"
}
}
}
}复制 config.example.json 为 config.json 并修改:
cp config.example.json config.json默认支持常见的groupId:
com.ql.*com.qinglusaas.*io.quarkus.*io.quarkiverse.*org.apache.commons.*org.springframework.*
- 重启Cursor
- 在对话中: "请初始化Java类索引"
- 开始使用: "请分析 [类名]"
环境变量: MAVEN_REPO
默认值: ${HOME}/.m2/repository
{
"env": {
"MAVEN_REPO": "/custom/path/to/.m2/repository"
}
}环境变量: GROUP_ID_MAPPINGS (JSON数组)
说明: 用于识别JAR文件名中的groupId前缀
{
"env": {
"GROUP_ID_MAPPINGS": "[{\"groupId\":\"com/mycompany\",\"prefix\":\"com.mycompany.\"}]"
}
}或在config.json中:
{
"groupIdMappings": [
{ "groupId": "com/mycompany", "prefix": "com.mycompany." },
{ "groupId": "org/example", "prefix": "org.example." }
]
}环境变量: CFR_JAR_PATH
默认值: cfr.jar(当前目录)
{
"env": {
"CFR_JAR_PATH": "/path/to/cfr.jar"
}
}在config.json中配置:
{
"decompile": {
"enableSourcesJar": true,
"enableCFR": true,
"enableJavap": true
}
}工具会按以下优先级获取源码:
| 优先级 | 方式 | JavaDoc | 质量 | 说明 |
|---|---|---|---|---|
| 1 | sources.jar | ✅ | 最高 | Maven源码包 |
| 2 | CFR | ❌ | 高 | 反编译器 |
| 3 | javap | ❌ | 中 | JDK工具 |
| 4 | 基本信息 | ❌ | 低 | 兜底 |
java_class_indexer- 构建类索引java_class_analyzer- 分析反编译类java_class_search- 搜索类
- ✅ 所有Maven项目
- ✅ 任何groupId
- ✅ 公司内部二方包
- ✅ 开源第三方库