Skip to main content

Java代码知识图谱构建工具 - 基于语义分析的 Java 项目理解和查询工具,支持 MCP Server

Project description

jcgraph

PyPI version Python Version License: MIT

Java 代码知识图谱构建工具 - 通过静态分析构建 Java 代码知识图谱,为 AI 助手提供精准的代码理解能力

✨ 核心特性

  • 🤖 MCP Server - 为 Claude、Cursor 等 AI 工具提供 Java 代码理解能力
  • 🔍 精准解析 - 基于 Tree-sitter 的语法分析,支持类、方法、字段、注解
  • 🕸️ 调用链分析 - 完整追踪方法调用关系,支持接口多实现、Lombok
  • 📊 可视化界面 - Web UI 展示调用时序图和代码结构
  • 🚀 快速查询 - SQLite 本地存储,秒级响应

📦 安装

# 基础安装
pip install jcgraph

# 完整功能(包含 Web 服务)
pip install jcgraph[full]

# MCP Server(需要 Python >= 3.10)
pip install jcgraph[mcp]

提示: 如果 pip 命令无法使用,请使用 python3 -m pip install jcgraph 或参考安装文档

🚀 快速开始

1. 扫描 Java 项目

cd /path/to/java/project
jcgraph scan . --name my-project

2. 配置 AI 助手(MCP Server)

# 配置到 Claude Desktop
jcgraph mcp setup --client claude-desktop

# 配置到 Cursor
jcgraph mcp setup --client cursor

配置后重启 AI 工具,即可使用以下能力:

  • 搜索 Java 类和方法
  • 获取方法调用时序图(支持智能过滤)
  • 查看方法源代码
  • 分析代码结构

3. 启动 Web 界面(可选)

jcgraph serve --port 8080

访问 http://localhost:8080 查看可视化界面

🤖 MCP Server 工具

配置后,AI 助手可使用以下工具:

工具 功能 参数
get_call_sequence 获取方法调用时序图 method_id, depth, min_importance
search_code 搜索类/方法/字段 query, node_type, limit
get_method_code 查看方法源代码 method_id

核心功能 - 智能过滤调用时序

通过 min_importance 参数控制展示粒度:

  • 30 - 展开大部分节点(包括辅助方法)
  • 50(默认)- 只展开重要节点
  • 60 - 只展开高重要度节点
  • 80 - 只展开关键路径

详见:MCP Server 使用指南

📚 使用示例

在 Claude/Cursor 中提问

请分析 UserService.login 方法的调用链,深度3层,只展示重要节点

AI 会自动调用 jcgraph 工具,返回结构化的调用时序:

login() → validate() → findByUsername() → checkPassword()

命令行查询

# 查看统计信息
jcgraph stats

# 检查类信息
jcgraph check class UserService

# 诊断导出
jcgraph diagnose

🏗️ 支持特性

语法解析

  • ✅ 类(class/interface/enum/abstract)
  • ✅ 方法(静态/抽象/构造函数)
  • ✅ Lombok 注解(@Data, @Getter, @Setter)
  • ✅ Lambda 表达式
  • ✅ 泛型参数

关系分析

  • ✅ 继承(extends)
  • ✅ 实现(implements)
  • ✅ 方法调用(包括链式调用)
  • ✅ 依赖注入(@Autowired, @Resource)
  • ✅ 接口多实现识别
  • ✅ 循环检测(for/while)
  • ✅ 分支检测(if/switch)

📖 文档

🔧 系统要求

  • Python >= 3.9(基础功能)
  • Python >= 3.10(MCP Server)
  • Java 8+ 项目

📝 更新日志

v0.2.4

  • ✨ 解耦 MCP Server 和 FastAPI 依赖
  • ✨ 新增智能节点过滤(min_importance 参数)
  • 📚 完善安装和配置文档
  • 🐛 修复静态文件打包问题

v0.2.0

  • ✨ 新增 MCP Server 支持
  • ✨ 新增日志和诊断工具
  • ✨ 新增自动配置命令
  • 📚 完整的使用文档

🤝 贡献

欢迎提交 Issue 和 Pull Request!

📄 License

MIT License

🔗 链接


为 Java 开发者和 AI 辅助编程而生

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

jcgraph-0.2.5.tar.gz (432.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

jcgraph-0.2.5-py3-none-any.whl (427.7 kB view details)

Uploaded Python 3

File details

Details for the file jcgraph-0.2.5.tar.gz.

File metadata

  • Download URL: jcgraph-0.2.5.tar.gz
  • Upload date:
  • Size: 432.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.6

File hashes

Hashes for jcgraph-0.2.5.tar.gz
Algorithm Hash digest
SHA256 5d939074e40e970f9ebee29b03d16a1145756171b08c4b2d6ed49674e9c7859d
MD5 0fc563471adbd6da4bfabe65814746ef
BLAKE2b-256 114d0dcc8ba85ae5ac1d61bae56edfce472a0f6d1567e5fb1ee72c440a3f76dd

See more details on using hashes here.

File details

Details for the file jcgraph-0.2.5-py3-none-any.whl.

File metadata

  • Download URL: jcgraph-0.2.5-py3-none-any.whl
  • Upload date:
  • Size: 427.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.6

File hashes

Hashes for jcgraph-0.2.5-py3-none-any.whl
Algorithm Hash digest
SHA256 29a1859dffe87609bd807b7504aac4f8315cdbbfab6d67b25b29d8175f7f9075
MD5 d04250b3b6b517d5bcc98097525e3ac3
BLAKE2b-256 f4909ee458c25ea6100f3dc13ff1b9c4d8071311d108820acf86ce784b5500d7

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page