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>
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>
- 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>