diff --git a/README.md b/README.md new file mode 100644 index 0000000..e1d114d --- /dev/null +++ b/README.md @@ -0,0 +1,119 @@ +# Spring AI MCP + +Java SDK for the Model Context Protocol (MCP), providing seamless integration between Java and Spring applications and MCP-compliant AI models and tools. + +## Overview + +Spring AI MCP is an experimental project that provides Java and Spring Framework integration for the [Model Context Protocol](https://modelcontextprotocol.org/docs/concepts/architecture). It enables Spring applications to interact with AI models and tools through a standardized interface, supporting both synchronous and asynchronous communication patterns. + + + +## Modules + +The project consists of two main modules: + +### spring-ai-mcp-core + +The core module provides a Java implementation of the Model Context Protocol specification. It includes: +- Synchronous and asynchronous client implementations +- Standard MCP operations support (tool discovery, resource management, prompt handling) +- Stdio-based server transport +- Reactive programming support using Project Reactor + +### spring-ai-mcp-spring + +The Spring integration module provides Spring-specific functionality: +- Integration with Spring AI's function calling system +- Spring-friendly abstractions for MCP clients +- Automatic conversion between JSON and Java objects for tool arguments + +## Requirements + +- Java 17 or later +- Maven 3.6 or later +- Spring AI 1.0.0-M4 or later + +## Installation + +Add the following dependencies to your Maven project: + +```xml + + + org.springframework.experimental + spring-ai-mcp-core + 0.2.0-SNAPSHOT + + + + + org.springframework.experimental + spring-ai-mcp-spring + 0.2.0-SNAPSHOT + +``` + +## Documentation + +- [Core Module Documentation](spring-ai-mcp-core/README.md) +- [Spring Integration Documentation](spring-ai-mcp-spring/README.md) +- [UML Class Diagrams](spring-ai-mcp-core/docs/spring-ai-mcp-uml-classdiagram.svg) + +## Development + +### Building from Source + +```bash +mvn clean install +``` + +### Running Tests + +```bash +mvn test +``` + +## Project Information + +- **Group ID**: org.springframework.experimental +- **Version**: 0.2.0-SNAPSHOT +- **Java Version**: 17 +- **Spring AI Version**: 1.0.0-M4 + +## Contributing + +This is an experimental Spring project. Contributions are welcome! Please: + +1. Fork the repository +2. Create a feature branch +3. Submit a Pull Request + +## Team + +- Christian Tzolov +- Dariusz Jędrzejczyk + +## Links + +- [GitHub Repository](https://github.com/spring-projects-experimental/spring-ai-mcp) +- [Issue Tracker](https://github.com/spring-projects-experimental/spring-ai-mcp/issues) +- [CI/CD](https://github.com/spring-projects-experimental/spring-ai-mcp/actions) + +## License + +This project is licensed under the [Apache License 2.0](LICENSE). + +``` +Copyright 2024-2024 the original author or authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + https://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. diff --git a/spring-ai-mcp-architecture.jpg b/spring-ai-mcp-architecture.jpg new file mode 100644 index 0000000..7447e47 Binary files /dev/null and b/spring-ai-mcp-architecture.jpg differ diff --git a/spring-ai-mcp-spring/README.md b/spring-ai-mcp-spring/README.md new file mode 100644 index 0000000..d84f8e0 --- /dev/null +++ b/spring-ai-mcp-spring/README.md @@ -0,0 +1,53 @@ +# 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-spring` 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 + +## Dependencies + +- Spring AI Core (`spring-ai-core`) +- Spring AI MCP Core (`spring-ai-mcp-core`) + +## Usage + +To use this module, add the following dependency to your Maven project: + +```xml + + org.springframework.experimental + spring-ai-mcp-spring + 0.2.0-SNAPSHOT + +``` + +## 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.