From 5d25a23aac37795d9a21b09c3aa882f6b376a98d Mon Sep 17 00:00:00 2001 From: jade Date: Mon, 6 Jul 2026 17:47:55 +0900 Subject: [PATCH] Feat: Update ToolScaffolder to generate dynamic tool names and auto-inject YAML config --- .../biz/mcp/tool/util/ToolScaffolder.java | 23 ++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/axhub-tool-core/src/main/java/io/shinhanlife/axhub/biz/mcp/tool/util/ToolScaffolder.java b/axhub-tool-core/src/main/java/io/shinhanlife/axhub/biz/mcp/tool/util/ToolScaffolder.java index 7f45e96..2af4a40 100644 --- a/axhub-tool-core/src/main/java/io/shinhanlife/axhub/biz/mcp/tool/util/ToolScaffolder.java +++ b/axhub-tool-core/src/main/java/io/shinhanlife/axhub/biz/mcp/tool/util/ToolScaffolder.java @@ -94,6 +94,8 @@ public class ToolScaffolder { """.formatted(BASE_PACKAGE, baseName); Files.writeString(dtoDir.resolve(baseName + "Res.java"), resContent); + String toolName = baseName.toLowerCase(); + // Generate Service String serviceContent = """ package %s.service; @@ -112,7 +114,7 @@ public class ToolScaffolder { public class %sService extends AbstractMcpToolService { @McpFunction( - name = "execute", + name = "%s", description = "%s", prompt = "%s", mappingId = "%s" @@ -130,6 +132,7 @@ public class ToolScaffolder { routingType, group, baseName, + toolName, description, description + " 해줘.", interfaceId, @@ -140,6 +143,24 @@ public class ToolScaffolder { Files.writeString(serviceDir.resolve(baseName + "Service.java"), serviceContent); + // Append to YAML if exists + Path yamlPath = Paths.get(moduleName, "src/main/resources", "application-local.yml"); + if (Files.exists(yamlPath)) { + String yamlContent = Files.readString(yamlPath); + if (yamlContent.contains("functions:")) { + String newFunctionYaml = """ + + %s: + description: "%s" + prompt: "%s" + mappingId: "%s" + """.formatted(toolName, description, description + " 해줘.", interfaceId); + yamlContent = yamlContent.replaceFirst("functions:", "functions:" + newFunctionYaml); + Files.writeString(yamlPath, yamlContent); + System.out.println("[YAML] " + yamlPath + " (함수 설정 자동 등록됨)"); + } + } + System.out.println("\n========================================="); System.out.println("✅ Scaffolding Complete!"); System.out.println("=========================================");