Java代码知识图谱构建工具 - 基于语义分析的 Java 项目理解和查询工具,支持 MCP Server
Project description
jcgraph
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- 只展开关键路径
📚 使用示例
在 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)
📖 文档
- MCP Server 使用指南 - 完整安装配置教程
- MCP Server 快速开始
🔧 系统要求
- 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
🔗 链接
- GitHub: https://github.com/xuelin25/jcgraph
- PyPI: https://pypi.org/project/jcgraph/
- Model Context Protocol: https://modelcontextprotocol.io
为 Java 开发者和 AI 辅助编程而生
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file jcgraph-0.2.6.tar.gz.
File metadata
- Download URL: jcgraph-0.2.6.tar.gz
- Upload date:
- Size: 441.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.9.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a070d4e0aabc674f001240ac6d30f0f5dd8c2cece970a716642d71e4b6f22f32
|
|
| MD5 |
3c58f0dbad75e9960704974807bc8d8b
|
|
| BLAKE2b-256 |
6c97f308345e905fddf391b68192fe09eb813bc539b1827bf160778e2fcc3fa7
|
File details
Details for the file jcgraph-0.2.6-py3-none-any.whl.
File metadata
- Download URL: jcgraph-0.2.6-py3-none-any.whl
- Upload date:
- Size: 437.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.9.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
41951aa787102eca20551b0ed8b25dea50656c7364a91d90298ab8251aa2dd92
|
|
| MD5 |
c0f027bb04f55a44a97962e526ca6ca8
|
|
| BLAKE2b-256 |
7680810f14fec1de6f57198d8fb39752bf644784951bcf5076e40dae3ec81615
|