diff --git a/axhub-gateway/src/main/java/io/shinhanlife/axhub/biz/mcp/gateway/registry/RedisRegistryService.java b/axhub-gateway/src/main/java/io/shinhanlife/axhub/biz/mcp/gateway/registry/RedisRegistryService.java index 81b95c9..3fc5d7b 100644 --- a/axhub-gateway/src/main/java/io/shinhanlife/axhub/biz/mcp/gateway/registry/RedisRegistryService.java +++ b/axhub-gateway/src/main/java/io/shinhanlife/axhub/biz/mcp/gateway/registry/RedisRegistryService.java @@ -75,6 +75,19 @@ public class RedisRegistryService { return redisTemplate.opsForValue().get(KEY_PREFIX + uid); } + /** + * 툴 이름으로 정보 조회 + */ + public ToolMetadata getToolByName(String name) { + List allTools = getAllTools(); + for (ToolMetadata tool : allTools) { + if (name.equals(tool.getName())) { + return tool; + } + } + return null; + } + /** * 등록된 모든 활성 툴 목록 조회 */ diff --git a/axhub-gateway/src/main/java/io/shinhanlife/axhub/biz/mcp/gateway/service/ToolPlanner.java b/axhub-gateway/src/main/java/io/shinhanlife/axhub/biz/mcp/gateway/service/ToolPlanner.java index e3b7fda..dfea1f7 100644 --- a/axhub-gateway/src/main/java/io/shinhanlife/axhub/biz/mcp/gateway/service/ToolPlanner.java +++ b/axhub-gateway/src/main/java/io/shinhanlife/axhub/biz/mcp/gateway/service/ToolPlanner.java @@ -50,7 +50,7 @@ public class ToolPlanner { // 2. RedisRegistry에서 해당 툴의 메타데이터 조회 // (실제로는 이 메타데이터가 실행 계획의 핵심이 됩니다) - var toolMetadata = redisRegistryService.getTool(toolName); + var toolMetadata = redisRegistryService.getToolByName(toolName); if (toolMetadata == null) { log.warn(" [Planner] 등록되지 않은 툴 요청: {}. Fallback 라우팅 규칙을 확인합니다.", toolName);