npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2025 – Pkg Stats / Ryan Hefner

java-class-analyzer-mcp

v1.0.0

Published

Universal MCP server for analyzing Java classes from Maven dependencies with full JavaDoc support

Readme

Java Class Analyzer MCP

通用Java类分析MCP工具,让AI自动分析Maven项目依赖中的类。

核心特性

完整JavaDoc支持 - 自动从sources.jar读取原始源码
智能降级 - sources.jar → CFR → javap 四级降级
通用可配置 - 支持任何Maven项目和groupId
灵活配置 - 通过mcp.json或config.json配置
自动化 - CFR反编译器可选自动下载

快速开始

1. 安装

cd .cursor/java-class-analyzer
npm install

2. 配置(可选)

有三种配置方式,按优先级:

方式一:通过 .cursor/mcp.json(推荐)

{
  "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.json

复制 config.example.jsonconfig.json 并修改:

cp config.example.json config.json

方式三:使用默认配置

默认支持常见的groupId:

  • com.ql.*
  • com.qinglusaas.*
  • io.quarkus.*
  • io.quarkiverse.*
  • org.apache.commons.*
  • org.springframework.*

3. 使用

  1. 重启Cursor
  2. 在对话中: "请初始化Java类索引"
  3. 开始使用: "请分析 [类名]"

配置选项

Maven仓库路径

环境变量: MAVEN_REPO
默认值: ${HOME}/.m2/repository

{
  "env": {
    "MAVEN_REPO": "/custom/path/to/.m2/repository"
  }
}

GroupId映射

环境变量: 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路径

环境变量: 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 | 基本信息 | ❌ | 低 | 兜底 |

MCP工具

  • java_class_indexer - 构建类索引
  • java_class_analyzer - 分析反编译类
  • java_class_search - 搜索类

适用项目

  • ✅ 所有Maven项目
  • ✅ 任何groupId
  • ✅ 公司内部二方包
  • ✅ 开源第三方库