Junjie
12 小时以前 411ff551ae7641dfc5c9331e99bf8b6e5770e2fa
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
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);
    }
}