新增 AI MCP 服务端和客户端调用,展示远程工具调用示例

This commit is contained in:
thinkgem
2025-10-19 13:30:35 +08:00
parent c7cd1d20cb
commit 3b0cc66347
32 changed files with 1094 additions and 28 deletions

View File

@@ -0,0 +1,41 @@
/**
* Copyright (c) 2013-Now http://jeesite.com All rights reserved.
* No deletion without permission, or be held responsible to law.
*/
package com.jeesite.modules;
import com.jeesite.common.config.Global;
import com.jeesite.common.io.FileUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
/**
* Application
* @author ThinkGem
*/
@SpringBootApplication
public class AiMcpApplication extends SpringBootServletInitializer {
private static final Logger logger = LoggerFactory.getLogger(AiMcpApplication.class);
public static void main(String[] args) {
SpringApplication.run(AiMcpApplication.class, args);
logger.info(
"\n\n==============================================================\n"
+ "\n 启动完成MCP 地址http://127.0.0.1:{}/api/v1/sse\n"
+ "\n==============================================================\n",
Global.getProperty("server.port") + FileUtils.path(
Global.getProperty("server.servlet.context-path")));
}
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
this.setRegisterErrorPageFilter(false); // 错误页面有容器来处理而不是SpringBoot
return builder.sources(AiMcpApplication.class);
}
}

View File

@@ -0,0 +1,28 @@
/**
* Copyright (c) 2013-Now http://jeesite.com All rights reserved.
* No deletion without permission, or be held responsible to law.
*/
package com.jeesite.modules.ai.mcp.config;
import com.jeesite.modules.ai.tools.TestAiTools;
import com.jeesite.modules.ai.tools.UserAITools;
import org.springframework.ai.tool.ToolCallbackProvider;
import org.springframework.ai.tool.method.MethodToolCallbackProvider;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Lazy;
/**
* AI MCP 服务配置
* @author ThinkGem
*/
@Lazy(false)
@Configuration
public class McpServerConfig {
@Bean
public ToolCallbackProvider mcpServerTools(TestAiTools testAiTools, UserAITools userAITools) {
return MethodToolCallbackProvider.builder().toolObjects(testAiTools, userAITools).build();
}
}