Java Hibernate MCP服务器
一个模型上下文协议(MCP)服务器,它扫描Java代码库中的Hibernate/JPA实体,提取它们的结构和关系,并将此上下文提供给LLM。
特性
- 实体扫描:自动查找
@Entity类并提取字段、类型和关系(@OneToMany,@ManyToOne等等)。 - 增强元数据:提取验证约束(
@NotNull,@Size等等)和ID生成策略。 - 动态数据源解析:根据可配置的包模式将实体映射到数据源。
- 图形可视化:生成实体图的Mermaid.js类图。
- 实体解析:查找指定深度以下的相关实体(BFS遍历)。
- 缓存:缓存扫描结果以提高性能。
先决条件
- Java 21或更高版本
- Maven 3.6或更高版本
构建服务器
使用Maven构建项目:
mvn clean package这将在 target 目录(例如。, mcp-java-0.0.1-SNAPSHOT.jar).
配置
路径配置
您可以使用命令行参数或属性配置根路径和数据源路径。
示例 claude_desktop_config.json 与论点:
{
"mcpServers": {
"java-hibernate-mcp": {
"command": "java",
"args": [
"-jar",
"/absolute/path/to/mcp-java/target/mcp-java-0.0.1-SNAPSHOT.jar",
"--mcp.root-path=/path/to/your/codebase",
"--mcp.datasource-paths./path/to/your/codebase/core=CoreDatasource",
"--mcp.datasource-paths./path/to/your/codebase/analytics=AnalyticsDatasource"
]
}
}
}--mcp.root-path:设置扫描的默认根目录。- `--mcp.datasource-paths.
=`:将特定文件路径前缀映射到数据源。这优先于基于包的映射。
数据源
在中配置数据源映射 src/main/resources/application.properties (或在运行时提供自己的属性文件):
# Map packages to datasource names
mcp.datasources.com.example.core=CoreDatasource
mcp.datasources.com.example.analytics=AnalyticsDatasource使用克劳德桌面/Claude代码
要将此服务器与Claude Desktop或其他MCP客户端一起使用,请将其添加到配置文件中(通常 claude_desktop_config.json 在macOS/Windows上)。
配置条目
{
"mcpServers": {
"java-hibernate-mcp": {
"command": "java",
"args": [
"-jar",
"/absolute/path/to/mcp-java/target/mcp-java-0.0.1-SNAPSHOT.jar"
]
}
}
}备注:替换 /absolute/path/to/... 带有构建的JAR文件的实际完整路径。
可用工具
scanEntities
扫描代码库中的Hibernate实体。
- 路径 (可选):要扫描的根目录。默认为服务器的工作目录。
findRelatedEntities
查找与特定实体相关的实体的子图。
- 实体Name:起始实体的简单或完全限定名称。
- 深度 (可选):搜索深度(默认值:5)。
generateEntityGraph
生成实体关系的可视化图表。
- 返回Claude可以渲染的Mermaid.js字符串。
refreshCache
清除内部缓存以强制重新扫描代码库。
