[Developer] #424 add MCP reasoning tab

This commit is contained in:
devmrko
2026-06-23 16:03:36 +09:00
parent 4c47245141
commit cafacfaac1
15 changed files with 649 additions and 3 deletions

View File

@@ -0,0 +1,42 @@
package com.cloudhandson.vpdbackoffice.service;
import com.cloudhandson.vpdbackoffice.domain.mcp.McpToolView;
import com.cloudhandson.vpdbackoffice.domain.protectedobject.ProtectedObject;
import java.util.List;
import java.util.Locale;
import org.springframework.stereotype.Service;
@Service
public class McpToolRegistry {
private final ProtectedObjectService protectedObjectService;
public McpToolRegistry(ProtectedObjectService protectedObjectService) {
this.protectedObjectService = protectedObjectService;
}
public List<McpToolView> listTools() {
return protectedObjectService.findEnabled().stream()
.map(this::toTool)
.toList();
}
public McpToolView toolFor(ProtectedObject object) {
return toTool(object);
}
private McpToolView toTool(ProtectedObject object) {
String name = "ords.query." + safeName(object.owner()) + "." + safeName(object.objectName());
return new McpToolView(
name,
object.displayName() + " 보호 객체를 Bearer Token으로 ORDS 호출해 VPD/Redaction 적용 결과를 조회합니다.",
object.objectId(),
object.displayName(),
object.ordsPath()
);
}
private String safeName(String value) {
return value.toLowerCase(Locale.ROOT).replaceAll("[^a-z0-9_]+", "_");
}
}