JAR文件查看工具

一个允许LLM浏览JAR内容、附加源文件和解压.class文件的MCP服务器,支持Maven/Gradle依赖解析。

  • by iuhl
  • JavaScript
  • 本地部署
  • 2 星标
  • 更新于
在 GitHub 查看 iuhl/jar-viewer-mcp

使用说明

Java Jar查看器MCP

MCP服务器,允许LLM浏览JAR内容,附加 *-sources.jar 源代码和反编译 .class CFR文件。它还运行Maven/Gradle依赖解析,以显示本地工件的绝对路径。

中文文档: README.zh-CN.md.

先决条件

  • Node.js 18+
  • Java 8+(JDK javap)关于PATH(用于CFR和describe_class)
  • 使用PATH时使用Maven scan_project_dependencies Maven项目
  • Gradle包装(./gradlew)或使用PATH时使用Gradle scan_project_dependencies Gradle项目

快速启动(npx)

npx -y jar-viewer-mcp@latest

MCP配置代码段

在MCP客户端/注册表中使用此选项(示例格式):

{
  "mcpServers": {
    "jar-viewer": {
      "command": "npx",
      "args": ["-y", "jar-viewer-mcp@latest"]
    }
  }
}

安装选项

全局安装

npm install -g jar-viewer-mcp
jar-viewer-mcp

地方发展

npm install
npm run build
node dist/index.js

工具

  • list_jar_entries(jarPath, innerPath?):列出JAR中最多100个项目,按目录级别折叠以快速导航。
  • read_jar_entry(jarPath, entryPath):读取请求的条目。对于 .class,它首先寻找一个兄弟姐妹 *-sources.jar 以及以其他方式与CFR反编译;回落到 javap 如有需要,请签名。
  • describe_class(jarPath, className?, entryPath?, memberVisibility?, methodQuery?, limit?):使用以下函数返回类的方法签名 javap (无反编译)。使用 memberVisibility="public" (默认)或 "all" 对于所有成员。
  • resolve_class(projectPath, className, dependencyQuery?, includeMembers?, memberVisibility?, methodQuery?, limit?):在项目依赖关系jar中查找类。如果 includeMembers=true,还返回方法签名(与 describe_class).
  • scan_project_dependencies(projectPath, excludeTransitive?, configurations?, includeLogTail?, query?):检测Maven/Gradle项目(由 pom.xml 或 build.gradle(.kts)/settings.gradle(.kts)),然后解析绝对伪影路径。用途 mvn dependency:list 对于Maven,以及注入的Gradle init脚本(mcpListDeps)对于Gradle来说。结果按项目根进行缓存。 query 不区分大小写的子字符串是否匹配 groupId:artifactId 以及伪影路径。
    • excludeTransitive:设置为 true 仅返回一级依赖关系。
    • configurations:仅包含Gradle配置名称列表(例如。 ["runtimeClasspath"]).
    • includeLogTail:设置为 true 包含用于调试的构建输出的最后一行。

lib/cfr-0.152.jar 被捆绑并复制到 dist/lib 在...期间 npm run build;路径在运行时通过解析 import.meta.url 以避免硬编码。