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