springai deepseek怎么支持mcp服务调用
时间: 2025-06-05 16:16:31 浏览: 79
### SpringAI与DeepSeek支持MCP服务调用的集成配置方法
SpringAI 提供了一种灵活的方式来集成和调用 MCP(Model Capability Protocol)服务,特别是针对 DeepSeek 的支持。以下是关于如何在 SpringAI 中配置和集成 DeepSeek MCP 服务的详细说明。
#### 1. 配置 `application.yml`
在 `application.yml` 文件中,需要明确指定 DeepSeek 的 API 密钥、基础 URL 以及 MCP 的启用状态。以下是一个标准的配置示例:
```yaml
spring:
ai:
deepseek:
api-key: sk-your-api-key # 替换为实际的 DeepSeek API 密钥
base-url: https://api.deepseek.com # 替换为实际的 DeepSeek API 地址
mcp:
enabled: true # 启用 MCP 支持
tool-autoload: true # 自动加载工具支持
```
上述配置确保了 SpringAI 能够正确连接到 DeepSeek 并启用 MCP 功能[^1]。
#### 2. MCP Server 的依赖类型
MCP Server 可以通过三种不同的方式实现依赖注入:
- **STDIO**:适用于简单的命令行交互,使用 `spring-ai-starter-mcp-server`。
- **Spring MVC(服务器发送事件,SSE)**:适用于传统的 Web 应用程序,使用 `spring-ai-starter-mcp-server-webmvc`。
- **Spring WebFlux(响应式 SSE)**:适用于响应式应用程序,使用 `spring-ai-starter-mcp-server-webflux`。
开发者可以根据项目的需求选择合适的依赖类型[^2]。
#### 3. 工具回调配置的增强
在最新的 SpringAI 版本中,`tools` 方法已被废弃,取而代之的是 `toolCallbacks` 方法。这种方法提供了更灵活的工具回调配置。例如:
```java
chatClient.prompt("What day is tomorrow?")
.toolCallbacks(toolCallback) // 使用新的 toolCallbacks 方法
.call()
.content();
```
此更改提高了代码的可读性和扩展性,同时更好地支持了 MCP 的工具回调机制[^4]。
#### 4. 持久化对话历史的支持
为了更好地管理对话历史记录,SpringAI 引入了多种存储策略,包括:
- **InMemoryChatMemoryRepository**:默认的内存存储方式,适合开发和测试环境。
- **JdbcChatMemoryRepository**:支持关系数据库的持久化存储,适合生产环境。
此外,还引入了 `MessageWindowChatMemory`,用于维护一定数量的历史消息,从而优化性能[^4]。
#### 5. 正式的 DeepSeek SDK 支持
之前的版本中,虽然支持了 DeepSeek 的调用,但实际上是通过 OpenAI 协议实现的。最新版本正式集成了 DeepSeek SDK,这意味着可以直接使用 DeepSeek 提供的功能,而无需依赖 OpenAI 的协议兼容层[^3]。
### 示例代码
以下是一个完整的代码示例,展示如何在 SpringAI 中调用 DeepSeek 的 MCP 服务:
```java
import com.spring.ai.client.ChatClient;
import com.spring.ai.model.ChatMessage;
public class DeepSeekMCPExample {
public static void main(String[] args) {
ChatClient chatClient = new ChatClient();
String response = chatClient.prompt("What day is tomorrow?")
.toolCallbacks(toolCallback) // 使用新的 toolCallbacks 方法
.call()
.content();
System.out.println("Response: " + response);
}
}
```
此代码片段展示了如何通过 `toolCallbacks` 方法调用 DeepSeek 的 MCP 服务,并处理返回的结果。
---
阅读全文
相关推荐


















