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
2025-01-12 10:01:46 +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 docs: improve transport layer documentation and code cleanup 2025-01-12 08:46:43 +01:00
mcp-docs docs: improve documentation clarity and add WebFlux SSE transport example 2025-01-12 09:34:12 +01:00
mcp-test refactor: Split transport implementations into modules 2025-01-09 15:38:34 +01:00
mcp-transport docs: improve documentation clarity and add WebFlux SSE transport example 2025-01-12 09:34:12 +01:00
spring-ai-mcp Improve the samples code 2025-01-09 16:48:36 +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 Move samples to the spring-ai-examples project 2025-01-11 17:53:06 +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 Move the WebMvc SSE Server + Http SSE Client sample to spring-ai-examples 2025-01-11 17:35:41 +01:00
README.md Add CI/CD build status badge 2025-01-12 10:01:46 +01:00
settings.xml Rename modules, update .gitignore 2024-12-10 18:46:49 -05:00

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.

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

Optional SSE Transports

  • WebFlux SSE Transport - Reactive HTTP streaming with Spring WebFlux (Client & Server)
  • WebMvc SSE Transport - Servlet-based HTTP streaming (Server only). Use the core HttpClientSseClientTransport for SSE clients.

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>
    <version>0.5.0-SNAPSHOT</version>
</dependency>

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

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

<!-- Optional: 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/milestone</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.
  • Theme Park API Example - Shows how to create an MCP server and client with Spring AI, exposing Theme Park API tools
  • Http SSE Client + WebMvc SSE Server sample - Showcases how to create and use MCP WebMvc servers and HttpClient clients with different 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.