Commit Graph

63 Commits

Author SHA1 Message Date
Christian Tzolov
b98aecb03b Add MCP annotations sample project
Demonstrates the use of Spring AI MCP annotations for creating an MCP server.

- Add @McpComplete, @McpArg, @McpResource, @McpPrompt handlers

The project showcases how to use Spring AI's annotation-based approach to easily expose tools, resources, prompts, and completions through an MCP server.

Signed-off-by: Christian Tzolov <christian.tzolov@broadcom.com>
2025-05-06 14:20:57 +02:00
Christian Tzolov
8897ba603e minor mcp fixes
Signed-off-by: Christian Tzolov <christian.tzolov@broadcom.com>
2025-05-04 12:36:24 +02:00
Bs Mahi
cbf95610c0 Corrected MCP Client Boot Starter URL (#31)
Modified MCP Client Boot Starter Link in the README.md

Signed-off-by: Bs Mahi <bs.mahi@gmail.com>
2025-05-04 12:56:58 +03:00
Christian Tzolov
b45c4d58a1 remove unused imports
Signed-off-by: Christian Tzolov <christian.tzolov@broadcom.com>
2025-05-03 11:25:29 +03:00
Mark Pollack
cba325ac5b Update spring boot and spring ai to latest, add some run-verify scripts for automation 2025-05-02 14:11:49 -04:00
Christian Tzolov
234d3ff919 refactor(mcp): update to use Spring Boot autoconfiguration and rename tool callbacks
Update MCP examples to use Spring Boot autoconfiguration instead of manual configuration.
Replace deprecated defaultTools method with defaultToolCallbacks across all examples.
Update documentation to reflect these changes and provide more detailed configuration examples.

- Update API from defaultTools to defaultToolCallbacks in all MCP examples
- Update README files with more detailed configuration examples

Signed-off-by: Christian Tzolov <christian.tzolov@broadcom.com>
2025-05-02 14:28:22 +03:00
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
Soby Chacko
40e1b43d53 Updating the version to 1.0.0-SNAPSHOT 2025-04-28 21:03:22 -04: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
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
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
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
Ilayaperumal Gopinathan
1433ff7382 Update README.md 2025-01-20 11:54:09 +00: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
Christian Tzolov
144bc2836e Upgrade MCP demos to 0.4.1 2025-01-04 18:27:00 +01:00
Christian Tzolov
62e8bb064b Upgrade MCP demos to 0.4.0 2025-01-04 08:40:36 +01:00
Christian Tzolov
b52e96d7fb Upgrade MCP examples to 0.3.1 2024-12-30 13:34:24 +01:00