Solon AI 项目中动态添加工具到 McpServer 端点的实现方法

Solon AI 项目中动态添加工具到 McpServer 端点的实现方法

【免费下载链接】solon-ai Java AI & MCP 应用开发框架(LLM,Function Call,RAG,Embedding,Reranking,Flow,MCP Server,Mcp Client,Mcp Proxy)。同时兼容 java8 ~ java24。也可嵌入到 SpringBoot2、jFinal、Vert.x 等框架中使用。 【免费下载链接】solon-ai 项目地址: https://gitcode.com/opensolon/solon-ai

在 Solon AI 项目中,McpServerEndpoint 是一个重要的注解,用于标记和生成服务端点。开发者有时需要在运行时动态地向这些端点添加新的工具(tool),本文将详细介绍在 Spring Boot 2(SB2)环境下实现这一需求的两种方法。

传统模式下的动态添加

对于使用传统模式构建的 McpServerEndpoint,可以通过以下方式动态添加工具:

// 从Solon上下文中获取指定名称的McpServerEndpoint实例
McpServerEndpoint tmp = Solon.context().getBean(name);
// 向该端点添加新工具
tmp.addTool(...);

这种方法直接利用了 Solon 框架的上下文管理能力,简单直接地获取端点实例并进行修改。

新模式下的动态添加

Solon AI 项目提供了更现代化的端点构建方式,在这种模式下,我们可以通过以下步骤实现工具的动态添加:

  1. 首先创建一个配置类,用于初始化所有 McpServerEndpoint
@Bean
public McpServerConfig init(List<IMcpServerEndpoint> serverEndpoints) {
    // 遍历容器中所有实现了IMcpServerEndpoint接口的Bean
    for (IMcpServerEndpoint serverEndpoint : serverEndpoints) {
        // 获取类上的McpServerEndpoint注解
        McpServerEndpoint anno = serverEndpoint.getClass().getAnnotation(McpServerEndpoint.class);
        
        if (anno == null) {
            continue;
        }
        
        // 构建端点提供者
        McpServerEndpointProvider serverEndpointProvider = McpServerEndpointProvider.builder()
                .from(serverEndpoint.getClass(), anno)
                .build();
        
        // 添加各种提供者
        serverEndpointProvider.addTool(new MethodToolProvider(serverEndpoint));
        serverEndpointProvider.addResource(new MethodResourceProvider(serverEndpoint));
        serverEndpointProvider.addPrompt(new MethodPromptProvider(serverEndpoint));
        
        // 启动后处理
        serverEndpointProvider.postStart();
    }
    
    return this;
}
  1. 在这种模式下,我们可以将生成的 serverEndpointProvider 手动添加到 Spring Boot 容器中,然后按照 Spring Boot 的标准方式进行注入和使用。

两种模式的比较

  1. 传统模式

    • 实现简单直接
    • 适合小型项目或快速原型开发
    • 依赖 Solon 框架的上下文管理
  2. 新模式

    • 更加模块化和可扩展
    • 与 Spring Boot 集成更好
    • 支持更复杂的端点配置
    • 提供了更多的扩展点(MethodToolProvider、MethodResourceProvider等)

实际应用建议

在实际项目中,建议:

  1. 对于新项目,优先考虑使用新模式,它提供了更好的扩展性和与 Spring Boot 的集成
  2. 对于已有项目,如果已经使用了传统模式,可以逐步迁移到新模式
  3. 动态添加工具时,要注意线程安全问题,特别是在高并发场景下
  4. 考虑工具的生命周期管理,必要时提供移除工具的能力

通过合理选择和使用这两种方法,开发者可以在 Solon AI 项目中灵活地管理和扩展 McpServer 端点的功能,满足各种业务需求。

【免费下载链接】solon-ai Java AI & MCP 应用开发框架(LLM,Function Call,RAG,Embedding,Reranking,Flow,MCP Server,Mcp Client,Mcp Proxy)。同时兼容 java8 ~ java24。也可嵌入到 SpringBoot2、jFinal、Vert.x 等框架中使用。 【免费下载链接】solon-ai 项目地址: https://gitcode.com/opensolon/solon-ai

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值