AI 에이전트로 JHipster 구동: jhipster‑mcp(v0.0.4) 출시
Source: Dev.to
TL;DR — jhipster-mcp는 AI 에이전트가 JHipster 애플리케이션을 생성하고 진화시킬 수 있게 해주는 오픈‑소스 Model Context Protocol(MCP) 서버입니다.
원하는 것을 자연어로 설명하면 에이전트가 JDL을 작성하고 JHipster CLI를 구동합니다. npm에 배포되어 있어 MCP 호스트를 한 줄로 지정하면 됩니다. v0.0.4가 첫 공개 릴리스입니다.
- 📦 npm:
- 🧑💻 GitHub:
The idea
JHipster는 언제나 속도에 초점을 맞춰 왔습니다: 몇 분 안에 프로덕션 급 Spring Boot + 모던 프론트엔드 앱을 스캐폴딩하고, JDL(JHipster Domain Language)로 도메인을 모델링한 뒤, 생성기가 보일러플레이트 코드를 작성하도록 하는 것이죠.
AI 코딩 에이전트는 의도에 강합니다: 원하는 것을 말하면 에이전트가 단계들을 스스로 파악합니다.
jhipster-mcp는 이 둘을 연결합니다. JHipster를 에이전트가 호출할 수 있는 MCP 도구 집합으로 노출합니다. JDL 문법이나 CLI 플래그를 외우는 대신 이렇게 말하면 됩니다:
“
/tmp/shop에 PostgreSQL과 Angular 프론트엔드를 사용하는 JHipster 모놀리스를 만들고,Product엔티티(name, price)와Category엔티티를 추가해Category가Product와 일대다 관계를 갖게 해줘. 모든 리스트를 페이지네이션해줘.”
…그리고 에이전트는 유효한 JDL을 조합하고, 생성기를 실행하며, 결과를 스트리밍합니다.
Goals
- JHipster를 대화형으로 만든다. 자연어 의도 → 올바른 JDL → 실제 생성된 코드.
- 안전하고 예측 가능하게 유지한다. 비대화형, 쉘 사용 금지, 입력 검증, 뜻밖의 파일 쓰기 방지.
- 머신 친화적으로 만든다. 로그가 아니라 에이전트가 논리적으로 활용할 수 있는 구조화된 결과를 반환한다.
- JHipster에 의존하고 재발명하지 않는다. JHipster CLI를 그대로 실행하고, 생성기가 진실의 원천으로 남는다.
Who it’s for
- JHipster 개발자: AI 에디터를 통해 앱을 더 빠르게 스캐폴딩하고 진화시키고 싶은 사람.
- 팀: JHipster를 표준으로 사용하면서 생성기 호출에 대한 가드레일을 원하는 팀.
- AI / MCP 실험가: 실제 상태를 가진 개발자 CLI를 MCP 도구로 감싸는 방법에 관심 있는 사람.
Claude Code, Claude Desktop, Cursor, 혹은 MCP‑호환 호스트를 사용한다면 오늘 바로 연결할 수 있습니다.
What you can do with it
서버는 9개의 도구를 제공하며, 모두 JDL‑우선입니다:
| Tool | What it does |
|---|---|
create_app_from_jdl | 전체 JDL 블록으로부터 새 애플리케이션을 스캐폴딩합니다. |
import_jdl | 기존 프로젝트에 JDL(엔티티, 관계, 옵션)을 적용합니다. |
add_entity | 필드, 검증, 엔티티별 옵션을 포함한 하나의 엔티티를 추가합니다. |
add_relationship | 두 엔티티 사이에 타입이 지정된 관계를 추가합니다. |
set_option | JDL 옵션(paginate, dto, service, search 등)을 토글합니다. |
validate_jdl | 프로젝트를 변경하지 않고 JDL 오류를 검사합니다. |
generate_ci_cd | CI/CD 파이프라인(GitHub, GitLab, Jenkins 등)을 스캐폴딩합니다. |
info | 프로젝트 버전, 설정, 엔티티 정보를 조회합니다. |
run_jhipster | 허용된 서브커맨드를 안전하게 실행할 수 있는 비상 탈출구입니다. |
또한 MCP 리소스로 JDL 문법 치트시트를 제공하므로, 에이전트가 처음부터 올바른 JDL을 작성할 수 있습니다.
What’s in v0.0.4 — the highlights
🔄 Live progress streaming
전체 앱 생성은 30~90 초가 걸릴 수 있습니다. 서버는 생성기의 출력을 MCP 진행 알림으로 실시간 스트리밍해, 화면이 멈춘 듯 보이는 상황을 방지합니다.
✅ Validation + a true dry‑run
JDL을 검증하거나 프로젝트를 건드리지 않고 변경 사항을 미리 볼 수 있습니다.
JHipster 자체
--dry-run플래그는 충돌만 출력하고 여전히 파일을 생성합니다.
jhipster-mcp는 진짜 미리보기를 수행합니다: 임시 디렉터리(프로젝트의.yo-rc.json과.jhipster/를 복사해 컨텍스트 제공)에서 생성하고, 결과를 파싱한 뒤 모두 삭제합니다. 프로젝트는 절대 수정되지 않습니다.
📦 Structured output
각 도구는 사람이 읽을 수 있는 텍스트와 함께 머신이 읽을 수 있는 JSON을 반환하므로, 에이전트가 로그를 스크래핑하지 않고도 데이터를 기반으로 논리 전개가 가능합니다:
{
"command": "jhipster jdl changes.jdl --force --skip-git",
"exitCode": 0,
"success": true,
"dryRun": false,
"entities": ["Customer", "Order"],
"filesChanged": [
{ "action": "create", "path": "src/main/java/..." }
],
"warnings": []
}
Why it’s safe by design
- 쉘 사용 금지. CLI는
shell: false와 인자 허용 목록으로 실행돼 명령어 주입 위험이 없습니다. - 검증된 JDL 빌더. 엔티티·필드·타입 이름은 엄격한 패턴으로 사전 검증됩니다.
- 항상 비대화형.
--force --skip-git와CI=true옵션으로 실행돼 프롬프트에 멈추지 않습니다. - 범위 제한. 모든 도구는 명시적인
workingDirectory를 받아, 서버가 그 디렉터리 밖으로 행동하지 않게 합니다.
내부 구현은 공식 MCP SDK 위에 TypeScript로 작성됐으며, 70개의 테스트와 Node 22/24 환경에서 CI가 실행됩니다.
How to use it
1️⃣ Prerequisites
- Node.js 20 이상
- 전역에 설치된 JHipster CLI:
npm install -g generator-jhipster
jhipster --version
2️⃣ Add it to your MCP host
Claude Code
claude mcp add jhipster -- npx -y jhipster-mcp
Claude Desktop / Cursor / other hosts – MCP 설정에 추가:
{
"mcpServers": {
"jhipster": {
"command": "npx",
"args": ["-y", "jhipster-mcp"]
}
}
}
npx가 패키지를 자동으로 가져와 캐시해 주므로 별도 클론이나 빌드가 필요 없습니다.
3️⃣ Just ask
“
/Users/me/projects/shop에Customer엔티티를 추가하고,firstName(필수, 2–50 자),lastName,Customer와Order사이에 일대다 관계를 설정해줘.”
에이전트가 JDL 문법을 읽고 스니펫을 만든 뒤 적용합니다 — 진행 상황을 스트리밍하면서 실행됩니다.
먼저 미리 보고 싶나요?
먼저 프리뷰를 요청하세요:
“
Tag엔티티를 추가하면 어떤 파일이 바뀔지 보여줘—아직 파일은 만들지 말고.”
…그러면 동일한 도구를 dryRun: true 옵션으로 실행합니다.
What’s next
이번 릴리스는 “Tier 1” 경험(진행 스트리밍, 검증/드라이런, 구조화된 출력) 작업을 마무리했습니다. 앞으로의 로드맵:
- 프로젝트‑상태 리소스 – 에이전트가
.yo-rc.json, 엔티티 목록, 내보낸 JDL 등을 직접 읽을 수 있게 함. - 가이드형 프롬프트 –