From 213917033bac65c5f0f48509ee9a8bde5cf6d54c Mon Sep 17 00:00:00 2001
From: zhou zhou <3272660260@qq.com>
Date: 星期四, 19 三月 2026 16:24:27 +0800
Subject: [PATCH] #AI.MCP暴露
---
rsf-server/pom.xml | 2 +-
rsf-server/src/main/java/com/vincent/rsf/server/ai/config/AiMcpServerConfig.java | 18 ++++++++++++++++++
rsf-server/src/main/java/com/vincent/rsf/server/common/security/SecurityConfig.java | 1 +
rsf-server/src/main/resources/application.yml | 28 ++++++++++++++++++++++------
4 files changed, 42 insertions(+), 7 deletions(-)
diff --git a/rsf-server/pom.xml b/rsf-server/pom.xml
index b6aecea..c67254f 100644
--- a/rsf-server/pom.xml
+++ b/rsf-server/pom.xml
@@ -54,7 +54,7 @@
</dependency>
<dependency>
<groupId>org.springframework.ai</groupId>
- <artifactId>spring-ai-mcp</artifactId>
+ <artifactId>spring-ai-starter-mcp-server-webmvc</artifactId>
</dependency>
<dependency>
<groupId>RouteUtils</groupId>
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/ai/config/AiMcpServerConfig.java b/rsf-server/src/main/java/com/vincent/rsf/server/ai/config/AiMcpServerConfig.java
new file mode 100644
index 0000000..f67f7bd
--- /dev/null
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/ai/config/AiMcpServerConfig.java
@@ -0,0 +1,18 @@
+package com.vincent.rsf.server.ai.config;
+
+import com.vincent.rsf.server.ai.entity.AiMcpMount;
+import com.vincent.rsf.server.ai.service.BuiltinMcpToolRegistry;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.ai.tool.ToolCallbackProvider;
+
+@Configuration
+public class AiMcpServerConfig {
+
+ @Bean
+ public ToolCallbackProvider rsfBuiltinMcpToolCallbackProvider(BuiltinMcpToolRegistry builtinMcpToolRegistry) {
+ AiMcpMount builtinMount = new AiMcpMount()
+ .setBuiltinCode(AiDefaults.MCP_BUILTIN_RSF_WMS);
+ return ToolCallbackProvider.from(builtinMcpToolRegistry.createToolCallbacks(builtinMount, null));
+ }
+}
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/common/security/SecurityConfig.java b/rsf-server/src/main/java/com/vincent/rsf/server/common/security/SecurityConfig.java
index 4efd031..15e7d60 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/common/security/SecurityConfig.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/common/security/SecurityConfig.java
@@ -55,6 +55,7 @@
"/ws/**",
"/wcs/**",
"/monitor/**",
+ "/ai/mcp/**",
"/mcp/**",
"/mes/**"
};
diff --git a/rsf-server/src/main/resources/application.yml b/rsf-server/src/main/resources/application.yml
index f87a285..90f5dad 100644
--- a/rsf-server/src/main/resources/application.yml
+++ b/rsf-server/src/main/resources/application.yml
@@ -1,9 +1,25 @@
-spring:
- profiles:
- active: dev
-
-config:
- system-name: @pom.artifactId@
+spring:
+ profiles:
+ active: dev
+ ai:
+ mcp:
+ server:
+ name: rsf-wms-tools
+ version: @pom.version@
+ protocol: SSE
+ sse-endpoint: /ai/mcp/sse
+ sse-message-endpoint: /ai/mcp/message
+ streamable-http:
+ mcp-endpoint: /ai/mcp
+ instructions: 鎻愪緵 WCS 璁惧鐘舵�併�佷换鍔°�佹棩蹇楀拰閰嶇疆鏌ヨ鑳藉姏
+ capabilities:
+ tool: true
+ resource: false
+ prompt: false
+ completion: false
+
+config:
+ system-name: @pom.artifactId@
system-version: @pom.version@
system-mode: OFFLINE
token-key: KUHSMcYQ4lePt3r6bckz0P13cBJyoonYqInThvQlUnbsFCIcCcZZAbWZ6UNFztYNYPhGdy6eyb8WdIz8FU2Cz396TyTJk3NI2rtXMHBOehRb4WWJ4MdYVVg2oWPyqRQ2
--
Gitblit v1.9.1