Skip to content

Conversation

@tzolov
Copy link
Contributor

@tzolov tzolov commented Feb 7, 2025

  • Add dedicated spring-ai-starter-mcp-webmvc and spring-ai-starter-mcp-webflux starters
  • Remove transport property-based configuration in favor of auto-configuration
  • Update WebMvc/WebFlux configuration to use ConditionalOnMissingBean

@tzolov tzolov added the MCP label Feb 7, 2025
@tzolov tzolov added this to the 1.0.0-M6 milestone Feb 7, 2025
…ters

- Add dedicated spring-ai-starter-mcp-webmvc and spring-ai-starter-mcp-webflux starters
- Remove transport property-based configuration in favor of auto-configuration
- Update WebMvc/WebFlux configuration to use ConditionalOnMissingBean

Signed-off-by: Christian Tzolov <[email protected]>
…modules

- Separate MCP client and server auto-configurations into dedicated modules
- Add support for both sync and async MCP clients
- Add support for STDIO, WebMVC and WebFlux transports
- Improve configuration properties organization and validation
- Add proper lifecycle management and customization support
- Add comprehensive JavaDoc documentation

Signed-off-by: Christian Tzolov <[email protected]>
@tzolov tzolov force-pushed the mcp-dedicated-boot-starters branch from 55b1281 to 13f4428 Compare February 8, 2025 13:48
- Add test dependencies and comprehensive integration tests for McpClientAutoConfiguration
- Reorganize code by moving properties and configurer classes into dedicated packages
- Add root change notification property to common properties
- Add extensive documentation for MCP client/server starters and common utilities
- Improve code documentation with detailed Javadoc comments
- Update navigation to include new MCP documentation sections

Signed-off-by: Christian Tzolov <[email protected]>
Signed-off-by: Christian Tzolov <[email protected]>
@tzolov tzolov force-pushed the mcp-dedicated-boot-starters branch from 2856343 to aca5899 Compare February 9, 2025 17:02
Signed-off-by: Christian Tzolov <[email protected]>

* Standard I/O (Stdio) (activated by the `spring-ai-mcp-client-spring-boot-starter`)
* SSE HTTP (activated by the `spring-ai-mcp-client-spring-boot-starter`)
* SSE WebFlux (activated by the `spring-ai-starter-mcp-client-webflux`)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

shoud be spring-ai-mcp-client-webflux-spring-boot-starter

Signed-off-by: Christian Tzolov <[email protected]>
@markpollack
Copy link
Member

markpollack commented Feb 11, 2025

I had some doc changes that somehow got written into the root project directory, i didn't remerge them in but pulled the branch from scratch and rebased and squashed. I'll get back to merging my doc changes tomorrow.

It's a big PR and moves us in the right direction. There are some improvements to discuss, but I felt it is easier to work on it after it is in main vs. more iterations around this PR and the corresponding PR in the examples repo.

	public List<McpAsyncClient> mcpAsyncClients(McpAsyncClientConfigurer mcpSyncClientConfigurer,
			McpClientCommonProperties commonProperties,
			ObjectProvider<List<NamedClientMcpTransport>> transportsProvider) {

If there are other ClientMcpTransports created by the user in their own @bean definition, then they aren't going to get picked up in to List<NamedClientMcpTransport>

Also, if the use creates their own McpSyncClient and has the starter in their pom, it will be correctly wired in.

merged in fe377ee

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants