toUpperCase() {
+ var tool = FunctionToolCallback.builder("toUpperCase", (TextInput input) -> input.input().toUpperCase())
+ .inputType(TextInput.class)
+ .description("Put the text to upper case")
+ .build();
+ return List.of(tool);
+ }
+
}
diff --git a/model-context-protocol/mcp-weather-server-starter/src/main/java/org/springframework/ai/mcp/sample/server/WeatherService.java b/model-context-protocol/weather/starter-webflux-server/src/main/java/org/springframework/ai/mcp/sample/server/WeatherService.java
similarity index 100%
rename from model-context-protocol/mcp-weather-server-starter/src/main/java/org/springframework/ai/mcp/sample/server/WeatherService.java
rename to model-context-protocol/weather/starter-webflux-server/src/main/java/org/springframework/ai/mcp/sample/server/WeatherService.java
diff --git a/model-context-protocol/mcp-weather-server-starter/src/main/resources/application.properties b/model-context-protocol/weather/starter-webflux-server/src/main/resources/application.properties
similarity index 61%
rename from model-context-protocol/mcp-weather-server-starter/src/main/resources/application.properties
rename to model-context-protocol/weather/starter-webflux-server/src/main/resources/application.properties
index f740026..7d7756a 100644
--- a/model-context-protocol/mcp-weather-server-starter/src/main/resources/application.properties
+++ b/model-context-protocol/weather/starter-webflux-server/src/main/resources/application.properties
@@ -5,12 +5,7 @@
spring.main.banner-mode=off
# logging.pattern.console=
-spring.ai.mcp.server.enabled=true
-
spring.ai.mcp.server.name=my-weather-server
spring.ai.mcp.server.version=0.0.1
-spring.ai.mcp.server.transport=WEBFLUX
-
-logging.file.name=./model-context-protocol/mcp-weather-server-starter/target/mcp.weather-starter.log
-
+logging.file.name=./model-context-protocol/weather/starter-webflux-server/target/starter-webflux-server.log
diff --git a/model-context-protocol/mcp-weather-server/src/main/java/org/springframework/ai/mcp/sample/client/ClientSse.java b/model-context-protocol/weather/starter-webflux-server/src/test/java/org/springframework/ai/mcp/sample/client/ClientSse.java
similarity index 99%
rename from model-context-protocol/mcp-weather-server/src/main/java/org/springframework/ai/mcp/sample/client/ClientSse.java
rename to model-context-protocol/weather/starter-webflux-server/src/test/java/org/springframework/ai/mcp/sample/client/ClientSse.java
index 836dc41..1becf0a 100644
--- a/model-context-protocol/mcp-weather-server/src/main/java/org/springframework/ai/mcp/sample/client/ClientSse.java
+++ b/model-context-protocol/weather/starter-webflux-server/src/test/java/org/springframework/ai/mcp/sample/client/ClientSse.java
@@ -26,7 +26,6 @@ public class ClientSse {
public static void main(String[] args) {
var transport = new WebFluxSseClientTransport(WebClient.builder().baseUrl("http://localhost:8080"));
-
new SampleClient(transport).run();
}
diff --git a/model-context-protocol/mcp-weather-server-starter/src/main/java/org/springframework/ai/mcp/sample/client/ClientStdio.java b/model-context-protocol/weather/starter-webflux-server/src/test/java/org/springframework/ai/mcp/sample/client/ClientStdio.java
similarity index 80%
rename from model-context-protocol/mcp-weather-server-starter/src/main/java/org/springframework/ai/mcp/sample/client/ClientStdio.java
rename to model-context-protocol/weather/starter-webflux-server/src/test/java/org/springframework/ai/mcp/sample/client/ClientStdio.java
index 6374cab..573fdd6 100644
--- a/model-context-protocol/mcp-weather-server-starter/src/main/java/org/springframework/ai/mcp/sample/client/ClientStdio.java
+++ b/model-context-protocol/weather/starter-webflux-server/src/test/java/org/springframework/ai/mcp/sample/client/ClientStdio.java
@@ -21,7 +21,8 @@ import io.modelcontextprotocol.client.transport.ServerParameters;
import io.modelcontextprotocol.client.transport.StdioClientTransport;
/**
- * With stdio transport, the MCP server is automatically started by the client. But you
+ * With stdio transport, the MCP server is automatically started by the client.
+ * But you
* have to build the server jar first:
*
*
@@ -35,10 +36,10 @@ public class ClientStdio {
System.out.println(new File(".").getAbsolutePath());
var stdioParams = ServerParameters.builder("java")
- .args("-Dspring.ai.mcp.server.transport=STDIO", "-Dspring.main.web-application-type=none",
- "-Dlogging.pattern.console=", "-jar",
- "model-context-protocol/mcp-weather-server-starter/target/mcp-weather-server-starter-0.0.1-SNAPSHOT.jar")
- .build();
+ .args("-Dspring.ai.mcp.server.stdio=true", "-Dspring.main.web-application-type=none",
+ "-Dlogging.pattern.console=", "-jar",
+ "model-context-protocol/weather/starter-webflux-server/target/mcp-weather-starter-webflux-server-0.0.1-SNAPSHOT.jar")
+ .build();
var transport = new StdioClientTransport(stdioParams);
diff --git a/model-context-protocol/mcp-weather-server/src/main/java/org/springframework/ai/mcp/sample/client/SampleClient.java b/model-context-protocol/weather/starter-webflux-server/src/test/java/org/springframework/ai/mcp/sample/client/SampleClient.java
similarity index 100%
rename from model-context-protocol/mcp-weather-server/src/main/java/org/springframework/ai/mcp/sample/client/SampleClient.java
rename to model-context-protocol/weather/starter-webflux-server/src/test/java/org/springframework/ai/mcp/sample/client/SampleClient.java
diff --git a/pom.xml b/pom.xml
index de36e88..9b30a73 100644
--- a/pom.xml
+++ b/pom.xml
@@ -23,17 +23,28 @@
misc/openai-streaming-response
model-context-protocol/sqlite/simple
model-context-protocol/sqlite/chatbot
+
model-context-protocol/filesystem
+
model-context-protocol/brave
model-context-protocol/brave-starter
model-context-protocol/brave-chatbot
- model-context-protocol/mcp-webmvc-server
- model-context-protocol/mcp-webflux-server
- model-context-protocol/mcp-webflux-server-starter
- model-context-protocol/mcp-servlet-server
- model-context-protocol/mcp-weather-server
- model-context-protocol/mcp-weather-server-starter
- model-context-protocol/mcp-weather-server-quickstart
+
+ model-context-protocol/book-library/manual-webmvc-server
+ model-context-protocol/book-library/manual-webflux-server
+ model-context-protocol/book-library/starter-webflux-server
+ model-context-protocol/book-library/manual-servlet-server
+
+ model-context-protocol/weather/java-client
+ model-context-protocol/weather/starter-webflux-server
+ model-context-protocol/weather/starter-stdio-server
+ model-context-protocol/weather/manual-webflux-server
+
+
+ model-context-protocol/client-starter/starter-default-client
+ model-context-protocol/client-starter/starter-webflux-client
+
+
agentic-patterns