Skip to content

Java SDK for the Model Context Protocol (MCP), providing seamless integration between Java and Spring applications and MCP-compliant AI models and tools.

License

Notifications You must be signed in to change notification settings

spring-projects-experimental/spring-ai-mcp

Java & Spring MCP

Build Status

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.

Projects

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.

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.

About

Java SDK for the Model Context Protocol (MCP), providing seamless integration between Java and Spring applications and MCP-compliant AI models and tools.

Topics

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Packages

No packages published

Languages