Java Boilerplate Generator
БесплатноНе проверенEnables automatic generation of explicit boilerplate methods (getter/setter/equals/hashCode/toString/constructors) for Java entity classes, replacing Lombok dep
Описание
Enables automatic generation of explicit boilerplate methods (getter/setter/equals/hashCode/toString/constructors) for Java entity classes, replacing Lombok dependencies with visible, reviewable code.
README
一个 MCP(Model Context Protocol) 服务器,用于为 Java 实体类自动生成显式的样板方法(getter/setter/equals/hashCode/toString/构造函数),并写回原文件。
为什么需要它
AI 编码助手在为 Java 实体类生成样板代码时,倾向于直接加 Lombok 注解(@Data、@Getter 等)。这会引入对 Lombok 的隐式依赖,且生成的代码不可见、不可审查。本工具由 MCP 替代 AI 直接生成显式的、IDE 标准风格的 Java 方法,让实体类自带完整方法,无需 Lombok。
工具:generate_boilerplate
解析指定 .java 文件中的实体类,生成缺失的样板方法并写回原文件。
参数
| 参数 | 类型 | 默认 | 说明 |
|---|---|---|---|
file_path |
str |
必填 | Java 实体类的绝对路径 |
generate |
list[str] |
["getter","setter"] |
要只补缺失的方法类型子集,仅接受 "getter"、"setter"。只为缺少访问器的字段生成,保留手写逻辑(如带校验的 setter)。其余 5 类不能放这里,请用 regenerate。 |
setter_style |
str |
"void" |
setter 返回风格:"void"(传统)或 "fluent"(返回 this,支持链式调用) |
include_super_fields |
bool |
false |
为 true 时,equals 前置 super.equals(o)、hashCode 加 super.hashCode() |
regenerate |
list[str] |
后 5 类 | 要删旧重建的方法类型子集,可选值为全部 7 种:"getter"、"setter"、"equals"、"hashCode"、"toString"、"no_args_ctor"、"all_args_ctor"。删除旧方法后重新生成。这是请求 equals/hashCode/toString/构造器的唯一途径;把 getter/setter 列入则改为删旧重建(适合切换 setter 风格等重构)。默认后 5 类。 |
冲突:同一访问器类型(getter 或 setter)不能同时出现在
generate与regenerate中——"只补缺失"与"删旧重建"对同一访问器互斥。冲突时工具返回error="conflict"并给出说明,不写回文件,需重新调用二选一。同理,把 5 类放入generate也会触发该错误(它们只能经regenerate请求)。
行为规则
generate(仅 getter/setter):只补缺失——只为缺少访问器的字段生成,保留手写逻辑。regenerate(全部 7 种皆可):删旧重建——删除旧方法后重新生成。equals/hashCode/toString/构造器只能经此参数请求;getter/setter 列入则改为删旧重建。- 默认(不传参):生成全部 7 种——
generate默认[getter,setter]补缺失,regenerate默认后 5 类删旧重建。 - static/transient 字段:不参与生成(与 IDE 行为一致)。
- 风格:IDE 标准风格。equals 用
instanceof模式;对象字段用Objects.equals,基本类型用==;hashCode 用Objects.hash。 - Lombok:工具不解析 Lombok 语义,不处理与 Lombok 注解的冲突。
关于 include_super_fields 与继承
当 include_super_fields=true 时,子类的 equals/hashCode 会调用 super.equals(o) / super.hashCode()。由于 equals 使用 instanceof 模式(而非 getClass()),父类的 o instanceof Parent 对子类实例为 true,因此 super.equals(o) 能在父子类间正确传递——前提是父类也由本工具生成 equals/hashCode。
// 父类 Parent(由本工具生成)
@Override
public boolean equals(Object o) {
if (o == this) return true;
if (!(o instanceof Parent)) return false; // Child 也是 Parent,通过
Parent other = (Parent) o;
return Objects.equals(this.id, other.id);
}
// 子类 Child(include_super_fields=true)
@Override
public boolean equals(Object o) {
if (o == this) return true;
if (!(o instanceof Child)) return false;
Child other = (Child) o;
return super.equals(o) // 委托父类比较父类字段
&& Objects.equals(this.name, other.name); // 子类自己的字段
}
注意:
instanceof模式 + 继承有一个固有的对称性副作用(parent.equals(child)可能为 true 而child.equals(parent)为 false),这是 IDE 生成代码的相同行为,实体类场景通常可接受。
安装与接入
前置要求
- Python 3.14+
- uv(用于管理依赖与运行)
接入 Claude Code
在 Claude Code 的 MCP 配置(~/.claude.json 或项目的 .mcp.json)中添加:
{
"mcpServers": {
"java-boilerplate": {
"command": "uvx",
"args": ["--from", "git+https://github.com/FlyDut/java-boilerplate-mcp", "python", "-m", "java_mcp.server"]
}
}
}
接入 Claude Desktop
在 Claude Desktop 的配置文件(claude_desktop_config.json)中添加同样的 mcpServers 条目。
验证
# 运行测试
uv run pytest
# 启动服务器(stdio 模式,应显示 FastMCP 横幅后等待输入)
uv run python -m java_mcp.server
使用示例
对 AI 说:
帮我为
src/main/java/com/example/User.java生成 getter、setter、equals、hashCode、toString 和构造函数,不要用 Lombok。
AI 会调用 generate_boilerplate 工具,工具读取文件、生成方法、写回原文件,并返回生成统计。
项目结构
src/java_mcp/
├── server.py # FastMCP 实例 + generate_boilerplate 工具 + 编排逻辑
├── parser.py # tree-sitter-java 解析 → ParsedFile/EntityClass/Field
├── model.py # 数据模型: Field, EntityClass, ParsedFile
├── detector.py # 检测已存在的 getter/setter/equals/hashCode/toString/构造
├── generator.py # 生成各方法的 Java 源码(IDE 标准风格)
└── writer.py # 插入方法 + import,替换旧 @Override 方法,写回文件
测试
uv run pytest # 全部测试(含用 javac/java 的端到端验证)
uv run pytest tests/test_e2e.py -v # 端到端:编译运行生成的 Java 验证 equals 链
端到端测试会用 javac 编译工具生成的 Java 文件并运行,验证父子类 equals/hashCode 链在运行时自洽正确。
Установка Java Boilerplate Generator
У этого сервера нет опубликованного пакета — он собирается из исходников. Открой репозиторий и следуй инструкции в README.
▸ github.com/FlyDut/java-boilerplate-mcpFAQ
Java Boilerplate Generator MCP бесплатный?
Да, Java Boilerplate Generator MCP бесплатный — установка в пару кликов через Unyly без оплаты.
Нужен ли API-ключ для Java Boilerplate Generator?
Нет, Java Boilerplate Generator работает без API-ключей и переменных окружения.
Java Boilerplate Generator — hosted или self-hosted?
Self-hosted: сервер запускается локально на твоей машине командой из раздела установки.
Как установить Java Boilerplate Generator в Claude Desktop, Claude Code или Cursor?
Открой Java Boilerplate Generator на unyly.org, выбери вкладку своего клиента (Claude Desktop, Claude Code, Cursor) и нажми Install — конфиг сгенерируется автоматически, без правки JSON.
Похожие MCP
GitHub
PRs, issues, code search, CI status
автор: GitHubFilesystem
Secure file operations with configurable access controls.
Memory
Knowledge graph-based persistent memory system.
Template MCP Server
A CLI tool to create a new Model Context Protocol server project with TypeScript support, dual transport options, and an extensible structure
автор: mcpdotdirectCompare Java Boilerplate Generator with
Не уверен что выбрать?
Найди свой стек за 60 секунд
Автор?
Embed-бейдж для README
Похожее
Все в категории development
