Mirror of https://github.com/modelcontextprotocol/java-sdk — The official Java SDK for Model Context Protocol servers and clients. Maintained in collaboration with Spring AI
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Christian Tzolov 611f3258d6 refactor: Split transport implementations into modules
Split the  transport implementations into dedicated modules to improve modularity
and reduce core dependencies.

Added shared test module for common test utilities.

Key changes:

- Create mcp-transport/mcp-webflux-sse-transport module
 - Move SseClientTransport → WebFluxSseClientTransport
 - Move SseServerTransport → WebFluxSseServerTransport
 - Move related tests and utilities

- Create mcp-transport/mcp-webmvc-sse-transport module
 - Add new WebMvcSseServerTransport implementation
 - Add corresponding tests and integration tests

- Add framework-independent SSE client implementations to core module
 - Add FlowSseClient using java.net.http
 - Add HttpClientSseClientTransport using java.net.http

- Keep StdioClientTransport/StdioServerTransport in core (no external deps)

- Create mcp-test module for shared test infrastructure
 - Move abstract test base classes
 - Move shared test utilities and mocks
 - Update test dependencies

The modular approach allows users to choose between:

- Framework-specific implementations (WebFlux/WebMVC)
- Pure Java implementations (java.net.http)
- Basic implementations (STDIO)

Add breaking changes readme: 0.5.0-BREAKING-CHANGES.md

Resolves #54
2025-01-09 15:38:34 +01:00
.github Add deploy docs GH actions 2025-01-03 13:34:24 +01:00
.mvn/wrapper initial 2024-12-06 16:41:17 +01:00
mcp refactor: Split transport implementations into modules 2025-01-09 15:38:34 +01:00
mcp-docs refactor: Split transport implementations into modules 2025-01-09 15:38:34 +01:00
mcp-test refactor: Split transport implementations into modules 2025-01-09 15:38:34 +01:00
mcp-transport refactor: Split transport implementations into modules 2025-01-09 15:38:34 +01:00
samples/spring-ai-mcp-sample refactor: Split transport implementations into modules 2025-01-09 15:38:34 +01:00
spring-ai-mcp refactor: Split transport implementations into modules 2025-01-09 15:38:34 +01:00
.gitattributes initial 2024-12-06 16:41:17 +01:00
.gitignore Rename modules, update .gitignore 2024-12-10 18:46:49 -05:00
0.5.0-BREAKING-CHANGES.md refactor: Split transport implementations into modules 2025-01-09 15:38:34 +01:00
LICENSE Initial commit 2024-12-06 16:06:20 +01:00
mvnw initial 2024-12-06 16:41:17 +01:00
mvnw.cmd initial 2024-12-06 16:41:17 +01:00
pom.xml refactor: Split transport implementations into modules 2025-01-09 15:38:34 +01:00
README.md refactor: Split transport implementations into modules 2025-01-09 15:38:34 +01:00
settings.xml Rename modules, update .gitignore 2024-12-10 18:46:49 -05:00

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.

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.
  • Find more.

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:

<!-- For core MCP functionality -->
<dependency>
    <groupId>org.springframework.experimental</groupId>
    <artifactId>mcp</artifactId>
    <version>0.5.0-SNAPSHOT</version>
</dependency>

<!-- For Spring AI integration -->
<dependency>
    <groupId>org.springframework.experimental</groupId>
    <artifactId>spring-ai-mcp</artifactId>
    <version>0.5.0-SNAPSHOT</version>
</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/libs-milestone-local</url>
    <snapshots>
      <enabled>false</enabled>
    </snapshots>
  </repository>
</repositories>

Example Demos

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

  • SQLite Simple - Demonstrates LLM integration with a database
  • SQLite Chatbot - Interactive chatbot with SQLite database interaction
  • Filesystem - Enables LLM interaction with local filesystem folders and files
  • Brave - Enables natural language interactions with Brave Search, allowing you to perform internet searches.
  • Spring-ai-mcp-sample - Showcases how to create and use MCP servers and clients with different transport modes and capabilities.

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

License

This project is licensed under the Apache License 2.0.