package com.zy.ai.mcp.dto;
|
|
import java.util.*;
|
import java.util.concurrent.ConcurrentHashMap;
|
|
public class ToolRegistry {
|
private final Map<String, ToolDefinition> tools = new ConcurrentHashMap<String, ToolDefinition>();
|
|
public void register(ToolDefinition def) {
|
tools.put(def.getName(), def);
|
}
|
|
public List<Map<String, Object>> listTools() {
|
List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
|
for (ToolDefinition def : tools.values()) {
|
list.add(def.toMcpToolJson());
|
}
|
// 为了稳定输出,按 name 排序
|
Collections.sort(list, new Comparator<Map<String, Object>>() {
|
public int compare(Map<String, Object> a, Map<String, Object> b) {
|
return String.valueOf(a.get("name")).compareTo(String.valueOf(b.get("name")));
|
}
|
});
|
return list;
|
}
|
|
public ToolDefinition get(String name) {
|
return tools.get(name);
|
}
|
}
|