spring-ai version: 1.1.0 java.lang.IllegalStateException: block()/blockFirst()/blockLast() are blocking, which is not supported in thread reactor-http-nio-4 at reactor.core.publisher.BlockingSingleSubscriber.blockingGet(BlockingSingleSubscriber.java:87) ~[reactor-core-3.7.11.jar:3.7.11] at reactor.core.publisher.Mono.block(Mono.java:1779) ~[reactor-core-3.7.11.jar:3.7.11] at org.springframework.ai.mcp.AsyncMcpToolCallbackProvider.getToolCallbacks(AsyncMcpToolCallbackProvider.java:155) ~[spring-ai-mcp-1.1.0.jar:1.1.0] at org.springframework.ai.chat.client.DefaultChatClientUtils.toChatClientRequest(DefaultChatClientUtils.java:134) ~[spring-ai-client-chat-1.1.0.jar:1.1.0] at org.springframework.ai.chat.client.DefaultChatClient$DefaultChatClientRequestSpec.stream(DefaultChatClient.java:1022) ~[spring-ai-client-chat-1.1.0.jar:1.1.0]
spring-ai version: 1.1.0-M3 Everything is ok.
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-starter-model-azure-openai</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-starter-mcp-client-webflux</artifactId>
</dependency>
spring:
ai:
mcp:
client:
type: ASYNC
streamable-http:
connections:
toolbox:
url: http://127.0.0.1:5000
@Bean
ChatClient chatClient(
ChatClient.Builder chatClientBuilder,
ToolCallbackProvider[] toolCallbackProviders,
ChatMemory chatMemory,
ChatProperties chatProperties
) {
return chatClientBuilder
.defaultToolCallbacks(toolCallbackProviders)
.defaultSystem(chatProperties.getSystemPrompt())
.defaultAdvisors(
MessageChatMemoryAdvisor.builder(chatMemory).build(),
new SystemPromptFirstSortingAdvisor()
)
.build();
}
@Override
public Flux<ChatResponse> chat(ChatRequest request, String conversationId) {
return chatClient.prompt()
.user(request.prompt())
.advisors(a -> a.param(ChatMemory.CONVERSATION_ID, conversationId))
.stream()
.chatResponse();
}