1. Java 调用链 MCP 分析工具1.1. 作用向大模型 Agent 提供生成 Java 方法调用链的工具使其能够更好地理解与分析 Java 代码。1.2. 可以解决的问题1.2.1. 复杂业务系统代码难以理解面对大型 Java 业务系统代码量庞大、功能模块众多、调用层次深无论是接手新项目还是维护长期迭代的老项目都很难理清代码的调用关系和业务流程。逐个文件阅读源码效率低且容易遗漏关键路径。所有的项目只有在刚创建时是全新的从第一次提交后开始都可能涉及到对存量代码的修改对存量代码的理解是无法避免的。而理解存量代码的前提就是理清方法之间的调用关系。调用链工具对大模型 Agent 的帮助从入口方法如 Controller生成向下调用链即可看到完整的请求处理流程从核心方法生成向上调用链即可了解所有触发该方法的业务场景。无需逐文件阅读源码即可掌握项目的核心调用结构。1.2.2. 影响范围难以评估无论是修改代码前评估变更影响还是线上发现问题后确定影响范围都需要找到所有受波及的上层功能。传统方式下只能靠经验判断或全局搜索容易遗漏跨模块、跨层的间接调用关系导致改一处坏一片或问题影响范围评估不完整。调用链工具对大模型 Agent 的帮助从目标方法生成向上调用链自动找出所有直接和间接受影响的上层调用方包括跨模块、跨层的完整调用路径。修改代码前可据此评估变更影响范围避免遗漏发现问题后可据此确定受波及的业务入口为问题定级和修复优先级判断提供依据。1.2.3. 数据库写操作路径难以追踪排查数据异常时需要知道某个业务操作到底写了哪些数据库表。手动查找 Mapper 文件和 SQL 语句在大型项目中耗时且容易遗漏。调用链工具对大模型 Agent 的帮助生成向上或向下调用链时自动识别并标注方法涉及的 MyBatis 数据库写操作及对应的数据表名称目前支持识别使用 MyBatis 时的 Java 代码与 SQL 语句、数据库表之间的关系调用链中即可直观看到每个方法影响了哪些表。1.2.4. 回归测试范围难以确定代码变更后需要确定回归测试的边界。范围太小可能漏测范围太大浪费资源。尤其是跨模块的间接影响很难凭经验判断完整。调用链工具对大模型 Agent 的帮助通过变更影响分析确定受影响的调用链路据此明确回归测试需要覆盖的入口和路径既避免漏测也避免不相关模块的过度测试。1.3. 优势向大模型 Agent 提供生成 Java 方法调用链工具后相比大模型 Agent 本身拥有的工具和能力具有以下优势能力IDE Find UsagesIDE Call Hierarchygrep 文本搜索JACG-SERVER接口→实现自动解析Spring DI❌ 需手动跳转⚠️ 部分支持❌✅ 自动解析多态所有实现一次发现❌ 只看当前类型⚠️ 需逐个点击❌✅ 一次展示全部分支MyBatis Mapper→SQL 映射❌❌❌✅ 自动关联一键生成完整调用链❌ 需逐层手动❌ 需逐层点击❌✅ 深度遍历一次出批量多入口同时分析❌❌❌✅ 多入口并行跨业务共用方法发现❌ 需人脑记忆❌❌✅ 自动发现调用链语义标注❌❌❌✅ !throw!/Deprecated精确行号定位❌✅❌✅AI 可编程调用MCP 协议❌❌❌✅1.3.1. 减少大模型调用次数大模型 Agent 通过 IDE 工具如 Call Hierarchy查看调用关系时每次只能查一个方法需要手动递归展开。假设一个方法有 3 层调用、每层 3 个分支递归查询需要 40 次工具调用。调用链工具一次执行即可生成指定方法的所有上下层调用链大模型 Agent 只需调用一次即可获取完整结果。1.3.2. 减少 Token 消耗大模型 Agent 递归查询调用关系时每次工具调用的返回结果都进入上下文层层累积消耗大量 Token。调用链工具将完整调用链一次性写入文件大模型 Agent 可按需读取关心的部分避免将大量中间过程信息填入上下文。1.3.3. 减少耗时大模型 Agent 递归查询调用关系时每次工具调用都需要等待大模型推理和工具返回多层递归导致总耗时随调用深度线性增长。调用链工具在服务端一次性完成递归分析大模型 Agent 只需等待一次执行结果整体耗时显著降低。1.3.4. 结果更准确多态与泛型实际类型识别大模型 Agent 通过文本搜索或 IDE 工具查找调用关系时接口调用只能看到声明类型若要识别运行时的实际实现类需要额外查找实现类并分析继承关系耗时与 Token 消耗更大。调用链工具在静态分析阶段即解析多态的实际类型生成的调用链直接包含实际类型。Spring Bean 注入实际类型识别大模型 Agent 通过文本搜索查找 Spring Bean 的调用关系时字段声明类型是接口若要确定实际注入的实现类需要额外分析配置文件或注解耗时与 Token 消耗更大。调用链工具解析 Spring Bean 注入关系在调用链中直接体现实际注入的类型。跨模块间接调用自动追踪大模型 Agent 通过全局搜索方法名查找调用方时只能找到直接调用无法自动追踪跨模块、跨层的间接调用链路。调用链工具递归生成完整的调用链每一层的间接调用都会包含在内前提对应模块的代码已指定为需要分析的范围。方法注解信息展示大模型 Agent 需要单独查找方法上的注解信息如 Spring MVC 请求映射路径、事务注解等。调用链工具在生成调用链时自动展示方法注解信息无需额外查找。MyBatis 数据库操作关联大模型 Agent 无法直接将方法调用与数据库操作关联起来需要手动查找 Mapper 文件和 SQL 语句。调用链工具在生成向下调用链时自动标注 MyBatis 写操作及对应的数据表无需额外查找。1.4. 特点丰富的配置参数支持灵活的配置包括需要解析的代码范围、需要解析的 Java 包/类/方法、生成调用链时需要忽略的类与方法。通过精细化的配置可以聚焦关心的代码范围过滤干扰信息生成更有针对性的调用链结果。通过大模型 Agent 接入省去人工配置大模型 Agent 根据用户的分析需求自动选择合适的配置参数并执行分析无需用户手动填写配置文件或理解每个参数的含义。用户只需用自然语言描述想要分析的内容大模型 Agent 即可完成从配置到结果获取的全过程。1.5. 支持分析的代码格式以下格式的文件或目录可作为输入供工具进行静态分析和调用链生成jar class war jmod fat jar Maven/Gradle 构建输出目录如 target/classes、build/classes/java/main1.6. 使用方式1.6.1. 运行环境运行 java-all-call-graph-server 需要 JDK8 及以上版本部分 JDK8 版本在通过 Gradlew 编译时会失败需要升级。编译失败信息如下从 Maven 仓库下载文件时失败FAILURE: Build failed with an exception. * What went wrong: A problem occurred configuring root project java-all-call-graph-server. Could not resolve all files for configuration :classpath. Could not resolve org.springframework.boot:spring-boot-gradle-plugin:2.7.18. Required by: project : Could not resolve org.springframework.boot:spring-boot-gradle-plugin:2.7.18. Could not get resource https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-gradle-plugin/2.7.18/spring-boot-gradle-plugin-2.7.18.pom. Could not GET https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-gradle-plugin/2.7.18/spring-boot-gradle-plugin-2.7.18.pom. The server may not support the clients requested TLS protocol versions: (TLSv1.2). You may need to configure the client to allow other protocols to be used. See: https://docs.gradle.org/7.6.6/userguide/build_environment.html#gradle_system_properties sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target存在问题的版本为 jdk1.8.0_111。安装更高版本的 JDK 后解决问题可从 https://adoptium.net/zh-CN/temurin/releases?version8 下载例如 jdk1.8.0_462 版本。1.6.2. 代码下载从以下地址下载 java-all-call-graph-server 源码https://github.com/Adrninistrator/java-all-call-graph-server1.6.3. 运行 java-all-call-graph-server MCP 服务1.6.3.1. 通过 IDE 运行源码在 IDE 中执行启动类com.github.adrninistrator.jacgserver.JacgServerApplication1.6.3.2. 构建后运行构建在项目根目录执行gradlew bootJar生成可执行 jar 到build/libs目录运行在build/libs目录执行start.batWindows或start.shLinux/Mac1.6.4. 配置 MCP 服务配置通过 SSE 方式访问的 MCP 服务将以下配置添加到大模型 Agent 的 MCP 服务配置中对应的 URL 如下jacg-server:{url:http://127.0.0.1:34567/mcp/sse}1.7. 使用场景与提示词示例1.7.1. 场景一首次了解陌生 Java 工程适用时机接手一个陌生的 Java 工程需要快速了解代码结构和调用关系。我不熟悉这个 Java 工程使用 JACG-SERVER MCP 工具从入口类 BizHandler:handle 开始分析整个执行流程看它调用了哪些业务方法使用 JACG-SERVER MCP 工具分析当前 Java 工程的整体调用结构从 BizHandler 入口开始追踪展示主要业务逻辑的调用关系1.7.2. 场景二代码修改影响范围评估适用时机准备修改某个方法或类需要评估影响面避免改一处坏一片。我要修改 BizService:process 方法使用 JACG-SERVER MCP 工具评估影响范围谁在调用它它依赖了哪些方法修改的风险有多大我要修改 BizDao 的实现使用 JACG-SERVER MCP 工具查看当前 Java 工程中哪些地方会受影响1.7.3. 场景三代码重构前的依赖梳理适用时机准备拆分或重构某个方法/类需要全面了解其调用方和被调用方。我要将 BizService:query 拆分为两个方法使用 JACG-SERVER MCP 工具梳理清楚 1. 这个方法内部做了哪些事向下依赖 2. 哪些地方在调用它向上依赖 3. 拆分后需要修改哪些调用方我要将 BizDao 从 MyBatis XML 迁移到 MyBatis Plus使用 JACG-SERVER MCP 工具分析 BizDao 的所有调用方和被调用方法评估迁移影响1.7.4. 场景四跨业务共用方法发现适用时机修改公共方法前需要确认是否被多个业务场景共用避免遗漏回归测试。我要修改 RemoteCallUtil:send 方法使用 JACG-SERVER MCP 工具分析它被当前 Java 工程中哪些业务入口调用是否涉及多个业务场景使用 JACG-SERVER MCP 工具检查当前 Java 工程中BizService 的哪些公共方法被多个入口类共用修改它们需要同时回归哪些业务1.7.5. 场景五理解接口的多态实现适用时机需要了解某个接口在运行时有几个实现类各自的调用链是什么。使用 JACG-SERVER MCP 工具分析 BizQueryService 接口的所有实现类及其调用链看看不同的实现分别做了什么BizStrategy:execute 是策略模式入口使用 JACG-SERVER MCP 工具分析它有哪些实现类每个实现的完整调用流程是什么1.7.6. 场景六按包名/模块梳理调用关系适用时机需要了解某个模块下指定入口类的调用关系或对比不同模块间的依赖。使用 JACG-SERVER MCP 工具分析 handler 包下指定的入口类的向下调用链展示各业务处理的主要流程使用 JACG-SERVER MCP 工具对比 service 包和 dao 包之间的调用关系看哪些 DAO 被多个 Service 共用1.7.7. 场景七按代码行号定位分析适用时机代码审查或排查问题时已知行号需要分析该行调用的方法的影响。使用 JACG-SERVER MCP 工具分析 BizServiceImpl 第 45 行的方法调用看它调用了什么以及向下还有哪些依赖BizServiceImpl 第 120 行的方法被谁调用使用 JACG-SERVER MCP 工具追踪到业务入口1.7.8. 场景八增量分析代码修改后重新评估适用时机代码已修改并重新编译需要基于最新的代码重新分析调用链。我修改了代码并重新编译使用 JACG-SERVER MCP 工具重新分析 BizService 的调用链看影响范围是否有变化1.8. 技术演进路线时间组件说明2021.07java-callgraph2核心静态分析生成方法调用关系2021.07java-all-call-graph结构化入库支持完整调用链与影响分析2026.04java-all-call-graph-server提供 Web 界面项目管理与可视化操作2026.05java-all-call-graph-server提供 MCP 服务支持大模型 Agent 接入相关项目地址java-callgraph2核心静态分析https://github.com/adrninistrator/java-callgraph2java-all-call-graph结构化入库与调用链生成https://github.com/adrninistrator/java-all-call-graphjava-all-call-graph-serverWeb 界面与 MCP 服务https://github.com/Adrninistrator/java-all-call-graph-server
Java调用链MCP分析工具-让AI更好地理解代码
发布时间:2026/6/8 3:22:01
1. Java 调用链 MCP 分析工具1.1. 作用向大模型 Agent 提供生成 Java 方法调用链的工具使其能够更好地理解与分析 Java 代码。1.2. 可以解决的问题1.2.1. 复杂业务系统代码难以理解面对大型 Java 业务系统代码量庞大、功能模块众多、调用层次深无论是接手新项目还是维护长期迭代的老项目都很难理清代码的调用关系和业务流程。逐个文件阅读源码效率低且容易遗漏关键路径。所有的项目只有在刚创建时是全新的从第一次提交后开始都可能涉及到对存量代码的修改对存量代码的理解是无法避免的。而理解存量代码的前提就是理清方法之间的调用关系。调用链工具对大模型 Agent 的帮助从入口方法如 Controller生成向下调用链即可看到完整的请求处理流程从核心方法生成向上调用链即可了解所有触发该方法的业务场景。无需逐文件阅读源码即可掌握项目的核心调用结构。1.2.2. 影响范围难以评估无论是修改代码前评估变更影响还是线上发现问题后确定影响范围都需要找到所有受波及的上层功能。传统方式下只能靠经验判断或全局搜索容易遗漏跨模块、跨层的间接调用关系导致改一处坏一片或问题影响范围评估不完整。调用链工具对大模型 Agent 的帮助从目标方法生成向上调用链自动找出所有直接和间接受影响的上层调用方包括跨模块、跨层的完整调用路径。修改代码前可据此评估变更影响范围避免遗漏发现问题后可据此确定受波及的业务入口为问题定级和修复优先级判断提供依据。1.2.3. 数据库写操作路径难以追踪排查数据异常时需要知道某个业务操作到底写了哪些数据库表。手动查找 Mapper 文件和 SQL 语句在大型项目中耗时且容易遗漏。调用链工具对大模型 Agent 的帮助生成向上或向下调用链时自动识别并标注方法涉及的 MyBatis 数据库写操作及对应的数据表名称目前支持识别使用 MyBatis 时的 Java 代码与 SQL 语句、数据库表之间的关系调用链中即可直观看到每个方法影响了哪些表。1.2.4. 回归测试范围难以确定代码变更后需要确定回归测试的边界。范围太小可能漏测范围太大浪费资源。尤其是跨模块的间接影响很难凭经验判断完整。调用链工具对大模型 Agent 的帮助通过变更影响分析确定受影响的调用链路据此明确回归测试需要覆盖的入口和路径既避免漏测也避免不相关模块的过度测试。1.3. 优势向大模型 Agent 提供生成 Java 方法调用链工具后相比大模型 Agent 本身拥有的工具和能力具有以下优势能力IDE Find UsagesIDE Call Hierarchygrep 文本搜索JACG-SERVER接口→实现自动解析Spring DI❌ 需手动跳转⚠️ 部分支持❌✅ 自动解析多态所有实现一次发现❌ 只看当前类型⚠️ 需逐个点击❌✅ 一次展示全部分支MyBatis Mapper→SQL 映射❌❌❌✅ 自动关联一键生成完整调用链❌ 需逐层手动❌ 需逐层点击❌✅ 深度遍历一次出批量多入口同时分析❌❌❌✅ 多入口并行跨业务共用方法发现❌ 需人脑记忆❌❌✅ 自动发现调用链语义标注❌❌❌✅ !throw!/Deprecated精确行号定位❌✅❌✅AI 可编程调用MCP 协议❌❌❌✅1.3.1. 减少大模型调用次数大模型 Agent 通过 IDE 工具如 Call Hierarchy查看调用关系时每次只能查一个方法需要手动递归展开。假设一个方法有 3 层调用、每层 3 个分支递归查询需要 40 次工具调用。调用链工具一次执行即可生成指定方法的所有上下层调用链大模型 Agent 只需调用一次即可获取完整结果。1.3.2. 减少 Token 消耗大模型 Agent 递归查询调用关系时每次工具调用的返回结果都进入上下文层层累积消耗大量 Token。调用链工具将完整调用链一次性写入文件大模型 Agent 可按需读取关心的部分避免将大量中间过程信息填入上下文。1.3.3. 减少耗时大模型 Agent 递归查询调用关系时每次工具调用都需要等待大模型推理和工具返回多层递归导致总耗时随调用深度线性增长。调用链工具在服务端一次性完成递归分析大模型 Agent 只需等待一次执行结果整体耗时显著降低。1.3.4. 结果更准确多态与泛型实际类型识别大模型 Agent 通过文本搜索或 IDE 工具查找调用关系时接口调用只能看到声明类型若要识别运行时的实际实现类需要额外查找实现类并分析继承关系耗时与 Token 消耗更大。调用链工具在静态分析阶段即解析多态的实际类型生成的调用链直接包含实际类型。Spring Bean 注入实际类型识别大模型 Agent 通过文本搜索查找 Spring Bean 的调用关系时字段声明类型是接口若要确定实际注入的实现类需要额外分析配置文件或注解耗时与 Token 消耗更大。调用链工具解析 Spring Bean 注入关系在调用链中直接体现实际注入的类型。跨模块间接调用自动追踪大模型 Agent 通过全局搜索方法名查找调用方时只能找到直接调用无法自动追踪跨模块、跨层的间接调用链路。调用链工具递归生成完整的调用链每一层的间接调用都会包含在内前提对应模块的代码已指定为需要分析的范围。方法注解信息展示大模型 Agent 需要单独查找方法上的注解信息如 Spring MVC 请求映射路径、事务注解等。调用链工具在生成调用链时自动展示方法注解信息无需额外查找。MyBatis 数据库操作关联大模型 Agent 无法直接将方法调用与数据库操作关联起来需要手动查找 Mapper 文件和 SQL 语句。调用链工具在生成向下调用链时自动标注 MyBatis 写操作及对应的数据表无需额外查找。1.4. 特点丰富的配置参数支持灵活的配置包括需要解析的代码范围、需要解析的 Java 包/类/方法、生成调用链时需要忽略的类与方法。通过精细化的配置可以聚焦关心的代码范围过滤干扰信息生成更有针对性的调用链结果。通过大模型 Agent 接入省去人工配置大模型 Agent 根据用户的分析需求自动选择合适的配置参数并执行分析无需用户手动填写配置文件或理解每个参数的含义。用户只需用自然语言描述想要分析的内容大模型 Agent 即可完成从配置到结果获取的全过程。1.5. 支持分析的代码格式以下格式的文件或目录可作为输入供工具进行静态分析和调用链生成jar class war jmod fat jar Maven/Gradle 构建输出目录如 target/classes、build/classes/java/main1.6. 使用方式1.6.1. 运行环境运行 java-all-call-graph-server 需要 JDK8 及以上版本部分 JDK8 版本在通过 Gradlew 编译时会失败需要升级。编译失败信息如下从 Maven 仓库下载文件时失败FAILURE: Build failed with an exception. * What went wrong: A problem occurred configuring root project java-all-call-graph-server. Could not resolve all files for configuration :classpath. Could not resolve org.springframework.boot:spring-boot-gradle-plugin:2.7.18. Required by: project : Could not resolve org.springframework.boot:spring-boot-gradle-plugin:2.7.18. Could not get resource https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-gradle-plugin/2.7.18/spring-boot-gradle-plugin-2.7.18.pom. Could not GET https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-gradle-plugin/2.7.18/spring-boot-gradle-plugin-2.7.18.pom. The server may not support the clients requested TLS protocol versions: (TLSv1.2). You may need to configure the client to allow other protocols to be used. See: https://docs.gradle.org/7.6.6/userguide/build_environment.html#gradle_system_properties sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target存在问题的版本为 jdk1.8.0_111。安装更高版本的 JDK 后解决问题可从 https://adoptium.net/zh-CN/temurin/releases?version8 下载例如 jdk1.8.0_462 版本。1.6.2. 代码下载从以下地址下载 java-all-call-graph-server 源码https://github.com/Adrninistrator/java-all-call-graph-server1.6.3. 运行 java-all-call-graph-server MCP 服务1.6.3.1. 通过 IDE 运行源码在 IDE 中执行启动类com.github.adrninistrator.jacgserver.JacgServerApplication1.6.3.2. 构建后运行构建在项目根目录执行gradlew bootJar生成可执行 jar 到build/libs目录运行在build/libs目录执行start.batWindows或start.shLinux/Mac1.6.4. 配置 MCP 服务配置通过 SSE 方式访问的 MCP 服务将以下配置添加到大模型 Agent 的 MCP 服务配置中对应的 URL 如下jacg-server:{url:http://127.0.0.1:34567/mcp/sse}1.7. 使用场景与提示词示例1.7.1. 场景一首次了解陌生 Java 工程适用时机接手一个陌生的 Java 工程需要快速了解代码结构和调用关系。我不熟悉这个 Java 工程使用 JACG-SERVER MCP 工具从入口类 BizHandler:handle 开始分析整个执行流程看它调用了哪些业务方法使用 JACG-SERVER MCP 工具分析当前 Java 工程的整体调用结构从 BizHandler 入口开始追踪展示主要业务逻辑的调用关系1.7.2. 场景二代码修改影响范围评估适用时机准备修改某个方法或类需要评估影响面避免改一处坏一片。我要修改 BizService:process 方法使用 JACG-SERVER MCP 工具评估影响范围谁在调用它它依赖了哪些方法修改的风险有多大我要修改 BizDao 的实现使用 JACG-SERVER MCP 工具查看当前 Java 工程中哪些地方会受影响1.7.3. 场景三代码重构前的依赖梳理适用时机准备拆分或重构某个方法/类需要全面了解其调用方和被调用方。我要将 BizService:query 拆分为两个方法使用 JACG-SERVER MCP 工具梳理清楚 1. 这个方法内部做了哪些事向下依赖 2. 哪些地方在调用它向上依赖 3. 拆分后需要修改哪些调用方我要将 BizDao 从 MyBatis XML 迁移到 MyBatis Plus使用 JACG-SERVER MCP 工具分析 BizDao 的所有调用方和被调用方法评估迁移影响1.7.4. 场景四跨业务共用方法发现适用时机修改公共方法前需要确认是否被多个业务场景共用避免遗漏回归测试。我要修改 RemoteCallUtil:send 方法使用 JACG-SERVER MCP 工具分析它被当前 Java 工程中哪些业务入口调用是否涉及多个业务场景使用 JACG-SERVER MCP 工具检查当前 Java 工程中BizService 的哪些公共方法被多个入口类共用修改它们需要同时回归哪些业务1.7.5. 场景五理解接口的多态实现适用时机需要了解某个接口在运行时有几个实现类各自的调用链是什么。使用 JACG-SERVER MCP 工具分析 BizQueryService 接口的所有实现类及其调用链看看不同的实现分别做了什么BizStrategy:execute 是策略模式入口使用 JACG-SERVER MCP 工具分析它有哪些实现类每个实现的完整调用流程是什么1.7.6. 场景六按包名/模块梳理调用关系适用时机需要了解某个模块下指定入口类的调用关系或对比不同模块间的依赖。使用 JACG-SERVER MCP 工具分析 handler 包下指定的入口类的向下调用链展示各业务处理的主要流程使用 JACG-SERVER MCP 工具对比 service 包和 dao 包之间的调用关系看哪些 DAO 被多个 Service 共用1.7.7. 场景七按代码行号定位分析适用时机代码审查或排查问题时已知行号需要分析该行调用的方法的影响。使用 JACG-SERVER MCP 工具分析 BizServiceImpl 第 45 行的方法调用看它调用了什么以及向下还有哪些依赖BizServiceImpl 第 120 行的方法被谁调用使用 JACG-SERVER MCP 工具追踪到业务入口1.7.8. 场景八增量分析代码修改后重新评估适用时机代码已修改并重新编译需要基于最新的代码重新分析调用链。我修改了代码并重新编译使用 JACG-SERVER MCP 工具重新分析 BizService 的调用链看影响范围是否有变化1.8. 技术演进路线时间组件说明2021.07java-callgraph2核心静态分析生成方法调用关系2021.07java-all-call-graph结构化入库支持完整调用链与影响分析2026.04java-all-call-graph-server提供 Web 界面项目管理与可视化操作2026.05java-all-call-graph-server提供 MCP 服务支持大模型 Agent 接入相关项目地址java-callgraph2核心静态分析https://github.com/adrninistrator/java-callgraph2java-all-call-graph结构化入库与调用链生成https://github.com/adrninistrator/java-all-call-graphjava-all-call-graph-serverWeb 界面与 MCP 服务https://github.com/Adrninistrator/java-all-call-graph-server