feat: Add categoryKey filtering support to /tools/list API

This commit is contained in:
jade
2026-07-13 22:21:24 +09:00
parent 53602f1ec7
commit d23768dfa1

View File

@@ -96,7 +96,8 @@ public class McpRouterController {
} }
@GetMapping("/tools/list") @GetMapping("/tools/list")
public ResponseEntity<JsonRpcResponse> listTools() { public ResponseEntity<JsonRpcResponse> listTools(
@RequestParam(value = "categoryKey", required = false) String categoryKey) {
List<ToolMetadata> activeTools = redisRegistryService.getAllTools() List<ToolMetadata> activeTools = redisRegistryService.getAllTools()
.stream() .stream()
.filter(ToolMetadata::getVisible) .filter(ToolMetadata::getVisible)
@@ -131,6 +132,12 @@ public class McpRouterController {
} }
} }
if (categoryKey != null && !categoryKey.trim().isEmpty()) {
activeTools = activeTools.stream()
.filter(t -> categoryKey.equals(t.getCategoryKey()))
.collect(Collectors.toList());
}
JsonRpcResponse response = new JsonRpcResponse(); JsonRpcResponse response = new JsonRpcResponse();
response.setId(UUID.randomUUID().toString()); response.setId(UUID.randomUUID().toString());
response.setResult(Map.of("tools", activeTools)); response.setResult(Map.of("tools", activeTools));