diff --git a/framework/bundles/org.eclipse.ecf.ai.mcp.tools/src/org/eclipse/ecf/ai/mcp/tools/service/ToolDescription.java b/framework/bundles/org.eclipse.ecf.ai.mcp.tools/src/org/eclipse/ecf/ai/mcp/tools/service/ToolDescription.java index bb757532d..9b3247467 100644 --- a/framework/bundles/org.eclipse.ecf.ai.mcp.tools/src/org/eclipse/ecf/ai/mcp/tools/service/ToolDescription.java +++ b/framework/bundles/org.eclipse.ecf.ai.mcp.tools/src/org/eclipse/ecf/ai/mcp/tools/service/ToolDescription.java @@ -10,8 +10,10 @@ package org.eclipse.ecf.ai.mcp.tools.service; import java.util.Arrays; +import java.util.Collections; import java.util.List; import java.util.Objects; +import java.util.Optional; import java.util.stream.Collectors; import org.eclipse.ecf.ai.mcp.tools.annotation.Tool; @@ -28,4 +30,11 @@ public static List fromClass(Class clazz) { }).filter(Objects::nonNull).collect(Collectors.toList()); } + + public static List fromService(Object svc, String serviceClass) { + Optional> optClass = Arrays.asList(svc.getClass().getInterfaces()).stream().filter(c -> { + return c.getName().equals(serviceClass); + }).findFirst(); + return optClass.isPresent() ? ToolDescription.fromClass(optClass.get()) : Collections.emptyList(); + } }