Commit Graph

80 Commits

Author SHA1 Message Date
Christian Tzolov
2c9fa4d8fd Add dynamic tool update example for Model Context Protocol
Implement a new example demonstrating how MCP servers can dynamically update available tools
at runtime and how clients can detect these changes.

- Add Server implementation that starts with weather forecast tools and dynamically adds math operation tools
- Add Client implementation that detects tool changes via MCP notifications
- Complete client/server architecture with proper tool registration and discovery
- Add detailed README explaining the dynamic tool update process and implementation

Signed-off-by: Christian Tzolov <christian.tzolov@broadcom.com>
2025-05-02 11:27:30 +03:00
Ilayaperumal Gopinathan
f79eef4a2a Fix path for the manual-webflux-server MCP server stdio config
Signed-off-by: Ilayaperumal Gopinathan <ilayaperumal.gopinathan@broadcom.com>
2025-05-02 07:48:00 +01:00
Ilayaperumal Gopinathan
22f3f55cbc Fix examples for deprecated usages
- Fix Java FunctionCallback chatClient to use toolNames instead of tools to specify the function name
 - Fix MCP FileSystem Application ChatClientBuilder to use defaultToolCallbacks instead of defaultTools
2025-05-01 18:12:30 +01:00
Ilayaperumal Gopinathan
c0cc26b6c3 Replace FunctionCallback to ToolCallback 2025-04-29 20:22:19 +01:00
Soby Chacko
40e1b43d53 Updating the version to 1.0.0-SNAPSHOT 2025-04-28 21:03:22 -04:00
Christian Tzolov
5ca8720387 Add Prompt Egineering examples 2025-04-14 09:12:16 +02:00
Soby Chacko
e0ba3438ba Update spring-ai version to 1.0.0-M7 (#22)
Signed-off-by: Soby Chacko <soby.chacko@broadcom.com>
2025-04-10 17:15:09 -04:00
Christian Tzolov
e8a266467c feat(mcp): Add MCP logging support and refactor code
- Add logging consumer to MCP client specification
- Implement logging notifications for sampling start/finish in WeatherService
- Refactor WeatherService to use McpToolUtils and StringBuilder

Signed-off-by: Christian Tzolov <christian.tzolov@broadcom.com>
2025-04-10 20:30:22 +02:00
Soby Chacko
7e04dc20f9 Update Spring AI dependencies to 1.0.0-SNAPSHOT (#21)
- Update Spring AI version from 1.0.0-M5 to 1.0.0-SNAPSHOT across all modules
- Update artifact IDs to match new naming convention (spring-ai-*-spring-boot-starter → spring-ai-starter-model-*)
- Add central-portal-snapshots repository to all projects for SNAPSHOT dependency resolution
- Standardize repository URLs to use repo.spring.io/milestone instead of libs-milestone-local
- Remove the obsolete spring-ai-core dependency in Kotlin modules
- Update QuestionAnswerAdvisor import path in rag-with-kotlin
- Reorganize root POM module ordering for better organization

Signed-off-by: Soby Chacko <soby.chacko@broadcom.com>
2025-04-10 20:27:35 +02:00
Christian Tzolov
804d3aadef add the starter-webmvc-oauth2-server to the pom
Signed-off-by: Christian Tzolov <christian.tzolov@broadcom.com>
2025-04-10 13:52:41 +02:00
Christian Tzolov
cf100596ff fix deps from spring-ai-core to spring-ai-model
Signed-off-by: Christian Tzolov <christian.tzolov@broadcom.com>
2025-04-04 23:25:08 +02:00
Christian Tzolov
a12bf24104 fix mcp version
Signed-off-by: Christian Tzolov <christian.tzolov@broadcom.com>
2025-04-01 19:40:19 +02:00
Daniel Garnier-Moiroux
cf5f38cf8f add oauth2 support mcp/weather/starter-webmvc-oauth2-server
Signed-off-by: Daniel Garnier-Moiroux <git@garnier.wf>
2025-04-01 16:35:25 +02:00
Christian Tzolov
9bfbcb4c90 print tools properties
Signed-off-by: Christian Tzolov <christian.tzolov@broadcom.com>
2025-03-27 01:32:16 +01:00
Christian Tzolov
77b973ff14 Add MCP sampling diagram
Signed-off-by: Christian Tzolov <christian.tzolov@broadcom.com>
2025-03-26 18:27:09 +01:00
Mark Pollack
b8fb18b5e7 update readme.md to list correct deps in brave, client-starter and sampling. 2025-03-25 15:20:09 -04:00
Mark Pollack
614c61316b web-search examples: Sync maven deps used with those listed in README.md 2025-03-25 15:11:34 -04:00
Christian Tzolov
41c921bc33 refactor: update MCP API usage to version 0.8.0
- Remove all book-library MCP examples (servlet, webflux, and webmvc implementations)
- Update weather example to use MCP version 0.8.0-SNAPSHOT
- Refactor transport handling to use transport providers instead of direct transport objects
- Update method calls from toSyncToolRegistration to toSyncToolSpecifications
- Add central-portal-snapshots repository to pom.xml for dependency resolution
- Align with the new MCP client class names

Add MCP Sampling capability with weather example

Adds MCP Sampling implementation that demonstrates how to delegate LLM requests to multiple providers.

- add a weather server that retrieves data and uses MCP Sampling to generate creative content
- add a client that routes requests to different LLM providers (OpenAI and Anthropic) based on model hints
- add README documentation explaining the MCP Sampling workflow and implementation details

The MCP Sampling capability enables applications to leverage multiple LLM providers within a single workflow,
allowing for creative content generation, model comparison, and specialized task delegation.

refactor: migrate to spring-ai-mcp-client-spring-boot-starter

- Replace spring-ai-mcp dependency with spring-ai-mcp-client-spring-boot-starter
- Update import statements from org.springframework.ai.mcp.* to io.modelcontextprotocol.client.*
- Replace McpFunctionCallback with SyncMcpToolCallbackProvider
- Update Spring AI version from 1.0.0-M5 to 1.0.0-SNAPSHOT in multiple projects
- Enable tool callback auto-configuration with spring.ai.mcp.client.toolcallback.enabled

refactor: update Spring AI artifact IDs to new naming convention

- Update all Spring AI dependencies to use the new naming convention:
spring-ai-*-spring-boot-starter → spring-ai-starter-*
spring-ai-openai-spring-boot-starter → spring-ai-starter-model-openai
spring-ai-mcp-client-spring-boot-starter → spring-ai-starter-mcp-client
- And similar patterns for other artifacts
- Enable debug mode in brave module's application.properties

Signed-off-by: Christian Tzolov <christian.tzolov@broadcom.com>
2025-03-25 15:05:27 -04:00
Christian Tzolov
1ca981eba5 refactor(mcp): migrate MCP demos to ToolCallbackProvider
- Replace List<ToolCallback> with ToolCallbackProvider for tool registration
- Use MethodToolCallbackProvider.builder() pattern across all modules

Signed-off-by: Christian Tzolov <christian.tzolov@broadcom.com>
2025-02-13 20:36:58 +01:00
Christian Tzolov
9da4fd9068 Add mcp weather webmvc starter example 2025-02-13 17:56:21 +01:00
Christian Tzolov
1f9488541f Minor MCP demo conf improvents
Signed-off-by: Christian Tzolov <christian.tzolov@broadcom.com>
2025-02-11 10:26:03 +01:00
Mark Pollack
4c00795154 Minor updates to client-starter/starter-default-client and starter-webflux-client 2025-02-11 00:01:51 -05:00
Mark Pollack
e3f0bd1f8b Minor updates to book-library/starter-webflux-server 2025-02-10 23:42:00 -05:00
Mark Pollack
20ac610186 Minor updates to book-library/manual-servlet-server 2025-02-10 23:35:33 -05:00
Mark Pollack
441e566813 Minor cleanup on web-search/brave-chatbot 2025-02-10 23:16:10 -05:00
Mark Pollack
be08c1be18 Minor cleanup on web-search/brave-starter 2025-02-10 23:09:53 -05:00
Mark Pollack
f91d8aa323 Update example in brave directory that creates a McpSyncClient as a @Bean
- Does not use the spring ai mcp starter
- Use latest deps
- Update readme
- Code cleanup
2025-02-10 22:52:12 -05:00
Mark Pollack
430d886a3b fix pom 2025-02-10 21:46:01 -05:00
Christian Tzolov
fab7b1da33 docs: enhance MCP server documentation with client usage examples
- Add comprehensive Boot Starter client usage examples
- Improve documentation clarity and organization
- Update configuration examples for both STDIO and SSE transports
- Standardize formatting and fix typos

Signed-off-by: Christian Tzolov <christian.tzolov@broadcom.com>
2025-02-10 15:01:20 +01:00
Christian Tzolov
cf529d6940 move the brave client starters under the web-search folder
Signed-off-by: Christian Tzolov <christian.tzolov@broadcom.com>
2025-02-10 11:41:45 +01:00
Christian Tzolov
3ae5f5d45d minor fixes
Signed-off-by: Christian Tzolov <christian.tzolov@broadcom.com>
2025-02-10 11:05:17 +01:00
Christian Tzolov
8cc8e2e933 Improve weather starter docs
Signed-off-by: Christian Tzolov <christian.tzolov@broadcom.com>
2025-02-10 09:12:26 +01:00
Christian Tzolov
721c4d37d0 Add docs for the mcp/client-starter projects
Signed-off-by: Christian Tzolov <christian.tzolov@broadcom.com>
2025-02-10 08:42:52 +01:00
Christian Tzolov
a29ea2b743 Restructure
Signed-off-by: Christian Tzolov <christian.tzolov@broadcom.com>
2025-02-09 22:05:35 +01:00
Christian Tzolov
ab571f059a Improve agentic patterns pom config
Signed-off-by: Christian Tzolov <christian.tzolov@broadcom.com>
2025-02-07 10:43:10 +01:00
Christian Tzolov
dac5e7bd6e Add MCP weather servers and Brave integration examples
Signed-off-by: Christian Tzolov <christian.tzolov@broadcom.com>
2025-02-05 17:39:31 -05:00
Christian Tzolov
69e6949251 Clean code 2025-01-31 11:24:15 +01:00
Christian Tzolov
0ddbb686ad Update the mcp demos to latest 0.6.0 version 2025-01-24 19:10:21 +01:00
Christian Tzolov
9f8cb92aa9 refactor: clarify agent pattern names
- Remove redundant workflow suffix from agentic pattern names and related classes
- Update documentation to reflect pattern name changes
2025-01-24 19:10:21 +01:00
Ilayaperumal Gopinathan
1433ff7382 Update README.md 2025-01-20 11:54:09 +00:00
Christian Tzolov
28dd0728c6 Fix package name typo 2025-01-20 12:43:50 +01:00
Christian Tzolov
d7952ad49e minor README improvents 2025-01-20 12:18:58 +01:00
Christian Tzolov
648b0ac822 Add Agentid System Patterns Demos
Based on the Building Effective Agents Cookbook

- https://www.anthropic.com/research/building-effective-agents
- https://github.com/anthropics/anthropic-cookbook/tree/main/patterns/agents
2025-01-20 10:40:21 +01:00
Christian Tzolov
9766aa7e0f Improve the the MCP server demo code 2025-01-17 14:47:12 +01:00
Christian Tzolov
9a7fcd517f Update MCP version to 0.5.1 2025-01-14 15:17:16 +01:00
Christian Tzolov
2e5ce79818 Add file logging for the MCP demos 2025-01-14 12:41:11 +01:00
Christian Tzolov
aad2e4c45b Update MCP samples to 0.5.0 2025-01-13 12:24:12 +01:00
Christian Tzolov
ba07215c48 Add MCP Servlet SSE demo 2025-01-13 09:11:17 +01:00
Christian Tzolov
f753efc483 Add MCP WebFlux Client+Server example 2025-01-11 17:48:21 +01:00
Christian Tzolov
d5a016cbd2 Add MCP WebMvc Server + HttpClient sample 2025-01-11 17:31:35 +01:00