# Java & Spring MCP Java SDK for the Model Context Protocol (MCP), providing seamless integration between Java and Spring applications and MCP-compliant AI resources and tools. ## Overview Provides Java and Spring Framework integration for the [Model Context Protocol](https://modelcontextprotocol.org/docs/concepts/architecture). It enables Java 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: ### [mcp](./mcp/README.md) Java implementation of the Model Context Protocol specification. It includes: - Synchronous and asynchronous [MCP Client](https://github.com/spring-projects-experimental/spring-ai-mcp/blob/main/mcp/README.md#client-usage-examples) and [MCP Server](https://github.com/spring-projects-experimental/spring-ai-mcp/blob/main/mcp/README.md#server-usage-examples) implementations - Standard MCP operations support (tool discovery, resource management, prompt handling). Support for request and notificaiotn handling. - [Stdio](https://spec.modelcontextprotocol.io/specification/basic/transports/#stdio) and [SSE](https://spec.modelcontextprotocol.io/specification/basic/transports/#http-with-sse) transport implementations. - [Find more](./mcp/README.md). ### [spring-ai-mcp](./spring-ai-mcp/README.md) The Spring integration module provides Spring-specific functionality: - Integration with Spring AI's function calling system - Spring-friendly abstractions for MCP clients - Auto-configurations (WIP) ## 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 mcp 0.4.0-SNAPSHOT org.springframework.experimental spring-ai-mcp 0.4.0-SNAPSHOT ``` ## Example Demos Explore these MCP examples in the [spring-ai-examples/model-context-protocol](https://github.com/spring-projects/spring-ai-examples/tree/main/model-context-protocol) repository: - [SQLite Simple](https://github.com/spring-projects/spring-ai-examples/tree/main/model-context-protocol/sqlite/simple) - Demonstrates LLM integration with a database - [SQLite Chatbot](https://github.com/spring-projects/spring-ai-examples/tree/main/model-context-protocol/sqlite/chatbot) - Interactive chatbot with SQLite database interaction - [Filesystem](https://github.com/spring-projects/spring-ai-examples/tree/main/model-context-protocol/filesystem) - Enables LLM interaction with local filesystem folders and files - [Brave](https://github.com/spring-projects/spring-ai-examples/tree/main/model-context-protocol/brave) - Enables natural language interactions with Brave Search, allowing you to perform internet searches. - [Spring-ai-mcp-sample](./spring-ai-mcp-sample/) - Showcases how to create and use MCP servers and clients with different transport modes and capabilities. ## Documentation - [Java MCP SDK documentation](mcp/README.md) - [Reference documentation](docs/ref-index.md) - [Spring Integration documentation](spring-ai-mcp/README.md) ## Development ### Building from Source ```bash mvn clean install ``` ### Running Tests ```bash mvn test ``` ## Project Information - **Group ID**: org.springframework.experimental - **Version**: 0.4.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).