- Implement MCP server with async/sync support and builder pattern configuration - Add Server stdio/SSE transport layers with robust error handling - Convert McpClient and McpServer to interfaces for better extensibility - Add sampling capabilities for LLM interactions (text/image) - Implement dynamic root management and runtime tool management - Add comprehensive prompt and resource capabilities - Add support for dynamic root management (add/remove roots at runtime) Architecture Changes - Introduce registration records for tools, resources, and prompts - Improve thread safety with concurrent collections - Enhance resource template handling - Implement builder patterns for Server/Client capabilities - Add support for server capabilities and implementation info Transport Layer: - Implement SseServerTransport with SSE endpoints - Add StdioServerTransport for process-based communication - Reorganize transport packages for better organization - Improve transport error handling and shutdown processes Documentation: - Add detailed MCP reference documentation - Include architecture diagrams and API documentation - Add comprehensive test coverage for all components - Include sample projects demonstrating stdio/SSE transports BREAKING CHANGES: Transport Package Reorganization - Move StdioClientTransport to o.s.ai.mcp.client.transport - Move SseClientTransport to o.s.ai.mcp.client.transport - Move ServerParameters to o.s.ai.mcp.client.transport - StdioClientTransport.errorHandler changed to private with setter method Migration: Use setErrorHandler() method instead of direct field access API Changes - Replace static factory methods with builder pattern - Update ServerCapabilities to use builder pattern - Make StdioClientTransport.errorHandler private with setter - Replace rootsListProvider with direct root management - Remove deprecated static factory methods Resolves #27,#25,#24,#11 Related to #12
49 lines
1.7 KiB
Markdown
49 lines
1.7 KiB
Markdown
# Spring AI MCP Spring
|
|
|
|
Spring Integration module for Model Control Protocol (MCP) that provides Spring-specific functionality for working with MCP clients.
|
|
|
|
## Overview
|
|
|
|
The `spring-ai-mcp` module is part of the [Spring AI MCP](https://github.com/spring-projects-experimental/spring-ai-mcp) project. It provides Spring Framework integration for the Model Control Protocol (MCP), enabling seamless integration of MCP functionality within Spring applications.
|
|
|
|
## Features
|
|
|
|
- Spring integration for MCP clients
|
|
- Function callback implementation for tool invocations
|
|
- Seamless integration with Spring AI's function calling capabilities
|
|
|
|
## Main Components
|
|
|
|
### McpFunctionCallback
|
|
|
|
The `McpFunctionCallback` class is the primary component of this module. It implements Spring AI's `FunctionCallback` interface and provides:
|
|
|
|
- Integration between Spring AI's function calling system and MCP tools
|
|
- Automatic conversion between JSON and Java objects for tool arguments
|
|
- Synchronous tool execution support
|
|
|
|
|
|
## Usage
|
|
|
|
To use this module, add the following dependency to your Maven project:
|
|
|
|
```xml
|
|
<dependency>
|
|
<groupId>org.springframework.experimental</groupId>
|
|
<artifactId>spring-ai-mcp</artifactId>
|
|
<version>0.3.0-SNAPSHOT</version>
|
|
</dependency>
|
|
```
|
|
|
|
## License
|
|
|
|
This project is licensed under the [Apache License 2.0](https://www.apache.org/licenses/LICENSE-2.0).
|
|
|
|
## Links
|
|
|
|
- [GitHub Repository](https://github.com/spring-projects-experimental/spring-ai-mcp)
|
|
- [Issue Tracker](https://github.com/spring-projects-experimental/spring-ai-mcp/issues)
|
|
|
|
## Contributing
|
|
|
|
This is an experimental Spring project. Contributions are welcome! Please refer to the main project's contribution guidelines.
|