让AI看懂Maven依赖Jar的黑盒子 - Maven Jar Analyzer MCP工具

最近一在使用AI辅助编程,所在公司系统间对接使用的是Feign接口,引用外部服务接口时,AI拿不到接口API的class信息导致生成代码效果不太理想。

这个问题困扰我挺久的,所以写了这个MCP工具来解决它。

这东西能干嘛

简单说,它能让支持MCP协议的AI助手(比如Cursor、VSCode的Copilot等)直接读取Maven依赖中的Java类源码。

举个实际场景:你在项目里用了Spring框架,想让AI解释一下ApplicationContext的初始化流程。以前AI只能根据文档和记忆来回答,现在可以直接把源码拉出来分析。

项目GitHub地址: https://github.com/jcxzzy/Maven-Jar-Analyzer

工作原理

整个工具分两层:

远程执行层 - 负责脏活累活

  • 根据Maven坐标下载jar包和所有依赖
  • 在jar包里搜索指定的类
  • 用CFR反编译器把class文件还原成Java源码

MCP代理层 - 负责跟AI对话

  • 实现MCP协议,让AI工具能够调用
  • 把AI的请求转发给远程执行层
  • 返回格式化的结果

为什么要分两层?因为下载jar包、运行Maven需要完整的Java环境,很多开发机上不一定配齐全了。分层之后,可以把执行层部署在一台配好环境的服务器上,本地只跑个轻量的代理就行。当然,如果你本地环境齐全,两个都跑在本地也没问题。

三个核心功能

工具提供三个能力:

analyze_maven_dependency - 分析依赖

给定Maven坐标和要找的类名,返回类在哪个jar包里、完整类路径是什么。适合先探探路,看看类存不存在。

decompile_class - 反编译

给定jar包路径和类路径,直接返回反编译后的Java源码。需要配合第一个功能使用。

find_and_decompile - 一站式服务

把上面两步合成一步:给坐标和类名,直接返回源码。省事,推荐用这个。

部署方法

需要准备的环境:

  • Python 3.8及以上
  • Java 8及以上
  • Maven 3.6及以上
  • CFR反编译器

启动远程服务

bash 复制代码
pip install fastapi uvicorn pydantic
python maven_jar_remote_server.py

默认监听8000端口,可以通过环境变量改:

bash 复制代码
SERVER_HOST=0.0.0.0 SERVER_PORT=9000 python maven_jar_remote_server.py

启动MCP代理

bash 复制代码
pip install mcp fastapi uvicorn httpx sse-starlette
REMOTE_SERVER_URL=http://localhost:8000 python maven_jar_mcp_proxy.py

代理默认监听8001端口。

配置AI工具

以Cursor为例,在MCP配置里加上:

json 复制代码
{
  "mcpServers": {
    "maven-jar-analyzer": {
      "type": "streamable_http",
      "url": "<http://localhost:8001>"
    }
  }
}

实际使用

配置好之后,直接跟AI说就行:

帮我分析一下spring-core 5.3.20里的ApplicationContext接口

或者更具体一点:

用maven-jar-analyzer查看com.google.guava:guava:31.1-jre中的Lists类的源码

AI会自动调用工具,下载依赖,找到类,反编译,然后把源码展示出来,再根据源码回答你的问题。

几个注意事项

  1. 第一次分析某个依赖会比较慢,因为要下载jar包。后续再分析同一个依赖会快很多,Maven有本地缓存。
  2. 如果要访问公司内部的私有Maven仓库,需要在调用时传入仓库配置,或者在服务器的Maven settings.xml里配好。
  3. CFR反编译的结果不是百分百准确,特别是对于混淆过的代码。但对于开源框架来说足够用了。
  4. 反编译的是class文件,所以能看到的是编译后的代码,注释和部分泛型信息会丢失。如果需要完整源码,建议还是去GitHub找原始仓库。

最后

这个工具主要解决的是AI编程场景下的一个痛点。以前让AI分析第三方库的实现细节,它只能靠"猜"或者根据训练数据里的知识来回答。现在可以直接把源码喂给它,回答的准确性会好很多。

代码已经在实际项目里用了一段时间,比较稳定。如果你也有类似的需求,可以试试。

觉得这个工具不错?欢迎点个 Star ⭐ 鼓励一下作者

项目GitHub地址: https://github.com/jcxzzy/Maven-Jar-Analyzer

相关推荐
ZhengEnCi2 小时前
AI 真的会替代程序员吗:从 55.8% 提速到 19% 变慢的八组关键数据拆解
aigc·ai编程
濮水大叔5 小时前
AI Vibe Coding 实战:SMS 套件提示词与开发方案
ai编程·全栈·vibecoding
kyriewen7 小时前
我让 4 个 AI 互相 review 代码,最温柔的那个下手最狠
前端·程序员·ai编程
天外飞雨道沧桑7 小时前
我在浏览器里练了一个 792 参数的大模型,它学会了补全 JavaScript
开发语言·javascript·ai·ecmascript·ai编程
柳杉8 小时前
用 Codex 完成智慧高速 3D 可视化大屏,从 18 张行业设计稿到可交互的运行监测中心
前端·ai编程·数据可视化
孟健9 小时前
Kimi K3.1 Pro 编程实测:3个月27万行代码,每年1.7万预算下如何9分钟修好顽固Bug
前端·开源·ai编程
孔令飞9 小时前
知己知彼,百战不殆:AI SKILL 实现原理剖析
云原生·go·ai编程
OpenTiny社区10 小时前
GenUI SDK v1.4.0 的 React 渲染器到底做对了什么?
前端·github·ai编程
十方空烬10 小时前
开源雷达 · 2026-10-26:什么时候该多开一个 Agent,有人写成了阈值
开源·ai编程
qinglongcn10 小时前
Agent 该什么时候停——终止策略的三种流派
agent·ai编程