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>
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>
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>
- 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
- 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>
- 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>
- 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>
- Replace List<ToolCallback> with ToolCallbackProvider for tool registration
- Use MethodToolCallbackProvider.builder() pattern across all modules
Signed-off-by: Christian Tzolov <christian.tzolov@broadcom.com>