Java & Spring MCP logo

Java & Spring MCP

by Spring Projects Experimental

The Java & Spring MCP project provides a Java SDK and Spring Framework integration for the Model Context Protocol. It enables Java applications to interact with AI models and tools through a standardized interface, supporting both synchronous and asynchronous communication patterns.

View on GitHub

Last updated: N/A

NOTE: This project has been graduated and moved to the MCP Java SDK and Spring AI MCP. See you there! This repository is now archived.

Java & Spring MCP

Set of projects that provide Java SDK and Spring Framework integration for the Model Context Protocol. It enables Java applications to interact with AI models and tools through a standardized interface, supporting both synchronous and asynchronous communication patterns.

📚 Reference Documentation

For comprehensive guides and API documentation, visit the Spring AI MCP Reference Documentation.

<img src="mcp-docs/src/main/antora/modules/ROOT/images/spring-ai-mcp-clinet-architecture.jpg" width="600"> <img src="mcp-docs/src/main/antora/modules/ROOT/images/spring-ai-mcp-server-architecture.jpg" width="600">

Projects

MCP Java SDK

Java implementation of the Model Context Protocol specification. It includes:

  • Synchronous and asynchronous MCP Client and MCP Server implementations
  • Standard MCP operations support (tool discovery, resource management, prompt handling, structured logging). Support for request and notification handling.
  • Stdio and SSE transport implementations.

MCP Transports

Core Transports
  • Stdio-based (StdioClientTransport, StdioServerTransport) for process-based communication
  • Java HttpClient-based SSE client (HttpClientSseClientTransport) for HTTP streaming
  • Servlet-based SSE server (HttpServletSseServerTransport) for HTTP SSE Server streaming using traditional Servlet API
Optional SSE Transports
  • WebFlux SSE Transport - Reactive HTTP streaming with Spring WebFlux (Client & Server)
  • WebMvc SSE Transport - Spring MVC based HTTP SSE transport (Server only). You can use the core HttpClientSseClientTransport transport as a SSE client.

Spring AI MCP

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)

Installation

Add the following dependencies to your Maven project:

<!-- Core MCP -->
<dependency>
    <groupId>org.springframework.experimental</groupId>
    <artifactId>mcp</artifactId>
</dependency>

<!-- Optional: WebFlux SSE transport -->
<dependency>
    <groupId>org.springframework.experimental</groupId>
    <artifactId>mcp-webflux-sse-transport</artifactId>
</dependency>

<!-- Optional: WebMVC SSE transport -->
<dependency>
    <groupId>org.springframework.experimental</groupId>
    <artifactId>mcp-webmvc-sse-transport</artifactId>
</dependency>

<!-- Optional: Spring AI integration -->
<dependency>
    <groupId>org.springframework.experimental</groupId>
    <artifactId>spring-ai-mcp</artifactId>
</dependency>

This is a milestone release, not available on Maven Central. Add this repository to your POM:

<repositories>
    <repository>
        <id>spring-milestones</id>
        <name>Spring Milestones</name>
        <url>https://repo.spring.io/milestone</url>
        <snapshots>
            <enabled>false</enabled>
        </snapshots>
    </repository>
</repositories>

Reffer to the Dependency Management page for more information.

Example Demos

Explore these MCP examples in the spring-ai-examples/model-context-protocol repository:

Documentation

Development

  • Building from Source
mvn clean install
  • Running Tests
mvn test

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

License

This project is licensed under the Apache License 2.0.