Skip to main content
Glama
EricSeokgon

egovframe-scaffold-mcp

by EricSeokgon

컨테이너·배포 산출물 생성

generate_egovframe_deploy

프로젝트 진단(빌드 도구·패키징·Boot 여부·웹·actuator·DbType·설정 파일)으로 컨테이너·배포 산출물을 만듭니다 — Dockerfile(멀티 스테이지: Maven/Gradle 빌드 → Classic war 는 Tomcat 10.1(Servlet 6.1 이상이면 11.0)에 ROOT 로 풀어서, Boot jar 는 eclipse-temurin JRE 로…

Instructions

프로젝트 진단(빌드 도구·패키징·Boot 여부·웹·actuator·DbType·설정 파일)으로 컨테이너·배포 산출물을 만듭니다 — Dockerfile(멀티 스테이지: Maven/Gradle 빌드 → Classic war 는 Tomcat 10.1(Servlet 6.1 이상이면 11.0)에 ROOT 로 풀어서, Boot jar 는 eclipse-temurin JRE 로; 비루트·HEALTHCHECK·Asia/Seoul·UTF-8, buildInImage=false 면 미리 빌드한 산출물), .dockerignore, deploy/docker-compose.yml(앱 + DbType 별 DB 컨테이너 mysql·mariadb·postgres, 템플릿 DDL·DATA 초기화, 상용 DB 는 연결 정보만), Kubernetes 매니페스트(deploy/k8s/.yaml — Deployment(startup·readiness·liveness 프로브, 비루트 securityContext, 리소스)·Service·ConfigMap·Secret·선택 Ingress). DB 설정은 Boot 는 Spring 환경 변수(Globals.mysql.Url → GLOBALS_MYSQL_URL), Classic 은 globals.properties 사본을 볼륨·Secret 으로 덮어씁니다. imageRegistry 로 기반 이미지를 사내 레지스트리(폐쇄망)에서 받습니다. 새 파일만 쓰고(기존 파일 거부) dryRun(기본)은 내용만 보여 줍니다. 멀티 모듈·라이브러리 jar·빌드 파일 없는 프로젝트는 이유를 돌려줍니다.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
jdkNoJDK(빌드·실행 이미지)17
imageNo앱 이미지 이름(기본 <appName>:<version>)
dryRunNotrue(기본)면 쓰지 않고 내용만
formatNo응답 형식markdown
appNameNo앱 이름(기본 artifactId)
targetsNo만들 산출물(compose 는 Dockerfile 도 함께)
projectDirYes프로젝트 디렉터리(절대경로 권장)
ingressHostNoKubernetes Ingress 호스트(주면 Ingress 추가)
buildInImageNotrue: 이미지 안에서 빌드(멀티 스테이지) · false: 미리 빌드한 target/*.war·jar 를 담음(폐쇄망에서 컨테이너 안 Maven 접근이 어려울 때)
imageRegistryNo기반 이미지 레지스트리(폐쇄망 사내 레지스트리·프록시 캐시) — Dockerfile ARG BASE_REGISTRY 기본값docker.io/library
dockerfilePathNoDockerfile 경로(프로젝트 상대) — 템플릿에 이미 Dockerfile 이 있으면 deploy/Dockerfile 등Dockerfile

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
filesYes
notesYes
usageYes
dryRunYes
profileNo
writtenYes
supportedYes
projectDirYes
unsupportedNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.45.0

TDQS

A4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare a non-read-only, non-destructive, non-idempotent write, and the description adds substantial context beyond them: it writes only new files and rejects existing ones (explaining the non-idempotent hint), dryRun defaults to true and only previews content, and it returns a reason for unsupported projects (multi-module, library jar, no build file). It also discloses DB configuration mechanics and offline registry fetching. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose is front-loaded, and there is little true filler — but it is a single run-on paragraph stuffed with nested parentheses, dashes, and semicolons that is hard to parse. Information density is high but structure and readability suffer, so it is only adequately concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex artifact-generating tool with an output schema present (so return values need not be explained), the description covers the generated files, DB wiring strategy, offline registry handling, defaults, and error cases. It is close to complete, with the main gap being a lack of explicit tool-selection guidance versus sibling generators.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all 11 parameters, making 3 the baseline. The description adds only marginal meaning, e.g. that imageRegistry is used to pull base images from a closed-network corporate registry, but most parameter mentions (image, dryRun, buildInImage, dockerfilePath) largely restate the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb (만듭니다/생성) and precisely enumerates the resource produced: Dockerfile, .dockerignore, deploy/docker-compose.yml, and Kubernetes manifests under deploy/k8s/. This output inventory makes it unmistakable against siblings like generate_egovframe_ci or generate_egovframe_config without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied through the project-diagnosis framing and the buildInImage=false closed-network note. There is no explicit statement of when to choose this tool over alternatives (e.g. generate_egovframe_ci) or any exclusion criteria for when not to call it. The buildInImage and imageRegistry hints are parameter guidance rather than tool-selection guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.